:root{--bg:#f1f4f8;--surface:#fff;--ink:#0f1b2d;--muted:#586880;--accent:#1f5eff;--accent-hover:#1648c9;--accent-deep:#0b2a6f;--panel:#fffffff0;--line:#0f1b2d1f;--radius:8px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:28px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,p,ol{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{border-radius:var(--radius);background:var(--accent);color:#fff;font:600 14px/1 var(--font);cursor:pointer;border:0;flex:none;padding:12px 18px;transition:background .2s}.btn:hover{background:var(--accent-hover)}.btn-lg{padding:17px 26px;font-size:17px}.nav{z-index:30;padding:11px var(--gutter);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);visibility:hidden;transition:transform .6s var(--ease), visibility 0s .6s;background:#ffffffe0;align-items:center;gap:18px;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-110%)}.nav.on{visibility:visible;transition-delay:0s;transform:none}.brand{font:700 21px/1 var(--font);letter-spacing:-.035em;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:9px;padding:0;display:flex}.brand svg{width:28px;height:28px}.svcs{scrollbar-width:none;flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}.svcs::-webkit-scrollbar{display:none}.svc{color:var(--muted);font:500 13px/1 var(--font);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:8px 11px;transition:background .25s,color .25s;display:flex}.svc:first-child{margin-left:auto}.svc:last-child{margin-right:auto}.svc .n{color:var(--accent);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;transition:color .25s}.svc:hover{color:var(--ink)}.svc.on{background:var(--accent);color:#fff}.svc.on .n{color:#ffffffbf}.stage{background:var(--bg);height:100dvh;position:sticky;top:0;overflow:hidden}.frame{height:100lvh;position:absolute;top:0;left:0;right:0}#gl{touch-action:pan-y;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}#lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#lines line{stroke:var(--accent);stroke-width:1.5px;opacity:0;transition:opacity .35s}#lines line.on{opacity:.55}.dot{background:var(--accent);color:#fff;width:22px;height:22px;font:700 11px/1 var(--font);opacity:0;pointer-events:none;border-radius:50%;place-items:center;margin:-11px 0 0 -11px;transition:opacity .3s;display:grid;position:absolute;top:0;left:0;box-shadow:0 0 0 4px #1f5eff33}.dot.on{opacity:1}html.js .wordmark,html.js .intro{opacity:0}.wordmark{font:700 clamp(42px, 5.2vw, 72px) / 1 var(--font);letter-spacing:-.045em;white-space:nowrap;pointer-events:none;position:absolute;bottom:74%;left:50%;transform:translate(-50%)}.wordmark span{color:var(--muted);font-weight:400}.intro{text-align:center;pointer-events:none;width:min(720px,90vw);position:absolute;top:57%;left:50%;transform:translate(-50%)}.intro h1{font:700 clamp(25px, 3.1vw, 42px) / 1.08 var(--font);letter-spacing:-.035em;text-wrap:balance;margin-bottom:12px}.intro p{max-width:520px;color:var(--muted);text-wrap:pretty;margin:0 auto;font-size:clamp(15px,1.3vw,18px)}.cue{font:500 13px/1 var(--font);color:var(--muted);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.cue.on{opacity:1}.cue span{animation:1.6s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{50%{transform:translateY(5px)}}.over,.outro,.cap{opacity:0;visibility:hidden;transition:opacity .45s, transform .6s var(--ease), visibility 0s .45s}.over.on,.outro.on,.cap.on{opacity:1;visibility:visible;transition-delay:0s}.over,.outro{text-align:center;width:min(560px,90vw);position:absolute;bottom:7%;left:50%;transform:translate(-50%,14px)}.over.on,.outro.on{transform:translate(-50%)}.over{pointer-events:none}.over h2,.outro h2{font:700 clamp(24px, 2.6vw, 34px) / 1.1 var(--font);letter-spacing:-.03em;margin-bottom:8px}.over p,.outro p{color:var(--muted)}.outro p{margin-bottom:20px}.cap{left:max(var(--gutter), 4vw);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;border-radius:14px;width:min(400px,31vw);padding:26px 28px 28px;position:absolute;top:50%;transform:translateY(calc(16px - 50%));box-shadow:0 18px 50px #0f1b2d1a}.cap.on{transform:translateY(-50%)}.cap .kicker{font:600 12px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.cap h2{font:700 clamp(28px, 3vw, 42px) / 1.06 var(--font);letter-spacing:-.035em;text-wrap:balance;margin-bottom:12px}.cap .tag{color:var(--muted);text-wrap:pretty;font-size:17px}#services,.service{display:contents}.pts{pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.pt{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:268px;font:500 14px/1.35 var(--font);opacity:0;border-radius:10px;align-items:center;gap:10px;padding:12px 14px;transition:opacity .35s;display:flex;position:absolute;top:0;left:0;box-shadow:0 8px 24px #0f1b2d14}.pt.on{opacity:1}.pt b{background:var(--accent);color:#fff;width:22px;height:22px;font:700 11px/1 var(--font);border-radius:50%;flex:none;place-items:center;display:grid}.cardwrap{z-index:50;perspective:1600px;visibility:hidden;place-items:center;display:grid;position:fixed;inset:0}.cardwrap.show{visibility:visible}.scrim{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;background:#08143080;transition:opacity .5s;position:absolute;inset:0}.open .scrim{opacity:1}.bcard{aspect-ratio:7/4;width:min(560px,92vw);transform-style:preserve-3d;transform:translate(var(--dx,0px), var(--dy,0px)) rotateY(180deg) scale(var(--sx,.2), var(--sy,.14));transition:transform .8s cubic-bezier(.3,.75,.2,1);position:relative}.open .bcard{transform:none}.face{backface-visibility:hidden;border-radius:14px;box-shadow:0 30px 70px #040c2052}.back{background:var(--accent);--mark-a:#fff;--mark-b:#ffffffb8;--mark-c:#ffffff73;place-items:center;display:grid;position:absolute;inset:0;transform:rotateY(180deg)}.back svg{aspect-ratio:1;width:26%}.front{background:var(--surface);grid-template-columns:1fr 1.08fr;height:100%;padding:32px 34px 30px;display:grid;position:relative}.col{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.col.how{border-left:1px solid var(--line);padding-left:28px}.who{align-items:center;gap:12px;display:flex}.who svg{flex:none;width:46px;height:46px}.who .name{font:700 24px/1 var(--font);letter-spacing:-.035em;white-space:nowrap}.who .role{font:500 11px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}.bcard .k{font:600 11px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.area .big{font:700 26px/1.05 var(--font);letter-spacing:-.035em}.area .small{color:var(--muted);margin-top:5px;font-size:14.5px}.how ol{counter-reset:step;padding:0;list-style:none}.how li{font:500 14.5px/1.3 var(--font);counter-increment:step;padding:2px 0 9px 30px;position:relative}.how li:before{content:counter(step);background:var(--accent);color:#fff;width:21px;height:21px;font:700 11px/1 var(--font);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0}.mail a{font:600 16px/1.2 var(--font);color:var(--accent);word-break:break-all;text-decoration:none}.mail .pending{font:500 13.5px/1 var(--font);color:var(--muted);border:1px dashed #0f1b2d4d;border-radius:6px;padding:8px 10px;display:inline-block}.x{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:22px;line-height:1;position:absolute;top:6px;right:8px}@media (width<=899px){:root{--gutter:14px;--panel:#fffffff7}.nav,.cap,.pt{-webkit-backdrop-filter:none;backdrop-filter:none}.nav{padding:9px var(--gutter) 8px;background:#fffffff7;flex-wrap:wrap;gap:8px 12px}.nav .btn{margin-left:auto;padding:10px 14px}.svcs{order:3;flex:0 0 calc(100% + 2 * var(--gutter));margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)}.svc{padding:7px 10px}.intro{top:55%}.cap{width:auto;padding:14px 16px 16px;top:108px;left:10px;right:10px;transform:translateY(12px)}.cap.on{transform:none}.cap .kicker{margin-bottom:8px;font-size:11px}.cap h2{margin-bottom:6px;font-size:26px}.cap .tag{font-size:14.5px;line-height:1.4}.pts{flex-direction:column;gap:6px;display:flex;inset:auto 10px 12px}.pt{width:auto;padding:10px 12px;font-size:13.5px;position:static;transform:none!important}#lines{display:none}.over,.outro{bottom:5%}}@media (width<=619px){.bcard{aspect-ratio:auto;width:min(86vw,340px)}.front{grid-template-columns:1fr;gap:22px;height:auto;padding:28px 26px 26px}.col{gap:22px}.col.how{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.mail{margin-top:4px}}@media (prefers-reduced-motion:reduce){.cue span{animation:none}.bcard,.scrim{transition:none}}:is(html:not(.js),html.no-3d) :is(#gl,#lines,#dots,.cue,.over){display:none}:is(html:not(.js),html.no-3d) .frame{height:auto;position:static}:is(html:not(.js),html.no-3d) .stage{max-width:720px;height:auto;padding:120px var(--gutter) 80px;margin:0 auto;position:static;overflow:visible}:is(html:not(.js),html.no-3d) :is(.wordmark,.intro,.outro,.cap,.pts,.pt){opacity:1;visibility:visible;pointer-events:auto;width:auto;position:static;transform:none}:is(html:not(.js),html.no-3d) .wordmark{text-align:center;margin-bottom:20px}:is(html:not(.js),html.no-3d) .intro{margin:0 auto 64px}:is(html:not(.js),html.no-3d) .service{margin-bottom:44px;scroll-margin-top:120px;display:block}:is(html:not(.js),html.no-3d) .cap{box-shadow:none;background:0 0;border:0;margin-bottom:14px;padding:0}:is(html:not(.js),html.no-3d) .pts{gap:8px;display:grid}:is(html:not(.js),html.no-3d) .pt{box-shadow:none}:is(html:not(.js),html.no-3d) .outro{margin:72px auto 0}html:not(.js) :is(.nav,.scrim,.back,.x,[data-card]){display:none}html:not(.js) .cardwrap{visibility:visible;padding:0 var(--gutter) 80px;position:static}html:not(.js) .bcard{transform:none}
