@font-face{font-family:"Space Grotesk";src:url(/fonts/space-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 800;font-display:swap}

:root{
  --bg0:#050d2b;--bg1:#0a1f52;--bg2:#0f2f72;
  --ink:#fff;--ink2:#b8c8ee;--ink3:#8095c8;
  --line:rgba(140,180,255,.17);--line2:rgba(140,180,255,.32);
  --card:rgba(255,255,255,.045);
  --accent:#2f9bff;--cyan:#3ad0ff;--amber:#ffb547;--violet:#a99bff;
  --head:"Space Grotesk",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
  --pad:clamp(20px,5.2vw,88px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:clamp(12px,min(1.04vw,1.95vh),18px);scroll-snap-type:y mandatory;scroll-behavior:auto;background:var(--bg0);-webkit-text-size-adjust:100%}
html.lock{overflow:hidden;scroll-snap-type:none}
body{font-family:var(--body);color:var(--ink);background:var(--bg0);line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:fixed;left:8px;top:-60px;z-index:200;background:#fff;color:#000;padding:.6rem 1rem;border-radius:8px}.skip:focus{top:8px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}

/* ---------- topbar / nav ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:50;height:4.6rem;display:flex;align-items:center;gap:1rem;padding:0 var(--pad);background:linear-gradient(180deg,rgba(5,13,43,.82),rgba(5,13,43,0));pointer-events:none}
.topbar>*{pointer-events:auto}
.brand img{height:2.2rem;width:auto}
.ttl{font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);flex:1}
.ttl .s{display:none}
.btn-backlog{font:500 .78rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:.7rem 1.1rem;border:1px solid var(--line2);border-radius:99px;background:rgba(10,31,82,.55);transition:.25s}
.btn-backlog:hover{border-color:var(--cyan);background:rgba(58,208,255,.12)}
.dots{position:fixed;right:1.6rem;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:.55rem}
.dots button{width:.62rem;height:.62rem;border-radius:50%;border:1.5px solid rgba(184,200,238,.55);transition:.25s;position:relative}
.dots button::after{content:"";position:absolute;inset:-.4rem}
.dots button:hover{border-color:var(--cyan)}
.dots button[aria-current=true]{background:var(--cyan);border-color:var(--cyan);transform:scale(1.25)}
.count{position:fixed;right:1.15rem;top:calc(50% + var(--h,0px) + 1rem);z-index:50;font:500 .7rem/1 var(--mono);letter-spacing:.08em;color:var(--ink3)}
.count b{color:var(--ink);font-weight:500}
.dots,.count{transition:opacity .3s}
html.lock .dots,html.lock .count,html.lock .topbar{opacity:0;pointer-events:none}

/* ---------- slides ---------- */
.slide{position:relative;min-height:100svh;display:flex;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;
  background:radial-gradient(120% 90% at 78% 30%,var(--bg2) 0%,var(--bg1) 45%,var(--bg0) 100%)}
.bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.media{position:absolute;inset:0;opacity:.0;transition:opacity 1.2s ease}
.slide.on .media{opacity:var(--mo,.34)}
.hero .media,.close .media{--mo:.9}
.media img,.media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media video{opacity:0;transition:opacity .9s}.media video.live{opacity:1}
.media.kb img{animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.2%,-1%)}}
.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,13,43,.86) 0%,rgba(5,13,43,.62) 52%,rgba(5,13,43,.35) 100%)}
.hero .shade,.close .shade{background:linear-gradient(90deg,rgba(5,13,43,.86) 0%,rgba(5,13,43,.45) 55%,rgba(5,13,43,.1) 100%)}
.rings{position:absolute;right:-9vw;top:50%;width:min(78vh,50vw);transform:translateY(-50%);z-index:0;opacity:.5;pointer-events:none;overflow:visible}
.rings.big{right:-3vw;width:min(104vh,64vw);opacity:.85}
.ring{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;animation:ringp 7s ease-in-out infinite;animation-delay:calc(var(--i)*-1.4s)}
@keyframes ringp{0%,100%{transform:scale(.97);stroke-opacity:.22}50%{transform:scale(1.02);stroke-opacity:.62}}
.node{fill:var(--accent);stroke:var(--bg1);stroke-width:2;animation:nodep 4s ease-in-out infinite;animation-delay:calc(var(--i)*-.7s)}
@keyframes nodep{0%,100%{opacity:.35}50%{opacity:1}}
.inner{position:relative;z-index:2;width:100%;max-width:92rem;margin:0 auto;padding:6rem calc(var(--pad) + 2.6rem) 3.2rem var(--pad);display:flex;flex-direction:column;justify-content:center;gap:1.5rem}
.slide.hero .inner,.slide.close .inner{gap:1.2rem}
.kicker{font:500 .78rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.title{font:600 clamp(2rem,3.5rem,3.5rem)/1.06 var(--head);letter-spacing:-.02em;max-width:22ch;text-wrap:balance}
.hero .title{font-size:5.1rem;max-width:13ch;line-height:1.02}
.close .title{font-size:4.6rem;max-width:14ch}
.ln-w{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.ln-i{display:block;will-change:transform}
.lead{font-size:1.5rem;line-height:1.35;color:var(--ink2);max-width:34ch}
.lead.sm{font-size:1.15rem;max-width:62ch}
.sign{font-size:1rem;color:var(--ink3);margin-top:1.6rem}
.note{font-size:.95rem;color:var(--ink2);max-width:90ch;line-height:1.5}
.hint{margin-top:2.2rem;display:flex;align-items:center;gap:.8rem;font:500 .7rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}
.hint i{width:1px;height:2.2rem;background:linear-gradient(var(--cyan),transparent);animation:hint 2s ease-in-out infinite}
.hint-m{display:none}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
h3{font:600 1.2rem/1.2 var(--head);letter-spacing:-.01em}
h4{font:500 .78rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:.9rem}
h4 em{font-style:normal;color:var(--ink3);text-transform:none;letter-spacing:.02em}

/* entrance states (GSAP drives them; failsafe if JS is late) */
.js [data-a=kicker],.js [data-a=s]{opacity:0;transform:translateY(18px)}
.js .title:not(.split){opacity:0}
.js .link .ln{transform:scaleX(0)}.js .link .dots{opacity:0}
.js .track span{transform:scaleX(0)}
.js:not(.ready) [data-a=kicker],.js:not(.ready) [data-a=s],.js:not(.ready) .title:not(.split){animation:show .01s 3.5s forwards}
@keyframes show{to{opacity:1;transform:none}}
.rm [data-a],.rm .title{opacity:1!important;transform:none!important}
.rm .link .ln,.rm .track span{transform:none!important}.rm .link .dots{opacity:1!important}
.rm .ring,.rm .node,.rm .media.kb img,.rm .hint i{animation:none}
@media (prefers-reduced-motion:reduce){.js [data-a],.js .title{opacity:1;transform:none}.ring,.node,.media.kb img,.hint i{animation:none}.js .link .ln,.js .track span{transform:none}.js .link .dots{opacity:1}}

/* ---------- tables ---------- */
.tbl{width:100%;max-width:84rem;border:1px solid var(--line);border-radius:1rem;overflow:hidden;background:rgba(7,21,64,.55)}
.tr{display:grid;grid-template-columns:1.1fr 2.5fr 1.5fr;gap:1.4rem;align-items:center;padding:.82rem 1.3rem;border-top:1px solid var(--line);font-size:1rem}
.tr.th{border-top:0;background:rgba(47,155,255,.12);font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);padding-block:.9rem}
.tr .c1{font-weight:600;font-family:var(--head);font-size:1.05rem}
.tr .c3{color:var(--ink2)}
.modes .tr{grid-template-columns:1.5fr 1.6fr 2.2fr}
.mode{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.mode em{font-style:normal;color:var(--ink2);font-size:.92rem}
.chip{display:inline-block;font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:.45rem .75rem;border-radius:99px;border:1px solid}
.chip.auto{color:var(--cyan);background:rgba(58,208,255,.1);border-color:rgba(58,208,255,.4)}
.chip.appr{color:var(--amber);background:rgba(255,181,71,.1);border-color:rgba(255,181,71,.4)}
.chip.sugg{color:var(--violet);background:rgba(169,155,255,.1);border-color:rgba(169,155,255,.4)}

/* ---------- cards ---------- */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;max-width:84rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:1.1rem;padding:1.4rem;display:flex;flex-direction:column;gap:.7rem;backdrop-filter:blur(2px)}
.card p{color:var(--ink2);font-size:.98rem}
.cap{padding:0;overflow:hidden}.cap>h3,.cap>p{padding-inline:1.4rem}.cap>h3{margin-top:.2rem}.cap>p:last-child{padding-bottom:1.4rem}
.cap-media{position:relative;aspect-ratio:16/8.2;background:radial-gradient(90% 120% at 70% 20%,rgba(47,155,255,.35),rgba(10,31,82,.4));overflow:hidden;border-bottom:1px solid var(--line)}
.cap-media .media{--mo:1;opacity:1;transition:none}.cap-media .shade{display:none}
.cap-ico{position:absolute;left:50%;top:50%;width:3.6rem;height:3.6rem;margin:-1.8rem 0 0 -1.8rem;color:var(--cyan);opacity:.85}
.cap-n{position:absolute;left:1rem;top:.9rem;font:500 .75rem/1 var(--mono);letter-spacing:.14em;color:var(--cyan);z-index:2}
.story{color:var(--ink)!important;border-top:1px solid var(--line);padding-top:.7rem;margin-top:.2rem}.story b{color:var(--cyan);font-weight:500;font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.tag{font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.nnl .card.next .tag{color:var(--violet)}.nnl .card.later .tag{color:var(--ink3)}
.nnl .card{border-top:2px solid var(--cyan)}.nnl .card.next{border-top-color:var(--violet)}.nnl .card.later{border-top-color:var(--ink3)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;max-width:84rem}
.plain{list-style:none;display:grid;gap:.5rem}.plain li{padding-left:1.1rem;position:relative;color:var(--ink2);font-size:1rem}
.plain li::before{content:"";position:absolute;left:0;top:.62em;width:.4rem;height:.4rem;border-radius:50%;background:var(--accent)}
.check{list-style:none;display:grid;gap:.75rem}.check li{position:relative;padding-left:1.7rem;font-size:1.02rem;color:var(--ink2)}
.check li::before{content:"";position:absolute;left:0;top:.28em;width:.9rem;height:.9rem;border-radius:50%;border:1.5px solid var(--accent)}
.check.m li:first-child{color:var(--ink);font-weight:600}.check.m li:first-child::before{background:var(--cyan);border-color:var(--cyan)}
.two.big{gap:3.2rem}
.nextstep{display:flex;align-items:center;gap:1.4rem;padding:1.2rem 1.5rem;border:1px solid var(--line2);border-radius:1rem;background:rgba(47,155,255,.1);max-width:84rem}
.nextstep span{font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);white-space:nowrap}.nextstep p{font-size:1.15rem}
.lines3{list-style:none;display:grid;gap:1.1rem;max-width:62rem}
.lines3 li{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;align-items:baseline;padding:1.1rem 0;border-top:1px solid var(--line)}
.lines3 .num{font:500 .85rem/1 var(--mono);color:var(--cyan);letter-spacing:.1em}
.lines3 p{font:500 1.4rem/1.3 var(--head);letter-spacing:-.01em}

/* flow */
.flowrow{display:grid;grid-template-columns:1fr 3.4rem 1fr 3.4rem 1fr 3.4rem 1fr;align-items:stretch;max-width:84rem}
.stage{background:rgba(7,21,64,.7);border:1px solid var(--line);border-radius:1rem;padding:1.2rem 1.2rem 1.3rem}
.stage .idx{font:500 .72rem/1 var(--mono);color:var(--cyan);letter-spacing:.14em}
.stage h3{margin:.55rem 0 .8rem;font-size:1.35rem}
.stage ul{list-style:none;display:grid;gap:.45rem}.stage li{color:var(--ink2);font-size:.95rem;padding-left:.9rem;position:relative}
.stage li::before{content:"";position:absolute;left:0;top:.6em;width:.35rem;height:.35rem;border-radius:50%;background:var(--accent)}
.link{position:relative;align-self:center;height:2px}
.link .ln{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--cyan));transform-origin:left;display:block}
.link .dots i{position:absolute;top:50%;left:0;width:.5rem;height:.5rem;margin:-.25rem 0 0 -.25rem;border-radius:50%;background:var(--cyan);box-shadow:0 0 .9rem var(--cyan);animation:dotx 2s linear infinite;animation-delay:calc(var(--k,0)*-.66s)}
.link .dots i:nth-child(1){--k:0}.link .dots i:nth-child(2){--k:1}.link .dots i:nth-child(3){--k:2}
@keyframes dotx{0%{left:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}
@keyframes doty{0%{top:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{top:100%;opacity:0}}
.techbox{max-width:84rem;border:1px solid var(--line);border-radius:1rem;padding:1.2rem 1.4rem;background:rgba(7,21,64,.6);display:grid;gap:.8rem}
.techbox>p{color:var(--ink2);font-size:.98rem}.techbox .mini{font-size:.85rem;color:var(--ink3)}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.chips li{font:500 .74rem/1 var(--mono);letter-spacing:.04em;padding:.5rem .8rem;border-radius:99px;border:1px solid var(--line2);color:var(--ink);background:rgba(47,155,255,.1)}

/* roadmap */
.roadmap{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;padding-top:2.2rem;max-width:84rem}
.track{position:absolute;left:.45rem;right:0;top:.5rem;height:2px;background:var(--line)}
.track span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--cyan));transform-origin:left}
.phase{position:relative;display:flex;flex-direction:column;gap:.55rem;padding:1.2rem 1.2rem 1.3rem;background:var(--card);border:1px solid var(--line);border-radius:1rem}
.phase .pin{position:absolute;left:0;top:-1.95rem;width:1rem;height:1rem;border-radius:50%;background:var(--bg1);border:2px solid var(--cyan);box-shadow:0 0 0 .3rem rgba(58,208,255,.14)}
.phase .ph{font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.phase p{color:var(--ink2);font-size:.95rem}.phase .done{color:var(--ink);margin-top:auto;padding-top:.6rem;border-top:1px solid var(--line)}.phase .done b{font:500 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-right:.3rem}

/* risks */
.riskgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:.9rem;max-width:88rem}
.risk{grid-column:span 3;padding:1.05rem 1.15rem;gap:.5rem}.risk:nth-child(n+5){grid-column:span 4}
.risk h3{font-size:1.08rem}.rn{font:500 .68rem/1 var(--mono);letter-spacing:.14em;color:var(--cyan)}
.risk p{font-size:.88rem;line-height:1.4;color:var(--ink)}.risk small{display:block;font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:.25rem}
.risk .mit{border-top:1px solid var(--line);padding-top:.5rem}.risk .mit{color:var(--ink2)}
.risks .inner{gap:1.1rem}

.grp .gn{font:500 .72rem/1 var(--mono);color:var(--cyan);letter-spacing:.14em}.grp .who{color:var(--ink3)!important;font-size:.88rem!important;margin-bottom:.3rem}
.grp ul{list-style:none;display:grid;gap:.5rem;border-top:1px solid var(--line);padding-top:.8rem}.grp li{font-size:.98rem;color:var(--ink2);padding-left:1rem;position:relative}
.grp li::before{content:"";position:absolute;left:0;top:.62em;width:.4rem;height:.4rem;border-radius:50%;background:var(--accent)}

.epicsum{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;max-width:62rem}
.epicsum li{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.9rem;background:rgba(7,21,64,.6)}
.epicsum b{font:500 .8rem/1 var(--mono);color:var(--cyan);letter-spacing:.1em}.epicsum span{font:600 1.1rem/1.2 var(--head)}.epicsum small{font:500 .62rem var(--mono);letter-spacing:.12em;color:var(--ink3);margin-left:.3rem}.epicsum em{font-style:normal;font-size:.85rem;color:var(--ink2)}
.cta{display:inline-flex;align-items:center;gap:.9rem;font:600 1.5rem/1 var(--head);text-decoration:none;color:#04122f;padding:1.35rem 2.4rem;border-radius:99px;background:linear-gradient(135deg,var(--accent),var(--cyan));box-shadow:0 .6rem 2.4rem rgba(47,155,255,.35);transition:transform .25s,box-shadow .25s}
.cta:hover{transform:translateY(-3px);box-shadow:0 1rem 3rem rgba(58,208,255,.45)}.cta span{transition:transform .25s}.cta:hover span{transform:translateX(5px)}

/* ---------- backlog overlay ---------- */
.bl{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:radial-gradient(110% 80% at 80% 0%,var(--bg2) 0%,var(--bg1) 40%,var(--bg0) 100%);color:var(--ink);overscroll-behavior:contain}
.bl[hidden]{display:none}
.bl-head{display:flex;align-items:center;gap:1.2rem;padding:1rem 1.6rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.back{font:500 .85rem/1 var(--mono);letter-spacing:.06em;padding:.8rem 1.1rem;border-radius:99px;border:1px solid var(--line2);background:rgba(47,155,255,.14);transition:.2s;white-space:nowrap}.back:hover{border-color:var(--cyan);background:rgba(58,208,255,.18)}
.bl-title{font:600 1.35rem/1 var(--head);flex:1}.bl-title small{font:500 .72rem var(--mono);letter-spacing:.1em;color:var(--ink3);margin-left:.6rem;text-transform:uppercase}
.bl-tools{display:flex;gap:.8rem;align-items:center}
.seg{display:flex;border:1px solid var(--line2);border-radius:99px;padding:.2rem}.seg button{font:500 .78rem/1 var(--mono);letter-spacing:.06em;padding:.55rem .95rem;border-radius:99px;color:var(--ink2);transition:.2s}.seg button[aria-selected=true]{background:rgba(47,155,255,.28);color:#fff}
.dl{font:500 .78rem/1 var(--mono);letter-spacing:.06em;text-decoration:none;padding:.75rem 1rem;border:1px solid var(--line2);border-radius:99px;color:var(--ink2);transition:.2s}.dl:hover{color:#fff;border-color:var(--cyan)}
.bl-filters{display:flex;gap:1.2rem;align-items:center;padding:.8rem 1.6rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.search input{width:min(22rem,70vw);font:400 .9rem var(--body);color:#fff;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:99px;padding:.65rem 1rem}.search input::placeholder{color:var(--ink3)}.search input:focus{outline:none;border-color:var(--cyan)}
.fgroup{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.fl{font:500 .66rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-right:.2rem}
.fchip{font:500 .74rem/1 var(--mono);padding:.5rem .75rem;border-radius:99px;border:1px solid var(--line);color:var(--ink2);transition:.2s}
.fchip:hover{border-color:var(--line2);color:#fff}.fchip[aria-pressed=true]{background:rgba(47,155,255,.2);border-color:rgba(58,208,255,.45);color:#fff}
.ftoggle{display:none;font:500 .74rem/1 var(--mono);padding:.7rem .9rem;border-radius:99px;border:1px solid var(--line2);color:var(--ink2)}
.reset{font:500 .74rem var(--mono);color:var(--cyan);padding:.4rem .6rem;text-decoration:underline;text-underline-offset:3px}
.bl-body{flex:1;overflow:auto;padding:1.2rem 1.6rem 3rem;-webkit-overflow-scrolling:touch}
.board,.tline{display:grid;grid-template-columns:repeat(4,minmax(18rem,1fr));gap:1.1rem;min-width:76rem;align-items:start}
.epic{display:flex;flex-direction:column;gap:.7rem;min-width:0}
.ep-head{width:100%;text-align:left;padding:1.1rem 1.1rem 1rem;border:1px solid var(--line2);border-radius:1rem;background:rgba(15,47,114,.55);display:flex;flex-direction:column;gap:.55rem;cursor:default}
.ep-top{display:flex;align-items:center;gap:.6rem}.ep-id{font:500 .78rem/1 var(--mono);color:#04122f;background:var(--cyan);padding:.3rem .5rem;border-radius:.4rem}
.ep-name{font:600 1.15rem/1.1 var(--head);flex:1}.ep-tag{font:500 .62rem/1 var(--mono);letter-spacing:.14em;color:var(--cyan);border:1px solid rgba(58,208,255,.4);padding:.28rem .45rem;border-radius:99px}
.ep-count{font:500 .72rem var(--mono);color:var(--ink3)}
.ep-chev{display:none}
.ep-more{display:grid;gap:.55rem}.ep-more p{font-size:.86rem;color:var(--ink2);line-height:1.45}
.ep-more .k{display:block;font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:.2rem}
.ep-items{display:grid;gap:.6rem}
.it{border:1px solid var(--line);border-radius:.85rem;background:var(--card);transition:border-color .2s,background .2s}
.it:hover{border-color:var(--line2)}.it.open{background:rgba(255,255,255,.07);border-color:var(--line2)}
.it-h{width:100%;text-align:left;padding:.8rem .9rem;display:grid;gap:.45rem}
.it-m{display:flex;align-items:center;gap:.5rem;font:500 .68rem/1 var(--mono);letter-spacing:.06em}
.it-id{color:var(--cyan)}.it-ty{color:var(--ink3);text-transform:uppercase;letter-spacing:.12em}
.pr{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;color:var(--ink2)}.bars{display:inline-flex;gap:2px;align-items:flex-end;height:.7rem}.bars i{width:3px;background:var(--line2);border-radius:1px}.bars i:nth-child(1){height:.35rem}.bars i:nth-child(2){height:.52rem}.bars i:nth-child(3){height:.7rem}.bars i.on{background:var(--cyan)}
.it-t{font:500 .95rem/1.3 var(--body);color:#fff}
.it-b{display:none;padding:0 .9rem .95rem;gap:.7rem}.it.open .it-b{display:grid}
.it-b p{font-size:.86rem;color:var(--ink2);line-height:1.5}
.it-b h5{font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:.45rem}
.crit{list-style:none;display:grid;gap:.5rem}.crit li{position:relative;padding-left:1.35rem;font-size:.84rem;line-height:1.45;color:var(--ink2)}
.crit li::before{content:"";position:absolute;left:0;top:.2em;width:.8rem;height:.8rem;border-radius:.25rem;border:1.5px solid var(--line2)}
.dep{border-left:2px solid var(--cyan);padding-left:.7rem}
.empty{font-size:.85rem;color:var(--ink3);padding:.8rem;border:1px dashed var(--line);border-radius:.8rem}
.tline{position:relative;padding-top:1.6rem}.tline::before{content:"";position:absolute;left:0;right:0;top:.55rem;height:2px;background:linear-gradient(90deg,var(--accent),var(--cyan))}
.phcol{position:relative;display:flex;flex-direction:column;gap:.7rem}.phcol::before{content:"";position:absolute;left:0;top:-1.5rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--bg1);border:2px solid var(--cyan)}
.ph-head{padding:.9rem 1rem;border:1px solid var(--line2);border-radius:1rem;background:rgba(15,47,114,.55)}
.ph-head small{display:block;font:500 .66rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:.4rem}.ph-head strong{font:600 1.15rem var(--head)}.ph-head p{font-size:.84rem;color:var(--ink2);margin-top:.3rem}
.eg{display:flex;align-items:center;gap:.5rem;font:500 .66rem var(--mono);letter-spacing:.1em;color:var(--ink3);text-transform:uppercase;margin-top:.3rem}.eg b{color:var(--cyan);font-weight:500}

/* ====================== MOBILE ====================== */
@media (max-width:800px){
  html{font-size:16px;scroll-snap-type:y proximity}
  .dots{display:none}
  .count{top:calc(env(safe-area-inset-top) + 1.45rem);right:6.6rem;margin:0;transform:translateY(-50%)}
  .topbar{height:3.6rem;padding:env(safe-area-inset-top) 1rem 0;gap:.7rem}
  .brand img{height:1.8rem}
  .ttl .f{display:none}.ttl .s{display:inline}.ttl{font-size:.64rem}
  .btn-backlog{font-size:.7rem;padding:.6rem .9rem}
  .slide{min-height:100svh}
  .inner{padding:5rem 1.25rem calc(2.2rem + env(safe-area-inset-bottom));justify-content:flex-end;gap:1.1rem;max-width:none}
  .kicker{line-height:1.5;letter-spacing:.14em;font-size:.7rem}
  .title{font-size:2.15rem;max-width:none;line-height:1.08}
  .hero .title{font-size:2.9rem;max-width:11ch}.close .title{font-size:2.6rem}
  .lead{font-size:1.15rem}.lead.sm{font-size:1.02rem}.note{font-size:.88rem}
  .hint-d{display:none}.hint-m{display:inline}.hint{margin-top:1rem}
  .rings,.rings.big{right:50%;top:34%;width:150vw;transform:translate(50%,-50%);opacity:.38}.rings.big{opacity:.7;top:30%}
  .shade{background:linear-gradient(180deg,rgba(5,13,43,.35) 0%,rgba(5,13,43,.78) 45%,rgba(5,13,43,.95) 100%)}
  .hero .shade,.close .shade{background:linear-gradient(180deg,rgba(5,13,43,.05) 0%,rgba(5,13,43,.35) 38%,rgba(5,13,43,.94) 78%)}
  .slide.on .media{opacity:var(--mo,.3)}
  .cards3,.two,.two.big{grid-template-columns:1fr;gap:.9rem}
  .card{padding:1.1rem}.cap{padding:0}
  .cap-media{aspect-ratio:16/8}
  .lines3 p{font-size:1.12rem}.lines3 li{grid-template-columns:2.4rem 1fr;padding:.9rem 0}
  /* tables -> cards */
  .tbl{border:0;background:none;border-radius:0;display:grid;gap:.7rem}
  .tr,.modes .tr{display:grid;grid-template-columns:1fr;gap:.55rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:.95rem;background:rgba(7,21,64,.72)}
  .tr.th,.modes .tr.th{display:none}
  .tr [data-l]::before{content:attr(data-l);display:block;font:500 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:.25rem}
  .tr .c1::before{color:var(--cyan)}
  .tr .c1{font-size:1.08rem}
  /* flow vertical */
  .flowrow{grid-template-columns:1fr}
  .link{width:2px;height:2.2rem;justify-self:center}
  .link .ln{background:linear-gradient(180deg,var(--accent),var(--cyan));transform-origin:top}.js .link .ln{transform:scaleY(0)}.rm .link .ln{transform:none!important}
  .link .dots i{left:50%;top:0;margin:-.25rem 0 0 -.25rem;animation-name:doty}
  .roadmap{grid-template-columns:1fr;padding:0 0 0 1.7rem;gap:.9rem}
  .track{left:.45rem;right:auto;top:.4rem;bottom:.4rem;width:2px;height:auto}.track span{width:100%;height:100%;transform-origin:top}.js .track span{transform:scaleY(0)}.rm .track span{transform:none!important}
  .phase .pin{left:-1.7rem;top:1.15rem}
  .riskgrid{grid-template-columns:1fr}.risk,.risk:nth-child(n+5){grid-column:auto}
  .nextstep{flex-direction:column;align-items:flex-start;gap:.5rem}
  .epicsum{grid-template-columns:1fr 1fr}
  .cta{font-size:1.2rem;padding:1.15rem 1.7rem;width:100%;justify-content:center}
  /* backlog mobile: accordion per epic */
  .bl-head{padding:.7rem 1rem;gap:.6rem}.bl-title{order:3;flex-basis:100%;font-size:1.15rem}
  .back{padding:.75rem 1rem;font-size:.8rem}
  .bl-tools{margin-left:auto}.dl{padding:.65rem .8rem;font-size:.7rem}.seg button{padding:.5rem .7rem;font-size:.72rem}
  .bl-filters{padding:.6rem 1rem;gap:.55rem}.search{flex:1}.search input{width:100%;padding:.6rem .9rem}
  .ftoggle{display:inline-flex}.bl-filters.collapsed .fgroup,.bl-filters.collapsed .reset{display:none}
  .fgroup{flex-basis:100%}.fl{flex-basis:100%;margin-bottom:.1rem}
  .bl-body{padding:.9rem 1rem 3rem}
  .board,.tline{display:flex;flex-direction:column;min-width:0;gap:.8rem}
  .ep-head{cursor:pointer;position:relative;padding-right:2.6rem}
  .ep-chev{display:block;position:absolute;right:1rem;top:1.25rem;width:.55rem;height:.55rem;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);transform:rotate(45deg);transition:transform .25s}
  .epic.open .ep-chev{transform:rotate(-135deg)}
  .epic:not(.open) .ep-more,.epic:not(.open) .ep-items{display:none}
  .tline::before{display:none}.phcol::before{display:none}
}
@media (min-width:801px){.epic .ep-more,.epic .ep-items{display:grid!important}}
@media (min-width:801px) and (max-height:700px){.inner{padding-top:5rem;gap:1rem}.title{font-size:2.9rem}}
