.hero{position:relative;overflow:hidden;background:radial-gradient(1200px 700px at 70% -10%,var(--hero-glow) 0%,var(--bg) 55%)}.hero-in{position:relative;z-index:2;text-align:center;padding:clamp(40px,7vw,72px) 22px clamp(48px,8vw,84px);display:grid;grid-template-columns:1fr;gap:clamp(22px,4vw,34px);align-items:center}.hero-tag{color:var(--accent-ink);font-weight:700;font-size:13.5px;margin-bottom:12px}@media(min-width:1024px){.hero-in{grid-template-columns:1.08fr .92fr;text-align:start;gap:44px;padding-block:clamp(48px,6vw,76px)}.hero-sub{margin-inline:0}.hero-cta{justify-content:flex-start}}.hero-mark{height:120px;margin:0 auto 34px}h1{font-size:clamp(23px,4.6vw,40px);font-weight:700;line-height:1.7}.grad{background:linear-gradient(90deg,var(--blue),var(--purple2),var(--pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-sub{color:var(--dim);max-width:620px;margin:18px auto 0;font-size:clamp(14.5px,2.4vw,17px)}.hero-cta{display:flex;gap:12px;justify-content:center;margin-top:clamp(26px,4.5vw,36px);flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(28px,5vw,42px)}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(20px,3vw,26px) clamp(18px,2.6vw,24px);transition:transform .2s,border-color .2s,background .25s}.card:hover{transform:translateY(-3px);border-color:#8b5cf666}.cicon{width:31px;height:31px;color:var(--purple2);margin-bottom:14px}.card h3{font-size:17px;font-weight:700;margin-bottom:7px}.card p{color:var(--dim);font-size:14px}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}}@media(max-width:600px){.cards{grid-template-columns:1fr}}.alt{background:var(--bg2)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:clamp(28px,5vw,42px)}.step{border:1px solid var(--line);border-radius:16px;padding:clamp(18px,2.8vw,24px) clamp(16px,2.4vw,22px);position:relative;background:var(--surface)}.step-n{color:var(--accent-ink);font-weight:600;font-size:12.5px;letter-spacing:.22em;margin-bottom:10px}.step h3{font-size:16.5px;font-weight:700;margin-bottom:5px}.step p{color:var(--dim);font-size:14px;line-height:1.85}@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media(max-width:600px){.steps{grid-template-columns:1fr}}.whys{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,22px);margin-top:clamp(26px,5vw,38px)}.why{display:flex;gap:16px;align-items:flex-start}.why-px{width:12px;height:12px;border-radius:3px;background:var(--purple2);flex-shrink:0;margin-top:13px}.why h3{font-size:16.5px;font-weight:700;margin-bottom:3px}.why p{color:var(--dim);font-size:14px}@media(max-width:700px){.whys{grid-template-columns:1fr}}.cta-band{background:radial-gradient(700px 340px at 50% 120%,var(--band) 0%,transparent 70%),var(--bg2);border:1px solid var(--line)}#hero-canvas{position:relative;height:200px;margin:0 auto;max-width:560px;width:100%}@media(min-width:600px){#hero-canvas{height:240px}}@media(min-width:1024px){#hero-canvas{height:340px;max-width:none;margin:0}}#hero-canvas canvas{position:absolute;inset:0}#hero-canvas .hero-mark{height:86%;margin:4% auto 0;transition:opacity .4s}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(28px,5vw,42px);align-items:stretch}@media(max-width:860px){.demo-grid{grid-template-columns:1fr}}.term{background:#0a0f1d;border:1px solid rgba(139,152,173,.2);border-radius:14px;overflow:hidden;min-height:clamp(250px,36vw,320px);font-size:clamp(12px,1.6vw,13.5px);line-height:2.1;position:relative}html[data-theme=light] .term{box-shadow:0 10px 34px #1018281f}.term-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid rgba(139,152,173,.14)}.term-bar span{width:11px;height:11px;border-radius:50%;background:#2a3550}.term-bar span:nth-child(1){background:#ff5f57}.term-bar span:nth-child(2){background:#febc2e}.term-bar span:nth-child(3){background:#28c840}.term-bar em{margin-left:auto;color:#8b98ad;font-size:11.5px;font-style:normal}.term-code{padding:18px 20px;color:#c8d3e8;font-family:ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}.term-code .k{color:#ff5c8f}.term-code .f{color:#4f7cff}.term-code .s{color:#9ece6a}.term-code .n{color:#e0af68}.term-code .c{color:#8b98ad}.term-caret{display:inline-block;width:8px;height:15px;background:#8b5cf6;vertical-align:-2px;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.term-caret{animation:none}}.mini-ui{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px}.u-part{opacity:0;transform:translateY(10px) scale(.98);transition:opacity .5s,transform .5s}.u-part.on{opacity:1;transform:none}.u-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.u-logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--blue),var(--purple2))}.u-head i{margin-inline-start:auto;width:52px;height:8px;border-radius:99px;background:var(--line)}.u-hero{background:linear-gradient(120deg,#4f7cff2e,#8b5cf62e);border-radius:10px;padding:22px 16px;font-weight:700}.u-hero em{font-style:normal;color:var(--purple2)}.u-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.u-grid span{height:58px;border-radius:9px;background:var(--bg2);border:1px solid var(--line)}.u-pay{display:flex;gap:8px}.u-pay b{border:1px solid var(--line);border-radius:8px;padding:5px 14px;font-size:12.5px;color:var(--dim)}.u-wa{background:#25d36624;color:#1fae55;border-radius:9px;padding:9px 14px;font-size:13.5px;font-weight:600;width:fit-content}html[data-theme=light] .u-wa{color:#0e7a3c;background:#128a431f}.u-done{color:var(--purple2);font-weight:700;font-size:13.5px;text-align:center}.works{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(28px,5vw,42px)}@media(max-width:900px){.works{grid-template-columns:1fr}}.work{display:flex;flex-direction:column;gap:12px;background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:14px 14px 20px;transition:transform .2s,border-color .2s}.work:hover{transform:translateY(-4px);border-color:#8b5cf673}.shot{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#0a0f1d}.shot-bar{display:flex;align-items:center;gap:5px;padding:8px 11px;background:#0a0f1d}.shot-bar i{width:8px;height:8px;border-radius:50%;background:#2a3550}.shot-bar i:nth-child(1){background:#ff5f57}.shot-bar i:nth-child(2){background:#febc2e}.shot-bar i:nth-child(3){background:#28c840}.shot-bar em{margin-inline-start:auto;color:#8b98ad;font-size:10.5px;font-style:normal;direction:ltr}.shot img{width:100%;height:auto;display:block}.work h3{font-size:16.5px;font-weight:700;padding:0 6px}.work p{color:var(--dim);font-size:14px;padding:0 6px;line-height:1.85}.tags{display:flex;gap:6px;flex-wrap:wrap;padding:0 6px}.tags b{font-weight:600;font-size:11.5px;color:var(--accent-ink);background:#8b5cf61f;border-radius:99px;padding:3px 11px}.tgroups{display:flex;flex-direction:column;gap:clamp(18px,3vw,26px);margin-top:clamp(26px,5vw,38px)}.tg h3{font-size:13.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px;letter-spacing:.02em}.chips-row{display:flex;flex-wrap:wrap;gap:8px}.tchip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:99px;padding:7px 14px;font-size:12.5px;color:var(--dim);background:var(--surface);transition:color .2s,border-color .2s,transform .2s;cursor:default}.tdot{width:9px;height:9px;border-radius:3px;background:var(--bh);flex-shrink:0}.tchip svg{width:16px;height:16px;color:inherit;transition:color .2s}.tchip b{font-weight:600}.tchip:hover{color:var(--ink);border-color:var(--bh);transform:translateY(-2px)}.tchip:hover svg{color:var(--bh)}.proof{border-block:1px solid var(--line);background:var(--bg2)}.proof-in{display:flex;justify-content:center;flex-wrap:wrap;gap:10px clamp(18px,4vw,46px);padding-block:14px}.proof-item{display:inline-flex;align-items:center;gap:9px;color:var(--dim);font-size:13px;font-weight:600}.proof-item:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--purple2)}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(28px,5vw,42px)}@media(max-width:900px){.pillars{grid-template-columns:1fr}}.pillar{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,3vw,30px) clamp(20px,2.6vw,26px);transition:transform .2s,border-color .2s}.pillar:hover{transform:translateY(-3px);border-color:#8b5cf666}.pk{color:var(--accent-ink);font-size:12px;font-weight:600;letter-spacing:.18em;margin:4px 0 2px}.pillar h3{font-size:19px;font-weight:700;margin-bottom:8px}.pillar p{color:var(--dim);font-size:14px;line-height:1.95}.p-inc{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.p-inc b,.p-inc a{font-weight:600;font-size:11.5px;color:var(--accent-ink);background:#8b5cf61f;border-radius:99px;padding:3px 11px}.p-inc a{transition:background .2s,color .2s}.p-inc a:hover{background:var(--accent-ink);color:#fff}.consult{margin-top:clamp(22px,4vw,30px);text-align:center;color:var(--dim);font-size:14.5px}.consult a{color:var(--accent-ink);font-weight:700;border-bottom:1px dashed var(--accent-ink)}.stack-more{margin-top:clamp(22px,4vw,30px)}.stack-more summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;padding:11px 24px;color:var(--dim);font-size:14px;font-weight:600;transition:color .2s,border-color .2s}.stack-more summary::-webkit-details-marker{display:none}.stack-more summary:after{content:"+";font-weight:600;font-size:17px;color:var(--accent-ink);transition:transform .25s}.stack-more[open] summary:after{transform:rotate(45deg)}.stack-more summary:hover{color:var(--ink);border-color:var(--dim)}.stack-more>.tgroups{margin-top:clamp(20px,3.5vw,28px)}.home-refresh{--dim:#acb8cb}html[data-theme=light] .home-refresh{--dim:#475569}.home-refresh .hero-in{padding-block:48px;gap:36px}.home-refresh h1{font-size:clamp(27px,3.2vw,43px);line-height:1.55;letter-spacing:-.025em}.home-refresh .hero-sub{font-size:17px;line-height:1.9}.home-refresh .hero-cta{margin-top:24px}.home-refresh .cta-note{font-size:13px;color:var(--dim);margin-top:12px;line-height:1.8}.hero-project{display:block;min-width:0;text-align:start;border:1px solid var(--line);border-radius:20px;background:var(--surface);overflow:hidden;box-shadow:0 22px 64px #40208014;transition:transform .2s}.hero-project:hover{transform:translateY(-4px)}.hero-project-label,.hero-project-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;font-size:12px;color:var(--dim)}.hero-project-label .en-word,.hero-project-foot b{color:var(--accent-ink);font-weight:700}.hero-project img{display:block;width:100%;height:auto;border-block:1px solid var(--line)}.home-refresh .island{margin:0 auto;border:0;border-radius:0;padding:48px 0;background:transparent}.home-refresh #services,.home-refresh #stack{background:var(--bg2);border-radius:24px}.home-refresh #why{border-block:1px solid var(--line)}.home-refresh .lead{font-size:16px;line-height:1.9;max-width:740px}.home-refresh .works{grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}.home-refresh .work{padding:16px;gap:12px;background:var(--surface)}.home-refresh .work-featured{grid-column:1/-1;display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:28px;padding:20px}.work-copy{display:flex;flex-direction:column;gap:16px;min-width:0;padding:12px}.home-refresh .work h3{font-size:20px;padding:0}.home-refresh .work p{font-size:15px;padding:0}.home-refresh .work-featured h3{font-size:28px}.home-refresh .work .tags{padding:0}.work-link{color:var(--accent-ink);font-weight:700;font-size:14px;margin-top:4px}.home-refresh .pillar p,.home-refresh .step p,.home-refresh .why p,.home-refresh .faq-a p{font-size:15px;line-height:1.9}.home-refresh .pillars,.home-refresh .steps,.home-refresh .whys,.home-refresh .demo-grid{margin-top:26px}.home-refresh .step{border:0;border-inline-start:2px solid var(--purple2);border-radius:0;background:transparent;padding:10px 20px}.home-refresh .step-n{font-size:16px;letter-spacing:.08em}.home-refresh .tgroups{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:26px}.home-refresh .tg h3{font-size:15px}.home-refresh .tchip{font-size:13px;padding:8px 12px}.home-refresh .cta-band{margin:12px auto 48px;padding:40px 24px;border-radius:24px;background:var(--bg2);border:1px solid var(--line)}.home-refresh .faq-q{font-size:16px;min-height:56px}.home-refresh .reveal{opacity:1!important;transform:none!important}.home-refresh a:focus-visible,.home-refresh button:focus-visible,.home-refresh summary:focus-visible{outline:3px solid var(--accent-ink);outline-offset:5px}@media(min-width:1024px){.home-refresh .hero-cta{justify-content:flex-start}.home-refresh .hero-sub{margin-inline:0}}@media(max-width:760px){.home-refresh .hero-in{padding:32px 20px;gap:24px}.home-refresh .hero-sub{font-size:16px}.hero-project{max-width:540px;margin-inline:auto;width:100%}.hero-project-label,.hero-project-foot{padding:12px;font-size:11px;gap:8px}.home-refresh .island{padding:32px 0;margin-inline:12px}.home-refresh .works,.home-refresh .work-featured{grid-template-columns:1fr;gap:16px}.home-refresh .work-featured{padding:12px}.work-copy{padding:4px;gap:12px}.home-refresh .work-featured h3{font-size:23px}.home-refresh .work p{font-size:15px}.home-refresh .tgroups{grid-template-columns:1fr;gap:20px}.home-refresh .pillar{padding:20px}.home-refresh .proof-in{justify-content:flex-start;padding:14px 22px;gap:8px}.home-refresh .proof-item{font-size:12px}.home-refresh .cta-band{margin:12px 12px 36px;padding:30px 12px}.home-refresh .steps{gap:18px}}@media(prefers-reduced-motion:reduce){.hero-project,.home-refresh .work{transition:none}}.home-refresh .pixel-divider{display:flex;direction:ltr;justify-content:center;gap:3px;width:fit-content;height:8px;margin:0 auto 28px;pointer-events:none}.pixel-divider span{display:block;width:8px;height:8px;border-radius:2px;background:var(--px-color)}.pixel-divider.pixel-ready span{opacity:.2;transform:translate(var(--px-x),var(--px-y)) rotate(35deg) scale(.65)}.pixel-divider.pixel-ready.assembled span{animation:pixel-assemble .85s cubic-bezier(.2,.7,.25,1) var(--px-delay) both}@keyframes pixel-assemble{0%{opacity:.2;transform:translate(var(--px-x),var(--px-y)) rotate(35deg) scale(.65)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.pixel-divider.pixel-ready span,.pixel-divider.pixel-ready.assembled span{animation:none;opacity:1;transform:none}}.fh-fab{position:fixed;z-index:70;inset-inline-end:16px;bottom:calc(18px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;border-radius:999px;color:#fff;text-decoration:none;background:linear-gradient(120deg,var(--purple,#6539AF),#8b5cf6);box-shadow:0 14px 34px -10px #6539afbf,0 3px 10px #00000040;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.9,.3,1.2)}.fh-fab.fh-in{opacity:1;transform:none}.fh-fab[hidden]{display:none}.fh-fab:hover{filter:brightness(1.07);transform:translateY(-2px)}.fh-avatar{position:relative;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--purple,#6539AF);display:grid;place-items:center;flex-shrink:0}.fh-avatar b{font-size:19px;font-weight:800;line-height:1}.fh-avatar i{position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(255,255,255,.7);animation:fh-ring 2.2s ease-out infinite}@keyframes fh-ring{0%{transform:scale(.85);opacity:.9}to{transform:scale(1.5);opacity:0}}.fh-txt{display:flex;flex-direction:column;line-height:1.25;text-align:start}.fh-txt b{font-size:14px;font-weight:700}.fh-txt small{font-size:11px;opacity:.92;display:flex;align-items:center;gap:5px}.fh-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px #4ade8047;flex-shrink:0}@media(max-width:860px){.fh-fab{bottom:calc(72px + env(safe-area-inset-bottom));inset-inline-end:12px;padding:7px 14px 7px 8px}.fh-txt b{font-size:13px}}@media(prefers-reduced-motion:reduce){.fh-avatar i{animation:none}.fh-fab{transition:none}}
