/* HUBUTAU web — tokens + components. Mobile first. No inline styles required. */

@font-face{font-family:"IBM Plex Sans Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-sans-condensed-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-sans-condensed-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-700-normal.woff2") format("woff2")}

:root{
  --amber:#F2A93B; --ink:#0B0F13; --text:#F2F5F7; --muted:#8FA0AC; --grey:#9AA8B4;
  --panel:#1A2129; --panel2:#131A21; --line:#46525C; --ok:#3FD08A; --red:#E5484D;
  --coral:#FF5A5F; --cyan:#4CC9F0;
  --ground:#223040; /* device horizon, lower half */
  --f-label:"IBM Plex Sans Condensed",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;
  --ch:14px; --ch-lg:28px;
  --wrap:1360px; --gut:clamp(16px,4vw,48px);
  --mh:72px; --tb:32px;
  --ease:cubic-bezier(.16,1,.3,1);
  --cut:polygon(0 0,100% 0,100% calc(100% - var(--ch)),calc(100% - var(--ch)) 100%,0 100%);
  --cut4:polygon(var(--ch) 0,calc(100% - var(--ch)) 0,100% var(--ch),100% calc(100% - var(--ch)),calc(100% - var(--ch)) 100%,var(--ch) 100%,0 calc(100% - var(--ch)),0 var(--ch));
  --hex:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);
  --point:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%);
}
@media (max-width:1279.98px){:root{--mh:60px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--mh) + 16px)}
body{margin:0;background:var(--ink);color:var(--text);font:400 17px/1.6 var(--f-label);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-locked{overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:var(--amber);text-decoration:none}
a:hover{color:var(--text)}
h1,h2,h3,h4,p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--amber);color:var(--ink);padding:10px 16px;font:700 14px var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.skip:focus{top:12px;color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.mono{font-family:var(--f-mono);font-weight:700}
.sprite,body>svg:first-child{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}

/* ---------- background drift ---------- */
.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bg canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 80% at 50% 40%,transparent 40%,rgba(11,15,19,.75) 100%)}
@keyframes bg-drift{to{transform:translate3d(64px,64px,0)}}

/* ---------- type ---------- */
.label{font:700 14px/1.2 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.label--amber{color:var(--amber)}
.h-xl,.h-l,.h-m,.h-s{font-family:var(--f-label);font-weight:700;text-transform:uppercase;line-height:1.02;text-wrap:balance;hyphens:manual;overflow-wrap:break-word}
.h-xl{font-size:clamp(40px,8vw,112px);letter-spacing:.04em}
.h-l{font-size:clamp(30px,4.4vw,60px);letter-spacing:.04em}
.h-m{font-size:clamp(24px,3vw,36px);letter-spacing:.06em}
.h-s{font-size:20px;letter-spacing:.08em;line-height:1.15}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--grey);max-width:62ch;text-wrap:pretty}
.body{color:var(--grey);max-width:66ch;text-wrap:pretty}
.body p+p{margin-top:1em}

/* ---------- plates / buttons ---------- */
.plate{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 28px;font:700 15px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:color .2s}
.plate::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--amber);clip-path:var(--point);transition:transform .25s var(--ease)}
.plate:hover{color:var(--ink)}
.plate:hover::before{transform:scaleX(1.04)}
.plate--ghost{color:var(--amber)}
.plate--ghost::before{background:var(--amber)}
.plate--ghost::after{content:"";position:absolute;inset:2px;z-index:-1;background:var(--ink);clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%);transition:opacity .2s}
.plate--ghost:hover{color:var(--ink)}
.plate--ghost:hover::after{opacity:0}
.arrow{font-family:var(--f-mono)}

/* ---------- logo (device plate geometry) + mirrored readout ---------- */
.logo{display:inline-flex;align-items:center;transform-origin:left center;transition:transform .35s var(--ease)}
.logo__plate{--h:36px;display:inline-flex;align-items:center;justify-content:center;min-width:168px;height:var(--h);padding:0 calc(var(--h) * .56) 0 calc(var(--h) * .56 + .22em);background:var(--amber);color:var(--ink);font:700 calc(var(--h) * .6)/1 var(--f-label);letter-spacing:.22em;white-space:nowrap;clip-path:polygon(calc(var(--h) * .36) 0,calc(100% - var(--h) * .36) 0,100% 50%,calc(100% - var(--h) * .36) 100%,calc(var(--h) * .36) 100%,0 50%)}
.logo:hover .logo__plate{color:var(--ink)}
.logo--lg .logo__plate{--h:56px}
.mreadout,.hexbtn{--h:36px;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:168px;height:var(--h);padding:0 calc(var(--h) * .56)}
.mreadout::before,.hexbtn::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:polygon(calc(var(--h) * .36) 0,calc(100% - var(--h) * .36) 0,100% 50%,calc(100% - var(--h) * .36) 100%,calc(var(--h) * .36) 100%,0 50%);transition:background .2s}
.mreadout::after,.hexbtn::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--ink);clip-path:polygon(calc(var(--h) * .36 - 1px) 0,calc(100% - var(--h) * .36 + 1px) 0,100% 50%,calc(100% - var(--h) * .36 + 1px) 100%,calc(var(--h) * .36 - 1px) 100%,0 50%)}
.mreadout{display:none}
.mreadout__k{font:700 13px/1 var(--f-label);letter-spacing:.2em;color:var(--muted)}
.mreadout__v{font:700 16px/1 var(--f-mono);color:var(--text);font-variant-numeric:tabular-nums;transition:color .2s}
.mreadout__v.is-ok{color:var(--ok)}.mreadout__v.is-warn{color:var(--amber)}
.hexbtn{font:700 15px/1 var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--text);transition:color .2s}
.hexbtn:hover,.hexbtn[aria-expanded="true"]{color:var(--amber)}
.hexbtn:hover::before,.hexbtn[aria-expanded="true"]::before{background:var(--amber)}

/* ---------- topbar ---------- */
.topbar{position:relative;z-index:51;height:var(--tb);background:var(--panel);border-bottom:2px solid var(--line)}
.topbar__in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.topbar__line{font:700 13px/1 var(--f-label);letter-spacing:.2em;color:var(--muted);text-transform:uppercase;display:none}
.topbar__contact{display:flex!important;align-items:center;height:var(--tb);color:var(--grey)}
.topbar__contact:hover{color:var(--amber)}
.topbar__center{grid-column:2;font:700 13px/1 var(--f-mono);letter-spacing:.1em;color:var(--muted)}
.lang{grid-column:3;justify-self:end;display:flex;align-items:center;gap:0;font:700 14px/1 var(--f-label);letter-spacing:.14em}
.lang a,.lang span{display:grid;place-items:center;min-width:44px;height:var(--tb);color:var(--grey)}
.lang a:hover{color:var(--amber)}
.lang [aria-current]{color:var(--amber)}
.lang i{width:2px;height:12px;background:var(--line)}
@media (min-width:720px){.topbar__line{display:block;grid-column:1}}

/* ---------- masthead ---------- */
.masthead{position:sticky;top:0;z-index:50;height:var(--mh);background:var(--ink);border-bottom:1px solid var(--line)}
.masthead__in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.masthead__left{justify-self:start}
.masthead__right{grid-column:3;justify-self:end;display:flex}
.masthead.is-compact .logo{transform:scale(.9)}
.masthead.is-compact .mreadout{transform:scale(.9);transform-origin:right center}
@media (min-width:1280px){.masthead .mreadout{display:inline-flex}.masthead .hexbtn--menu{display:none}}

/* ---------- nav ---------- */
.nav__link{font:700 15px/1.1 var(--f-label);letter-spacing:.1em;text-transform:uppercase}
.nav__caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease)}
.nav__link[aria-expanded="true"] .nav__caret{transform:translateY(1px) rotate(-135deg)}
.nav__ind{display:none}
@media (min-width:1280px){
  .nav{position:relative;grid-column:2;height:var(--mh)}
  .nav__list{display:flex;align-items:stretch;height:100%}
  .nav__item{display:flex}
  .nav__link{display:flex;align-items:center;gap:8px;height:100%;padding:0 16px;color:var(--text);white-space:nowrap;transition:color .2s}
  .nav__link:hover,.nav__link[aria-expanded="true"],.nav__link[aria-current="page"]{color:var(--amber)}
  .nav__link:focus-visible{outline-offset:-10px}
  .nav__ind{display:block;position:absolute;left:0;bottom:-1px;width:1px;height:2px;background:var(--amber);transform-origin:0 0;opacity:0;pointer-events:none;transition:transform .38s var(--ease),opacity .2s}
  .nav__num{display:none}
}
@media (min-width:1280px) and (max-width:1439.98px){.nav__link{padding:0 12px;font-size:14px;letter-spacing:.08em}}
@media (max-width:1279.98px){
  .nav{position:fixed;left:0;right:0;top:var(--nav-top,var(--mh));bottom:0;z-index:49;background:var(--ink);color:var(--text);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:8px 0 48px;opacity:0;visibility:hidden;transform:translate3d(0,-12px,0);transition:opacity .3s,transform .4s var(--ease),visibility 0s .4s}
  .nav.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .4s var(--ease)}
  .nav__list{display:flex;flex-direction:column;padding:0 var(--gut)}
  .nav__item{border-bottom:1px solid rgba(70,82,92,.6)}
  .nav__link{display:flex;align-items:center;width:100%;min-height:60px;padding:0 4px;font-size:20px;color:var(--text);text-align:left}
  .nav__link[aria-expanded="true"],.nav__link[aria-current="page"]{color:var(--amber)}
  .nav__num{font:700 14px var(--f-mono);color:var(--muted);min-width:48px;order:-1}
  .nav__caret{margin-left:auto;margin-right:6px}
  .nav.is-open .nav__item{animation:rise .5s var(--ease) both}
  .nav.is-open .nav__item:nth-child(2){animation-delay:.04s}.nav.is-open .nav__item:nth-child(3){animation-delay:.08s}.nav.is-open .nav__item:nth-child(4){animation-delay:.12s}.nav.is-open .nav__item:nth-child(5){animation-delay:.16s}.nav.is-open .nav__item:nth-child(6){animation-delay:.2s}.nav.is-open .nav__item:nth-child(7){animation-delay:.24s}
}
@keyframes rise{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}

/* ---------- mega panel ---------- */
.mega{display:none}
.mega.is-open{display:block}
.mega__head{display:flex;flex-direction:column;gap:14px;padding:8px 4px 24px}
.mega__title{font:700 clamp(26px,2.3vw,34px)/1.05 var(--f-label);letter-spacing:.04em;overflow-wrap:break-word;hyphens:auto;text-transform:uppercase;color:var(--text)}
.mega__text{color:var(--grey);max-width:40ch}
.mega__overview{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;min-height:44px;font:700 15px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--amber)}
.mega__close{display:none}
.mega__groups{display:grid;gap:24px;padding:0 4px 24px}
.mega__group{display:flex;flex-direction:column;gap:8px;min-width:0}
.mega__glabel{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line);font:700 13px/1.2 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.mega__glabel .mono{color:var(--amber)}
.mcard{position:relative;isolation:isolate;display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 14px;align-items:start;padding:14px 16px 16px;color:var(--text);min-height:72px}
.mcard::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut);opacity:0;transition:opacity .2s,background .2s}
.mcard::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut);opacity:0;transition:opacity .2s}
.mcard:hover,.mcard:focus-visible{color:var(--text)}
.mcard:hover::before,.mcard:focus-visible::before{opacity:1;background:var(--amber)}
.mcard:hover::after,.mcard:focus-visible::after{opacity:1}
.mcard .icon{grid-row:span 2;color:var(--amber);margin-top:1px}
.mcard__title{font:700 16px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase;overflow-wrap:break-word;hyphens:auto}
.mcard__desc{font-size:15px;line-height:1.4;color:var(--grey)}
@media (max-width:1279.98px){
  .mega{padding:0 0 16px}
  .mega__head{padding-top:0}
  .mega__text{display:none}
  .mega__glabel{border-bottom:0;padding-bottom:0}
  .mcard{min-height:56px;padding:12px}
  .mcard__desc{display:none}
  .mcard .icon{grid-row:auto}
}
@media (min-width:720px) and (max-width:1279.98px){.mega__groups{grid-template-columns:1fr 1fr}}
@media (min-width:1280px){
  .mega{display:block;position:absolute;left:0;right:0;top:100%;z-index:48;background:var(--ink);border-bottom:1px solid var(--line);max-height:calc(100vh - var(--mh));overflow-y:auto;overflow-x:hidden;opacity:0;visibility:hidden;transform:translate3d(0,-10px,0);transition:opacity .25s,transform .45s var(--ease),visibility 0s .45s}
  .mega.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .45s var(--ease)}
  .mega__in{max-width:var(--wrap);margin:0 auto;padding:64px var(--gut) 48px;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:48px;position:relative}
  .mega--3 .mega__groups{grid-template-columns:minmax(0,1fr)}
  .mega--3 .mega__group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px;align-content:start}
  .mega--3 .mega__glabel{grid-column:1/-1}
  .mega__head{padding:0;gap:18px;border-right:1px solid var(--line);padding-right:40px}
  .mega__groups{grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));padding:0;gap:20px}
  .mcard{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 14px 16px}
  .mcard .icon{grid-row:auto}
  .mega--2 .mcard,.mega--3 .mcard{grid-template-columns:24px minmax(0,1fr);gap:4px 14px}
  .mega--2 .mcard .icon,.mega--3 .mcard .icon{grid-row:span 2}
  .mega--3{--cols:3}.mega--2{--cols:2}.mega--3t{--cols:3}
  .mega__close{display:inline-flex;position:absolute;top:16px;right:var(--gut);align-items:center;gap:10px;min-height:40px;padding:0 4px;font:700 13px/1 var(--f-label);letter-spacing:.16em;color:var(--grey);text-transform:uppercase}
  .mega__close:hover{color:var(--amber)}
  .mega__x{position:relative;width:14px;height:14px}
  .mega__x::before,.mega__x::after{content:"";position:absolute;left:6px;top:-2px;width:2px;height:18px;background:currentColor;transform:rotate(45deg)}
  .mega__x::after{transform:rotate(-45deg)}
  .mega.is-open .mega__group{animation:rise .5s var(--ease) both}
  .mega.is-open .mega__group:nth-child(2){animation-delay:.05s}.mega.is-open .mega__group:nth-child(3){animation-delay:.1s}.mega.is-open .mega__group:nth-child(4){animation-delay:.15s}.mega.is-open .mega__group:nth-child(5){animation-delay:.2s}
  .mega.is-open .mcard{animation:rise .45s var(--ease) both;animation-delay:inherit}
}
.scrim{position:fixed;inset:0;z-index:40;background:rgba(11,15,19,.72);opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.scrim.is-on{opacity:1;visibility:visible;transition:opacity .3s}
@media (max-width:1279.98px){.scrim{display:none}}

/* ---------- intro (1:1 device intro, stage 300x240 units) ---------- */
.intro{display:none}
.has-intro .intro{display:block;position:fixed;inset:0;z-index:300;overflow:hidden}
.has-intro body{overflow:hidden}
.intro__bg{position:absolute;inset:0;background:var(--ink)}
.intro__sky{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.intro__stage{position:absolute;left:50%;top:calc(50% - 8px);width:min(100vw,(100vh - 196px) * 1.25,1000px);height:calc(min(100vw,(100vh - 196px) * 1.25,1000px) * .8);transform:translate(-50%,-50%);container-type:inline-size}
.intro__stage *{--u:calc(100cqw / 300)}
.intro__world{position:absolute;left:calc(150 * var(--u));top:calc(111 * var(--u));width:0;height:0;will-change:transform}
.intro__ground{position:absolute;left:-200vmax;width:400vmax;top:0;height:200vmax;background:var(--ground);opacity:0}
.intro__line{position:absolute;left:-200vmax;width:400vmax;top:-1px;height:2px;background:var(--text);transform:scaleX(0)}
.intro__line.is-level{background:var(--ok)}
.intro__radar{position:absolute;inset:0}
.intro__ring{position:absolute;left:calc(150 * var(--u));top:calc(111 * var(--u));border:1px solid rgba(154,168,180,.10);border-radius:50%;opacity:0}
.intro__ring--1{width:calc(88 * var(--u));height:calc(88 * var(--u));margin:calc(-44 * var(--u)) 0 0 calc(-44 * var(--u))}
.intro__ring--2{width:calc(176 * var(--u));height:calc(176 * var(--u));margin:calc(-88 * var(--u)) 0 0 calc(-88 * var(--u))}
.intro__ring--3{width:calc(264 * var(--u));height:calc(264 * var(--u));margin:calc(-132 * var(--u)) 0 0 calc(-132 * var(--u))}
.intro__ring--4{width:calc(352 * var(--u));height:calc(352 * var(--u));margin:calc(-176 * var(--u)) 0 0 calc(-176 * var(--u))}
.intro__cross{position:absolute;background:rgba(154,168,180,.10);opacity:0}
.intro__cross--h{left:-100vw;width:300vw;top:calc(111 * var(--u));height:1px}
.intro__cross--v{top:-100vh;height:300vh;left:calc(150 * var(--u));width:1px}
.intro__radar{will-change:clip-path}
.intro__rcv{position:absolute;display:block;pointer-events:none}
.intro__hud{position:absolute;display:block;pointer-events:none;z-index:1}
.intro__t{z-index:2}
.intro__plate{z-index:2}
.intro__sweep{position:absolute;left:calc(150 * var(--u));top:calc(111 * var(--u));width:calc(900 * var(--u));height:calc(900 * var(--u));margin:calc(-450 * var(--u)) 0 0 calc(-450 * var(--u));border-radius:50%;background:conic-gradient(from 0deg,rgba(242,169,59,0) 0deg,rgba(242,169,59,.10) 52deg,rgba(242,169,59,.26) 54deg,rgba(242,169,59,0) 54.6deg,rgba(242,169,59,0) 360deg);opacity:0;will-change:transform}
.intro__t{position:absolute;left:0;width:calc(300 * var(--u));display:flex;justify-content:center;align-items:center;gap:calc(14 * var(--u));white-space:nowrap;font:700 max(14px,calc(14 * var(--u)))/1 var(--f-label);text-transform:uppercase;opacity:0}
.intro__hint{top:calc(18 * var(--u) + 25px);height:calc(18 * var(--u));letter-spacing:calc(3 * var(--u));color:var(--amber)}
.intro__welcome{top:calc(52 * var(--u));height:calc(18 * var(--u));letter-spacing:calc(4 * var(--u));color:var(--grey)}
.intro__words{top:calc(146 * var(--u));height:calc(18 * var(--u));letter-spacing:calc(3 * var(--u));color:var(--text);opacity:1}
.intro__words span{display:inline-block;opacity:0}
.intro__warn{left:50%;width:auto;padding:0 calc(10 * var(--u));transform:translateX(-50%);top:calc(176 * var(--u));height:calc(20 * var(--u));letter-spacing:calc(2 * var(--u));color:var(--amber)}
.intro__warn.is-flash{background:var(--amber);color:var(--ink)}
.intro__note{top:calc(197 * var(--u));height:calc(18 * var(--u));letter-spacing:calc(2 * var(--u));color:var(--grey)}
.intro__plate{position:absolute;left:calc(40 * var(--u));top:calc(86 * var(--u));width:calc(220 * var(--u));height:calc(50 * var(--u));transform-origin:50% 50%}
.intro__platebg{position:absolute;inset:0;background:var(--amber);clip-path:polygon(calc(18 * var(--u)) 0,calc(100% - 18 * var(--u)) 0,100% 50%,calc(100% - 18 * var(--u)) 100%,calc(18 * var(--u)) 100%,0 50%);transform:scaleX(0)}
.intro__word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:calc(7 * var(--u));font:700 calc(31 * var(--u))/1 var(--f-label);letter-spacing:calc(7 * var(--u));color:var(--ink);-webkit-text-stroke:calc(.7 * var(--u)) var(--ink);opacity:0}
.intro__hit{position:absolute;inset:0;z-index:2;cursor:default;background:transparent}
.intro__corners{position:absolute;left:0;right:0;top:48px;bottom:48px;z-index:3;pointer-events:none;opacity:0}
.intro__col{position:absolute;top:clamp(24px,3.4vw,44px);bottom:clamp(24px,3.4vw,44px);width:150px;display:grid;grid-template-rows:repeat(6,minmax(0,1fr));grid-auto-rows:0;align-items:stretch}
.intro__col--l{left:clamp(16px,2.6vw,40px);padding-right:26px;text-align:center}
.intro__col--r{right:clamp(16px,2.6vw,40px);padding-left:26px;text-align:center}
.intro__rail{position:absolute;top:0;bottom:0;width:10px;transform-origin:50% 0;transform:scaleY(0);background:repeating-linear-gradient(to bottom,rgba(70,82,92,.9) 0 1px,transparent 1px 12px)}
.intro__rail::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:rgba(70,82,92,.9)}
.intro__col--l .intro__rail{right:0}.intro__col--l .intro__rail::before{right:0}
.intro__col--r .intro__rail{left:0}.intro__col--r .intro__rail::before{left:0}
.intro__col--l .intro__rail{-webkit-mask:linear-gradient(to left,#000 40%,rgba(0,0,0,.35) 40%);mask:linear-gradient(to left,#000 40%,rgba(0,0,0,.35) 40%)}
.intro__col--r .intro__rail{-webkit-mask:linear-gradient(to right,#000 40%,rgba(0,0,0,.35) 40%);mask:linear-gradient(to right,#000 40%,rgba(0,0,0,.35) 40%)}
.intro__rail b{position:absolute;top:50%;width:8px;height:12px;margin-top:-6px;background:var(--amber);will-change:transform}
.intro__col--l .intro__rail b{right:2px;clip-path:polygon(0 0,100% 50%,0 100%)}
.intro__col--r .intro__rail b{left:2px;clip-path:polygon(100% 0,0 50%,100% 100%)}
.intro__d{position:relative;display:grid;grid-template-rows:20px 22px 12px 8px;gap:3px;justify-items:center;align-content:center}
.intro__sep{display:none}
.intro__d:not(:last-of-type)::after{content:"";position:absolute;left:50%;margin-left:-28px;width:56px;height:1px;top:100%;transform-origin:center;background:rgba(70,82,92,.9);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.intro__col.is-on .intro__d::after{transform:scaleX(1)}
.intro__col.is-on .intro__d:nth-of-type(2)::after{transition-delay:.08s}.intro__col.is-on .intro__d:nth-of-type(3)::after{transition-delay:.16s}.intro__col.is-on .intro__d:nth-of-type(4)::after{transition-delay:.24s}.intro__col.is-on .intro__d:nth-of-type(5)::after{transition-delay:.32s}

.hud__sep{display:block;width:calc(14 * var(--u));height:1px;background:rgba(70,82,92,.9)}
@media (max-width:1023.98px){.intro__sep{display:none}}
@media (max-width:719.98px){.hud__sep{display:none}}
.intro__d{justify-items:center}
.intro__dk{font:700 12px/1 var(--f-label);letter-spacing:.22em;color:rgba(143,160,172,.8);white-space:nowrap;display:contents}
.intro__dk .dico{grid-row:1}
.intro__dk b,.intro__dk>span:not(.dico){grid-row:3;align-self:center}
.intro__dv{grid-row:2}
.intro__bar{grid-row:4}
.intro__dv{display:inline-flex;align-items:center;gap:8px;font:700 clamp(16px,1.4vw,19px)/1 var(--f-mono);color:rgba(242,245,247,.82);font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .2s}
.intro__dv.is-ok{color:var(--ok)}.intro__dv.is-warn{color:var(--amber)}
.intro__bar{display:flex;gap:2px;margin-top:0;height:8px}
.intro__dv{height:19px}
.intro__bar i{width:5px;height:8px;background:rgba(70,82,92,.7)}
.intro__bar i.on{background:rgba(154,168,180,.9)}
.intro__bar.is-ok i.on{background:var(--ok)}
.intro__beat{width:14px;height:13px;fill:var(--coral);transform-origin:50% 55%;animation:beat 1.05s ease-out infinite}
@keyframes beat{0%{transform:scale(1)}12%{transform:scale(1.28)}24%{transform:scale(1)}36%{transform:scale(1.16)}60%,100%{transform:scale(1)}}
/* narrow viewports (< 1024 px): see NARROW VIEWPORTS block at the end of this file */
.intro__age{position:absolute;left:0;right:0;top:0;z-index:4;min-height:40px;display:flex;align-items:center;justify-content:center;gap:14px;padding:6px var(--gut);background:var(--ink);border-bottom:1px solid var(--line);text-align:center}
.intro__age18{flex:none;display:grid;place-items:center;height:22px;padding:0 7px;border:1px solid var(--amber);font:700 13px/1 var(--f-mono);color:var(--amber)}
.intro__agek{flex:none;font:700 13px/1 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.intro__agetx{font:400 14px/1.35 var(--f-label);color:var(--muted);text-wrap:balance}
@media (max-width:719.98px){.intro__agek{display:none}.intro__agetx{font-size:13px;text-align:left}}
.intro__legal{position:absolute;left:0;right:0;bottom:0;z-index:4;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,minmax(0,248px));justify-content:center;align-items:center;background:var(--ink);border-top:1px solid var(--line)}
.intro__legal::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:64px;background:linear-gradient(to bottom,rgba(34,48,64,0),var(--ground));pointer-events:none}
.intro__legal a{position:relative;display:flex;align-items:center;justify-content:center;height:44px;font:700 13px/1 var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center;transition:color .2s}
.intro__legal a+a::before{content:"";position:absolute;left:-1px;top:50%;width:2px;height:14px;margin-top:-7px;background:var(--line)}
.intro__legal a:hover{color:var(--amber)}
@media (max-width:599.98px){.intro__legal{grid-template-columns:repeat(3,minmax(0,1fr));padding-left:8px;padding-right:8px}.intro__legal a{font-size:12px;letter-spacing:.06em}}
@media (max-width:479.98px){}
.intro__hit:focus-visible{outline:none}



/* ---------- glitch ---------- */
.glitch{position:relative;display:inline-block}

/* ---------- hero: device main screen, 300x240 units ---------- */
.hero{position:relative;padding:clamp(24px,3vw,40px) 0 clamp(40px,5vw,64px)}
.dock{display:flex;justify-content:center;padding:0 var(--gut)}
.housing{position:relative;width:100%;max-width:1280px;padding:12px;background:var(--panel);clip-path:var(--cut4);--ch:22px}
@media (min-width:720px){.hero .housing{max-width:max(640px,min(1280px,calc((100svh - var(--tb) - var(--mh) - 250px) * 16 / 9 + 48px)))}}
.housing__step{padding:1px;background:var(--line);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)}
.housing__notch{display:none}
.display{position:relative;overflow:hidden;aspect-ratio:5/4;background:var(--ink);container-type:size;clip-path:polygon(13px 0,calc(100% - 13px) 0,100% 13px,100% calc(100% - 13px),calc(100% - 13px) 100%,13px 100%,0 calc(100% - 13px),0 13px)}
.display *{--u:calc(100cqh / 240)}
@media (min-width:720px){.display--hud{aspect-ratio:16/9}}
@media (max-width:719.98px){.display--hud{aspect-ratio:4/3}}
.gyro{position:absolute;inset:0;--roll:0;--pitch:0}
.gyro__pivot{position:absolute;left:50%;top:calc(120 * var(--u));width:0;height:0;transform:translate3d(0,calc(var(--pitch) * 5.4 * var(--u)),0) rotate(calc(var(--roll) * -1deg));will-change:transform}
.gyro__ground{position:absolute;left:-3000px;width:6000px;top:0;height:3000px;background:var(--ground)}
.gyro__horizon{position:absolute;left:-3000px;width:6000px;top:-1px;height:2px;background:var(--text)}
.gyro.is-level .gyro__horizon{background:var(--ok)}
.gyro__wedge{position:absolute;z-index:2;top:calc(112 * var(--u));width:calc(10 * var(--u));height:calc(16 * var(--u));background:var(--amber);transition:background .2s}
.gyro__wedge--l{left:0;clip-path:polygon(0 0,100% 50%,0 100%)}
.gyro__wedge--r{right:0;clip-path:polygon(100% 0,0 50%,100% 100%)}
.gyro.is-level .gyro__wedge{background:var(--ok)}
.gyro__plate{position:absolute;z-index:2;left:calc(50% - 94 * var(--u));top:calc(93 * var(--u));width:calc(188 * var(--u));height:calc(54 * var(--u));display:flex;align-items:center;justify-content:center;padding-left:calc(6 * var(--u));background:var(--amber);color:var(--ink);font:700 calc(26 * var(--u))/1 var(--f-label);letter-spacing:calc(6 * var(--u));clip-path:polygon(calc(16 * var(--u)) 0,calc(100% - 16 * var(--u)) 0,100% 50%,calc(100% - 16 * var(--u)) 100%,calc(16 * var(--u)) 100%,0 50%)}
.readout{position:absolute;width:calc(64 * var(--u));height:calc(38 * var(--u));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(3 * var(--u))}
.readout--tl{left:calc(14 * var(--u));top:calc(20 * var(--u))}.readout--tr{right:calc(14 * var(--u));top:calc(20 * var(--u))}
.readout--bl{left:calc(14 * var(--u));bottom:calc(20 * var(--u))}.readout--br{right:calc(14 * var(--u));bottom:calc(20 * var(--u))}
.readout__k{font:700 max(12px,calc(7 * var(--u)))/1 var(--f-label);letter-spacing:.18em;color:var(--muted)}
.readout__v{font:700 max(16px,calc(11 * var(--u)))/1 var(--f-mono);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.readout__v.is-ok{color:var(--ok)}
.readout__v.is-warn{color:var(--amber)}
.hud__cv{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:1}
.hud__col{position:absolute;z-index:2;top:calc(14 * var(--u));bottom:calc(14 * var(--u));width:calc(60 * var(--u));display:flex;flex-direction:column;justify-content:space-between}
.hud__col--l{left:calc(16 * var(--u));padding-right:calc(8 * var(--u));align-items:flex-start;text-align:left}
.hud__col--r{right:calc(16 * var(--u));padding-left:calc(8 * var(--u));align-items:flex-end;text-align:right}
.hud__rail{position:absolute;top:0;bottom:0;width:calc(4 * var(--u));background:repeating-linear-gradient(to bottom,rgba(70,82,92,.9) 0 1px,transparent 1px calc(5 * var(--u)))}
.hud__rail::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:rgba(70,82,92,.9)}
.hud__col--l .hud__rail{right:0}.hud__col--l .hud__rail::before{right:0}
.hud__col--r .hud__rail{left:0}.hud__col--r .hud__rail::before{left:0}
.hud__rail b{position:absolute;top:50%;width:calc(3.5 * var(--u));height:calc(5 * var(--u));margin-top:calc(-2.5 * var(--u));background:var(--amber);will-change:transform}
.hud__col--l .hud__rail b{right:1px;clip-path:polygon(0 0,100% 50%,0 100%)}
.hud__col--r .hud__rail b{left:1px;clip-path:polygon(100% 0,0 50%,100% 100%)}
.hud__d{display:grid;gap:calc(2 * var(--u))}
.hud__col--r .hud__d{justify-items:end}
.hud__k{font:700 max(11px,calc(4.8 * var(--u)))/1 var(--f-label);letter-spacing:.16em;color:rgba(143,160,172,.85);white-space:nowrap}
.hud__v{display:inline-flex;align-items:center;gap:calc(3 * var(--u));font:700 max(15px,calc(7.4 * var(--u)))/1 var(--f-mono);color:rgba(242,245,247,.88);font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .2s}
.hud__v.is-ok,.hud__v[data-ok]{color:var(--ok)}.hud__v.is-warn{color:var(--amber)}
.hud__bar{display:flex;gap:2px}
.hud__bar i{width:max(4px,calc(2.2 * var(--u)));height:max(6px,calc(3.4 * var(--u)));background:rgba(70,82,92,.7)}
.hud__bar i.on{background:rgba(154,168,180,.9)}
.hud__bar.is-ok i.on{background:var(--ok)}
.hud__new{width:max(6px,calc(2.6 * var(--u)));height:max(6px,calc(2.6 * var(--u)));border-radius:50%;background:var(--amber)}
.intro__dv .hud__new{width:7px;height:7px}
.hud__beat{width:max(12px,calc(6 * var(--u)));height:auto;fill:var(--coral);transform-origin:50% 55%;animation:beat 1.05s ease-out infinite}
@media (max-width:719.98px){.hud__d--x,.hud__rail{display:none}.hud__col{width:auto;padding:0!important}}
.hero__brand{display:grid;justify-items:center;gap:10px;text-align:center;margin-top:clamp(24px,3vw,36px);padding:0 var(--gut)}
.hero .h-xl{font-size:clamp(32px,5vw,64px)}
.hero__factual{font-size:clamp(17px,1.5vw,19px);color:var(--grey);max-width:52ch;text-wrap:balance}
.hero__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:14px}

/* ---------- sections ---------- */
.section{padding:clamp(48px,6vw,88px) 0}
.section--tight{padding:clamp(32px,4vw,56px) 0}
.sec-head{display:grid;justify-items:center;gap:12px;text-align:center;margin:0 auto clamp(28px,3.5vw,44px);max-width:980px;padding:0 clamp(0px,4vw,48px)}
.sec-head__num{display:grid;grid-template-columns:minmax(24px,120px) auto minmax(24px,120px);align-items:center;gap:16px;width:100%;justify-content:center;font:700 16px/1 var(--f-mono);color:var(--amber)}
.sec-head__num::before,.sec-head__num::after{content:"";height:2px;background:var(--amber);transform:scaleX(1)}
.sec-head__num::before{transform-origin:right}.sec-head__num::after{transform-origin:left}
.sec-head .lead{margin-top:6px}
.js .reveal .sec-head__num::before,.js .reveal .sec-head__num::after{transform:scaleX(0);transition:transform .9s var(--ease) .1s}
.js .reveal.is-in .sec-head__num::before,.js .reveal.is-in .sec-head__num::after{transform:scaleX(1)}
.js .reveal .r-item{opacity:0;transform:translate3d(0,24px,0);transition:opacity .7s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in .r-item{opacity:1;transform:none}
.js .reveal.is-in .r-item:nth-child(2){transition-delay:.08s}.js .reveal.is-in .r-item:nth-child(3){transition-delay:.16s}.js .reveal.is-in .r-item:nth-child(4){transition-delay:.24s}.js .reveal.is-in .r-item:nth-child(5){transition-delay:.32s}.js .reveal.is-in .r-item:nth-child(6){transition-delay:.4s}

/* ---------- cards ---------- */
.grid{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.card{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:14px;padding:clamp(24px,2.4vw,32px);min-height:100%;color:var(--text)}
.card::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut);transition:background .25s}
.card::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut)}
.card__bar{position:absolute;left:0;top:0;width:44px;height:4px;background:var(--amber);transform-origin:left;transition:transform .45s var(--ease)}
.card--ok .card__bar{background:var(--ok)}
.card__meta{display:flex;justify-content:space-between;align-items:center;gap:12px}
.card__num{font:700 14px/1 var(--f-mono);color:var(--muted);letter-spacing:.06em}
.card__title{font:700 clamp(20px,1.8vw,24px)/1.1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;overflow-wrap:break-word;hyphens:auto}
.card__text{color:var(--grey);font-size:16px;line-height:1.5;text-wrap:pretty}
.card__more{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:10px;font:700 14px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.card .icon{color:var(--amber);width:32px;height:32px}
a.card:hover{color:var(--text)}
a.card:hover::before,a.card:focus-visible::before{background:var(--amber)}
a.card:hover .card__bar,a.card:focus-visible .card__bar{transform:scaleX(3)}
a.card:hover .card__more .arrow{transform:translateX(4px)}
.card__more .arrow{transition:transform .25s var(--ease)}
a.card:hover .card__title{animation:cut-flash .5s steps(1) 1}
.card--center{align-items:center;text-align:center}
.card--center .card__bar{left:50%;margin-left:-22px;transform-origin:center}

/* module groups on home */
.groups{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.groups{grid-template-columns:repeat(5,minmax(0,1fr))}}
.count{font:700 clamp(36px,4vw,56px)/1 var(--f-mono);color:var(--text);font-variant-numeric:tabular-nums}
.count__unit{display:block;margin-top:8px;font:700 13px/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.chiplist{display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--grey);line-height:1.35}
.chiplist li{display:flex;gap:10px;align-items:baseline}
.chiplist li::before{content:"";flex:none;width:10px;height:2px;background:var(--amber);transform:translateY(-4px)}

.center{display:flex;justify-content:center;margin-top:clamp(32px,5vw,56px)}

/* principle strip */
.steps{display:grid;gap:0;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
@media (min-width:900px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));border-top:0}}
.step{display:grid;justify-items:center;text-align:center;gap:12px;padding:28px 24px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.step{border-bottom:0;border-left:1px solid var(--line)}.step:first-child{border-left:0}}
.step__num{font:700 44px/1 var(--f-mono);color:var(--amber)}
.step__text{color:var(--grey);max-width:30ch}

/* ---------- ticker ---------- */
.ticker{position:relative;display:grid;gap:10px;padding:18px 0 16px;background:var(--panel2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.ticker__row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker__track{display:flex;width:max-content;animation:ticker 52s linear infinite}
.ticker__row--rev .ticker__track{animation-duration:80s;animation-direction:reverse}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__list{display:flex;align-items:center;flex:none}
.chip{display:inline-flex;align-items:center;height:40px;padding:0 20px;border:1px solid var(--line);font:700 15px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--text);white-space:nowrap;transition:border-color .2s,color .2s}
.chip:hover{border-color:var(--amber);color:var(--amber)}
.ticker__row:not(.ticker__row--rev) .chip:nth-child(8n+1){animation:chip-hot 7s steps(1) infinite}
.ticker__row:not(.ticker__row--rev) .chip:nth-child(8n+5){animation:chip-hot 7s steps(1) infinite 3.5s}
.ticker__row--rev .chip{height:24px;padding:0;border:0;font:700 13px/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.ticker__dot{flex:none;width:2px;height:14px;margin:0 22px;background:var(--amber)}
.ticker__row--rev .ticker__dot{width:2px;height:10px;margin:0 28px;background:var(--line)}
@keyframes ticker{to{transform:translate3d(-50%,0,0)}}
@keyframes chip-hot{0%{border-color:var(--amber);color:var(--amber)}10%{border-color:var(--line);color:var(--text)}}

/* ---------- footer ---------- */
.footer{background:var(--ink);padding:clamp(40px,5vw,64px) 0 0}
.footer__grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
.footer__brand{display:grid;gap:14px;align-content:start;justify-items:start}
.footer__brandline{font:700 15px/1.2 var(--f-label);letter-spacing:.2em;color:var(--text)}
.footer__factual{color:var(--grey);font-size:15px;line-height:1.45;max-width:30ch}
.footer__cols{display:grid;gap:32px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}
.footer__col{min-width:0}
.footer__col h2{font:700 13px/1.2 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.footer__col ul{display:grid;gap:0}
.footer__col a{display:inline-block;padding:4px 0;font-size:15px;line-height:1.3;color:var(--grey)}
.footer__col a:hover{color:var(--amber)}
.footer__col--wide{grid-column:1/-1}
.footer__col--wide ul{display:block;columns:2;column-gap:24px}
.footer__col--wide li{break-inside:avoid}
@media (min-width:720px){.footer__cols{grid-template-columns:repeat(5,minmax(0,1fr))}.footer__col--wide{grid-column:span 2}}
@media (min-width:1280px){.footer__grid{grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:56px}}
.footer__legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 0;margin-top:clamp(32px,4vw,48px);padding:12px 0;border-top:1px solid var(--line)}
.footer__legal a{display:flex;align-items:center;min-height:40px;padding:0 22px;font:700 14px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.footer__legal a+a{border-left:1px solid var(--line)}
.footer__legal a:hover{color:var(--amber)}
.footer__end{background:var(--panel2);border-top:1px solid var(--line)}
.footer__end .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);align-items:center;min-height:48px}
.footer__end p{position:relative;text-align:center;font:700 13px/1.2 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0 12px}
.footer__end p+p::before{content:"";position:absolute;left:0;top:50%;width:1px;height:16px;margin-top:-8px;background:var(--line)}
.footer__end p:nth-child(3){font-family:var(--f-mono)}
@media (max-width:719.98px){.footer__end .wrap{grid-template-columns:1fr;padding-top:12px;padding-bottom:12px}.footer__end p:nth-child(1),.footer__end p:nth-child(3){display:none}.footer__end p+p::before{display:none}}

/* ---------- page head (area / detail / legal) ---------- */
.pagehead{padding:clamp(32px,4vw,56px) 0 clamp(28px,3.5vw,44px);text-align:center}
.pagehead nav{margin-bottom:28px}
.crumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font:700 13px/1 var(--f-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--amber)}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--line)}
.crumbs [aria-current]{color:var(--amber)}
.pagehead__inner{display:grid;justify-items:center;gap:20px;max-width:980px;margin:0 auto}
.pagehead .lead{margin-top:6px}
.groupnav{position:sticky;top:var(--mh);z-index:20;background:rgba(11,15,19,.94);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.groupnav ul{display:flex;justify-content:center;gap:4px;overflow-x:auto;scrollbar-width:none;padding:0 var(--gut)}
.groupnav ul::-webkit-scrollbar{display:none}
.groupnav a{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;font:700 14px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--grey);white-space:nowrap}
.groupnav a .mono{color:var(--amber)}
.groupnav a:hover{color:var(--amber)}
.group{padding:clamp(36px,4vw,56px) 0 0}
.group__head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;margin-bottom:28px}
.group__head::before,.group__head::after{content:"";height:1px;background:var(--line)}
.group__title{display:flex;align-items:center;gap:14px;font:700 clamp(20px,2.2vw,28px)/1 var(--f-label);letter-spacing:.12em;text-transform:uppercase;text-align:center}
.group__title .mono{font-size:16px;color:var(--amber)}

/* detail */
.detail-hero{max-width:980px;margin:0 auto;padding:0 var(--gut)}
.vision{position:absolute;inset:0;background:var(--ground)}
.vision__sky{position:absolute;inset:0 0 38% 0;background:#16202A}
.vision__target{position:absolute;left:50%;top:50%;width:clamp(120px,24%,220px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:var(--text);display:grid;place-items:center}
.vision__target i{position:absolute;border-radius:50%;border:2px solid var(--ink)}
.vision__target i:nth-child(1){inset:12%}.vision__target i:nth-child(2){inset:24%}.vision__target i:nth-child(3){inset:36%;background:var(--ink)}.vision__target i:nth-child(4){inset:46%;border-color:var(--text)}
.vision__stand{position:absolute;left:50%;top:50%;width:4px;height:44%;background:var(--line);transform:translateX(-50%)}
.reticle{position:absolute;inset:0}
.reticle__h,.reticle__v{position:absolute;background:var(--amber)}
.reticle__h{top:50%;height:2px;margin-top:-1px;left:12%;right:12%;clip-path:polygon(0 0,42% 0,42% 100%,0 100%,0 0,58% 0,100% 0,100% 100%,58% 100%)}
.reticle__v{left:50%;width:2px;margin-left:-1px;top:14%;bottom:14%;clip-path:polygon(0 0,100% 0,100% 40%,0 40%,0 60%,100% 60%,100% 100%,0 100%)}
.reticle__ticks{position:absolute;left:50%;top:50%;width:0;height:0}
.reticle__ticks i{position:absolute;width:10px;height:2px;margin-left:-5px;background:var(--amber)}
.reticle__ticks i:nth-child(1){top:40px}.reticle__ticks i:nth-child(2){top:64px;width:14px;margin-left:-7px}.reticle__ticks i:nth-child(3){top:88px}
.vision__scan{position:absolute;inset:0;animation:drift-x 9s ease-in-out infinite alternate}
@keyframes drift-x{from{transform:translate3d(-1.5%,.6%,0)}to{transform:translate3d(1.5%,-.6%,0)}}
.strip{position:absolute;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:var(--amber);color:var(--ink);font:700 clamp(12px,1.4vw,15px)/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;padding:0 16px}
.strip--top{top:0;height:clamp(26px,5.5%,40px)}
.strip span:nth-child(2){text-align:center;padding:0 16px;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}
.strip span:nth-child(3){text-align:right}
.strip .mono{font-family:var(--f-mono)}
.content{display:grid;gap:clamp(48px,6vw,80px);max-width:980px;margin:0 auto}
.block{display:grid;gap:24px}
@media (min-width:900px){.block{grid-template-columns:200px minmax(0,1fr);gap:48px}}
.block__label{display:grid;gap:10px;align-content:start}
.block__label .mono{font-size:16px;color:var(--amber)}
.facts{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fact{background:var(--ink);padding:24px;display:grid;gap:10px;justify-items:center;text-align:center}
.fact__v{font:700 20px/1.15 var(--f-label);letter-spacing:.08em;text-transform:uppercase}
.fact .icon{color:var(--amber);width:32px;height:32px}
.note{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border:1px solid var(--line);color:var(--grey);font-size:15px}
.note::before{content:"";flex:none;width:3px;align-self:stretch;background:var(--amber)}

/* demo frame (reserved) */
.demo-frame{max-width:640px;margin:0 auto}
.demo-frame .display{aspect-ratio:4/3}
.demo-frame__slot{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;border:1px dashed var(--line);margin:16px}

/* legal */
.legal{display:grid;gap:48px;max-width:1080px;margin:0 auto}
@media (min-width:1024px){.legal{grid-template-columns:240px minmax(0,1fr);gap:64px}}
.toc{align-self:start;display:grid;gap:2px;border-left:2px solid var(--line)}
@media (min-width:1024px){.toc{position:sticky;top:calc(var(--mh) + 32px)}}
.toc a{display:flex;gap:12px;padding:8px 16px;font:700 14px/1.3 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--grey);margin-left:-2px;border-left:2px solid transparent}
.toc a .mono{color:var(--muted)}
.toc a:hover{color:var(--amber);border-left-color:var(--amber)}
.prose{display:grid;gap:48px}
.prose section{display:grid;gap:14px;padding-top:8px}
.prose h2{display:flex;gap:16px;align-items:baseline;font:700 22px/1.2 var(--f-label);letter-spacing:.1em;text-transform:uppercase;padding-bottom:12px;border-bottom:1px solid var(--line)}
.prose h2 .mono{font-size:16px;color:var(--amber)}
.prose p,.prose address{color:var(--grey);font-style:normal;max-width:68ch}
.prose dl{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:8px 24px;color:var(--grey)}
.prose dt{font:700 14px/1.6 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ph{display:inline-block;padding:2px 8px;border:1px dashed var(--line);color:var(--muted);font:700 14px/1.4 var(--f-label);letter-spacing:.1em;text-transform:uppercase}
.body .note{margin-top:16px}

/* 404 */
.lost{min-height:calc(100vh - var(--mh) - var(--tb));display:grid;align-content:center;justify-items:center;gap:32px;padding:48px var(--gut);text-align:center}
.lost .housing{max-width:560px}
.lost .display{aspect-ratio:4/3}
.lost__code{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:10px;padding:18px 32px 22px;background:var(--ink);clip-path:var(--cut4)}
.lost__num{font:700 clamp(64px,12vw,120px)/1 var(--f-mono);color:var(--text)}
.lost__status{display:inline-grid;place-items:center;height:28px;padding:0 20px;background:var(--amber);color:var(--ink);font:700 14px/1 var(--f-label);letter-spacing:.16em;clip-path:var(--point)}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .ticker__track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;padding:0 var(--gut)}
  .ticker__list{flex-wrap:wrap;justify-content:center;row-gap:12px}
  .ticker__list[aria-hidden="true"]{display:none}
  .js .reveal .r-item{opacity:1;transform:none}
  .gyro__emblem .logo__plate{animation:none}
  .chip{animation:none!important}
  .has-intro .intro{display:none}
  .has-intro body{overflow:auto}
}

/* ---------- intro → page transition ---------- */
.intro__age,.intro__legal{transition:transform .6s cubic-bezier(.7,0,.2,1),opacity .6s}
.intro.is-bars-out .intro__age{transform:translate3d(0,-100%,0);opacity:0}
.intro.is-bars-out .intro__legal{transform:translate3d(0,100%,0);opacity:0}
.intro__fly{position:fixed;z-index:302;margin:0;pointer-events:none;transform-origin:50% 50%;will-change:transform}
.intro__fly .logo__plate{width:100%;height:100%}
.intro.is-shut .intro__stage,.intro.is-shut .intro__sky,.intro.is-shut .intro__corners{opacity:0;transition:opacity .3s ease .12s}
.intro__doors{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.intro__cur{position:absolute;top:0;bottom:0;width:50.2%;background:var(--panel2);transition:transform .5s cubic-bezier(.65,0,.35,1)}
.intro__cur--l{left:0;transform:translate3d(-101%,0,0);box-shadow:inset -1px 0 0 var(--line)}
.intro__cur--r{right:0;transform:translate3d(101%,0,0);box-shadow:inset 1px 0 0 var(--line)}
.intro__seam{position:absolute;top:50%;left:50%;width:2px;height:100%;margin:-50vh 0 0 -1px;background:var(--amber);transform:scaleY(0);opacity:0}
.intro__spill{position:absolute;top:0;bottom:0;left:50%;width:60vw;margin-left:-30vw;background:linear-gradient(90deg,rgba(242,169,59,0),rgba(242,169,59,.16) 45%,rgba(242,169,59,.28) 50%,rgba(242,169,59,.16) 55%,rgba(242,169,59,0));transform:scaleX(0);opacity:0;pointer-events:none}
.intro.is-shut .intro__cur{transform:none}
.intro.is-shut .intro__seam{animation:seam-work 1.5s cubic-bezier(.65,0,.35,1) .42s forwards}
.intro.is-open .intro__bg{opacity:0}
.intro.is-open .intro__seam{animation:seam-open .35s cubic-bezier(.7,0,.2,1) forwards}
.intro.is-open .intro__spill{animation:spill 1.1s cubic-bezier(.16,1,.3,1) forwards}
.intro.is-open .intro__cur{transition:transform 1.1s cubic-bezier(.7,0,.2,1) .12s}
.intro.is-open .intro__cur--l{transform:translate3d(-101%,0,0)}
.intro.is-open .intro__cur--r{transform:translate3d(101%,0,0)}
@keyframes seam-work{0%{transform:scaleY(0);opacity:1}18%{transform:scaleY(.34);opacity:1}30%{transform:scaleY(.08);opacity:.6}44%{transform:scaleY(.22);opacity:1}56%{transform:scaleY(.05);opacity:.5}70%{transform:scaleY(.16);opacity:1}100%{transform:scaleY(.12);opacity:.85}}
@keyframes seam-open{0%{transform:scaleY(.12);opacity:.85}45%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes spill{0%{transform:scaleX(.02);opacity:0}25%{opacity:1}100%{transform:scaleX(1.6);opacity:0}}
/* page hidden while the intro runs, then powered up in sequence */
.has-intro .topbar,.has-intro .masthead{opacity:0;transform:translate3d(0,-24px,0)}
.has-intro .masthead .logo{opacity:0}
.has-intro .bg{opacity:0}
.has-intro .hero .housing{opacity:0;transform:scale(.94)}
.has-intro .hero .display--hud>*:not(.tube){opacity:0}
.is-tube-on .hero .display--hud>*:not(.tube){opacity:1}
.has-intro .hero__factual,.has-intro .hero__cta{opacity:0;transform:translate3d(0,16px,0)}
.is-reveal .bg{opacity:1;transition:opacity 1.6s ease .2s}
.is-reveal .hero .housing{opacity:1;transform:none;transition:opacity .5s ease .1s,transform 1.1s cubic-bezier(.16,1,.3,1) .1s}
.is-reveal .topbar,.is-reveal .masthead{opacity:1;transform:none;transition:opacity .35s ease .05s,transform .6s cubic-bezier(.16,1,.3,1) .05s}
.has-intro.is-flying .masthead,.has-intro.is-flying .topbar{opacity:1;transform:none;transition:none}
.is-docked .masthead .logo{opacity:1}
.is-reveal .hero__factual{opacity:1;transform:none;transition:opacity .6s ease 1.9s,transform .8s cubic-bezier(.16,1,.3,1) 1.9s}
.is-reveal .hero__cta{opacity:1;transform:none;transition:opacity .6s ease 2.1s,transform .8s cubic-bezier(.16,1,.3,1) 2.1s}

/* instrument icons (intro + hero) */
.hud__k{display:inline-flex;align-items:center;gap:8px}
.hud__col--r .hud__k{flex-direction:row-reverse}
.intro__dk b{font-weight:700}
.dico{flex:none;width:20px;height:20px;color:var(--grey);opacity:.95}
.hud__k .dico{width:max(15px,calc(7.2 * var(--u)));height:max(15px,calc(7.2 * var(--u)))}
.dico--pulse{color:var(--coral);stroke:none;fill:var(--coral);opacity:1;transform-origin:50% 55%;animation:beat 1.05s ease-out infinite}
@media (prefers-reduced-motion:reduce){.dico--pulse{animation:none}}

.hero .gyro__horizon{transform-origin:50% 50%}
.hero .gyro__plate{transform-origin:50% 50%}
.hero .hud__rail{transform-origin:50% 0}
.hud__col--l .hud__sep{transform-origin:left}.hud__col--r .hud__sep{transform-origin:right}
.hud__col--r .hud__sep{align-self:flex-end}

/* hero columns in device layout: icon · value · label · separator */
.display--hud .gyro__horizon{display:none}
.display--hud .gyro__ground{background:rgba(34,48,64,.85)}
.hud__col{top:calc(10 * var(--u));bottom:calc(10 * var(--u));width:calc(58 * var(--u));padding:0!important}
.hud__col--l{left:calc(8 * var(--u))}.hud__col--r{right:calc(8 * var(--u))}
.hud__col--l,.hud__col--r{align-items:center!important;text-align:center!important}
.hud__rail{display:none}
.hud__d{display:flex!important;flex-direction:column;align-items:center!important;gap:calc(1.6 * var(--u))!important}
.hud__k{display:contents!important}
.hud__k .dico{order:0;width:max(18px,calc(9 * var(--u)))!important;height:max(18px,calc(9 * var(--u)))!important}
.hud__v{order:1;font-size:max(15px,calc(8.6 * var(--u)))!important}
.hud__k b{order:2;font:700 max(10px,calc(4.4 * var(--u)))/1 var(--f-label);letter-spacing:.16em;color:rgba(143,160,172,.9)}
.hud__bar{order:3}
.hud__sep{position:relative;width:calc(40 * var(--u))!important;align-self:center!important;background:rgba(143,160,172,.45)!important;transform-origin:50% 50%!important}
.hud__sep::before,.hud__sep::after{content:"";position:absolute;top:calc(-1.2 * var(--u));width:1px;height:calc(2.4 * var(--u));background:rgba(143,160,172,.6)}
.hud__sep::before{left:0}.hud__sep::after{right:0}
.hud__d .hud__v .hud__new{order:-1}

.display--hud .gyro__plate{left:calc(50% - 64 * var(--u));top:calc(120 * var(--u) - 17 * var(--u));width:calc(128 * var(--u));height:calc(34 * var(--u));padding-left:calc(4 * var(--u));font-size:calc(16.5 * var(--u));letter-spacing:calc(4 * var(--u));clip-path:polygon(calc(11 * var(--u)) 0,calc(100% - 11 * var(--u)) 0,100% 50%,calc(100% - 11 * var(--u)) 100%,calc(11 * var(--u)) 100%,0 50%)}

/* =========================================================
   HOME SECTIONS (01 principle · 02 editions · 03 modules · 04 security)
   ========================================================= */
.sec-head .h-l{font-variant-numeric:tabular-nums}

/* 01 · flow */
.flow{position:relative;display:grid;gap:20px;grid-template-columns:minmax(0,1fr);max-width:1120px;margin:0 auto}
.flow__step{position:relative;display:grid;justify-items:center;gap:22px;text-align:center}
.flow__node{position:relative;isolation:isolate;display:grid;place-items:center;width:92px;height:34px;font:700 15px/1 var(--f-mono);letter-spacing:.08em;color:var(--amber);transition:color .3s}
.flow__node::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--hex);transition:background .3s}
.flow__node::after{content:"";position:absolute;inset:2px;z-index:-1;background:var(--ink);clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%);transition:opacity .3s}
.flow__panel{position:relative;isolation:isolate;display:grid;gap:10px;justify-items:center;width:100%;padding:28px 24px 30px}
.flow__panel::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut4)}
.flow__panel::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut4)}
.flow__title{font:700 22px/1.1 var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.flow__text{color:var(--grey);max-width:28ch;text-wrap:balance}
@media (min-width:900px){
  .flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
  .flow::before,.flow::after{content:"";position:absolute;top:16px;left:calc(100% / 6);right:calc(100% / 6);height:2px;background:var(--line)}
  .flow::after{background:var(--amber);transform-origin:left;transform:scaleX(1)}
  .js .reveal .flow::after{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.65,0,.35,1) .35s}
  .js .reveal.is-in .flow::after{transform:scaleX(1)}
}
.js .reveal .flow__node{color:var(--amber)}
.js .reveal.is-in .flow__node{color:var(--ink)}
.js .reveal.is-in .flow__node::before{background:var(--amber)}
.js .reveal.is-in .flow__node::after{opacity:0}
.js .reveal .flow__step:nth-child(1) .flow__node,.js .reveal .flow__step:nth-child(1) .flow__node::before,.js .reveal .flow__step:nth-child(1) .flow__node::after{transition-delay:.35s}
.js .reveal .flow__step:nth-child(2) .flow__node,.js .reveal .flow__step:nth-child(2) .flow__node::before,.js .reveal .flow__step:nth-child(2) .flow__node::after{transition-delay:1.15s}
.js .reveal .flow__step:nth-child(3) .flow__node,.js .reveal .flow__step:nth-child(3) .flow__node::before,.js .reveal .flow__step:nth-child(3) .flow__node::after{transition-delay:1.95s}
.js .reveal .flow__panel{opacity:0;transform:translate3d(0,20px,0);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.js .reveal.is-in .flow__panel{opacity:1;transform:none}
.js .reveal.is-in .flow__step:nth-child(1) .flow__panel{transition-delay:.45s}.js .reveal.is-in .flow__step:nth-child(2) .flow__panel{transition-delay:1.25s}.js .reveal.is-in .flow__step:nth-child(3) .flow__panel{transition-delay:2.05s}
.aud{display:grid;justify-items:center;gap:16px;margin-top:clamp(40px,5vw,64px)}
.aud__label{font:700 14px/1.2 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.aud__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line)}
.aud__list li{display:grid;place-items:center;min-height:56px;padding:0 24px;font:700 17px/1.2 var(--f-label);letter-spacing:.14em;text-transform:uppercase;text-align:center}
.aud__list li:nth-child(2n){border-left:1px solid var(--line)}
.aud__list li:nth-child(n+3){border-top:1px solid var(--line)}
@media (min-width:720px){.aud__list{grid-template-columns:repeat(4,auto)}.aud__list li{padding:0 32px}.aud__list li+li{border-left:1px solid var(--line)}.aud__list li:nth-child(n+3){border-top:0}}
.js .reveal .aud{opacity:0;transition:opacity .8s ease 2.4s}
.js .reveal.is-in .aud{opacity:1}

/* 02 · editions */
.eds{display:grid;gap:clamp(16px,2vw,28px);grid-template-columns:minmax(0,1fr);max-width:1180px;margin:0 auto}
@media (min-width:1024px){.eds{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}}
.ed{display:flex}
.ed__card{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;padding:24px 28px 30px;text-align:center;color:var(--text);transition:transform .35s var(--ease)}
.ed__card::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut4);transition:background .25s}
.ed__card::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut4)}
.ed__hot{position:absolute;inset:10px;pointer-events:none;opacity:0;transition:opacity .25s;--c:var(--amber);background:linear-gradient(var(--c),var(--c)) left top/18px 2px no-repeat,linear-gradient(var(--c),var(--c)) left top/2px 18px no-repeat,linear-gradient(var(--c),var(--c)) right top/18px 2px no-repeat,linear-gradient(var(--c),var(--c)) right top/2px 18px no-repeat,linear-gradient(var(--c),var(--c)) left bottom/18px 2px no-repeat,linear-gradient(var(--c),var(--c)) left bottom/2px 18px no-repeat,linear-gradient(var(--c),var(--c)) right bottom/18px 2px no-repeat,linear-gradient(var(--c),var(--c)) right bottom/2px 18px no-repeat}
.ed__top{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ed__num{font:700 14px/1 var(--f-mono);color:var(--muted)}
.ed__tag{font:700 13px/1.2 var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.ed__icon{display:grid;place-items:center;width:96px;height:72px;margin-top:10px;background:var(--ink);border:1px solid var(--line);color:var(--amber)}
.ed__icon .icon{width:36px;height:36px}
.ed__title{font:700 clamp(22px,2vw,28px)/1.1 var(--f-label);letter-spacing:.1em;text-transform:uppercase;margin-top:6px}
.ed__text{color:var(--grey);text-wrap:balance}
.ed__more{margin-top:auto;padding-top:10px;display:inline-flex;align-items:center;gap:10px;font:700 14px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.ed__more .arrow{transition:transform .25s var(--ease)}
.ed--main .ed__card::before{background:rgba(242,169,59,.55)}
.ed--main .ed__hot{opacity:.7}
.ed--main .ed__tag{color:var(--amber)}
.ed__card:hover{color:var(--text);transform:translate3d(0,-4px,0)}
.ed__card:hover::before,.ed__card:focus-visible::before{background:var(--amber)}
.ed__card:hover .ed__hot,.ed__card:focus-visible .ed__hot{opacity:1}
.ed__card:hover .ed__more .arrow{transform:translateX(4px)}
.ed__card:hover .ed__title{animation:cut-flash .5s steps(1) 1}
.js .reveal .ed{opacity:0;transform:translate3d(0,28px,0);transition:opacity .6s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in .ed{opacity:1;transform:none}
.js .reveal.is-in .ed:nth-child(1){transition-delay:.2s}.js .reveal.is-in .ed:nth-child(2){transition-delay:.05s}.js .reveal.is-in .ed:nth-child(3){transition-delay:.2s}

/* 03 · module hub */
.hub{display:grid;justify-items:center}
.hub__core{display:grid;justify-items:center;gap:12px}
.hub__core .logo__plate{--h:44px}
.hub__sub{white-space:nowrap;font:700 14px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.hub__stem{position:relative;display:none;width:2px;height:44px;margin-top:18px;background:var(--line);transform-origin:top}
.hub__stem::after{content:"";position:absolute;left:-2px;top:0;width:6px;height:6px;background:var(--amber);animation:stem-flow 2.4s cubic-bezier(.65,0,.35,1) infinite}
@keyframes stem-flow{0%{transform:translate3d(0,-6px,0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translate3d(0,44px,0);opacity:0}}
.hub__groups{position:relative;display:grid;gap:20px;width:100%;margin-top:28px;grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.hub__groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){
  .hub__stem{display:block}
  .hub__groups{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:0}
  .hub__groups::before{content:"";position:absolute;top:0;left:calc((100% - 80px) / 10);right:calc((100% - 80px) / 10);height:2px;background:var(--line);transform-origin:50% 50%}
  .hub__g{padding-top:40px}
  .hub__g::before{content:"";position:absolute;left:50%;top:0;width:2px;height:40px;margin-left:-1px;background:var(--line);transform-origin:top}
}
.hub__g{position:relative;display:flex}
.hg{position:relative;isolation:isolate;display:grid;align-content:start;justify-items:center;gap:10px;width:100%;padding:24px 20px 26px;text-align:center;color:var(--text)}
.hg::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut4);transition:background .25s}
.hg::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut4)}
.hg__num{font:700 13px/1 var(--f-mono);color:var(--muted)}
.hg__title{font:700 20px/1.15 var(--f-label);letter-spacing:.1em;text-transform:uppercase;hyphens:auto;overflow-wrap:break-word}
.hg__count{display:grid;justify-items:center;gap:6px;padding:10px 0 12px;width:100%;border-bottom:1px solid var(--line)}
.hg__count>span:first-child{font:700 clamp(36px,3.4vw,48px)/1 var(--f-mono);font-variant-numeric:tabular-nums}
.hg__unit{font:700 12px/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.hg__list{display:grid;gap:6px;padding-top:4px;font-size:15px;line-height:1.35;color:var(--grey)}
.hg:hover{color:var(--text)}
.hg:hover::before,.hg:focus-visible::before{background:var(--amber)}
.hg:hover .hg__title{animation:cut-flash .5s steps(1) 1}
.js .reveal .hub__core .logo__plate{transform:scaleX(.2);opacity:0;transition:transform .6s cubic-bezier(.7,0,.2,1),opacity .2s}
.js .reveal.is-in .hub__core .logo__plate{transform:none;opacity:1}
.js .reveal .hub__sub{opacity:0;transition:opacity .4s ease .4s}
.js .reveal.is-in .hub__sub{opacity:1}
.js .reveal .hub__stem{transform:scaleY(0);transition:transform .45s cubic-bezier(.65,0,.35,1) .55s}
.js .reveal.is-in .hub__stem{transform:none}
.js .reveal .hub__groups::before{transform:scaleX(0);transition:transform .8s cubic-bezier(.65,0,.35,1) .95s}
.js .reveal.is-in .hub__groups::before{transform:none}
.js .reveal .hub__g::before{transform:scaleY(0);transition:transform .35s cubic-bezier(.65,0,.35,1) 1.65s}
.js .reveal.is-in .hub__g::before{transform:none}
.js .reveal .hub__g .hg{opacity:0;transform:translate3d(0,18px,0);transition:opacity .5s var(--ease),transform .8s var(--ease)}
.js .reveal.is-in .hub__g .hg{opacity:1;transform:none}
.js .reveal.is-in .hub__g:nth-child(3) .hg{transition-delay:1.85s}.js .reveal.is-in .hub__g:nth-child(2) .hg,.js .reveal.is-in .hub__g:nth-child(4) .hg{transition-delay:1.97s}.js .reveal.is-in .hub__g:nth-child(1) .hg,.js .reveal.is-in .hub__g:nth-child(5) .hg{transition-delay:2.09s}
@media (max-width:1279.98px){.js .reveal.is-in .hub__g .hg{transition-delay:.3s!important}}

/* 04 · security */
.sgrid{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);align-items:center;max-width:1200px;margin:0 auto}
@media (min-width:1024px){.sgrid{grid-template-columns:minmax(0,1fr) minmax(380px,460px) minmax(0,1fr);gap:40px}}
.sgrid__col{display:grid;gap:16px}
.sfact{position:relative;isolation:isolate;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 14px;padding:20px 22px}
.sfact::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--line);clip-path:var(--cut4)}
.sfact::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--panel2);clip-path:var(--cut4)}
.sfact__icon{grid-row:span 2;display:grid;place-items:center;width:48px;height:48px;background:var(--ink);border:1px solid var(--line);color:var(--amber)}
.sfact__code{font:700 13px/1 var(--f-mono);letter-spacing:.12em;color:var(--ok)}
.sfact__title{font:700 18px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;overflow-wrap:break-word;hyphens:auto}
@media (min-width:1024px){
  .sgrid__col--l .sfact{grid-template-columns:1fr auto;text-align:right}
  .sgrid__col--l .sfact__icon{grid-column:2;grid-row:1 / span 2}
  .sgrid__col--l .sfact__code,.sgrid__col--l .sfact__title{grid-column:1}
  .sfact .sfact__line{display:block}
  .sgrid__col--l .sfact::marker{content:none}
}
.sdev{padding:10px;background:var(--panel);clip-path:polygon(22px 0,calc(100% - 22px) 0,100% 22px,100% calc(100% - 22px),calc(100% - 22px) 100%,22px 100%,0 calc(100% - 22px),0 22px)}
.sdev__screen{position:relative;overflow:hidden;aspect-ratio:5/4;background:var(--ink);container-type:inline-size;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px)}
.sdev__screen *{--u:calc(100cqw / 300)}
.sdev__strip{position:absolute;left:0;right:0;top:0;height:calc(26 * var(--u));display:grid;grid-template-columns:repeat(3,1fr);align-items:center;background:var(--amber);color:var(--ink);font:700 max(11px,calc(11 * var(--u)))/1 var(--f-label);letter-spacing:.14em;text-align:center}
.sdev__strip span+span{border-left:2px solid var(--ink);height:calc(14 * var(--u));display:grid;place-items:center}
.sdev__strip span:first-child{display:grid;place-items:center}
.sdev__body{position:absolute;left:0;right:0;top:calc(26 * var(--u));bottom:calc(44 * var(--u));display:grid;grid-template-columns:calc(118 * var(--u)) 1fr;align-items:center;padding:0 calc(14 * var(--u))}
.sdev__fp{position:relative;width:calc(94 * var(--u));height:calc(94 * var(--u));display:grid;place-items:center}
.sdev__fp img{width:calc(64 * var(--u));height:calc(64 * var(--u))}
.sdev__br{position:absolute;inset:0;--c:var(--amber);background:linear-gradient(var(--c),var(--c)) left top/calc(14 * var(--u)) 2px no-repeat,linear-gradient(var(--c),var(--c)) left top/2px calc(14 * var(--u)) no-repeat,linear-gradient(var(--c),var(--c)) right top/calc(14 * var(--u)) 2px no-repeat,linear-gradient(var(--c),var(--c)) right top/2px calc(14 * var(--u)) no-repeat,linear-gradient(var(--c),var(--c)) left bottom/calc(14 * var(--u)) 2px no-repeat,linear-gradient(var(--c),var(--c)) left bottom/2px calc(14 * var(--u)) no-repeat,linear-gradient(var(--c),var(--c)) right bottom/calc(14 * var(--u)) 2px no-repeat,linear-gradient(var(--c),var(--c)) right bottom/2px calc(14 * var(--u)) no-repeat}
.sdev__scan{position:absolute;left:calc(8 * var(--u));right:calc(8 * var(--u));top:calc(10 * var(--u));height:3px;background:var(--amber);animation:fp-scan 2.2s cubic-bezier(.65,0,.35,1) infinite alternate}
.sdev__scan::before,.sdev__scan::after{content:"";position:absolute;top:-3px;width:2px;height:9px;background:var(--amber)}
.sdev__scan::before{left:0}.sdev__scan::after{right:0}
@keyframes fp-scan{to{transform:translate3d(0,calc(70 * var(--u)),0)}}
.sdev__rows{display:grid;gap:calc(5 * var(--u))}
.sdev__rows li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:calc(4 * var(--u));border-bottom:1px solid rgba(70,82,92,.6)}
.sdev__k{font:700 max(10px,calc(8.5 * var(--u)))/1 var(--f-label);letter-spacing:.12em;color:var(--muted)}
.sdev__v{position:relative;display:grid;justify-items:end;font:700 max(11px,calc(9.5 * var(--u)))/1 var(--f-mono)}
.sdev__v b{grid-area:1/1;font-weight:700}
.sdev__pend{color:var(--grey)}
.sdev__ok{color:var(--ok);opacity:0}
.sdev__foot{position:absolute;left:0;right:0;bottom:0;height:calc(44 * var(--u));display:grid;place-items:center;border-top:1px solid rgba(70,82,92,.6)}
.sdev__plate{display:grid;place-items:center;height:calc(22 * var(--u));padding:0 calc(18 * var(--u));background:var(--ok);color:var(--ink);font:700 max(11px,calc(10 * var(--u)))/1 var(--f-label);letter-spacing:.14em;clip-path:polygon(calc(9 * var(--u)) 0,calc(100% - 9 * var(--u)) 0,100% 50%,calc(100% - 9 * var(--u)) 100%,calc(9 * var(--u)) 100%,0 50%)}
.js .reveal .sdev__ok{opacity:0;transition:opacity .01s steps(1)}
.js .reveal .sdev__pend{transition:opacity .01s steps(1)}
.js .reveal.is-in .sdev__ok{opacity:1}.js .reveal.is-in .sdev__pend{opacity:0}
.js .reveal.is-in .sdev__rows li:nth-child(1) b{transition-delay:.7s}.js .reveal.is-in .sdev__rows li:nth-child(2) b{transition-delay:1.05s}.js .reveal.is-in .sdev__rows li:nth-child(3) b{transition-delay:1.4s}.js .reveal.is-in .sdev__rows li:nth-child(4) b{transition-delay:1.75s}.js .reveal.is-in .sdev__rows li:nth-child(5) b{transition-delay:2.1s}
.js .reveal .sdev__plate{opacity:0;transform:scaleX(.3);transition:opacity .2s ease 2.5s,transform .45s cubic-bezier(.7,0,.2,1) 2.5s}
.js .reveal.is-in .sdev__plate{opacity:1;transform:none}
.js .reveal .sgrid__col .sfact{opacity:0;transition:opacity .6s var(--ease),transform .8s var(--ease)}
.js .reveal .sgrid__col--l .sfact{transform:translate3d(-24px,0,0)}.js .reveal .sgrid__col--r .sfact{transform:translate3d(24px,0,0)}
.js .reveal.is-in .sgrid__col .sfact{opacity:1;transform:none}
.js .reveal.is-in .sgrid__col .sfact:nth-child(1){transition-delay:.3s}.js .reveal.is-in .sgrid__col .sfact:nth-child(2){transition-delay:.45s}
.snote{max-width:64ch;margin:clamp(28px,4vw,44px) auto 0;text-align:center;color:var(--grey);text-wrap:balance}

/* ticker caps */
.ticker__row{margin:0 64px}
.ticker__cap{position:absolute;top:0;bottom:0;z-index:2;width:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--panel2)}
.ticker__cap--l{left:0;border-right:1px solid var(--line)}.ticker__cap--r{right:0;border-left:1px solid var(--line)}
.ticker__cap span{font:700 11px/1 var(--f-mono);letter-spacing:.16em;color:var(--muted)}
.ticker__cap i{width:6px;height:6px;background:rgba(63,208,138,.25);animation:led 1.8s steps(1) infinite}
.ticker__cap i:nth-of-type(2){animation-delay:.6s}.ticker__cap i:nth-of-type(3){animation-delay:1.2s}
@keyframes led{0%{background:var(--ok)}33%{background:rgba(63,208,138,.25)}}
@media (max-width:599.98px){.ticker__row{margin:0 44px}.ticker__cap{width:44px}}
@media (prefers-reduced-motion:reduce){.hub__stem::after,.sdev__scan,.ticker__cap i{animation:none}}

.dec__w{display:inline-block;white-space:nowrap}
.dec__c{display:inline-block;text-align:center;overflow:visible}

/* mega panel: fixed under the masthead, full width */
@media (min-width:1280px){.mega{position:fixed;left:0;right:0;top:var(--mega-top,calc(var(--tb) + var(--mh)));max-height:calc(100vh - var(--mega-top,calc(var(--tb) + var(--mh))));z-index:49;border-top:1px solid var(--line)}}
/* corner marks: four L-brackets, inset = chamfer + 8px so they never touch the border, symmetric on all cards */
.ed__hot,.hg__hot{position:absolute;inset:0;background:none!important;opacity:1!important;pointer-events:none;--ci:calc(var(--ch) + 8px);--cl:14px}
.ed__hot i,.hg__hot i{position:absolute;width:var(--cl);height:var(--cl);opacity:0;transition:opacity .3s,clip-path .5s cubic-bezier(.16,1,.3,1)}
.ed__hot i::before,.ed__hot i::after,.hg__hot i::before,.hg__hot i::after{content:"";position:absolute;background:var(--amber);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.ed__hot i::before,.hg__hot i::before{left:0;right:0;height:2px;transform:scaleX(0)}
.ed__hot i::after,.hg__hot i::after{top:0;bottom:0;width:2px;transform:scaleY(0)}
.ed__hot i:nth-child(1),.hg__hot i:nth-child(1){left:var(--ci);top:var(--ci)}
.ed__hot i:nth-child(2),.hg__hot i:nth-child(2){right:var(--ci);top:var(--ci)}
.ed__hot i:nth-child(3),.hg__hot i:nth-child(3){left:var(--ci);bottom:var(--ci)}
.ed__hot i:nth-child(4),.hg__hot i:nth-child(4){right:var(--ci);bottom:var(--ci)}
.ed__hot i:nth-child(1)::before,.hg__hot i:nth-child(1)::before,.ed__hot i:nth-child(2)::before,.hg__hot i:nth-child(2)::before{top:0;transform-origin:var(--o,left)}
.ed__hot i:nth-child(3)::before,.hg__hot i:nth-child(3)::before,.ed__hot i:nth-child(4)::before,.hg__hot i:nth-child(4)::before{bottom:0;transform-origin:var(--o,left)}
.ed__hot i:nth-child(2),.ed__hot i:nth-child(4),.hg__hot i:nth-child(2),.hg__hot i:nth-child(4){--o:right}
.ed__hot i:nth-child(1)::after,.hg__hot i:nth-child(1)::after,.ed__hot i:nth-child(3)::after,.hg__hot i:nth-child(3)::after{left:0}
.ed__hot i:nth-child(2)::after,.hg__hot i:nth-child(2)::after,.ed__hot i:nth-child(4)::after,.hg__hot i:nth-child(4)::after{right:0}
.ed__hot i:nth-child(1)::after,.hg__hot i:nth-child(1)::after,.ed__hot i:nth-child(2)::after,.hg__hot i:nth-child(2)::after{transform-origin:top}
.ed__hot i:nth-child(3)::after,.hg__hot i:nth-child(3)::after,.ed__hot i:nth-child(4)::after,.hg__hot i:nth-child(4)::after{transform-origin:bottom}
.is-marked i,.ed__card:hover .ed__hot i,.ed__card:focus-visible .ed__hot i,.hg:hover .hg__hot i,.hg:focus-visible .hg__hot i{opacity:1}
.is-marked i::before,.is-marked i::after,.ed__card:hover .ed__hot i::before,.ed__card:hover .ed__hot i::after,.ed__card:focus-visible .ed__hot i::before,.ed__card:focus-visible .ed__hot i::after,.hg:hover .hg__hot i::before,.hg:hover .hg__hot i::after,.hg:focus-visible .hg__hot i::before,.hg:focus-visible .hg__hot i::after{transform:none}
.ed--main .ed__hot i{opacity:.75}.ed--main .ed__hot i::before,.ed--main .ed__hot i::after{transform:none}
.js .reveal .ed--main .ed__hot i{opacity:0}.js .reveal .ed--main .ed__hot i::before,.js .reveal .ed--main .ed__hot i::after{transform:scale(0)}
.js .reveal.is-in .ed--main .ed__hot i{opacity:.75;transition-delay:.7s}
.js .reveal.is-in .ed--main .ed__hot i::before,.js .reveal.is-in .ed--main .ed__hot i::after{transform:none;transition-delay:.75s}
.js .reveal.is-in .ed--main .ed__hot i:nth-child(2)::before,.js .reveal.is-in .ed--main .ed__hot i:nth-child(2)::after,.js .reveal.is-in .ed--main .ed__hot i:nth-child(3)::before,.js .reveal.is-in .ed--main .ed__hot i:nth-child(3)::after{transition-delay:.85s}
.js .reveal.is-in .ed--main .ed__hot i:nth-child(4)::before,.js .reveal.is-in .ed--main .ed__hot i:nth-child(4)::after{transition-delay:.95s}
.ed__card:hover .ed__hot i,.ed__card:hover .ed__hot i::before,.ed__card:hover .ed__hot i::after,.hg:hover .hg__hot i,.hg:hover .hg__hot i::before,.hg:hover .hg__hot i::after{transition-delay:0s!important}
/* hub cards: sweep the marks in once when the section arrives, then settle */
.js .reveal.is-in .hub__g .hg__hot i{animation:mark-sweep 1.4s cubic-bezier(.16,1,.3,1) 2.3s both}
.js .reveal.is-in .hub__g .hg__hot i::before,.js .reveal.is-in .hub__g .hg__hot i::after{animation:mark-draw 1.4s cubic-bezier(.16,1,.3,1) 2.3s both}
@keyframes mark-sweep{0%{opacity:0}20%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes mark-draw{0%{transform:scale(0)}25%{transform:none}75%{transform:none}100%{transform:scale(0)}}
.hg:hover .hg__hot i,.hg:hover .hg__hot i::before,.hg:hover .hg__hot i::after{animation:none!important}
.ed__top{padding:0 26px 14px}
@media (prefers-reduced-motion:reduce){.ed__hot i,.hg__hot i,.ed__hot i::before,.ed__hot i::after,.hg__hot i::before,.hg__hot i::after{transition:none;animation:none}}

@keyframes cut-flash{0%{color:var(--amber);clip-path:inset(0 0 55% 0)}20%{color:var(--amber);clip-path:inset(45% 0 0 0)}40%{color:var(--text);clip-path:inset(0 0 55% 0)}60%{color:var(--amber);clip-path:none}100%{color:var(--text);clip-path:none}}

/* CRT power-on, 0.9 s: black, centre dot, hairline snaps wide, blooms vertically, flash, gone */
.display--hud .tube{position:absolute;inset:0;z-index:30;pointer-events:none;background:#000;opacity:0}
.display--hud .tube::before{content:"";position:absolute;left:50%;top:50%;width:0;height:2px;background:#fff;transform:translate(-50%,-50%);opacity:0}
.display--hud .tube::after{content:"";position:absolute;inset:0;background:#fff;opacity:0}
.has-intro .hero .display--hud .tube{opacity:1}
.is-tube .hero .display--hud .tube{animation:tube-bg .9s cubic-bezier(.65,0,.35,1) forwards}
.is-tube .hero .display--hud .tube::before{animation:tube-line .9s cubic-bezier(.65,0,.35,1) forwards}
.is-tube .hero .display--hud .tube::after{animation:tube-flash .9s cubic-bezier(.65,0,.35,1) forwards}
@keyframes tube-line{0%{width:0;height:2px;opacity:0}8%{width:6px;height:6px;opacity:1}22%{width:6px;height:2px;opacity:1}44%{width:100%;height:2px;opacity:1}52%{width:100%;height:2px;opacity:1}72%{width:100%;height:100%;opacity:1}100%{width:100%;height:100%;opacity:0}}
@keyframes tube-flash{0%,66%{opacity:0}74%{opacity:.9}100%{opacity:0}}
@keyframes tube-bg{0%,72%{opacity:1}100%{opacity:0}}
.is-tube-on .hero .display--hud .tube{display:none}
@media (prefers-reduced-motion:reduce){.display--hud .tube{display:none}.has-intro .hero .display--hud>*{opacity:1}}

/* ---------- wait mode: public waiting page (data-intro="wait"), exactly one viewport, no scroll ---------- */
.is-wait .intro__age{padding-left:calc(var(--gut) + 96px);padding-right:calc(var(--gut) + 96px)}
.intro__lang{position:absolute;right:var(--gut);top:50%;transform:translateY(-50%)}
@media (max-width:719.98px){.is-wait .intro__age{padding-left:var(--gut);padding-right:calc(var(--gut) + 92px)}}
.intro__foot{position:absolute;left:0;right:0;bottom:0;z-index:4;padding-bottom:env(safe-area-inset-bottom);background:var(--ink);border-top:1px solid var(--line)}
.intro__foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:64px;background:linear-gradient(to bottom,rgba(34,48,64,0),var(--ground));pointer-events:none}
.intro__foot .intro__legal{position:static;height:auto;padding:4px 0 0;background:transparent;border-top:0;grid-template-columns:repeat(4,minmax(0,220px))}
.intro__foot .intro__legal::before{display:none}
.intro__fact{margin:0;padding:0 var(--gut) 10px;text-align:center;font:700 12px/1.3 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:599.98px){.intro__foot .intro__legal{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 8px 0}.intro__foot .intro__legal a{height:36px}.intro__foot .intro__legal a:nth-child(3)::before{display:none}.intro__fact{letter-spacing:.06em;padding-bottom:8px}}
@media (max-height:499.98px){.intro__stage{width:min(100vw,(100vh - 124px) * 1.25,1000px);height:calc(min(100vw,(100vh - 124px) * 1.25,1000px) * .8)}.intro__foot .intro__legal a{height:34px}.intro__fact{padding-bottom:6px}}
.intro__h1,.intro__pers{position:absolute;inset:0;margin:0;font:inherit;pointer-events:none;perspective:1400px;perspective-origin:50% calc(111 * var(--u))}
/* two-sided display: front = plate, back = countdown */
.intro__card{position:absolute;left:calc(40 * var(--u));top:calc(86 * var(--u));width:calc(220 * var(--u));height:calc(50 * var(--u));z-index:2;transform-style:preserve-3d}
.intro__card .intro__plate{left:0;top:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.intro__hot{position:absolute;left:calc(40 * var(--u));top:calc(111 * var(--u));width:calc(220 * var(--u));height:1px;background:var(--amber);opacity:0;z-index:3;pointer-events:none}
.is-wait .intro__welcome{transition:opacity .5s ease}
.is-wait .intro__cdk2{transition:opacity .9s ease}
.intro__face{position:absolute;left:calc(40 * var(--u));top:calc(86 * var(--u));width:calc(220 * var(--u));height:calc(50 * var(--u));z-index:2;display:none;background:var(--amber);clip-path:polygon(calc(18 * var(--u)) 0,calc(100% - 18 * var(--u)) 0,100% 50%,calc(100% - 18 * var(--u)) 100%,calc(18 * var(--u)) 100%,0 50%);transform:rotateX(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.is-wait .intro__face{display:block}
.is-static .intro__face{display:none}
.intro__facein{position:absolute;left:3px;right:3px;top:2px;bottom:2px;background:var(--ink);clip-path:polygon(calc(18 * var(--u) - 2px) 0,calc(100% - 18 * var(--u) + 2px) 0,100% 50%,calc(100% - 18 * var(--u) + 2px) 100%,calc(18 * var(--u) - 2px) 100%,0 50%);display:grid;align-content:center;justify-items:center;padding:calc(2.5 * var(--u)) calc(20 * var(--u))}
.intro__fk{display:flex;align-items:center;gap:calc(4 * var(--u));margin:0;font:700 max(11px,calc(6.4 * var(--u)))/1 var(--f-label);letter-spacing:calc(1 * var(--u));text-transform:uppercase;color:var(--amber);white-space:nowrap;opacity:0;transition:opacity .45s ease}
.intro__fsep{display:block;width:1px;height:calc(6 * var(--u));background:var(--amber);opacity:.6}
.intro__fk .mono{letter-spacing:calc(.6 * var(--u))}
.intro__fcd{display:flex;align-items:flex-start;justify-content:center;margin-top:calc(3 * var(--u))}
.intro__fc{position:relative;display:grid;justify-items:center;gap:calc(1.5 * var(--u));padding:0 calc(7 * var(--u));opacity:0;transition:opacity .45s ease}
.intro__fc+.intro__fc::before{content:"";position:absolute;left:0;top:calc(2 * var(--u));bottom:calc(2 * var(--u));width:1px;background:var(--line)}
.intro__fc b{display:block;font:700 max(24px,calc(20 * var(--u)))/1 var(--f-mono);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.intro__fc>span{font:700 max(10px,calc(4.8 * var(--u)))/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.is-launched .intro__fc b{color:var(--ok)}
/* static (reduced motion / no JS): plate stands, launch date below it */
.intro__date{position:absolute;left:0;width:calc(300 * var(--u));top:calc(168 * var(--u));height:calc(12 * var(--u));z-index:2;display:flex;justify-content:center;align-items:center;margin:0;font:700 max(12px,calc(7 * var(--u)))/1 var(--f-mono);letter-spacing:.12em;color:var(--amber);opacity:0}
.is-static .intro__date,html[data-intro="wait"]:not(.js) .intro__date{opacity:1}
.is-static .intro__warn,html[data-intro="wait"]:not(.js) .intro__warn{top:calc(188 * var(--u))}
.is-static .intro__note,html[data-intro="wait"]:not(.js) .intro__note{top:calc(209 * var(--u))}
html[data-intro="wait"]:not(.js) .intro{display:block;position:fixed;inset:0;z-index:300;overflow:hidden}
html[data-intro="wait"]:not(.js) body{overflow:hidden}
html[data-intro="wait"]:not(.js) .intro__t,html[data-intro="wait"]:not(.js) .intro__words span,html[data-intro="wait"]:not(.js) .intro__corners,html[data-intro="wait"]:not(.js) .intro__ground,html[data-intro="wait"]:not(.js) .intro__word{opacity:1}
html[data-intro="wait"]:not(.js) .intro__line,html[data-intro="wait"]:not(.js) .intro__platebg,html[data-intro="wait"]:not(.js) .intro__rail,html[data-intro="wait"]:not(.js) .intro__d::after{transform:none}
html[data-intro="wait"]:not(.js) .intro__line{background:var(--ok)}
html[data-intro="wait"]:not(.js) .intro__radar{display:none}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* slim header and footer (legal pages during the waiting period) */
.footer--slim{position:relative;z-index:2}
.footer--bare{padding-top:0}
.footer--bare .footer__legal{margin-top:0;border-top:0}
.footer__slim{display:grid;justify-items:center}
.footer__slim .footer__brand{justify-items:center;text-align:center}
.footer__slim .footer__factual{max-width:40ch}
.footer__legal a[href^="mailto"]{text-transform:none;letter-spacing:.06em}
@media (min-width:900px) and (max-width:1279.98px){
  .nav--slim{position:static;grid-column:2;height:var(--mh);padding:0;background:none;opacity:1;visibility:visible;transform:none;overflow:visible;transition:none}
  .nav--slim .nav__list{flex-direction:row;align-items:stretch;height:100%;padding:0}
  .nav--slim .nav__item{display:flex;border:0}
  .nav--slim .nav__link{min-height:0;height:100%;width:auto;padding:0 12px;font-size:14px;letter-spacing:.08em;white-space:nowrap;color:var(--text)}
  .nav--slim .nav__link[aria-current="page"]{color:var(--amber)}
  .nav--slim .nav__num{display:none}
}
@media (max-width:899.98px){.nav--slim{display:none}}

/* =========================================================
   NARROW VIEWPORTS (< 1024 px): no side columns.
   Tall / portrait: the 12 readouts form two instrument strips, one under the age bar (HUM … PITCH) and one above
   the legal footer (TEMP … CANT); the stage is centred in the band between them. JS measures the real heights of
   age bar, footer and strips into --ah / --fh / --st / --sb and the viewport into --ih (CSS values are fallbacks).
   Short landscape (< 500 px high): the readouts stay at the sides as 2 × 3 blocks.
   ========================================================= */
@media (max-width:1023.98px){
  .intro__rail,.intro__sep{display:none}
  .intro__col{width:auto;padding:0}
  .intro__d::after{display:none}
}
@media (max-width:1023.98px) and (min-height:500px){
  .intro{--ah:40px;--fh:48px;--st:88px;--sb:88px;--ih:100vh}
  .intro__corners{top:0;bottom:0}
  .intro__col{position:absolute;left:0;right:0;top:auto;bottom:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;align-items:stretch}
  .intro__col--r{top:var(--ah)}
  .intro__col--l{bottom:var(--fh)}
  .intro__d{position:relative;padding:8px 4px}
  .intro__d:nth-of-type(n+2)::before{content:"";position:absolute;left:0;top:50%;width:1px;height:36px;margin-top:-18px;background:rgba(70,82,92,.9);transform:scaleY(0);transition:transform .45s var(--ease)}
  .intro__col.is-on .intro__d::before{transform:scaleY(1)}
  .intro__col.is-on .intro__d:nth-of-type(2)::before{transition-delay:.06s}.intro__col.is-on .intro__d:nth-of-type(3)::before{transition-delay:.12s}.intro__col.is-on .intro__d:nth-of-type(4)::before{transition-delay:.18s}.intro__col.is-on .intro__d:nth-of-type(5)::before{transition-delay:.24s}.intro__col.is-on .intro__d:nth-of-type(6)::before{transition-delay:.3s}
  .intro__foot::before,.intro__legal::before{display:none}
  .intro__stage{--bt:calc(var(--ah) + var(--st));--bh:calc(var(--ih) - var(--ah) - var(--fh) - var(--st) - var(--sb));--sw:min(100vw,(var(--bh) - 40px) * 1.25);width:var(--sw);height:calc(var(--sw) * .8);top:calc(var(--bt) + var(--bh) / 2);transform:translate(-50%,-50%)}
}
@supports (height:100dvh){@media (max-width:1023.98px) and (min-height:500px){.intro{--ih:100dvh}}}
/* phones: 3 × 2 cells per strip, icon beside the value */
@media (max-width:719.98px) and (min-height:500px){
  .intro{--fh:76px;--st:122px;--sb:122px}
  .intro__col{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 6px}
  .intro__dk{letter-spacing:.18em}
  .intro__d{grid-template-columns:20px auto;grid-template-rows:19px 12px 8px;gap:3px 8px;justify-content:center;align-content:center;justify-items:start;text-align:left;padding:8px 6px}
  .intro__dk .dico{grid-column:1;grid-row:1;align-self:center}
  .intro__dk b{grid-column:2;grid-row:2;align-self:center}
  .intro__dv{grid-column:2;grid-row:1}
  .intro__bar{grid-column:2;grid-row:3}
  .intro__d:nth-of-type(4)::before{display:none}
  .intro__d:nth-of-type(-n+3)::after{display:block;left:0;right:0;width:auto;margin-left:0;top:auto;bottom:0}
}
/* phones, short landscape and short tablet windows: wider display plate, larger countdown type, lines re-spaced around it */
@media (max-width:719.98px) and (min-height:500px),(max-width:1023.98px) and (max-height:767.98px){
  .intro__card,.intro__face,.intro__plate{left:calc(15 * var(--u));width:calc(270 * var(--u));top:calc(81 * var(--u));height:calc(60 * var(--u))}
  .intro__card .intro__plate{left:0;top:0;width:100%;height:100%}
  .intro__hot{left:calc(15 * var(--u));width:calc(270 * var(--u))}
  .intro__hint{top:calc(12 * var(--u) + 2px)}
  .intro__welcome{top:calc(50 * var(--u))}
  .intro__words{top:calc(151 * var(--u))}
  .intro__warn{top:calc(179 * var(--u))}
  .intro__note{top:calc(202 * var(--u))}
  .intro__facein{padding:3px calc(12 * var(--u))}
  .intro__fk{font-size:11px}
  .intro__fc{padding:0 calc(5 * var(--u))}
  .intro__fc b{font-size:clamp(24px,calc(24 * var(--u)),32px)}
  .intro__fc>span{font-size:10px;letter-spacing:.1em}
  .is-static .intro__date,html[data-intro="wait"]:not(.js) .intro__date{top:calc(146 * var(--u))}
  .is-static .intro__words,html[data-intro="wait"]:not(.js) .intro__words{top:calc(161 * var(--u))}
  .is-static .intro__warn,html[data-intro="wait"]:not(.js) .intro__warn{top:calc(185 * var(--u))}
  .is-static .intro__note,html[data-intro="wait"]:not(.js) .intro__note{top:calc(208 * var(--u))}
}
@media (max-width:359.98px){.intro__dk{letter-spacing:.12em}}
/* short landscape: 2 × 3 blocks left and right of the stage */
@media (max-width:1023.98px) and (max-height:499.98px){
  .intro__corners{top:0;bottom:0}
  .intro__col{top:50%;bottom:auto;transform:translateY(-50%);display:grid;grid-template-columns:repeat(2,84px);grid-template-rows:repeat(3,auto)}
  .intro__col--l{left:8px}.intro__col--r{right:8px}
  .intro__d{position:relative;padding:6px 2px}
  .intro__d:nth-of-type(2n)::before{content:"";position:absolute;left:0;top:50%;width:1px;height:36px;margin-top:-18px;background:rgba(70,82,92,.9);transform:scaleY(0);transition:transform .45s var(--ease)}
  .intro__col.is-on .intro__d::before{transform:scaleY(1)}
  .intro__d:nth-of-type(-n+4)::after{display:block;left:0;right:0;width:auto;margin-left:0;top:auto;bottom:0}
}

/* ---- legal modal on the waiting page (Impressum, Datenschutz, Haftungsausschluss) ---- */
.lmodal{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;display:none;flex-direction:column;background:var(--ink);color:var(--grey);border:1px solid var(--line);box-shadow:0 24px 80px rgba(0,0,0,.6)}
.lmodal[open]{display:flex;animation:lmodalIn .32s cubic-bezier(.2,.7,.2,1)}
.lmodal::backdrop{background:rgba(11,15,19,.78);backdrop-filter:blur(3px)}
.lmodal__bar{position:relative;display:grid;gap:6px;padding:22px 72px 18px 28px;border-bottom:1px solid var(--line)}
.lmodal__bar::before{content:"";position:absolute;left:0;top:0;width:56px;height:2px;background:var(--amber)}
.lmodal__k{font:700 12px/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--amber)}
.lmodal__h{font:700 26px/1.1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;color:#fff}
.lmodal__x{position:absolute;right:12px;top:50%;width:44px;height:44px;margin-top:-22px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);color:var(--muted);font:400 26px/1 var(--f-label);cursor:pointer;transition:color .2s,border-color .2s}
.lmodal__x:hover,.lmodal__x:focus-visible{color:var(--amber);border-color:var(--amber);outline:0}
.lmodal__body{overflow-y:auto;overscroll-behavior:contain;padding:28px 28px 36px;outline:0}
.lmodal__lead{color:var(--muted);max-width:68ch;margin-bottom:28px}
.lmodal .prose{gap:32px}
.lmodal .prose h2{font-size:18px}
.lmodal .prose a{color:var(--amber)}
@keyframes lmodalIn{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
@media (max-width:600px){.lmodal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0}.lmodal__bar{padding:18px 64px 14px 18px}.lmodal__h{font-size:20px}.lmodal__body{padding:20px 18px calc(28px + env(safe-area-inset-bottom))}.lmodal .prose dl{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.lmodal[open]{animation:none}}
/* ---- lists inside legal texts (page and modal) ---- */
.prose ul{display:grid;gap:8px;max-width:68ch;padding-left:20px;list-style:square;color:var(--grey);columns:auto}
.prose li::marker{color:var(--amber)}
.prose strong{color:#F2F5F7;font-weight:600}

/* SITE patch 13.10.2026: lists in content blocks (same look as .prose ul). */
.body ul{display:grid;gap:8px;padding-left:20px;list-style:square;margin:0 0 1em}
.body li::marker{color:var(--amber)}
/* SITE patch 13.10.2026: fact row adapts to 1 to 4 facts, no empty grid cell. */
@media (min-width:720px){.facts{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}

/* ---------- SITE 13.10.2026: product page VISION (pilot) ---------- */
.vp-hero{padding:clamp(28px,4vw,56px) 0 clamp(48px,6vw,88px)}
.vp-hero>.wrap{display:grid;gap:clamp(32px,4vw,56px);align-items:center}
@media (min-width:1100px){.vp-hero>.wrap{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}}
.vp-hero__text nav{margin-bottom:28px}
.vp-title{font:700 clamp(64px,9vw,116px)/.9 var(--f-label);letter-spacing:.02em;text-transform:uppercase;color:var(--text)}
.vp-claim{margin-top:22px;font:700 clamp(22px,2.4vw,30px)/1.2 var(--f-label);color:var(--amber);max-width:22ch;text-wrap:balance}
.vp-intro{margin-top:18px;font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:var(--grey);max-width:46ch;text-wrap:pretty}
.vp-lab{margin:0;display:grid;gap:18px}
.vp-device{padding:12px;background:var(--panel);clip-path:var(--cut4);--ch:22px}
.vp-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:7px 14px;background:var(--amber);color:var(--ink);font:700 13px/1 var(--f-label);letter-spacing:.16em;text-transform:uppercase}
.vp-strip span:last-child{justify-self:end}
.vp-screen{width:100%;height:auto;display:block;background:var(--ink)}
.vp-hud__k{font:700 16px var(--f-label);letter-spacing:.1em;fill:var(--muted);text-transform:uppercase}
.vp-hud__v{font:700 28px var(--f-mono);fill:var(--text)}
.vp-hud__item--tap{cursor:pointer}
.vp-hud__item--tap .vp-hud__v{fill:var(--amber)}
.vp-hud__item--tap:focus{outline:none}
.vp-hud__item--tap:focus-visible .vp-hud__v{text-decoration:underline}
.vp-hud__v--pulse{fill:var(--coral)}
.vp-controls{display:grid;gap:14px;padding:18px 20px;border:1px solid var(--line);background:var(--panel2)}
.vp-try{font:700 16px/1.3 var(--f-label);color:var(--text)}
.vp-ctl{display:grid;gap:8px}
@media (min-width:720px){.vp-ctl{grid-template-columns:110px minmax(0,1fr);align-items:center}}
.vp-ctl__k{font:700 13px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.vp-ctl__set{display:flex;flex-wrap:wrap;gap:6px}
.vp-btn{min-height:40px;padding:0 14px;border:1px solid var(--line);color:var(--grey);font:700 14px/1 var(--f-label);letter-spacing:.06em;transition:background-color .15s,color .15s,border-color .15s}
.vp-btn:hover{color:var(--text);border-color:var(--grey)}
.vp-btn[aria-pressed="true"]{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.vp-btn--icon{width:44px;min-height:44px;padding:0;display:grid;place-items:center}
.vp-btn--icon svg{width:30px;height:30px}
.vp-swatch{width:40px;padding:0;position:relative}
.vp-swatch::after{content:"";position:absolute;inset:8px;background:var(--sw)}
.vp-swatch[aria-pressed="true"]{background:transparent;border-color:var(--text);box-shadow:inset 0 0 0 2px var(--text)}
.vp-swatch--0{--sw:#E5484D}.vp-swatch--1{--sw:#3FD08A}.vp-swatch--2{--sw:#F2A93B}.vp-swatch--3{--sw:#F2F5F7}.vp-swatch--4{--sw:#4CC9F0}
.vp-cap{font-size:14px;line-height:1.5;color:var(--muted)}
.vp-sec{padding:clamp(56px,7vw,112px) 0;border-top:1px solid var(--panel)}
.vp-h2{font:700 clamp(30px,4vw,52px)/1.05 var(--f-label);letter-spacing:.03em;text-transform:uppercase;color:var(--text)}
.vp-h3{font:700 22px/1.2 var(--f-label);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin-top:22px}
.vp-p{margin-top:10px;color:var(--grey);line-height:1.65;max-width:52ch;text-wrap:pretty}
.vp-views{display:grid;gap:clamp(32px,4vw,56px);margin-top:clamp(32px,4vw,56px)}
@media (min-width:900px){.vp-views{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vp-view__art{width:100%;height:auto;border:1px solid var(--panel)}
.vp-split{display:grid;gap:clamp(24px,3vw,40px)}
@media (min-width:1000px){.vp-split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}
.vp-prose{display:grid;gap:18px;color:var(--grey);font-size:clamp(17px,1.4vw,19px);line-height:1.7;max-width:60ch}
.vp-prose p{text-wrap:pretty}
.vp-prose strong{color:var(--text)}
.vp-sec--calm .vp-prose p:first-child{font:700 clamp(22px,2.2vw,28px)/1.35 var(--f-label);color:var(--text)}
.vp-gestures{display:grid;gap:clamp(28px,3vw,40px);margin-top:clamp(32px,4vw,56px);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.vp-gestures{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.vp-gestures{grid-template-columns:repeat(4,minmax(0,1fr))}}
.vp-gesture__art{width:96px;height:96px}
.vp-use-more{margin-top:clamp(28px,3vw,40px);max-width:70ch}
.vp-specs{display:grid;border-top:1px solid var(--line)}
.vp-specs__row{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--panel)}
@media (min-width:640px){.vp-specs__row{grid-template-columns:200px minmax(0,1fr);gap:24px}}
.vp-specs dt{font:700 14px/1.4 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vp-specs dd{margin:0;color:var(--text)}
.vp-note{margin-top:28px}
.vp-ring{transform-origin:500px 280px;animation:vp-spin 24s linear infinite}
.vp-ring__beat{transform-origin:500px 280px;animation:vp-beat .83s ease-out infinite}
@keyframes vp-spin{to{transform:rotate(360deg)}}
@keyframes vp-beat{0%{transform:scale(1)}14%{transform:scale(1.07)}40%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.vp-ring,.vp-ring__beat{animation:none}}
/* SITE 13.10.2026: VISION hero runs the real VISION interface in a canvas. */
.vp-line{margin-top:22px;font:700 clamp(20px,2vw,26px)/1.25 var(--f-label);color:var(--amber)}
.vw{margin:0;display:grid;gap:14px}
.vw__screen{display:block;width:100%;height:auto;aspect-ratio:800/480;background:var(--ink);touch-action:none;cursor:crosshair}
.vw__cap{font-size:14px;line-height:1.5;color:var(--muted)}
.vw-keys{margin-top:26px;display:grid;border-top:1px solid var(--panel)}
.vw-keys__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:9px 0;border-bottom:1px solid var(--panel)}
.vw-keys dt{font:700 14px/1.35 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.vw-keys dd{margin:0;font-size:15px;line-height:1.35;color:var(--grey)}
/* Below the two-column width the live screen follows the intro, the gesture list follows the screen. */
@media (max-width:1099px){.vp-hero>.wrap{gap:20px}.vp-hero>.wrap>.vw{margin:12px 0}.vp-hero__text{display:contents}.vp-hero>.wrap>.vw{order:1}.vp-hero .vw-keys{order:2}}
