@import "/tokens.css?v=0206a1dc9a";
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--dm-ink);color:var(--dm-paper);font-family:var(--dm-font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.locked{overflow:hidden}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{font-family:var(--dm-font-heading);font-weight:600;margin:0;line-height:1.1;letter-spacing:-.015em;text-wrap:pretty}
p,ul,ol{margin:0;text-wrap:pretty}
a{color:var(--s-link,var(--dm-cyan-500));text-decoration:underline;text-underline-offset:3px}a:hover{filter:brightness(1.12)}
.ext{display:inline-block;margin-left:.2em;font-size:.85em;text-decoration:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--s-focus,var(--dm-cyan-500));outline-offset:3px}
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus,main:focus{outline:none}
.wrap{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.eyebrow{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--s-acc2)}
.lead{font-size:clamp(18px,1.5vw,22px);line-height:1.5}
.h1{font-size:clamp(40px,5.5vw,76px);letter-spacing:-.03em;line-height:1}
.h2{font-size:clamp(32px,4.2vw,58px);letter-spacing:-.03em}
.h3{font-size:clamp(22px,2vw,28px)}
.muted{color:var(--s-muted)}
.kind{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:4px;border:1.5px solid currentColor;color:var(--s-acc)}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border-radius:6px;font-weight:600;font-size:16px;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:var(--dm-font-body);transition:transform .15s,filter .15s;color:inherit;background:transparent}
.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn-p{background:var(--s-btn);color:var(--s-btn-fg)!important}
.btn-ghost{border-color:currentColor}.btn-ghost:hover{background:var(--s-ghost)}
.btn-sm{min-height:40px;padding:0 16px;font-size:14px}
.skip{position:absolute;left:-999px;top:8px;background:var(--dm-ink);color:#fff;padding:10px 14px;border-radius:6px;z-index:99}.skip:focus{left:8px}
section.pad{padding:clamp(64px,8vw,112px) 0}
.pad-sm{padding:clamp(40px,5vw,64px) 0}
/* surfaces */
[data-surface]{background:var(--s-bg);color:var(--s-fg)}
[data-surface="midnight"]{--s-bg:var(--dm-ink);--s-fg:var(--dm-paper);--s-muted:var(--dm-muted);--s-line:rgba(245,248,253,.14);--s-acc:var(--dm-lime-500);--s-acc2:var(--dm-cyan-500);--s-acc3:var(--dm-violet-300);--s-card:var(--dm-ink-soft);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-cyan-500);--s-btn-fg:var(--dm-ink);--s-link:var(--dm-cyan-500);--s-ghost:rgba(245,248,253,.1);--s-focus:var(--dm-cyan-500)}
[data-surface="deep"]{--s-bg:var(--dm-ink-soft);--s-fg:var(--dm-paper);--s-muted:var(--dm-muted);--s-line:rgba(245,248,253,.16);--s-acc:var(--dm-lime-500);--s-acc2:var(--dm-cyan-500);--s-acc3:var(--dm-violet-300);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-lime-500);--s-btn-fg:var(--dm-ink);--s-link:var(--dm-cyan-500);--s-ghost:rgba(245,248,253,.1);--s-focus:var(--dm-cyan-500)}
[data-surface="paper"]{--s-bg:var(--dm-paper);--s-fg:var(--dm-ink);--s-muted:var(--dm-body);--s-line:var(--dm-line);--s-acc:var(--dm-lime-700);--s-acc2:var(--dm-cyan-700);--s-acc3:var(--dm-violet-700);--s-card:var(--dm-white);--s-card-fg:var(--dm-ink);--s-card-muted:var(--dm-body);--s-btn:var(--dm-cyan-700);--s-btn-fg:#fff;--s-link:var(--dm-cyan-700);--s-ghost:rgba(11,17,32,.08);--s-focus:var(--dm-cyan-700)}
[data-surface="white"]{--s-bg:var(--dm-white);--s-fg:var(--dm-ink);--s-muted:var(--dm-body);--s-line:var(--dm-line);--s-acc:var(--dm-lime-700);--s-acc2:var(--dm-cyan-700);--s-acc3:var(--dm-violet-700);--s-card:var(--dm-paper);--s-card-fg:var(--dm-ink);--s-card-muted:var(--dm-body);--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-cyan-700);--s-ghost:rgba(11,17,32,.08);--s-focus:var(--dm-cyan-700)}
[data-surface="violet-deep"]{--s-bg:var(--dm-violet-950);--s-fg:var(--dm-violet-50);--s-muted:var(--dm-violet-300);--s-line:rgba(212,188,255,.3);--s-acc:var(--dm-lime-300);--s-acc2:var(--dm-cyan-500);--s-acc3:var(--dm-violet-300);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-lime-500);--s-btn-fg:var(--dm-ink);--s-link:var(--dm-cyan-500);--s-ghost:rgba(245,248,253,.1);--s-focus:var(--dm-cyan-500)}
[data-surface="violet"]{--s-bg:var(--dm-violet-500);--s-fg:var(--dm-ink);--s-muted:#1C0F33;--s-line:rgba(11,17,32,.3);--s-acc:var(--dm-ink);--s-acc2:var(--dm-ink);--s-acc3:#1C0F33;--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-ink);--s-ghost:rgba(11,17,32,.1);--s-focus:var(--dm-ink)}
[data-surface="lime"]{--s-bg:var(--dm-lime-500);--s-fg:var(--dm-ink);--s-muted:#1A2412;--s-line:rgba(11,17,32,.3);--s-acc:var(--dm-ink);--s-acc2:var(--dm-ink);--s-acc3:#1A2412;--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-ink);--s-ghost:rgba(11,17,32,.1);--s-focus:var(--dm-ink)}
[data-surface="cyan"]{--s-bg:var(--dm-cyan-500);--s-fg:var(--dm-ink);--s-muted:#0C2A33;--s-line:rgba(11,17,32,.3);--s-acc:var(--dm-ink);--s-acc2:var(--dm-ink);--s-acc3:#0C2A33;--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-ink);--s-ghost:rgba(11,17,32,.1);--s-focus:var(--dm-ink)}
[data-surface="lime-dark"]{--s-bg:var(--dm-lime-950);--s-fg:var(--dm-paper);--s-muted:#C9D8A8;--s-line:rgba(225,255,147,.22);--s-acc:var(--dm-lime-500);--s-acc2:var(--dm-lime-300);--s-acc3:var(--dm-cyan-500);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-lime-500);--s-btn-fg:var(--dm-ink);--s-link:var(--dm-lime-300);--s-ghost:rgba(245,248,253,.08);--s-focus:var(--dm-lime-500)}
[data-surface="cyan-dark"]{--s-bg:var(--dm-cyan-950);--s-fg:var(--dm-paper);--s-muted:#A9CFD9;--s-line:rgba(125,238,255,.22);--s-acc:var(--dm-lime-500);--s-acc2:var(--dm-cyan-500);--s-acc3:var(--dm-violet-300);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-cyan-500);--s-btn-fg:var(--dm-ink);--s-link:var(--dm-cyan-500);--s-ghost:rgba(245,248,253,.08);--s-focus:var(--dm-cyan-500)}
[data-surface="cyan-deep"]{--s-bg:var(--dm-cyan-700);--s-fg:#fff;--s-muted:#D6F3F9;--s-line:rgba(255,255,255,.3);--s-acc:var(--dm-lime-500);--s-acc2:#fff;--s-acc3:var(--dm-lime-300);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-lime-500);--s-btn-fg:var(--dm-ink);--s-link:#fff;--s-ghost:rgba(255,255,255,.12);--s-focus:var(--dm-lime-500)}
[data-surface="lime-soft"]{--s-bg:var(--dm-lime-300);--s-fg:var(--dm-ink);--s-muted:#1A2412;--s-line:rgba(11,17,32,.25);--s-acc:var(--dm-lime-700);--s-acc2:var(--dm-cyan-700);--s-acc3:var(--dm-violet-700);--s-card:var(--dm-ink);--s-card-fg:var(--dm-paper);--s-card-muted:var(--dm-muted);--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-cyan-700);--s-ghost:rgba(11,17,32,.08);--s-focus:var(--dm-ink)}
[data-surface="cyan-pale"]{--s-bg:var(--dm-cyan-50);--s-fg:var(--dm-ink);--s-muted:var(--dm-body);--s-line:rgba(11,17,32,.15);--s-acc:var(--dm-cyan-700);--s-acc2:var(--dm-cyan-700);--s-acc3:var(--dm-violet-700);--s-card:var(--dm-white);--s-card-fg:var(--dm-ink);--s-card-muted:var(--dm-body);--s-btn:var(--dm-cyan-700);--s-btn-fg:#fff;--s-link:var(--dm-cyan-700);--s-ghost:rgba(11,17,32,.06);--s-focus:var(--dm-cyan-700)}
[data-surface="violet-pale"]{--s-bg:var(--dm-violet-50);--s-fg:var(--dm-ink);--s-muted:var(--dm-body);--s-line:rgba(11,17,32,.15);--s-acc:var(--dm-violet-700);--s-acc2:var(--dm-violet-700);--s-acc3:var(--dm-cyan-700);--s-card:var(--dm-white);--s-card-fg:var(--dm-ink);--s-card-muted:var(--dm-body);--s-btn:var(--dm-violet-700);--s-btn-fg:#fff;--s-link:var(--dm-violet-700);--s-ghost:rgba(11,17,32,.06);--s-focus:var(--dm-violet-700)}
[data-surface="scene-light"]{--s-bg:var(--dm-cyan-50);--s-fg:var(--dm-ink);--s-muted:#1F3A44;--s-line:rgba(11,17,32,.18);--s-acc:var(--dm-lime-700);--s-acc2:var(--dm-cyan-700);--s-acc3:var(--dm-violet-700);--s-card:rgba(255,255,255,.72);--s-card-fg:var(--dm-ink);--s-card-muted:#1F3A44;--s-btn:var(--dm-ink);--s-btn-fg:var(--dm-paper);--s-link:var(--dm-cyan-700);--s-ghost:rgba(11,17,32,.08);--s-focus:var(--dm-cyan-700)}
.card{background:var(--s-card);color:var(--s-card-fg)}.card .muted{color:var(--s-card-muted)}
/* header */
header.site{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:rgba(11,17,32,.82);color:var(--dm-paper);--s-link:var(--dm-cyan-500);--s-focus:var(--dm-cyan-500)}
header.site .wrap{display:flex;align-items:center;gap:12px;min-height:76px}
header.site .logo{display:inline-flex;padding:4px 0}
@media (min-width:1241px){header.site #primary-nav{margin:0 0 0 auto}header.site .social{margin-left:8px}}
header.site .logo img{width:192px;height:48px}
header.site nav ul{list-style:none;display:flex;gap:0;margin:0;padding:0}
header.site nav a{text-decoration:none;font-weight:600;font-size:14px;padding:10px 10px;border-radius:6px;color:inherit;display:inline-block;white-space:nowrap}
header.site nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--dm-lime-500)}
header.site nav a:hover{background:rgba(245,248,253,.1)}
.social{display:flex;gap:6px}
.social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(245,248,253,.22);opacity:1}
.social a:hover{border-color:var(--dm-cyan-500);background:rgba(67,231,255,.1)}
.social img{width:16px;height:16px;object-fit:contain}
.menu-btn{min-height:44px;padding:0 14px;border:2px solid rgba(245,248,253,.4);background:transparent;color:inherit;border-radius:6px;font:600 15px var(--dm-font-body);cursor:pointer;display:none}
.menu{position:absolute;right:clamp(20px,4vw,48px);top:72px;background:var(--dm-ink-soft);border:1px solid rgba(245,248,253,.14);border-radius:12px;padding:10px;min-width:260px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);display:none}
.menu.open{display:block}
.menu a{display:block;padding:12px 14px;border-radius:8px;text-decoration:none;color:var(--dm-paper);font-weight:600}
.menu a:hover{background:rgba(245,248,253,.08)}.menu a[aria-current="page"]{color:var(--dm-lime-500)}
.menu hr{border:0;border-top:1px solid rgba(245,248,253,.14);margin:8px 0}
.menu .cta{background:var(--dm-cyan-500);color:var(--dm-ink);text-align:center;margin-top:6px}
@media (max-width:1240px){header.site #primary-nav{display:none}header.site .logo{margin-right:auto}.menu-btn{display:inline-flex;align-items:center;justify-content:center}}
/* footer */
footer.site{background:var(--dm-ink);color:var(--dm-muted);padding:56px 0 32px;font-size:14px;--s-link:var(--dm-cyan-500);--s-focus:var(--dm-cyan-500);border-top:1px solid rgba(245,248,253,.1)}
footer.site .wrap{display:grid;gap:32px 48px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
footer.site .logo img{width:192px;height:48px}
footer.site .sig{font-family:var(--dm-font-heading);font-weight:600;color:var(--dm-lime-500);font-size:20px;margin:16px 0 12px}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
footer.site ul a{color:var(--dm-paper);text-decoration:none;font-weight:600}footer.site ul a:hover{color:var(--dm-cyan-500)}
footer.site .addr{margin-top:18px;line-height:1.5}
footer.site .bottom{grid-column:1/-1;border-top:1px solid rgba(245,248,253,.1);padding-top:20px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
@media (max-width:760px){footer.site .wrap{grid-template-columns:1fr}}
/* hero scene */
.hero{position:relative;overflow:hidden;background:var(--dm-ink) url(/assets/web/layers/hero/background.webp) center bottom/cover no-repeat;min-height:0}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:16px;align-items:center;padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(24px,3vw,40px)}
.hero .copy{padding-bottom:clamp(16px,3vw,48px);text-shadow:0 2px 24px rgba(11,17,32,.85),0 0 60px rgba(11,17,32,.7)}
.hero h1{font-size:clamp(46px,6.6vw,100px);line-height:.96;letter-spacing:-.035em;margin-top:18px;color:var(--dm-paper)}
.hero h1 em{font-style:normal;color:var(--dm-lime-500)}
.hero .lead{color:var(--dm-paper);max-width:36ch;margin:24px 0 28px;font-weight:400;background:linear-gradient(90deg,rgba(11,17,32,.42),rgba(11,17,32,.18) 80%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:10px 14px 10px 12px;margin-left:-12px;border-radius:8px;display:inline-block;text-shadow:0 1px 14px rgba(11,17,32,.9)}
.hero .eyebrow{color:var(--dm-cyan-500)}
.hero .acts{display:grid;gap:18px;justify-items:start}
.hero .resp{background:rgba(11,17,32,.78);padding:8px 12px;border-radius:6px;display:inline-block;border-left:3px solid var(--dm-lime-500);color:var(--dm-lime-500)}
.hero .btn-ghost{background:rgba(11,17,32,.7)}
.hero .body{color:var(--dm-muted);max-width:44ch;margin-bottom:28px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .resp{margin-top:0;font-weight:600;font-size:15px}
.hero .amb{margin-top:10px;font-size:14px;color:var(--dm-paper);max-width:48ch;opacity:.9}
.hero .fg{position:relative;margin:0;width:min(100%,960px);justify-self:end;animation:float 12s ease-in-out infinite alternate;--art:1.2;scale:var(--art);transform-origin:70% 60%;margin-right:calc((var(--art) - 1) * -22%)}
@media (max-width:900px){.hero .fg{--art:1;margin-right:0}}
.hero .fg img{width:100%;height:auto;position:relative;z-index:1;aspect-ratio:1672/941}
.hero .fg .pulse{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.hero .fg .rail{fill:none;stroke:#43E7FF;stroke-width:8;stroke-linecap:round;opacity:.12}
.hero .fg .dot{fill:none;stroke:#43E7FF;stroke-width:8;stroke-linecap:round;stroke-dasharray:12 88;stroke-dashoffset:0;opacity:.85;filter:drop-shadow(0 0 6px #43E7FF) drop-shadow(0 0 14px rgba(67,231,255,.6));animation:pulse 6s linear infinite}
@keyframes pulse{to{stroke-dashoffset:-100}}
.hero:not(.live) .fg .dot{animation-play-state:paused}
.hero .horizon{position:absolute;left:0;right:0;top:62%;height:2px;background:linear-gradient(90deg,transparent,rgba(67,231,255,0) 10%,var(--dm-cyan-500) 45%,#fff 50%,var(--dm-cyan-500) 55%,transparent 90%);filter:drop-shadow(0 0 10px var(--dm-cyan-500));opacity:.6;animation:horizon 10s ease-in-out infinite alternate}
@keyframes horizon{from{transform:translateX(-6%) scaleX(.9);opacity:.35}to{transform:translateX(6%) scaleX(1.05);opacity:.75}}
.hero .gridfx{position:absolute;inset:0;background-image:linear-gradient(rgba(67,231,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(67,231,255,.08) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 70%,transparent);animation:gridmove 14s linear infinite}
@keyframes gridmove{to{background-position:72px 72px}}
.hero .paths{position:absolute;inset:0;width:100%;height:100%}
.hero .paths path{fill:none;stroke-width:2;stroke-dasharray:6 14;animation:flow 6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-200}}
.band{border-top:1px solid rgba(11,17,32,.15)}
.band .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;padding-top:26px;padding-bottom:26px;align-items:center}
.band p{font-weight:600;font-size:clamp(15px,1.2vw,18px);line-height:1.45}
.band p+p{font-weight:400;font-size:15px;color:#1A2412}
@media (max-width:900px){.band .wrap{grid-template-columns:1fr}}
.band .facts{grid-column:1/-1;list-style:none;margin:6px 0 0;padding:18px 0 0;border-top:1px solid rgba(11,17,32,.2);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px}
.band .facts li{font-size:13px;color:#1A2412;font-weight:400;line-height:1.4}.band .facts b{display:block;font-family:var(--dm-font-heading);font-weight:600;font-size:17px;color:var(--dm-ink);margin-bottom:2px}
@media (max-width:900px){.band .facts{grid-template-columns:1fr 1fr}}
.sline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;border-radius:12px;overflow:hidden}
.sline li{background:rgba(245,248,253,.06);padding:18px 18px 16px;display:grid;gap:4px;border-top:3px solid var(--dm-violet-300)}
.sline li.human{border-top-color:var(--dm-lime-500)}
.sline .n{font:600 12px var(--dm-font-heading);color:var(--s-muted)}.sline b{font-family:var(--dm-font-heading);font-weight:600;font-size:16px;line-height:1.2}.sline small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--s-muted)}.sline li.human small{color:var(--dm-lime-300)}
@media (max-width:900px){.sline{grid-template-columns:1fr 1fr}}@media (max-width:560px){.sline{grid-template-columns:1fr}}
.plist{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:520px}
.plist a{display:grid;gap:2px;padding:16px 20px;border-radius:10px;background:var(--dm-ink);color:var(--dm-paper);text-decoration:none;border:1px solid transparent}
.plist a:hover{border-color:var(--dm-cyan-500)}.plist b{font-family:var(--dm-font-heading);font-weight:600;font-size:19px}.plist span{font-size:14px;color:var(--dm-muted)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:st}
.steps li{display:grid;grid-template-columns:40px 1fr;gap:4px 16px;padding:16px 18px;border-radius:10px;background:var(--s-ghost);border:1px solid var(--s-line);align-items:start}
.steps li::before{counter-increment:st;content:counter(st);grid-row:1/3;width:36px;height:36px;border-radius:50%;background:var(--s-btn);color:var(--s-btn-fg);font:600 15px var(--dm-font-heading);display:grid;place-items:center}
.steps b{font-family:var(--dm-font-heading);font-weight:600;font-size:17px}.steps span{font-size:14px;color:var(--s-muted)}
.faq{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:28px 48px}
.faq div{border-top:1px solid var(--s-line);padding-top:18px}.faq dt{font-family:var(--dm-font-heading);font-weight:600;font-size:19px;margin-bottom:8px}.faq dd{margin:0;font-size:15px;color:var(--s-muted)}
@media (max-width:900px){.faq{grid-template-columns:1fr}}
.founder{display:grid;grid-template-columns:140px 1fr;gap:24px;align-items:center}
.founder img{width:140px;height:140px;border-radius:50%;object-fit:cover;object-position:50% 20%;background:var(--dm-lime-500);border:0}
.block .more{font-size:14px;font-weight:600;color:var(--dm-ink);opacity:.75;text-decoration:none;align-self:center}.block .more:hover{opacity:1;text-decoration:underline}
.strip{border-bottom:1px solid var(--s-line)}
.strip .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:28px;padding-bottom:28px}
.strip p{font-size:14px;color:var(--s-muted)}.strip b{display:block;color:var(--s-fg);font-family:var(--dm-font-heading);font-weight:600;font-size:17px;margin-bottom:4px}
@media (max-width:900px){.strip .wrap{grid-template-columns:1fr 1fr}}@media (max-width:560px){.strip .wrap{grid-template-columns:1fr}}
.fx{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .8s}
.live .fx{opacity:1}
.fx .glow{position:absolute;border-radius:50%;filter:blur(40px);mix-blend-mode:screen}
.fx .trace{position:absolute;height:2px;background:linear-gradient(90deg,transparent,currentColor 40%,#fff 50%,currentColor 60%,transparent);opacity:.9;filter:drop-shadow(0 0 6px currentColor)}
.fx .blink{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 10px 3px currentColor}
.hero .g1{left:38%;bottom:4%;width:26%;height:14%;background:var(--dm-lime-500);opacity:.35;animation:breathe 7s ease-in-out infinite}
.hero .g2{left:58%;bottom:6%;width:22%;height:12%;background:var(--dm-cyan-500);opacity:.4;animation:breathe 9s ease-in-out 2s infinite}
.hero .g3{left:78%;bottom:5%;width:20%;height:12%;background:var(--dm-violet-500);opacity:.35;animation:breathe 8s ease-in-out 4s infinite}
.hero .t1{left:-20%;bottom:16%;width:28%;color:var(--dm-cyan-500);animation:travel 9s linear infinite}
.hero .t2{left:-20%;bottom:9%;width:22%;color:var(--dm-lime-500);animation:travel 13s linear 3s infinite}
.hero .t3{left:-20%;bottom:23%;width:18%;color:var(--dm-violet-300);animation:travel 11s linear 6s infinite}
@keyframes travel{to{transform:translateX(520%)}}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.3}50%{transform:scale(1.25);opacity:.6}}
@keyframes blink{0%,92%,100%{opacity:.2}94%,98%{opacity:1}}
@keyframes sweep{0%{transform:translateX(-30%) rotate(-8deg);opacity:0}15%{opacity:.5}50%{opacity:.55}85%{opacity:.5}100%{transform:translateX(40%) rotate(-8deg);opacity:0}}
html[data-motion="paused"] .fx *,html[data-motion="reduced"] .fx *,html[data-motion="paused"] .hero .fg,html[data-motion="reduced"] .hero .fg,html[data-motion="paused"] .hero .fg .dot,html[data-motion="reduced"] .hero .fg .dot{animation-play-state:paused!important}
html[data-motion="reduced"] .fx{display:none}
@media (prefers-reduced-motion:reduce){.fx{display:none}*{scroll-behavior:auto!important}}
/* editorial/product scene */
.scene-ed{position:relative;overflow:hidden;background:var(--dm-cyan-50) url(/assets/web/layers/editorial/background.webp) center/cover no-repeat}
.scene-ed .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center}
.scene-ed .fg{margin:0;width:min(100%,720px);justify-self:end;position:relative}
.scene-ed .fg{animation:float 14s ease-in-out infinite alternate}
.scene-ed .fg img{width:100%;aspect-ratio:1448/1086}
.scene-ed .edfx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;mix-blend-mode:screen}
.scene-ed .edfx .lamp{opacity:.35;animation:lamp 5s ease-in-out infinite}
.scene-ed .edfx .sheet{opacity:.3;animation:lamp 5s ease-in-out .6s infinite}
.scene-ed .edfx .fan{opacity:.18;animation:breathe 7s ease-in-out 1s infinite;transform-origin:1210px 540px;transform-box:fill-box}
.scene-ed .edfx .ribbon{fill:none;stroke:#43E7FF;stroke-width:9;stroke-linecap:round;stroke-dasharray:10 90;opacity:.9;filter:drop-shadow(0 0 6px #43E7FF) drop-shadow(0 0 14px rgba(67,231,255,.5));animation:pulse 7s linear infinite}
.scene-ed .edfx .ribbon.r2{stroke:#B685FF;animation-delay:-3.5s;filter:drop-shadow(0 0 6px #B685FF) drop-shadow(0 0 14px rgba(182,133,255,.5))}
.scene-ed .edfx .led{fill:#fff;filter:drop-shadow(0 0 6px #43E7FF);opacity:.2;animation:blink 6s infinite}
.scene-ed .edfx .l2{animation-delay:2s}.scene-ed .edfx .l3{animation-delay:4s}
@keyframes lamp{0%,100%{opacity:.25}50%{opacity:.6}}
.scene-ed:not(.live) .edfx *{animation-play-state:paused}
html[data-motion="paused"] .scene-ed .fg,html[data-motion="reduced"] .scene-ed .fg,html[data-motion="paused"] .edfx *,html[data-motion="reduced"] .edfx *{animation-play-state:paused!important}
.scene-ed .s1{left:52%;top:40%;width:14%;height:12%;background:#fff;opacity:.3;animation:breathe 6s ease-in-out infinite}
.scene-ed .t1{left:35%;top:62%;width:18%;color:var(--dm-cyan-700);animation:travel 10s linear infinite;opacity:.7}
.scene-ed .b1{left:88%;top:48%;color:var(--dm-violet-500);animation:blink 6s infinite}
.scene-ed .b2{left:60%;top:30%;color:var(--dm-lime-700);animation:blink 8s 2s infinite}
/* method hero (v2): the assembly sits on a lit violet floor; copy on a frosted panel */
.hero-m{position:relative;overflow:hidden;color:var(--dm-paper);background:#1C1238;--hz:clamp(440px,50vw,620px);--s-bg:transparent;--s-fg:var(--dm-violet-50);--s-muted:var(--dm-violet-300);--s-line:rgba(212,188,255,.3);--s-acc:var(--dm-lime-500);--s-acc2:var(--dm-cyan-500);--s-link:var(--dm-cyan-500);--s-focus:var(--dm-cyan-500)}
.hero-m .fx{opacity:1}
.hero-m .sky{position:absolute;left:0;right:0;top:0;height:var(--hz);background:radial-gradient(90% 120% at 80% 100%,#3A2468 0%,#241745 45%,#0E0A1F 100%)}
.hero-m .floor{position:absolute;left:-20%;right:-20%;top:calc(var(--hz) - 40px);bottom:0;background:linear-gradient(180deg,#2E1D55 0%,#241745 30%,#17112E 70%,#120D24 100%);-webkit-mask-image:linear-gradient(180deg,transparent,#000 60px);mask-image:linear-gradient(180deg,transparent,#000 60px);overflow:hidden}
.hero-m .floor::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(212,188,255,.14) 0 1px,transparent 1px 90px),repeating-linear-gradient(0deg,rgba(212,188,255,.12) 0 1px,transparent 1px 90px);transform:perspective(900px) rotateX(58deg);transform-origin:50% 0;animation:floorflow 12s linear infinite}
.hero-m .floor::after{content:"";position:absolute;left:0;right:0;top:0;height:160px;background:linear-gradient(180deg,transparent,rgba(67,231,255,.16) 45%,rgba(200,255,61,.22) 50%,rgba(67,231,255,.16) 55%,transparent);animation:floorscan 9s ease-in-out infinite;opacity:.9}
@keyframes floorscan{0%{transform:translateY(-160px)}100%{transform:translateY(calc(100vh + 160px))}}
@keyframes floorflow{to{background-position:0 90px,0 90px}}
.hero-m .horizon{position:absolute;left:0;right:0;top:calc(var(--hz) - 40px);height:2px;background:linear-gradient(90deg,transparent,rgba(67,231,255,.7) 30%,rgba(200,255,61,.8) 55%,rgba(182,133,255,.7) 80%,transparent);filter:blur(1px);opacity:.9;transform:none;animation:none}
.hero-m .horizon::after{content:"";position:absolute;left:10%;right:10%;top:-40px;height:80px;background:radial-gradient(50% 100% at 50% 50%,rgba(67,231,255,.25),transparent 70%)}
.hero-m .radar{position:absolute;right:-14%;top:calc(var(--hz) - 520px);width:min(70vw,900px);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 285deg,rgba(67,231,255,.14) 345deg,rgba(200,255,61,.22) 360deg);filter:blur(16px);-webkit-mask-image:radial-gradient(circle,transparent 24%,#000 26%,#000 66%,transparent 68%);mask-image:radial-gradient(circle,transparent 24%,#000 26%,#000 66%,transparent 68%);animation:radar 16s linear infinite}
@keyframes radar{to{transform:rotate(360deg)}}
.hero-m .wrap{position:relative;z-index:3;width:100%;min-height:calc(var(--hz) + 40px);display:grid;align-items:center;padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(40px,5vw,72px)}
.hero-m .stages-wrap{min-height:0;display:block;padding-top:clamp(64px,8vw,120px);padding-bottom:clamp(64px,8vw,104px)}
.hero-m .stages-wrap .stage::before{background:transparent}
.hero-m .stages-wrap .stage::after{border-color:#1C1238}
.hero-m .panel{max-width:560px;background:rgba(11,17,32,.58);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border:1px solid rgba(212,188,255,.22);border-radius:20px;padding:clamp(28px,3.5vw,44px);box-shadow:0 40px 90px -40px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.08)}
.hero-m .eyebrow{color:var(--dm-cyan-500)}
.hero-m h1{font-size:clamp(34px,4.4vw,60px);line-height:1.02;letter-spacing:-.03em;margin-top:16px}
.hero-m .lead{color:var(--dm-violet-300);margin-top:20px;font-size:clamp(16px,1.3vw,19px)}
.hero-m .legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:26px;font-size:13px;font-weight:600;color:var(--dm-muted)}
.hero-m .lk{display:inline-flex;align-items:center;gap:8px}.hero-m .lk::before{content:"";width:10px;height:10px;border-radius:50%}
.hero-m .lk.h::before{background:var(--dm-lime-500)}.hero-m .lk.a::before{background:var(--dm-violet-500)}.hero-m .lk.c::before{background:var(--dm-cyan-500);box-shadow:0 0 8px var(--dm-cyan-500)}
.hero-m .fg{position:absolute;z-index:2;right:-9%;top:calc(var(--hz) - min(31vw,460px));width:min(72vw,1080px);margin:0;-webkit-mask-image:radial-gradient(ellipse 68% 64% at 52% 52%,#000 50%,transparent 100%);mask-image:radial-gradient(ellipse 68% 64% at 52% 52%,#000 50%,transparent 100%)}
.hero-m .fg img{position:relative;z-index:1;width:100%;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55))}
.hero-m .station{position:absolute;left:40%;top:24%;width:28%;height:26%;border-radius:50%;background:var(--dm-lime-500);filter:blur(42px);opacity:.28;z-index:0;animation:breathe 5s ease-in-out infinite}
.hero-m .ring{position:absolute;left:40%;top:22%;width:32%;height:28%;z-index:2;overflow:visible;pointer-events:none}
.hero-m .ring ellipse{fill:none;stroke:var(--dm-cyan-500);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-dasharray:5 9;opacity:.75;filter:drop-shadow(0 0 4px #43E7FF);animation:orbit 7s linear infinite}
@keyframes orbit{to{stroke-dashoffset:-100}}
.hero-m .scan{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:screen;-webkit-mask:url(/assets/web/layers/method/foreground.webp) center/100% 100% no-repeat;mask:url(/assets/web/layers/method/foreground.webp) center/100% 100% no-repeat;background:linear-gradient(90deg,transparent 0 46.5%,rgba(67,231,255,.45) 49.2%,#fff 50%,rgba(67,231,255,.45) 50.8%,transparent 53.5% 100%);background-size:300% 100%;background-repeat:no-repeat;animation:scan 5.5s ease-in-out infinite alternate}
@keyframes scan{from{background-position:100% 0}to{background-position:0% 0}}
.hero-m:not(.live) .fg *,.hero-m:not(.live) .fx *,html[data-motion="paused"] .hero-m *,html[data-motion="reduced"] .hero-m *{animation-play-state:paused!important}
@media (max-width:900px){.hero-m .wrap{min-height:0;display:block;padding-bottom:0}.hero-m .panel{max-width:none}.hero-m .fg{position:relative;right:auto;top:auto;width:100%;margin:12px 0 0;-webkit-mask-image:none;mask-image:none}.hero-m .sky{height:auto;bottom:40%}.hero-m .floor,.hero-m .horizon{top:60%}.hero-m .radar{top:0}}
/* method scene */
.scene-m{position:relative;overflow:hidden;background:var(--dm-cyan-50) url(/assets/web/layers/method/background.webp) center/cover no-repeat}
.scene-m .wrap{position:relative;z-index:2}
.scene-m{min-height:clamp(560px,60vw,720px);display:grid;align-items:center}
.scene-m .wrap{width:100%}
.scene-m .read{position:relative;z-index:2;max-width:60ch;background:rgba(245,248,253,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);border-radius:18px;padding:clamp(28px,3.5vw,44px);box-shadow:0 30px 80px -40px rgba(11,17,32,.35)}
.scene-m .mstage{position:absolute;right:-4%;top:50%;transform:translateY(-50%);width:min(64%,920px);margin:0;z-index:1;pointer-events:none}
@media (max-width:900px){.scene-m .mstage{position:static;transform:none;width:100%;margin:28px 0 0;pointer-events:auto}.scene-m .read{max-width:none}}
.scene-m .mstage img{width:100%}
.scene-m .insp{left:55%;top:36%;width:12%;height:10%;background:#fff;opacity:.6;animation:breathe 5s ease-in-out infinite;border-radius:50%}
.scene-m .t1{left:6%;top:50%;width:14%;color:var(--dm-lime-700);animation:travel 8s linear infinite;opacity:.6}
.scene-m .t2{left:6%;top:56%;width:12%;color:var(--dm-cyan-700);animation:travel 9s linear 2s infinite;opacity:.6}
.scene-m .t3{left:6%;top:63%;width:12%;color:var(--dm-violet-700);animation:travel 10s linear 4s infinite;opacity:.6}
.scene-m .b1{left:92%;top:44%;color:var(--dm-cyan-500);animation:blink 7s infinite}
@media (max-width:900px){.hero .wrap,.scene-ed .wrap{grid-template-columns:1fr}.hero .fg,.scene-ed .fg{justify-self:center;width:min(100%,620px)}}
/* clients band */
.clients{border-top:1px solid var(--s-line)}
.clients .head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.logos li{list-style:none;background:#fff;border-radius:10px;min-height:92px;display:grid;place-items:center;padding:16px 20px}
.logos li.dark{background:var(--dm-ink);box-shadow:inset 0 0 0 1px rgba(245,248,253,.2)}
.logos img{max-height:44px;width:auto;object-fit:contain}
@media (max-width:1100px){.logos{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* services blocks */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:48px}
.blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.block{border-radius:16px;padding:36px 32px;display:flex;flex-direction:column;gap:14px;min-height:440px;color:var(--dm-ink);box-shadow:0 0 0 1px var(--s-line);--s-link:var(--dm-ink);--s-focus:var(--dm-ink)}
.block.lime{background:var(--dm-lime-500)}.block.cyan{background:var(--dm-cyan-500)}.block.violet{background:var(--dm-violet-500)}
.block .buyer{font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.block h3{font-size:clamp(26px,2.4vw,34px);letter-spacing:-.02em}.block p.b{font-size:15.5px;flex:1;opacity:.92}
.block .proof{font-size:13px;font-weight:600;opacity:.85}
.block .brow{display:flex;align-items:center;gap:10px;position:relative}
.block .info{width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(11,17,32,.45);display:inline-grid;place-items:center;font:600 13px var(--dm-font-heading);text-decoration:none;color:var(--dm-ink);opacity:.7;flex:none}
.block .info:hover,.block .info:focus-visible{opacity:1}
.block .tip{position:absolute;left:0;right:0;bottom:calc(100% + 10px);background:var(--dm-ink);color:var(--dm-paper);font:400 13px/1.45 var(--dm-font-body);padding:10px 12px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .15s;box-shadow:0 10px 30px rgba(11,17,32,.3);width:100%;max-width:360px;z-index:3}
.block .tip b{display:block;color:var(--dm-lime-500);font:600 11px var(--dm-font-body);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.block .info:hover~.tip,.block .info:focus-visible~.tip{opacity:1}
.block .btn{align-self:flex-start;background:var(--dm-ink);color:var(--dm-paper)!important}
/* timeline */
.stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;counter-reset:s;margin:0;padding:0;list-style:none}
.stages::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:linear-gradient(90deg,var(--dm-cyan-500),var(--dm-violet-500),var(--dm-lime-500))}
.stage{padding:40px 20px 0 0;position:relative}
.stage::before{counter-increment:s;content:counter(s,decimal-leading-zero);position:absolute;top:0;left:0;padding-right:10px;font:600 13px var(--dm-font-heading);line-height:24px;background:var(--s-bg)}
.stage::after{content:"";position:absolute;left:50px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--s-acc);border:3px solid var(--s-bg);box-shadow:0 0 0 2px var(--s-acc)}
.stage h3{font-size:19px;margin-bottom:10px}.stage p{font-size:14.5px;color:var(--s-muted)}
.stage.human h3::after{content:"Human decision";font:600 11px var(--dm-font-body);display:block;margin-top:6px;letter-spacing:.08em;text-transform:uppercase;color:var(--s-acc)}
@media (max-width:1000px){.stages{grid-template-columns:1fr 1fr}.stages::before,.stage::after{display:none}.stage{padding-top:32px}}@media (max-width:600px){.stages{grid-template-columns:1fr}}
/* work */
.head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
.head p{margin-top:12px;max-width:52ch}
.feature{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center;margin-bottom:56px}
.feature h3{font-size:32px;margin:14px 0 10px}
.meta{margin-top:16px;font-size:14px;display:grid;gap:8px}.meta b{font-weight:600;color:var(--s-fg)}
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.case{display:grid;gap:12px;align-content:start}
.case .kind{justify-self:start;color:var(--s-acc3)}.case h3{font-size:21px}.case p{font-size:15px}
.ev{position:relative;display:block;width:100%;padding:0;border:0;background:var(--dm-ink);border-radius:12px;overflow:hidden;cursor:zoom-in;text-align:left;color:var(--dm-paper);font-family:inherit;box-shadow:0 20px 50px -30px rgba(0,0,0,.6)}
.ev img{width:100%;aspect-ratio:2400/1254;object-fit:cover}
.ev .tag{position:absolute;right:10px;bottom:10px;background:rgba(11,17,32,.85);color:var(--dm-paper);font:600 13px var(--dm-font-body);padding:8px 12px;border-radius:6px;display:inline-flex;gap:6px;align-items:center}
.ev:hover .tag,.ev:focus-visible .tag{background:var(--dm-cyan-500);color:var(--dm-ink)}
.wcase{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px;align-items:start;padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--s-line)}
.wcase .kind{justify-self:start}.wcase h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.02em;margin:14px 0 6px}
.wcase .sub{color:var(--s-acc2);font-weight:600;margin-bottom:12px}
.wcase .cap{font-size:13px;color:var(--s-muted);margin-top:10px}
.wcase .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
@media (max-width:900px){.feature,.wcase,.intro{grid-template-columns:1fr}.cases,.blocks{grid-template-columns:1fr}.block{min-height:0}.wcase .evwrap{order:-1}}
/* refs */
.refs{list-style:none;margin:0;padding:0;display:grid;gap:10px 32px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));font-size:15px}
.refs li{padding:10px 0;border-top:1px solid var(--s-line);color:var(--s-muted)}.refs b{font-weight:600;color:var(--s-fg)}
.exp .top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:40px;align-items:start;margin-bottom:36px}
.exp .attr{margin-top:24px;font-size:14px;max-width:70ch;color:var(--s-muted)}
@media (max-width:900px){.exp .top{grid-template-columns:1fr}}
/* products */
.tools{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tool{border-radius:14px;padding:26px;display:grid;gap:8px;align-content:start}
.tool .kind{justify-self:start;color:var(--dm-violet-300)}.tool h3{font-size:22px;margin-top:8px}.tool p{font-size:14.5px}
.tool a{color:var(--dm-cyan-500);font-weight:600}
a.tool{border:1px solid transparent}a.tool:hover{border-color:var(--dm-cyan-500)}
@media (max-width:700px){.tools{grid-template-columns:1fr}}
.prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start;padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--s-line)}
.prod dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:18px 0 0;font-size:15px}.prod dt{font-weight:600;color:var(--s-acc2);font-size:13px;text-transform:uppercase;letter-spacing:.08em;padding-top:3px}.prod dd{margin:0;color:var(--s-muted)}
@media (max-width:900px){.prod{grid-template-columns:1fr}.prod .evwrap{order:-1}}
/* AI stack */
.stack{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.stack li{list-style:none;background:#fff;border-radius:10px;padding:16px 14px 12px;display:grid;gap:8px;justify-items:center;text-align:center;color:var(--dm-ink)}
.stack li img{height:34px;width:auto;max-width:100%;object-fit:contain}
.stack li b{font-size:13px;font-weight:600;display:block}.stack li small{font-size:11px;color:var(--dm-body);line-height:1.3}
.stack li.txt{background:var(--dm-ink-soft);color:var(--dm-paper);box-shadow:inset 0 0 0 1px rgba(245,248,253,.2)}.stack li.txt small{color:var(--dm-muted)}
.stack li.txt .mono{font:600 20px var(--dm-font-heading);height:34px;display:grid;place-items:center;color:var(--dm-lime-500)}
.stack.sm{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
@media (max-width:1000px){.stack{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:560px){.stack{grid-template-columns:repeat(2,minmax(0,1fr))}}
.groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.group{border:1px solid var(--s-line);border-radius:12px;padding:22px}
.group h4{font-size:17px;margin-bottom:10px}.group .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chip{font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--s-ghost);border:1px solid var(--s-line)}
.group p{font-size:14px;color:var(--s-muted)}
@media (max-width:900px){.groups{grid-template-columns:1fr}}
/* services detail */
.offer-d{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:40px;padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--s-line)}
.offer-d h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.02em;margin:12px 0 10px}
.offer-d .cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}
.offer-d h3{font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--s-acc2);margin-bottom:10px}
.offer-d ul{padding-left:18px;display:grid;gap:6px;font-size:15px;color:var(--s-muted)}
.offer-d .acts{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:22px}
@media (max-width:900px){.offer-d,.offer-d .cols{grid-template-columns:1fr}}
/* stories */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 36px}
.filters a{text-decoration:none;font-weight:600;font-size:14px;padding:10px 16px;border-radius:999px;border:1.5px solid var(--s-line);color:inherit;min-height:44px;display:inline-flex;align-items:center}
.filters a[aria-current="true"]{background:var(--s-btn);color:var(--s-btn-fg);border-color:transparent}
.n-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.n-card{display:grid;gap:12px;align-content:start;text-decoration:none;color:inherit}
.n-card .thumb{aspect-ratio:16/10;object-fit:cover;width:100%;border-radius:10px;background:var(--dm-ink)}
.n-card h3{font-size:23px}.n-card p{font-size:15px}.n-card:hover h3{text-decoration:underline}
.t{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--s-acc2)}
.ai{font-size:13px;font-weight:600;color:var(--s-acc3)}
@media (max-width:900px){.n-cards{grid-template-columns:1fr}}
.article{max-width:760px;margin:0 auto}
.s-list{display:grid}
.s-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:start;padding:clamp(36px,4vw,56px) 0;border-bottom:1px solid var(--s-line)}
.s-row:first-child{padding-top:clamp(28px,3vw,40px)}
.s-img{display:block;border-radius:12px;overflow:hidden;background:var(--dm-ink-soft)}
.s-img img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
.s-row:hover .s-img img{transform:scale(1.03)}
.s-body{display:grid;gap:14px}
.s-body h2{font-size:clamp(26px,2.8vw,40px);letter-spacing:-.02em}
.s-body h2 a{color:inherit;text-decoration:none}.s-body h2 a:hover{text-decoration:underline}
.s-meta{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:13px;align-items:center}
@media (max-width:900px){.s-row{grid-template-columns:1fr;gap:20px}}
.article .lede{font-size:clamp(19px,1.6vw,23px);color:var(--s-muted);margin:20px 0 28px}
.article .body p{margin-bottom:1.25em;font-size:18px;line-height:1.7}
.article figure{margin:0 0 36px}.article figcaption{font-size:13px;color:var(--s-muted);margin-top:10px}
.article .meta-row{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--s-muted);margin-bottom:28px}
.policy{border:1px solid var(--s-line);border-radius:14px;padding:28px;max-width:860px}
.notice{border:1px solid var(--s-line);border-radius:12px;padding:20px 24px;margin:24px 0}
/* about & contact */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
@media (max-width:900px){.two{grid-template-columns:1fr}}
.contact .qs{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.contact .qs li{padding:16px 20px;border-radius:10px;font-weight:600;font-size:16px}
.contact .mail{font-family:var(--dm-font-heading);font-size:clamp(22px,2.6vw,34px);text-decoration:none;border-bottom:3px solid currentColor;color:inherit}
.photo{border-radius:14px;overflow:hidden;background:var(--dm-ink);box-shadow:0 0 0 6px var(--dm-ink)}
.loc{position:relative;overflow:hidden;background:var(--dm-ink);color:var(--dm-paper);min-height:560px;display:grid;align-items:center;--s-link:var(--dm-cyan-500);--s-acc2:var(--dm-cyan-500);--s-focus:var(--dm-cyan-500)}
.loc-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.loc-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,17,32,.96) 0%,rgba(11,17,32,.88) 32%,rgba(11,17,32,.45) 58%,rgba(11,17,32,.1) 100%),linear-gradient(180deg,rgba(11,17,32,.4),transparent 30%,transparent 70%,rgba(11,17,32,.7))}
.loc-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(72px,8vw,112px)}
.loc-addr{font-style:normal;font-size:14px;line-height:1.55;color:var(--dm-muted);margin-top:14px}
.loc-mail{margin-top:26px}
.loc-mail a{font-family:var(--dm-font-heading);font-weight:600;font-size:clamp(22px,2.4vw,32px);color:var(--dm-lime-500);text-decoration:none;border-bottom:3px solid var(--dm-lime-500);letter-spacing:-.01em}
.loc-mail a:hover{color:var(--dm-lime-300);border-color:var(--dm-lime-300)}
.loc-partner{display:flex;align-items:center;gap:12px;margin-top:36px}
.loc-partner span{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dm-muted)}
.loc-partner img{height:22px;width:auto;opacity:.85}
.loc-credit{position:absolute;right:16px;bottom:12px;z-index:1;font-size:11px;color:rgba(245,248,253,.75);max-width:min(90%,620px);text-align:right;line-height:1.5;text-shadow:0 1px 4px rgba(11,17,32,.8)}
.loc-credit b{font-weight:600;color:var(--dm-paper)}.loc-credit a{color:rgba(245,248,253,.85)}
@media (max-width:900px){.loc-grid{grid-template-columns:1fr}.loc-scrim{background:linear-gradient(180deg,rgba(11,17,32,.95) 0%,rgba(11,17,32,.85) 55%,rgba(11,17,32,.35) 100%)}}
footer.site .mail{display:inline-block;font-family:var(--dm-font-heading);font-weight:600;font-size:clamp(20px,2vw,26px);color:var(--dm-lime-500);text-decoration:none;border-bottom:2px solid var(--dm-lime-500);margin-top:8px}
footer.site .mail:hover{color:var(--dm-lime-300)}
.photo img{aspect-ratio:4/3;object-fit:cover;width:100%}
.partner{display:inline-flex;align-items:center;gap:16px;background:var(--dm-ink);color:var(--dm-paper);padding:14px 18px;border-radius:10px;--s-link:var(--dm-cyan-500)}
.partner img{height:40px;width:auto}
.partner small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dm-muted)}
/* pause */
.pause{position:fixed;right:16px;bottom:16px;z-index:60;width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(245,248,253,.35);background:rgba(11,17,32,.35);backdrop-filter:blur(6px);color:var(--dm-paper);display:grid;place-items:center;cursor:pointer;opacity:.7;transition:opacity .15s,border-color .15s;padding:0}
.pause:hover,.pause:focus-visible{opacity:1;border-color:var(--dm-cyan-500)}
.pause svg{width:14px;height:14px;fill:currentColor}
.pause .ic-play{display:none}.pause[aria-pressed="true"] .ic-play{display:block}.pause[aria-pressed="true"] .ic-pause{display:none}
.pause:disabled{opacity:.4;cursor:default}
/* viewer */
.viewer{position:fixed;inset:0;z-index:100;background:rgba(11,17,32,.92);display:none;padding:16px}
.viewer.open{display:grid;grid-template-rows:auto 1fr auto}
.viewer .vhead{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 8px 14px;color:var(--dm-paper)}
.viewer h2{font-size:20px}
.viewer .vtools{display:flex;gap:8px}
.viewer .vtools button,.viewer .close{min-height:44px;padding:0 16px;border-radius:6px;border:1.5px solid rgba(245,248,253,.4);background:transparent;color:var(--dm-paper);font:600 14px var(--dm-font-body);cursor:pointer}
.viewer .vtools button[aria-pressed="true"]{background:var(--dm-cyan-500);color:var(--dm-ink);border-color:transparent}
.viewer .vtools button:disabled{opacity:.4;cursor:default}
.viewer .close{background:var(--dm-paper);color:var(--dm-ink);border-color:transparent}
.viewer .vport{overflow:auto;border-radius:10px;background:var(--dm-ink-soft);display:grid;place-items:center;outline-offset:-3px}
.viewer .vport img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.viewer .vport.detail{display:block}.viewer .vport.detail img{max-width:none;max-height:none}
.viewer .status{color:var(--dm-paper);padding:24px;text-align:center;display:grid;gap:14px;justify-items:center}
.viewer .vfoot{padding:14px 8px 4px;color:var(--dm-muted);font-size:14px;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between}
.viewer .vfoot b{color:var(--dm-paper);font-weight:600}

/* ===== v3 motion layer ===== */
/* hero */
.hero h1 em{text-shadow:0 0 0 rgba(200,255,61,0);animation:neon 5s ease-in-out infinite}
@keyframes neon{0%,100%{text-shadow:0 0 0 rgba(200,255,61,0)}50%{text-shadow:0 0 18px rgba(200,255,61,.55),0 0 42px rgba(200,255,61,.25)}}
.hero .btn-p{position:relative;box-shadow:0 0 0 0 rgba(67,231,255,.55);animation:ringpulse 3.2s ease-out infinite}
@keyframes ringpulse{0%{box-shadow:0 0 0 0 rgba(67,231,255,.55)}70%{box-shadow:0 0 0 14px rgba(67,231,255,0)}100%{box-shadow:0 0 0 0 rgba(67,231,255,0)}}
.hero .eyebrow{position:relative;padding-left:22px}.hero .eyebrow::before{content:"";position:absolute;left:0;top:50%;width:12px;height:2px;background:var(--dm-cyan-500);box-shadow:0 0 8px var(--dm-cyan-500);transform:translateY(-50%);animation:blinkbar 2.4s ease-in-out infinite}
@keyframes blinkbar{0%,100%{opacity:.4;width:12px}50%{opacity:1;width:18px}}
.hero .resp{box-shadow:inset 3px 0 0 var(--dm-lime-500),0 0 0 rgba(200,255,61,0);animation:respglow 4s ease-in-out infinite}
@keyframes respglow{50%{box-shadow:inset 3px 0 0 var(--dm-lime-500),0 0 18px rgba(200,255,61,.25)}}
.fx .spark{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 8px 2px rgba(67,231,255,.8);opacity:0;animation:rise 7s linear infinite}
.fx .spark:nth-child(even){box-shadow:0 0 8px 2px rgba(200,255,61,.8)}
@keyframes rise{0%{transform:translateY(0) scale(.6);opacity:0}10%{opacity:.9}60%{opacity:.7}100%{transform:translateY(-90vh) scale(1.1);opacity:0}}
.hero .fg .mglow{position:absolute;border-radius:50%;filter:blur(34px);mix-blend-mode:screen;pointer-events:none;z-index:0}
.hero .fg .mglow.lime{left:16%;top:34%;width:26%;height:30%;background:var(--dm-lime-500);opacity:.28;animation:breathe 6s ease-in-out infinite}
.hero .fg .mglow.violet{left:62%;top:36%;width:26%;height:30%;background:var(--dm-violet-500);opacity:.3;animation:breathe 6s ease-in-out 3s infinite}
.hero .fg .dot.d2{animation-delay:-3s;opacity:.55}
.hero .fg .arrive{fill:#fff;opacity:0;filter:drop-shadow(0 0 10px #B685FF) drop-shadow(0 0 22px #B685FF);transform-box:fill-box;transform-origin:center;animation:arrive 6s linear infinite}
@keyframes arrive{0%,84%,97%,100%{opacity:0;transform:scale(.5)}89%{opacity:.95;transform:scale(1.25)}}
.hero .fg .depart{fill:#fff;opacity:0;filter:drop-shadow(0 0 8px #C8FF3D) drop-shadow(0 0 18px #C8FF3D);transform-box:fill-box;transform-origin:center;animation:depart 6s linear infinite}
@keyframes depart{0%{opacity:.9;transform:scale(1.2)}6%{opacity:0;transform:scale(.5)}100%{opacity:0}}
html[data-motion="paused"] .hero *,html[data-motion="reduced"] .hero *{animation-play-state:paused!important}
/* site-wide neon details */
.btn-p{transition:transform .15s,filter .15s,box-shadow .25s}.btn-p:hover{box-shadow:0 0 0 2px rgba(67,231,255,.35),0 0 24px rgba(67,231,255,.45)}
[data-surface="lime"] .btn-p:hover,[data-surface="violet"] .btn-p:hover,[data-surface="cyan"] .btn-p:hover,.block .btn:hover{box-shadow:0 0 0 2px rgba(11,17,32,.2),0 0 24px rgba(11,17,32,.35)}
.btn-ghost{transition:transform .15s,box-shadow .25s,background .15s}.btn-ghost:hover{box-shadow:0 0 18px rgba(67,231,255,.35)}
.kind{position:relative;transition:box-shadow .25s,color .25s}.case:hover .kind,.wcase:hover .kind,.prod:hover .kind,.tool:hover .kind{box-shadow:0 0 12px currentColor;filter:brightness(1.1)}
.block{transition:transform .3s,box-shadow .3s}.block:hover{transform:translateY(-4px);box-shadow:0 0 0 1px var(--s-line),0 30px 60px -30px rgba(11,17,32,.6),0 0 40px -10px currentColor}
.case,.n-card,.s-row{transition:transform .3s}.case:hover,.n-card:hover{transform:translateY(-3px)}
.ev{transition:box-shadow .3s,transform .3s}.ev:hover,.ev:focus-visible{box-shadow:0 0 0 1.5px rgba(67,231,255,.7),0 0 30px -4px rgba(67,231,255,.6),0 20px 50px -30px rgba(0,0,0,.6)}
.ev::before{content:"";position:absolute;left:0;right:0;top:-30%;height:30%;background:linear-gradient(180deg,transparent,rgba(67,231,255,.22),transparent);opacity:0;z-index:1;pointer-events:none}
.ev:hover::before{animation:scanline 1.2s ease-out}
@keyframes scanline{0%{top:-30%;opacity:1}100%{top:110%;opacity:0}}
.n-card .thumb,.s-img img{transition:transform .5s,filter .5s}.n-card:hover .thumb{transform:scale(1.03)}
a.tool:hover,.plist a:hover{box-shadow:0 0 22px -4px rgba(67,231,255,.5)}
.logos li{transition:transform .25s,box-shadow .25s}.logos li:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--dm-cyan-500),0 0 20px -4px rgba(67,231,255,.6)}
.stack li{transition:transform .25s,box-shadow .25s}.stack li:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--dm-lime-500),0 0 18px -4px rgba(200,255,61,.6)}
/* stage line: light runs 01→05 */
.sline li{position:relative;overflow:hidden}.sline li::after{content:"";position:absolute;left:0;top:-3px;height:3px;width:40%;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:0;animation:srun 7.5s linear infinite;animation-delay:calc(var(--i,0)*1.5s)}
.sline li:nth-child(1){--i:0}.sline li:nth-child(2){--i:1}.sline li:nth-child(3){--i:2}.sline li:nth-child(4){--i:3}.sline li:nth-child(5){--i:4}
@keyframes srun{0%{left:-40%;opacity:0}2%{opacity:1}18%{opacity:1}20%{left:100%;opacity:0}100%{left:100%;opacity:0}}
/* timeline (method page): marker glow travels */
.stage::after{animation:markglow 7.5s ease-in-out infinite;animation-delay:calc(var(--i,0)*1.5s)}
.stage:nth-child(1){--i:0}.stage:nth-child(2){--i:1}.stage:nth-child(3){--i:2}.stage:nth-child(4){--i:3}.stage:nth-child(5){--i:4}
@keyframes markglow{0%,20%,100%{box-shadow:0 0 0 2px var(--s-acc)}8%{box-shadow:0 0 0 2px var(--s-acc),0 0 18px 4px var(--s-acc)}}
/* eyebrow pulse dot on section eyebrows */
section .eyebrow:not(.hero .eyebrow)::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-left:10px;vertical-align:middle;animation:dotpulse 2.6s ease-in-out infinite;box-shadow:0 0 8px currentColor}
@keyframes dotpulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
/* contact lime: drifting glow + mail underline shimmer */
.contact{position:relative;overflow:hidden}.contact::before{content:"";position:absolute;width:40%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55),transparent 65%);left:55%;top:-20%;filter:blur(30px);animation:driftglow 14s ease-in-out infinite alternate;pointer-events:none}
@keyframes driftglow{to{left:70%;top:30%}}
.contact .mail{position:relative;border-bottom-color:transparent}.contact .mail::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:linear-gradient(90deg,var(--dm-ink) 0 40%,var(--dm-cyan-700) 50%,var(--dm-ink) 60% 100%);background-size:250% 100%;animation:shimmer 4s linear infinite}
@keyframes shimmer{from{background-position:100% 0}to{background-position:0 0}}
/* footer signature */
footer.site .sig{animation:neon 6s ease-in-out infinite}
/* scroll reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
html[data-motion="reduced"] .rv{opacity:1;transform:none;transition:none}
html[data-motion="paused"] *:not(.pause){animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ===== v3 About ===== */
.about-hero{overflow:hidden}
.about-hero .beam{position:absolute;left:-30%;top:-20%;width:40%;height:140%;background:linear-gradient(90deg,transparent,rgba(67,231,255,.07) 45%,rgba(200,255,61,.08) 50%,rgba(182,133,255,.07) 55%,transparent);transform:skewX(-14deg);animation:beam 16s ease-in-out infinite}
@keyframes beam{0%{left:-40%}50%{left:110%}100%{left:-40%}}
.yearline{list-style:none;margin:56px 0 18px;padding:34px 0 0;display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:6px;position:relative}
.yearline::before{content:"";position:absolute;left:0;right:0;top:calc(34px + 22px + 7px);height:2px;background:linear-gradient(90deg,var(--dm-violet-500),var(--dm-cyan-500),var(--dm-lime-500));opacity:.5}
.yearline::after{content:"";position:absolute;left:0;top:calc(34px + 22px + 6px);width:14%;height:4px;border-radius:4px;background:linear-gradient(90deg,transparent,#fff,transparent);filter:blur(1px);animation:yrun 10s linear infinite}
@keyframes yrun{from{left:-14%;opacity:0}5%{opacity:1}95%{opacity:1}to{left:100%;opacity:0}}
.yearline li{display:grid;justify-items:center;gap:6px;text-align:center;position:relative}
.yearline .yr{font:600 12px var(--dm-font-heading);color:var(--dm-muted);height:22px}
.yearline .node{all:unset;cursor:pointer;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;position:relative}
.yearline .node:focus-visible{outline:3px solid var(--dm-cyan-500);outline-offset:2px}
.yearline i{display:block;width:16px;height:16px;border-radius:50%;background:var(--dm-ink);border:2px solid var(--dm-cyan-500);box-sizing:border-box;position:relative;animation:ylight 10s linear infinite;animation-delay:calc(var(--i)*0.72s);transition:transform .2s}
.yearline .node:hover i,.yearline .node:focus-visible i{transform:scale(1.35);box-shadow:0 0 18px rgba(67,231,255,.9)}
.yearline li.now i{border-color:var(--dm-lime-500);background:var(--dm-lime-500)}
.yearline .node::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);width:260px;background:var(--dm-ink-soft);color:var(--dm-paper);border:1px solid rgba(67,231,255,.4);border-radius:10px;padding:10px 12px;font:400 12.5px/1.45 var(--dm-font-body);text-align:left;box-shadow:0 20px 50px -20px rgba(0,0,0,.8),0 0 24px -8px rgba(67,231,255,.6);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:5;white-space:normal}
.yearline .node:hover::after,.yearline .node:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}
.yearline li:nth-child(-n+2) .node::after{left:0;transform:translateX(0) translateY(6px)}.yearline li:nth-child(-n+2) .node:hover::after,.yearline li:nth-child(-n+2) .node:focus-visible::after{transform:translateX(0)}
.yearline li:nth-last-child(-n+2) .node::after{left:auto;right:0;transform:translateX(0) translateY(6px)}.yearline li:nth-last-child(-n+2) .node:hover::after,.yearline li:nth-last-child(-n+2) .node:focus-visible::after{transform:translateX(0)}
@keyframes ylight{0%,4%,12%,100%{box-shadow:0 0 0 0 rgba(67,231,255,0);transform:scale(1)}7%{box-shadow:0 0 0 6px rgba(67,231,255,.25),0 0 18px rgba(67,231,255,.9);transform:scale(1.25)}}
.yearline .nm{font-size:11px;line-height:1.25;color:var(--dm-paper);max-width:96px;text-wrap:balance;opacity:.85}
.yearline li.now .nm{color:var(--dm-lime-500);font-weight:600;opacity:1}
@media (max-width:1100px){.yearline{grid-template-columns:repeat(7,minmax(0,1fr));row-gap:28px}.yearline::before,.yearline::after{display:none}}
@media (max-width:560px){.yearline{grid-template-columns:repeat(4,minmax(0,1fr))}}
.about-del .fx .t1{left:-20%;top:18%;width:24%;color:var(--dm-cyan-500);animation:travel 11s linear infinite}
.about-del .fx .t2{left:-20%;bottom:16%;width:18%;color:var(--dm-lime-500);animation:travel 14s linear 4s infinite}
.founder .pic{position:relative;display:block;width:140px;height:140px}
.founder .pic img{display:block;animation:limebreathe 6s ease-in-out infinite}
@keyframes limebreathe{0%,100%{box-shadow:0 0 0 0 rgba(200,255,61,0)}50%{box-shadow:0 0 0 10px rgba(200,255,61,.18),0 0 40px rgba(200,255,61,.35)}}
.founder .pic svg{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);overflow:visible;pointer-events:none}
.founder .pic circle{fill:none;stroke:var(--dm-cyan-700);stroke-width:1.5;stroke-dasharray:4 8;vector-effect:non-scaling-stroke;animation:orbit 9s linear infinite;opacity:.8}

/* ===== v3 Products & Method details ===== */
.prod-list{position:relative;overflow:hidden}
.prod-list .fx .t1{left:-20%;top:12px;width:22%;color:var(--dm-cyan-500);animation:travel 12s linear infinite;opacity:.6}
.prod-list .fx .t2{left:-20%;bottom:14px;width:16%;color:var(--dm-violet-300);animation:travel 15s linear 5s infinite;opacity:.5}
.kind.live{display:inline-flex;align-items:center;gap:8px}.kind.live i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:livedot 2.2s ease-out infinite}
@keyframes livedot{0%{box-shadow:0 0 0 0 rgba(212,188,255,.6)}70%{box-shadow:0 0 0 7px rgba(212,188,255,0)}100%{box-shadow:0 0 0 0 rgba(212,188,255,0)}}
.prod dl div,.prod dt,.prod dd{position:relative}
.prod dt::before{content:"";position:absolute;left:-14px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--dm-cyan-500);opacity:0;box-shadow:0 0 8px var(--dm-cyan-500);animation:rowblink 6s ease-in-out infinite}
.prod dt:nth-of-type(2)::before{animation-delay:2s}.prod dt:nth-of-type(3)::before{animation-delay:4s}
@keyframes rowblink{0%,100%{opacity:0}10%,25%{opacity:1}35%{opacity:0}}
.prod dl{padding-left:14px}
.frame-glow{position:relative}.frame-glow::before{content:"";position:absolute;inset:-6px;border-radius:16px;background:conic-gradient(from var(--a,0deg),transparent 0 70%,rgba(67,231,255,.0) 75%,rgba(67,231,255,.7) 88%,rgba(200,255,61,.8) 94%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;padding:2px;animation:spinframe 7s linear infinite;animation-delay:calc(var(--i,0)*-3.5s);pointer-events:none;opacity:.9}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes spinframe{to{--a:360deg}}
.frame-glow .ev{box-shadow:0 0 50px -20px rgba(67,231,255,.45),0 20px 50px -30px rgba(0,0,0,.6)}
/* method */
.syscard .sysbeam{position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--dm-cyan-500),var(--dm-lime-500),var(--dm-violet-500));background-size:100% 300%;animation:beamshift 6s ease-in-out infinite alternate}
@keyframes beamshift{to{background-position:0 100%}}
.syscard::after{content:"";position:absolute;right:-20%;top:-40%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(67,231,255,.18),transparent 65%);filter:blur(10px);animation:breathe 6s ease-in-out infinite;pointer-events:none}
.livedot{width:10px;height:10px;border-radius:50%;background:var(--dm-lime-500);box-shadow:0 0 0 0 rgba(200,255,61,.6);animation:livedot2 2.4s ease-out infinite;flex:none}
@keyframes livedot2{0%{box-shadow:0 0 0 0 rgba(200,255,61,.6)}70%{box-shadow:0 0 0 9px rgba(200,255,61,0)}100%{box-shadow:0 0 0 0 rgba(200,255,61,0)}}
.mrow{position:relative;padding-top:28px}.mrow::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--s-line)}
.mrow::after{content:"";position:absolute;left:0;top:0;height:2px;width:18%;background:linear-gradient(90deg,transparent,var(--dm-cyan-700),var(--dm-lime-700),transparent);animation:rulerun 8s ease-in-out infinite}
.mrow:nth-of-type(3)::after{animation-delay:4s}
@keyframes rulerun{0%{left:-18%;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:100%;opacity:0}}
.hero-m .stages-wrap .stage h3{transition:color .3s}
.hero-m .stages-wrap .stage::after{animation:markglow 7.5s ease-in-out infinite;animation-delay:calc(var(--i,0)*1.5s)}
.hero-m .stages-wrap .stage.human h3::after{animation:tagglow 7.5s ease-in-out infinite;animation-delay:calc(var(--i,0)*1.5s)}
@keyframes tagglow{0%,20%,100%{text-shadow:none}8%{text-shadow:0 0 12px var(--dm-lime-500)}}

/* ===== v3 interactive artwork ===== */
.hero{--px:0;--py:0}
.hero .fg{cursor:pointer}
.hero .fg .par{display:block;position:relative;translate:calc(var(--px)*14px) calc(var(--py)*9px);transition:translate .25s ease-out}
.hero .fx .glow{translate:calc(var(--px)*-22px) calc(var(--py)*-14px);transition:translate .4s ease-out}
.hero .fx .gridfx,.hero .fx .paths{translate:calc(var(--px)*-8px) calc(var(--py)*-5px);transition:translate .5s ease-out}
.hero .fg .dot.zap{opacity:0;stroke-width:10;filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 18px #43E7FF);animation:none}
.hero .fg.fire .dot.zap{opacity:1;animation:zap 1.6s cubic-bezier(.3,0,.2,1) 1}
@keyframes zap{from{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-100;opacity:1}}
.hero .fg.fire .arrive{animation:arrivefast 1.6s linear 1}
@keyframes arrivefast{0%,80%{opacity:0;transform:scale(.5)}88%{opacity:1;transform:scale(1.4)}100%{opacity:0;transform:scale(.6)}}
.hero-m .fg{cursor:crosshair;pointer-events:auto;--sx:.5}
.hero-m .fg.hold .scan{animation:none;background-position:calc((1 - var(--sx)) * 100%) 0;transition:background-position .08s linear}
.hero-m .fg.hold .ring ellipse{animation-duration:2.5s;opacity:1;stroke-width:2}
.frame-glow .ev{--rx:0deg;--ry:0deg;transform:perspective(900px) rotateX(var(--ry)) rotateY(var(--rx));transition:transform .2s ease-out,box-shadow .3s;transform-style:preserve-3d;will-change:transform}
.frame-glow .ev.tilting{transition:transform .05s linear,box-shadow .3s}
html[data-motion="reduced"] .hero .fg .par,html[data-motion="reduced"] .hero .fx .glow,html[data-motion="reduced"] .hero .fx .gridfx,html[data-motion="reduced"] .hero .fx .paths{translate:0 0}

/* v3 interactivity: make it perceptible */
.hero-m .wrap{pointer-events:none}.hero-m .panel,.hero-m .stages-wrap{pointer-events:auto}
.hero-m .fg{--sy:.5}
.hero-m .fg.hold .scan{background-image:linear-gradient(90deg,transparent 0 45.5%,rgba(67,231,255,.7) 48.8%,#fff 50%,rgba(200,255,61,.7) 51.2%,transparent 54.5% 100%);background-size:300% 100%;background-position:calc((1 - var(--sx)) * 100%) 0;opacity:1}
.hero-m .fg .lens{position:absolute;left:calc(var(--sx)*100%);top:calc(var(--sy)*100%);width:22%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;background:radial-gradient(circle,rgba(255,255,255,.35),rgba(67,231,255,.25) 35%,transparent 70%);mix-blend-mode:screen;opacity:0;transition:opacity .25s;pointer-events:none;z-index:4}
.hero-m .fg.hold .lens{opacity:1}
.hero-m .fg.hold img{filter:drop-shadow(0 40px 60px rgba(0,0,0,.55)) brightness(1.08)}
.frame-glow .ev{--mx:50%;--my:50%}
.frame-glow .ev::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.22),rgba(67,231,255,.12) 30%,transparent 55%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:2;border-radius:12px}
.frame-glow .ev.tilting::after{opacity:1}
.frame-glow .ev.tilting{box-shadow:0 0 0 1.5px rgba(67,231,255,.8),0 0 40px -6px rgba(67,231,255,.7),0 30px 60px -30px rgba(0,0,0,.7)}

/* v3 affordances: hint chips + hotspots */
.hint{position:absolute;z-index:6;left:50%;bottom:6%;translate:-50% 0;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(11,17,32,.78);color:var(--dm-paper);border:1px solid rgba(67,231,255,.45);font:600 12.5px var(--dm-font-body);letter-spacing:.02em;white-space:nowrap;backdrop-filter:blur(8px);box-shadow:0 10px 30px -10px rgba(0,0,0,.7),0 0 20px -6px rgba(67,231,255,.5);opacity:0;transition:opacity .4s,translate .4s;pointer-events:none}
.hint i{width:8px;height:8px;border-radius:50%;background:var(--dm-cyan-500);box-shadow:0 0 10px var(--dm-cyan-500);animation:dotpulse 1.8s ease-in-out infinite}
.live .hint,.hero-m .hint{opacity:1}
.fg.used .hint{opacity:0;translate:-50% 6px}
.hero-m .fg .hint{left:46%;bottom:12%}
.hero .fg .hot .hr{fill:none;stroke:var(--dm-cyan-500);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:hotring 2.4s ease-out infinite}
.hero .fg .hot .hc{fill:#fff;filter:drop-shadow(0 0 8px #43E7FF);animation:dotpulse 2.4s ease-in-out infinite}
@keyframes hotring{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.4);opacity:0}}
.fg.used .hot{opacity:.35}
.hero-m .fg .hot2{position:absolute;left:56%;top:36%;width:28px;height:28px;translate:-50% -50%;z-index:5;pointer-events:none}
.hero-m .fg .hot2::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--dm-lime-500);animation:hotring 2.4s ease-out infinite}
.hero-m .fg .hot2 i{position:absolute;left:50%;top:50%;width:8px;height:8px;translate:-50% -50%;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--dm-lime-500);animation:dotpulse 2.4s ease-in-out infinite}
.hero-m .fg.used .hot2{opacity:.35}
.hero-m .fg:focus-visible{outline:3px solid var(--dm-cyan-500);outline-offset:4px}
.hero-m .fg .okflash{position:absolute;left:56%;top:22%;translate:-50% 0;z-index:6;background:var(--dm-lime-500);color:var(--dm-ink);font:600 13px var(--dm-font-heading);padding:8px 14px;border-radius:999px;box-shadow:0 0 30px rgba(200,255,61,.7);opacity:0;pointer-events:none}
.hero-m .fg.check .okflash{animation:okpop 1.6s cubic-bezier(.2,.8,.2,1) 1}
@keyframes okpop{0%{opacity:0;translate:-50% 10px;scale:.8}15%{opacity:1;translate:-50% 0;scale:1.05}70%{opacity:1;translate:-50% -6px}100%{opacity:0;translate:-50% -16px}}
.hero-m .fg.check .ring ellipse{stroke:var(--dm-lime-500);stroke-dasharray:100 0;stroke-width:3;filter:drop-shadow(0 0 10px #C8FF3D);animation:ringfill 1.6s ease-out 1}
@keyframes ringfill{0%{stroke-dashoffset:100;opacity:1}60%{stroke-dashoffset:0;opacity:1}100%{opacity:.75}}
.hero-m .fg.check .station{opacity:.7;animation:none;transition:opacity .2s}
@media (pointer:coarse){.hint{opacity:0!important}}


.lang{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border-radius:6px;border:1px solid rgba(245,248,253,.22);background:transparent;color:inherit;font:600 12.5px var(--dm-font-body);letter-spacing:.08em;cursor:pointer;opacity:.85}
.lang-btn:hover,.lang.open .lang-btn{opacity:1;border-color:rgba(67,231,255,.6)}
.lang-btn svg{width:10px;height:6px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .2s}.lang.open .lang-btn svg{transform:rotate(180deg)}
.lang-list{position:absolute;right:0;top:calc(100% + 6px);min-width:150px;margin:0;padding:6px;list-style:none;background:var(--dm-ink-soft);border:1px solid rgba(245,248,253,.14);border-radius:10px;box-shadow:0 24px 50px -20px rgba(0,0,0,.7);display:none;z-index:70}
.lang.open .lang-list{display:block}
footer.site .lang-list{top:auto;bottom:calc(100% + 6px);right:auto;left:0}
.lang-list a{display:block;padding:9px 12px;border-radius:7px;color:var(--dm-paper);text-decoration:none;font-weight:600;font-size:14px}
.lang-list a:hover{background:rgba(245,248,253,.08)}
.lang-list [aria-selected="true"] a{color:var(--dm-lime-500)}
.lang-list [aria-selected="true"] a::after{content:"✓";float:right;opacity:.8}
header.site .lang{margin-left:10px}
@media (max-width:1180px){header.site .lang{margin-left:auto}}

/* wide screens: keep proportions instead of stranding a narrow column */
@media (min-width:1500px){.wrap{max-width:1400px}.hero .wrap{max-width:1520px}}
@media (min-width:1800px){body{zoom:1.1}}
@media (min-width:2200px){body{zoom:1.22}}
@media (min-width:2800px){body{zoom:1.4}}
/* small screens: tighten hero */
@media (max-width:600px){.hero h1{font-size:clamp(40px,13vw,56px)}.hero .fg{width:100%;--art:1}.hero .hint{display:none}.band .wrap{gap:10px}.strip .wrap{gap:14px}header.site .logo img{width:160px;height:40px}header.site .social{display:none}}

/* ===== fixes from the mobile walk ===== */
footer.site .lang-list{display:none;grid-template-columns:1fr}footer.site .lang.open .lang-list{display:block}
footer.site .bottom .legal{display:flex;gap:18px;align-items:center;white-space:nowrap}
.linkbtn{background:none;border:0;padding:0;color:var(--dm-paper);font:600 14px var(--dm-font-body);cursor:pointer;text-decoration:none}.linkbtn:hover{color:var(--dm-cyan-500)}
.feature .links a{white-space:nowrap}
.loc-grid h2{margin-bottom:10px;line-height:1.08}
@media (max-width:600px){.logos li{min-height:72px;padding:12px 14px}.logos img{max-height:36px}.btn{padding:0 18px}.head{gap:16px}.head .btn{align-self:flex-start}.n-cards{gap:28px}.feature{gap:20px}.hero .lead{max-width:none}.hero-m .panel{padding:22px}.legend{gap:8px 14px}.yearline .nm{max-width:none}}
/* cookie notice */
.cookie{position:fixed;inset:0;z-index:120;display:none;align-items:flex-end;justify-content:center;padding:16px;background:rgba(11,17,32,.35);backdrop-filter:blur(2px)}
.cookie.open{display:flex}
.ck-card{width:min(100%,560px);background:var(--dm-ink-soft);color:var(--dm-paper);border:1px solid rgba(245,248,253,.16);border-radius:16px;padding:24px 24px 20px;box-shadow:0 30px 80px -30px rgba(0,0,0,.8),0 0 40px -16px rgba(67,231,255,.5);display:grid;gap:14px;--s-btn:var(--dm-cyan-500);--s-btn-fg:var(--dm-ink);--s-ghost:rgba(245,248,253,.1);--s-link:var(--dm-cyan-500)}
.ck-card h2{font-size:20px}.ck-card p{font-size:14.5px;color:var(--dm-muted)}
.ck-opt{display:flex;align-items:flex-start;gap:10px;font-size:14px;cursor:pointer}.ck-opt input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--dm-lime-500);flex:none}
.ck-acts{display:flex;flex-wrap:wrap;gap:10px}.ck-acts .btn{min-height:44px;font-size:15px}
.ck-card a{font-size:14px;color:var(--dm-cyan-500)}
@media (min-width:700px){.cookie{align-items:flex-end;justify-content:flex-start;padding:24px}}
/* legal doc */
.legal-doc .body h2{margin:36px 0 10px}.legal-doc .body ul{padding-left:20px;margin:0 0 1.25em;font-size:17px;line-height:1.65;color:var(--s-muted)}.legal-doc .body li{margin-bottom:8px}

[hidden]{display:none!important}
/* near-invisible image credit */
.loc-credit{position:absolute;right:10px;bottom:6px;z-index:2;font-size:10px;line-height:1.3;color:rgba(245,248,253,.38);text-align:right;max-width:70%;letter-spacing:.01em}
.loc-credit a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(245,248,253,.25)}
.loc-credit:hover,.loc-credit:focus-within{color:rgba(245,248,253,.8)}

/* ===== best-practice pass (15 Oct) ===== */
/* 1 hit areas (visual size unchanged) */
.block .more{position:relative;padding:10px 4px;margin:-10px -4px}
.lang-btn{min-height:44px}
.social a{position:relative}.social a::after{content:"";position:absolute;inset:-3px}
footer.site ul a,.feature .links a,.lang-list a{position:relative;display:inline-block;padding:6px 0;margin:-6px 0}
.pause{width:44px;height:44px}
/* 2 minimum 13px */
.kind,.t,.chip,.yearline .yr,.yearline .nm,.partner small,.stage.human h3::after,.stack li small,.lang-btn,.legend span{font-size:13px}
.stage.human h3::after{font:600 13px var(--dm-font-body);letter-spacing:.08em;text-transform:uppercase;display:block;margin-top:6px;color:var(--s-acc)}
.yearline .nm{max-width:110px}
/* 6 contrast: muted on dark one step lighter */
[data-surface="midnight"],[data-surface="deep"],[data-surface="violet-deep"],.card,.ck-card,.tool.card{--s-muted:#C9D4E4;--s-card-muted:#C9D4E4}
[data-surface="violet-deep"]{--s-muted:#DCCBFF}
.ck-card p{color:#C9D4E4}
/* 5 cookie: non-modal bottom banner, no backdrop */
.cookie{inset:auto 0 0 0;background:transparent;backdrop-filter:none;pointer-events:none;padding:12px}
.ck-card{pointer-events:auto;width:min(100%,720px);margin:0 auto;grid-template-columns:1fr auto;align-items:center;gap:8px 24px;padding:18px 22px}
.ck-card h2{font-size:17px}.ck-card p{font-size:14px;margin:0}.ck-card .ck-opt{grid-column:1;font-size:13px}.ck-card .ck-acts{grid-column:2;grid-row:1/4;flex-direction:column;align-items:stretch}.ck-card a{grid-column:1}
@media (max-width:700px){.ck-card{grid-template-columns:1fr}.ck-card .ck-acts{grid-column:1;grid-row:auto;flex-direction:row}}
@media (min-width:700px){.cookie{justify-content:center;padding:16px}}
/* 8 header: solid on phones, blur only on wide screens */
header.site{backdrop-filter:none;background:rgba(11,17,32,.94)}
@media (min-width:901px){header.site{backdrop-filter:blur(14px);background:rgba(11,17,32,.82)}}
/* 7 pause scene fx when offscreen */
.scene-m:not(.live) .fx *,.hero-m:not(.live) .fx *,.hero-m:not(.live) .beam,.about-hero:not(.live) .beam,.about-hero:not(.live) .yearline::after,.about-hero:not(.live) .yearline i{animation-play-state:paused}
/* 11 recurring inline styles → classes */
.eyebrow+.h2,.eyebrow+.h1{margin-top:14px}.h2.narrow{max-width:12ch}.h2.mid{max-width:18ch}
/* 16 pause tooltip */
.pause::after{content:attr(aria-label);position:absolute;right:calc(100% + 10px);top:50%;translate:0 -50%;white-space:nowrap;background:var(--dm-ink-soft);color:var(--dm-paper);font:600 12px var(--dm-font-body);padding:6px 10px;border-radius:6px;border:1px solid rgba(245,248,253,.16);opacity:0;pointer-events:none;transition:opacity .2s}
.pause:hover::after,.pause:focus-visible::after,.pause.tip::after{opacity:1}
/* 18 data failure */
.loadfail{padding:80px 24px;text-align:center;color:var(--dm-paper);font:16px var(--dm-font-body)}.loadfail a{color:var(--dm-cyan-500)}
.pause{display:none!important}
.ev .tag{white-space:nowrap}
.stage-line small,.stage-line .n{font-size:13px}
footer.site .bottom .legal a,footer.site .bottom .linkbtn{display:inline-block;padding:12px 0;margin:-12px 0}
.head>div>h2+p{margin-top:8px}

/* ===== mobile hero: artwork as a cinematic close-up, connector centred, modules cropped by the edges ===== */
@media (max-width:600px){
.hero .wrap{gap:0;padding-bottom:clamp(28px,6vw,40px)}
.hero .copy{display:contents}
.hero .copy>.eyebrow{order:1}.hero .copy>h1{order:2}.hero .copy>.lead{order:3}.hero .fg{order:4}.hero .copy>.acts{order:5;margin-top:4px}
.hero .fg{width:84%;max-width:none;margin:12px auto 12px;justify-self:center;--art:1;scale:1;animation:none;transform-origin:50% 100%}
/* mobile hero — approved 15 Oct (part 1) */
.hero .lead{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:0 1px 12px rgba(11,17,32,.8);padding:0;margin:18px 0 0;max-width:none}
.hero .copy>.acts{margin-top:12px;gap:14px;justify-items:stretch}
.hero .ctas{display:grid;grid-template-columns:1fr;gap:10px}
.hero .ctas .btn{justify-content:center;width:100%}
.hero .resp{background:transparent;padding:0 0 0 14px;border-radius:0;border-left:0;box-shadow:inset 3px 0 0 var(--dm-lime-500);animation:none;display:block;font-size:15px}
.hero{background-position:center 36%}
.hero .fx .g1,.hero .fx .g2,.hero .fx .g3{bottom:auto;top:50%;filter:blur(28px)}
.hero .fx .horizon{top:60%}
.hero .fg{margin-bottom:28px}
.hero .fg::after{content:"";position:absolute;left:4%;right:4%;bottom:-8%;height:34%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(67,231,255,.9),rgba(200,255,61,.45) 42%,transparent 70%);filter:blur(18px);mix-blend-mode:screen;z-index:0;pointer-events:none}
.hero .fg .par{position:relative;z-index:1}
}
/* mobile hero — approved 15 Oct (part 2) */
@media (max-width:600px){
.hero .fg{width:104%;margin:8px -2% -6% -2%;justify-self:stretch;position:relative;z-index:2}
.hero .copy>.acts{position:relative;z-index:3;margin-top:0;padding-top:14px}
.hero .ctas{grid-template-columns:1fr;gap:8px;justify-items:stretch}
.hero .ctas .btn-p{width:100%;justify-content:center}
.hero .ctas .btn-ghost{width:100%;justify-content:center;background:rgba(11,17,32,.82);border:1.5px solid var(--dm-cyan-500);padding:0 18px;min-height:48px;color:var(--dm-cyan-500);text-decoration:none;font-size:16px;white-space:nowrap;display:inline-flex;gap:8px}
.hero .ctas .btn-ghost::after{content:none}
.hero .resp{margin:6px 0 0;padding:10px 12px;max-width:none;line-height:1.35;background:rgba(11,17,32,.82);border-radius:6px;box-shadow:inset 3px 0 0 var(--dm-lime-500);color:var(--dm-lime-500)}
.hero .resp{margin:4px 0 0;padding-left:12px;max-width:34ch;line-height:1.35}
.hero .eyebrow{font-size:12px;letter-spacing:.12em}
.hero h1{font-size:clamp(38px,12vw,52px)}
.hero{background-position:center 44%}
}
/* end mobile hero */
/* mobile hero — approved 16 Oct: headline 3 lines, object under "next." at right */
@media (max-width:600px){
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) 54%;column-gap:8px;align-items:start}
.hero .copy{display:contents}
.hero .copy>h1{order:1;grid-column:1/-1;font-size:clamp(36px,11vw,48px);margin-top:4px;line-height:1}
.hero .copy>h1 .mbr{display:block;height:0}
.hero .fg{order:2;grid-column:1/-1;width:62%;max-width:none;margin:-54px 0 8px auto;justify-self:end;align-self:start;--art:1;scale:1;position:relative;z-index:2}
.hero .copy>.eyebrow{order:3;grid-column:1/-1;margin-top:16px}
.hero .copy>.lead{order:4;grid-column:1/-1;margin-top:14px}
.hero .copy>.acts{order:5;grid-column:1/-1;padding-top:24px}
.hero .wrap{padding-top:40px;padding-bottom:44px}
.hero .fg .hint{display:none}
.hero{background-position:center 70%}
.hero .fx .g1,.hero .fx .g2,.hero .fx .g3{top:auto;bottom:6%}
.hero .fx .horizon{top:auto;bottom:18%}
}
/* mobile hero — approved 16 Oct: no eyebrow, lead under the object, CTA block low */
@media (max-width:600px){
.hero .copy>.eyebrow{display:none}
.hero .copy>.lead{margin-top:22px;font-size:18px}
.hero .copy>.acts{padding-top:40px;gap:16px}
.hero .wrap{padding-bottom:26px}
}
@media (max-width:600px){
.hero .fg .par{translate:0 0}
.hero .fg img{-webkit-mask-image:none;mask-image:none}
.hero .fg .pulse{overflow:visible}
}

/* ===== full-screen menu (≤1240) ===== */
/* tablet hero — approved 16 Oct (601–1240): object as backdrop, right-anchored; copy left on a soft shade */
@media (min-width:601px) and (max-width:1240px){
.hero .wrap{grid-template-columns:minmax(0,56%) minmax(0,1fr);gap:0;align-items:center;padding-top:56px;padding-bottom:48px}
.hero h1{font-size:clamp(44px,6.4vw,72px)}
.hero .fg{position:absolute;right:-18%;top:50%;translate:0 -50%;width:78%;max-width:none;margin:0;--art:1;z-index:0;opacity:.95}
.hero .copy{position:relative;z-index:2;padding:24px 24px 24px 0;border-radius:16px;background:linear-gradient(90deg,rgba(11,17,32,.78) 60%,transparent)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:10px}
.hero .ctas .btn{width:auto}
.hero .fg .hint{display:none}
}
/* ===== full-screen menu (≤1240) ===== */
.menu-btn{width:44px;height:44px;padding:0;border:0;border-radius:8px}
.menu-btn:hover{background:rgba(245,248,253,.1)}
.burger{display:grid;gap:5px;width:22px}.burger i{display:block;height:2px;background:currentColor;border-radius:2px}
.menu{position:fixed;inset:0;top:0;right:0;left:0;bottom:0;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0;background:var(--dm-ink);display:none;z-index:70;overflow:auto;flex-direction:column}
.menu.open{display:flex}
.menu-top{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:0 clamp(20px,4vw,48px)}
.menu-top .logo img{width:160px;height:40px}
.menu-close{width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:var(--dm-paper);font:400 22px var(--dm-font-body);cursor:pointer;display:grid;place-items:center}
.menu-close:hover{background:rgba(245,248,253,.1)}
.menu-nav{display:grid;gap:2px;padding:12px clamp(20px,4vw,48px) 0}
.menu-nav a{display:block;padding:10px 0;font:600 clamp(26px,7vw,34px)/1.15 var(--dm-font-heading);letter-spacing:-.02em;color:var(--dm-paper);text-decoration:none;border-radius:0}
.menu-nav a:hover{background:none;color:var(--dm-cyan-500)}
.menu-nav a[aria-current="page"]{color:var(--dm-lime-500)}
.menu-nav .cta{margin-top:18px;background:var(--dm-cyan-500);color:var(--dm-ink);font:600 20px var(--dm-font-heading);text-align:center;padding:16px 20px;border-radius:999px}
.menu-nav .cta:hover{background:var(--dm-cyan-300);color:var(--dm-ink)}
.menu-foot{margin-top:auto;padding:22px 0 36px;border-top:1px solid rgba(245,248,253,.14);margin-left:clamp(20px,4vw,48px);margin-right:clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:20px}
.menu-lang{display:flex;gap:10px;align-items:center;font:600 14px var(--dm-font-body);letter-spacing:.08em;text-transform:uppercase}
.menu-lang a{color:var(--dm-muted);text-decoration:none;padding:8px 2px;min-height:44px;display:inline-flex;align-items:center}
.menu-lang a[aria-current="true"]{color:var(--dm-paper)}.menu-lang .sep{color:rgba(245,248,253,.3)}
.menu-social{display:flex;gap:8px}
.menu-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(245,248,253,.22);color:var(--dm-paper)}
.menu-social a:hover{border-color:var(--dm-cyan-500);background:rgba(67,231,255,.1)}
.menu-social a img{width:18px;height:18px;object-fit:contain}
@media (max-width:1240px){header.site .lang,header.site .social{display:none}}
footer.site .lang{display:none}
/* ===== method fixes ===== */
.syscard{--s-card-muted:var(--dm-body);color:var(--dm-ink)}
.syscard .muted{color:var(--dm-body)}
.syscard h3{color:var(--dm-ink)}
@media (max-width:600px){
.hero-m .stages-wrap{padding-top:40px;padding-bottom:56px}
.hero-m .stages-wrap .eyebrow{margin-bottom:24px!important}
.hero-m .stages-wrap .stages{gap:0}
.hero-m .stages-wrap .stage{padding:22px 0 22px 0;border-top:1px solid rgba(212,188,255,.22)}
.hero-m .stages-wrap .stage:last-child{border-bottom:1px solid rgba(212,188,255,.22)}
.hero-m .stages-wrap .stage::before{position:static;display:block;margin-bottom:8px;padding:0}
.hero-m .stages-wrap .stage h3{font-size:20px;margin-bottom:8px}
.hero-m .stages-wrap .stage p{font-size:15px;line-height:1.55}
}


/* mobile hero — approved 16 Oct (M5): 3-line headline, iPad-style object right/bleeding, lead, stacked buttons */
@media (max-width:600px){
.hero .wrap{position:relative;padding-top:52px;padding-bottom:36px}
.hero .copy>h1{position:relative;z-index:3;margin-top:0;text-shadow:0 2px 20px rgba(11,17,32,.95),0 0 48px rgba(11,17,32,.85)}
.hero .fg{position:relative;order:2;grid-column:1/-1;right:auto;top:auto;translate:none;width:104%;max-width:none;margin:-48px -30% 24px auto;justify-self:end;--art:1;z-index:0;opacity:.92}
.hero .copy>.lead{position:relative;z-index:3;margin-top:0;max-width:none;font-size:19px;text-shadow:0 1px 14px rgba(11,17,32,.95),0 0 32px rgba(11,17,32,.8)}
.hero .copy>.acts{position:relative;z-index:3;padding-top:44px;gap:16px}
.hero .resp{margin-top:0}
.hero .wrap{padding-top:56px;padding-bottom:48px}
}
/* mobile landscape (phones on their side: <= 940 wide, <= 500 tall) — two columns, buttons in a row, compact header */
@media (max-height:500px) and (max-width:940px) and (orientation:landscape){
header.site .wrap{min-height:60px}header.site .logo img{width:150px;height:38px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:20px;align-items:center;padding-top:22px;padding-bottom:18px;position:relative}
.hero .copy{display:contents}
.hero .copy>.eyebrow{display:none}
.hero .copy>h1{grid-column:1;order:1;font-size:clamp(28px,5.4vw,38px);line-height:1;margin:0;text-shadow:0 2px 18px rgba(11,17,32,.95)}
.hero .copy>h1 .mbr{display:inline}
.hero .fg{grid-column:2;grid-row:1/3;position:relative;order:0;width:118%;max-width:none;margin:0 -18% 0 0;justify-self:end;align-self:center;translate:none;opacity:.95;--art:1;z-index:0}
.hero .copy>.lead{grid-column:1;order:2;margin-top:10px;font-size:14.5px;line-height:1.45;max-width:none;text-shadow:0 1px 12px rgba(11,17,32,.95)}
.hero .copy>.acts{grid-column:1/-1;order:3;padding-top:14px;position:relative;z-index:3}
.hero .ctas{display:flex;flex-wrap:wrap;gap:8px}
.hero .ctas .btn{width:auto;min-height:42px;padding:0 16px;font-size:14px}
.hero .resp{margin-top:4px;font-size:13px;padding:7px 10px;max-width:none;display:inline-block}
.hero .fg .hint{display:none}
.band .wrap{padding-top:18px;padding-bottom:18px}
.strip .wrap{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:16px;padding-bottom:16px}
section.pad{padding:40px 0}
.menu-nav a{font-size:22px;padding:6px 0}
.menu-top{min-height:60px}
.menu-nav .cta{margin-top:10px;padding:12px 18px;font-size:17px}
.menu-foot{padding:14px 0 18px}
}

/* hero lead — approved 16 Oct (L4): soft scene shade behind the copy column, no box on the lead (>600) */
@media (min-width:601px){
.hero .copy{position:relative}
.hero .copy::before{content:"";position:absolute;inset:-40px -80px -24px -60px;background:radial-gradient(70% 70% at 30% 50%,rgba(11,17,32,.78),rgba(11,17,32,.5) 50%,transparent 75%);z-index:-1;pointer-events:none;border-radius:50%}
.hero .lead{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;margin-left:0;text-shadow:0 1px 10px rgba(11,17,32,.9)}
}
/* desktop headline: intentional 3-line stack ("Build what’s" / "next." / "With AI."), consistent with mobile and tablet */
@media (min-width:1241px){.hero h1 .mbr{display:block;height:0}.hero h1{min-width:0}}
/* header right cluster: pulled to the page edge; language softened to a borderless text toggle */
@media (min-width:1241px){
header.site .wrap{padding-right:clamp(12px,2vw,24px)}
header.site .social{margin-left:22px;padding-left:22px;border-left:1px solid rgba(245,248,253,.14);gap:2px}
header.site .social a{width:36px;height:36px;border:0;opacity:.75}
header.site .social a:hover{opacity:1;background:rgba(245,248,253,.08)}
header.site .social img{width:15px;height:15px}
footer.site .social{gap:2px}
footer.site .social a{width:36px;height:36px;border:0;opacity:.75;border-radius:8px}
footer.site .social a:hover{opacity:1;background:rgba(245,248,253,.08)}
footer.site .social img{width:15px;height:15px}
header.site .lang{margin-left:4px}
header.site .lang-btn{border:0;background:transparent;opacity:.6;font-size:12px;letter-spacing:.08em;padding:0 6px;gap:4px}
header.site .lang-btn:hover,header.site .lang.open .lang-btn{opacity:1;background:rgba(245,248,253,.08)}
header.site .lang-btn svg{opacity:.7}
}
/* desktop hero — approved 16 Oct (D6): object large behind the copy at right; copy in a 52% column over the L4 shade (>1240) */
@media (min-width:1241px){
.hero .wrap{grid-template-columns:minmax(0,1fr);padding-top:clamp(56px,6vw,96px);padding-bottom:clamp(48px,5vw,80px);position:relative}
.hero .copy{max-width:52%;z-index:2}
.hero .fg{position:absolute;right:-6%;top:50%;translate:0 -50%;width:min(66%,1100px);--art:1;margin:0;z-index:0;opacity:.96}
.hero .copy::before{inset:-48px -120px -32px -80px;background:radial-gradient(70% 70% at 35% 50%,rgba(11,17,32,.86),rgba(11,17,32,.6) 50%,transparent 76%)}
}

/* ===== v4 cross-device review fixes (16 Oct) ===== */
/* R1 header: full nav from 1100px (iPad landscape 1180 and small laptops get the real menu) */
@media (min-width:1100px) and (max-width:1240px){header.site #primary-nav{display:flex;margin-left:auto}header.site .menu-btn{display:none}header.site .lang,header.site .social{display:flex}header.site .logo{margin-right:0}header.site nav a{font-size:13.5px;padding:10px 8px}header.site .social{margin-left:14px;padding-left:14px;border-left:1px solid rgba(245,248,253,.14)}header.site .lang{margin-left:2px}}
@media (min-width:1100px) and (max-width:1240px){.menu{display:none!important}}
/* R2 tooling heading/intro collision at 900–1240: stack them */
@media (max-width:1240px){.intro{grid-template-columns:1fr;gap:12px;align-items:start}.head{flex-direction:column;align-items:flex-start;gap:16px}}
/* R3 tooling tiles: minimum 12px, 3-up on tablet so labels don't break mid-word */
.stack li small{font-size:12px;line-height:1.3}
@media (max-width:1100px) and (min-width:601px){.stack{grid-template-columns:repeat(3,minmax(0,1fr))}.stack.sm{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
/* R4 touch targets: inline text links on touch widths get a 44px tall hit area without visual change */
@media (max-width:1024px){.tool a,.offer-d .acts a:not(.btn),.prod .acts a:not(.btn),.s-body h2 a,.block .more,.case h3 a,.feature .links a{position:relative;display:inline-block;padding:8px 0;margin:-8px 0}.foot-mail,footer.site .mail{padding:6px 0}}
/* R5 small type floor (credit line stays deliberately quiet but ≥10px) */
.ext{font-size:.85em}.loc-credit .ext{font-size:1em}
/* R6 facts strip on phones: 2-up grid rather than a 4-row list */
@media (max-width:600px){.strip .wrap{grid-template-columns:1fr 1fr;gap:16px 20px}.strip b{font-size:16px}.strip p{font-size:13.5px}}
/* R7 offers blocks on tablet portrait: 3 narrow columns were cramped; go 1-up with side-by-side text */
@media (min-width:601px) and (max-width:1024px){.blocks{grid-template-columns:1fr}.block{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px 28px;align-items:start}.block .buyer{grid-column:1/-1}.block h3{grid-column:1}.block .b{grid-column:2;grid-row:2/5}.block .btn,.block .more{grid-column:1;justify-self:start}}
/* R8 footer: 3 clean columns on tablet+, stacked and left-aligned on phones; legal row wraps cleanly */
@media (max-width:600px){footer.site .wrap{gap:28px}footer.site ul{grid-template-columns:1fr 1fr}footer.site .bottom{flex-direction:column;align-items:flex-start;gap:10px}}
/* R9 full-screen menu on tablet: two-column destinations so the list doesn't need scrolling in landscape */
@media (min-width:601px) and (max-width:1099px){.menu-nav{grid-template-columns:1fr 1fr;column-gap:32px;max-width:720px}.menu-nav .cta{grid-column:1/-1;justify-self:start;min-width:320px}.menu-nav a{font-size:clamp(24px,3.4vw,32px)}}
/* R10 phone landscape: section padding + two-up cases/stories so pages are not one long column */
@media (max-height:500px) and (max-width:940px) and (orientation:landscape){.cases,.n-cards,.arts{grid-template-columns:1fr 1fr}.blocks{grid-template-columns:1fr 1fr 1fr}.block{min-height:0}.feature,.wcase,.prod,.offer-d{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr 1fr}.stages{grid-template-columns:1fr 1fr 1fr}}
/* R11 evidence "Enlarge" tag: keep inside the image on narrow widths and give it a 44px hit zone */
.ev .tag{right:8px;bottom:8px;min-height:36px}
/* R12 sticky header height on phones: 64px instead of 76 to give content more of the viewport */
@media (max-width:600px){header.site .wrap{min-height:64px}header.site .logo img{width:150px;height:38px}}
/* R13 article page: comfortable measure and larger body on tablet+ */
@media (min-width:768px){.article .body p{font-size:19px;line-height:1.75}}
/* R14 contact location block: raise address type to 14px, keep credit 10px */
.loc-grid address,.loc-lines{font-size:14px}

/* R15 Home "Work and evidence" on phones: Tribeca stays as feature; the other three become compact rows (thumb 38% | text) */
@media (max-width:600px){
main[data-dest="home"] .cases{grid-template-columns:1fr;gap:14px;margin-top:8px}
main[data-dest="home"] .case{grid-template-columns:38% minmax(0,1fr);column-gap:14px;align-items:center}
main[data-dest="home"] .case .ev{grid-row:1/4;border-radius:8px}
main[data-dest="home"] .case .ev img{aspect-ratio:4/3}
main[data-dest="home"] .case .ev .tag{display:none}
main[data-dest="home"] .case .kind{font-size:11px;padding:3px 7px;letter-spacing:.06em}
main[data-dest="home"] .case h3{font-size:17px;line-height:1.2}
main[data-dest="home"] .case p{display:none}
main[data-dest="home"] .case p.muted:last-of-type{display:block;font-size:12.5px;line-height:1.35;margin:0}
main[data-dest="home"] .feature{margin-bottom:20px}
main[data-dest="home"] .feature .meta p:nth-child(n+3){display:none}
}
