@charset "UTF-8";
/* =========================================================================
   VenusHawk — page & component styles ("Dawn" system)
   ========================================================================= */
/* animatable colours for the hero dawn transition */
@property --ac1{syntax:"<color>";inherits:false;initial-value:rgba(255,138,58,0.6)}
@property --ac2{syntax:"<color>";inherits:false;initial-value:rgba(255,96,44,0.22)}
@property --bc1{syntax:"<color>";inherits:false;initial-value:rgba(232,72,196,0.5)}
@property --bc2{syntax:"<color>";inherits:false;initial-value:rgba(186,66,240,0.2)}

/* starfield canvas */
.stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}

/* =========================================================================
   HERO — cinematic morning star
   ========================================================================= */
/* full-page fixed starfield — lives in the space AROUND content, faded behind it */
.cosmos{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0.9;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,0.08) 30%,rgba(0,0,0,0.08) 70%,#000 100%);
  mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,0.08) 30%,rgba(0,0,0,0.08) 70%,#000 100%)}
.hero{position:relative;overflow:visible;min-height:clamp(620px,calc(100svh - 112px),900px);display:flex;align-items:center;background:transparent}
/* the moving venus aura — orange + pink blobs drifting on black */
.hero__aura{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(70px);mix-blend-mode:screen;will-change:transform}
.hero__aura--a{width:min(62vw,780px);aspect-ratio:1;left:38%;top:34%;
  background:radial-gradient(circle at 50% 50%,var(--ac1),var(--ac2) 46%,transparent 68%);
  animation:auraA 22s ease-in-out infinite, dawnA 26s ease-in-out infinite}
.hero__aura--b{width:min(54vw,680px);aspect-ratio:1;left:52%;top:50%;
  background:radial-gradient(circle at 50% 50%,var(--bc1),var(--bc2) 48%,transparent 70%);
  animation:auraB 27s ease-in-out infinite, dawnB 26s ease-in-out infinite}
@keyframes auraA{0%{transform:translate(-14%,6%) scale(1)}50%{transform:translate(12%,-12%) scale(1.16)}100%{transform:translate(-14%,6%) scale(1)}}
@keyframes auraB{0%{transform:translate(10%,-8%) scale(1.08)}50%{transform:translate(-16%,12%) scale(0.9)}100%{transform:translate(10%,-8%) scale(1.08)}}
/* dawn: pre-dawn magenta → warming rose → risen orange, looping (like Venus at daybreak) */
@keyframes dawnA{0%,100%{--ac1:rgba(196,56,152,0.52);--ac2:rgba(150,48,182,0.18)}34%{--ac1:rgba(255,104,98,0.58);--ac2:rgba(255,72,72,0.2)}66%{--ac1:rgba(255,150,64,0.64);--ac2:rgba(255,108,42,0.24)}}
@keyframes dawnB{0%,100%{--bc1:rgba(236,74,198,0.5);--bc2:rgba(182,64,240,0.2)}40%{--bc1:rgba(255,118,150,0.5);--bc2:rgba(240,88,118,0.2)}72%{--bc1:rgba(255,172,92,0.5);--bc2:rgba(255,132,58,0.2)}}
@media (prefers-reduced-motion:reduce){.hero__aura{animation:none}}
.herofield{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
/* legibility: darken behind the left text column */
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,rgba(5,5,9,0.72) 0%,rgba(5,5,9,0.45) 34%,rgba(5,5,9,0.08) 62%,transparent 80%);-webkit-mask-image:linear-gradient(to bottom,#000 56%,transparent 96%);mask-image:linear-gradient(to bottom,#000 56%,transparent 96%)}
.hero__inner{position:relative;z-index:2;padding-block:clamp(5rem,4rem + 6vw,9rem)}
/* floating feature badges surfacing inside the aura */
.hero__field{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.ffx{position:absolute;display:inline-flex;align-items:center;gap:0.5rem;padding:0.42rem 0.85rem 0.42rem 0.6rem;border-radius:100px;background:rgba(255,255,255,0.06);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.03em;color:var(--head);white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,0.35);opacity:0;transform:translateY(8px) scale(0.96);animation:ffx-flash var(--d,10s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.ffx svg{width:15px;height:15px;flex:none;color:var(--dawn-2)}
.ffx::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 8px var(--dawn);flex:none;margin-right:0.1rem}
@keyframes ffx-flash{0%{opacity:0;transform:translateY(10px) scale(0.95)}10%{opacity:1;transform:translateY(0) scale(1)}30%{opacity:1;transform:translateY(-2px) scale(1)}42%{opacity:0;transform:translateY(-10px) scale(0.97)}100%{opacity:0}}
@media (max-width:900px){.hero__field{display:none}}
@media (prefers-reduced-motion:reduce){.ffx{animation:none;opacity:0.9;transform:none}.ffx:nth-child(n+5){display:none}}
.hero h1{margin-bottom:var(--s-5);max-width:16ch;font-size:clamp(2.6rem,1.7rem + 4.4vw,5.25rem)}
.hero__lede{font-size:var(--t-lg);color:var(--txt-dim);max-width:52ch;margin:0 0 var(--s-7);line-height:1.55}
.hero__actions{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-8)}
.hero__by{display:inline-flex;align-items:center;gap:0.55rem;font-size:var(--t-sm);color:var(--txt-mut)}
.hero__by img{height:15px;width:auto;opacity:0.95}
.hero__scroll{position:absolute;left:var(--gutter);bottom:var(--s-6);z-index:2;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.24em;text-transform:uppercase;color:var(--txt-mut);display:flex;align-items:center;gap:0.6rem}
.hero__scroll::after{content:"";width:34px;height:1px;background:rgba(255,255,255,0.3)}
@media (max-width:600px){.hero__scroll{display:none}}

/* =========================================================================
   CARDS / AGENTS / SURFACES
   ========================================================================= */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:var(--s-4)}
.card{position:relative;padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color 0.25s var(--ease),background-color 0.25s var(--ease),transform 0.25s var(--ease)}
.card:hover{border-color:var(--line-2);background:var(--panel-2);transform:translateY(-3px)}
.card__n{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.12em;color:var(--dawn-2);display:block;margin-bottom:var(--s-4)}
.card h3{color:var(--head);font-size:var(--t-lg);margin-bottom:var(--s-2)}
.card p{color:var(--txt-dim);font-size:var(--t-body-s)}

/* the constellation — Morning Star unfolds into the agent constellation (draws on reveal) */
.constellation{position:relative;margin:var(--s-7) 0 var(--s-8)}
.constellation svg{width:100%;height:auto;display:block;overflow:visible;max-height:520px}
.cst-line{fill:none;stroke:rgba(255,255,255,0.24);stroke-width:1;stroke-dasharray:680;stroke-dashoffset:680;transition:stroke-dashoffset 1.5s var(--ease)}
.cst-poly{fill:none;stroke:rgba(255,255,255,0.1);stroke-width:1;stroke-dasharray:2100;stroke-dashoffset:2100;transition:stroke-dashoffset 2.4s var(--ease)}
.constellation.is-in .cst-line,.constellation.is-in .cst-poly{stroke-dashoffset:0}
.cst-line:nth-of-type(2){transition-delay:0.1s}.cst-line:nth-of-type(3){transition-delay:0.2s}.cst-line:nth-of-type(4){transition-delay:0.3s}.cst-line:nth-of-type(5){transition-delay:0.4s}.cst-line:nth-of-type(6){transition-delay:0.5s}.cst-line:nth-of-type(7){transition-delay:0.6s}
.cst-star{opacity:0;transform:scale(0.3);transform-box:fill-box;transform-origin:center;transition:opacity 0.6s var(--ease),transform 0.6s var(--ease)}
.constellation.is-in .cst-star{opacity:1;transform:none}
.cst-star:nth-of-type(n){transition-delay:0.5s}
.cst-star--2{transition-delay:0.7s!important}.cst-star--3{transition-delay:0.85s!important}.cst-star--4{transition-delay:1s!important}.cst-star--5{transition-delay:1.15s!important}.cst-star--6{transition-delay:1.3s!important}.cst-star--7{transition-delay:1.45s!important}
.cst-dot{fill:#fff}
.cst-spike{stroke:rgba(255,220,190,0.6);stroke-width:0.8}
.cst-lbl{fill:var(--head);font-family:var(--font-sans);font-size:14px;font-weight:600}
.cst-id{fill:var(--dawn-2);font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.08em}
.cst-lbl,.cst-id{opacity:0;transition:opacity 0.7s var(--ease) 1.5s}
.constellation.is-in .cst-lbl,.constellation.is-in .cst-id{opacity:1}
.cst-cdot{fill:#fff;filter:drop-shadow(0 0 6px rgba(255,210,170,0.9))}
.cst-cspike{stroke:rgba(255,220,190,0.7);stroke-width:1}
.cst-halo{fill:url(#cstHalo);animation:cst-breathe 5s ease-in-out infinite}
@keyframes cst-breathe{0%,100%{opacity:0.8}50%{opacity:1}}
.constellation__cap{text-align:center;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--txt-mut);margin-top:var(--s-4)}
@media (prefers-reduced-motion:reduce){.cst-line,.cst-poly{stroke-dashoffset:0}.cst-star,.cst-lbl,.cst-id{opacity:1;transform:none}.cst-halo{animation:none}}
@media (max-width:600px){.cst-lbl{font-size:18px}.cst-id{font-size:12px}}

/* the orrery — living star-atlas of the agents */
.orrery-fig{position:relative;margin:var(--s-7) 0 var(--s-8);border:1px solid var(--line);border-radius:20px;overflow:hidden;background:radial-gradient(130% 110% at 50% 42%,#0b0913 0%,#070610 52%,#040308 100%);aspect-ratio:16/9}
.orrery{position:absolute;inset:0;width:100%;height:100%;display:block}
.orrery-fig__cap{position:absolute;left:clamp(1rem,2.5vw,1.8rem);top:clamp(1rem,2.5vw,1.8rem);z-index:2;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--txt-mut);display:flex;align-items:center;gap:0.5rem}
.orrery-fig__cap::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 8px var(--dawn)}
.orrery-fig__meta{position:absolute;right:clamp(1rem,2.5vw,1.8rem);top:clamp(1rem,2.5vw,1.8rem);z-index:2;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut)}
@media (max-width:640px){.orrery-fig{aspect-ratio:4/5}.orrery-fig__meta{display:none}}

/* agent constellation grid */
/* constellation — editorial agent index (not cards) */
.aglist{margin-top:var(--s-7);position:relative;counter-reset:agent}
.aglist::before{content:"";position:absolute;left:calc(var(--s-4) + 26px);top:30px;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,140,100,0.34) 7%,rgba(255,140,100,0.34));pointer-events:none}
.agrow{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:var(--s-5);align-items:center;padding:var(--s-6) var(--s-3) var(--s-6) var(--s-4);text-decoration:none;color:inherit;counter-increment:agent}
.agrow__ic{position:relative;z-index:1;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#131120;border:1px solid var(--line-2);color:var(--dawn-2);flex:none;transition:color 0.3s var(--ease),border-color 0.3s var(--ease),box-shadow 0.3s var(--ease),transform 0.3s var(--ease)}
.agrow__ic::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,150,100,0.5);opacity:0;pointer-events:none}
.agrow:hover .agrow__ic{color:#fff;border-color:rgba(255,140,100,0.6);box-shadow:0 0 22px rgba(255,110,70,0.35);transform:scale(1.06)}
.agrow:hover .agrow__ic::after{animation:bsen-ping 0.6s var(--ease) 1}
.agrow__ic svg{width:24px;height:24px}
.agrow__name{display:flex;align-items:baseline;gap:0.5rem 0.8rem;flex-wrap:wrap;margin-bottom:0.34rem}
.agrow__name::before{content:counter(agent,decimal-leading-zero);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;color:var(--txt-mut);transition:color 0.3s var(--ease)}
.agrow:hover .agrow__name::before{color:#ffb84d}
.agrow__name h3{font-size:var(--t-lg);color:var(--head);font-weight:600;line-height:1.2}
.agrow__tags{display:flex;flex-wrap:wrap;gap:0.32rem}
.agrow__tags span{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.02em;color:var(--txt-dim);border:1px solid var(--line-2);border-radius:5px;padding:0.15rem 0.4rem;transition:color 0.3s var(--ease),border-color 0.3s var(--ease)}
.agrow:hover .agrow__tags span{color:var(--txt-dim);border-color:var(--line-3)}
.agrow p{font-size:var(--t-body-s);color:var(--txt-dim);line-height:1.5;max-width:76ch}
.agrow__go{color:var(--txt-mut);flex:none;transition:color 0.3s var(--ease),transform 0.3s var(--ease)}
.agrow:hover .agrow__go{color:var(--dawn-2);transform:translateX(4px)}
.agrow__go svg{width:20px;height:20px;display:block}
.agcov{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:var(--s-5);align-items:center;margin-top:var(--s-5);padding:var(--s-5) var(--s-3) var(--s-5) var(--s-4);border:1px solid var(--line);border-radius:16px;background:radial-gradient(150px 110px at calc(var(--s-4) + 26px) 50%,rgba(255,110,66,0.12),transparent 72%),linear-gradient(180deg,#131120 0%,#0c0a14 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.7);text-decoration:none;color:var(--txt-dim);transition:border-color 0.3s var(--ease)}
.agcov::before{content:"";position:absolute;left:calc(var(--s-4) + 26px);top:calc(-1*var(--s-5) - 2px);height:calc(var(--s-5) + 2px + var(--s-5) + 26px);width:1px;background:linear-gradient(180deg,rgba(255,140,100,0.34),rgba(255,150,100,0.7))}
.agcov__hub{position:relative;z-index:1;width:52px;height:52px;border-radius:50%;background:#131120;border:1px solid rgba(255,140,100,0.45);display:grid;place-items:center;box-shadow:0 0 24px rgba(255,110,70,0.26)}
.agcov__hub img{width:30px;height:30px;border-radius:8px}
.agcov:hover{border-color:rgba(255,122,69,0.4)}
@media (max-width:640px){.agcov{grid-template-columns:52px minmax(0,1fr)}.agcov__go{grid-column:2;justify-self:start;margin-top:var(--s-2)}}
.agcov__l{font-size:var(--t-body-s);line-height:1.55;max-width:72ch}
.agcov__l b{color:var(--head);font-weight:600}
.agcov__go{display:inline-flex;align-items:center;gap:0.5rem;font-weight:600;color:#fff;white-space:nowrap;flex:none;padding-right:var(--s-2)}
.agcov__go svg{color:#ffcf87}
.agcov__go svg{width:1em;height:1em;transition:transform 0.25s var(--ease)}
.agcov:hover .agcov__go svg{transform:translateX(3px)}
@media (max-width:640px){.agrow{grid-template-columns:44px 1fr;gap:var(--s-4);padding-right:0}.agrow__ic{width:44px;height:44px}.agrow__go{display:none}}

/* coverage surfaces — hairline list, not boxes */
.surfaces{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(2rem,5vw,5rem);row-gap:0}
.surfaces--3{grid-template-columns:repeat(3,1fr)}
.surface{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:start;padding:var(--s-5) 0;border-top:1px solid var(--line);background:transparent;border-radius:0;transition:none}
.surface__ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:transparent;border:1px solid var(--line-2);color:var(--dawn-2);transition:color 0.25s var(--ease),border-color 0.25s var(--ease)}
.surface:hover .surface__ic{color:#fff;border-color:var(--line-3)}
.surface__ic svg{width:20px;height:20px}
.surface h3{font-size:var(--t-base);font-weight:600;color:var(--head);margin-bottom:0.15rem}
.surface p{font-size:var(--t-body-s);color:var(--txt-dim)}
@media (max-width:640px){.surfaces{grid-template-columns:1fr}}

/* editorial numbered trio — an alternative to card grids */
.trio{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--s-7);border-top:1px solid var(--line)}
.trio__item{padding:var(--s-7) var(--s-6) var(--s-2);border-left:1px solid var(--line)}
.trio__item:first-child{border-left:0;padding-left:0}
.trio__item:last-child{padding-right:0}
.trio__n{font-family:var(--font-mono);font-size:2.6rem;font-weight:600;letter-spacing:-0.04em;line-height:1;background:var(--venus,linear-gradient(120deg,#ff7a45,#c552ff));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--dawn);opacity:0.9;display:block;margin-bottom:var(--s-5)}
.trio__item h3{font-size:var(--t-lg);color:var(--head);margin-bottom:var(--s-3)}
.trio__item p{font-size:var(--t-body-s);color:var(--txt-dim);max-width:34ch}
@media (max-width:760px){.trio{grid-template-columns:1fr;border-top:0}.trio__item{border-left:0;border-top:1px solid var(--line);padding:var(--s-6) 0 var(--s-2)}}

/* editorial definition list — hairline rows, no boxes */
.deflist{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(2.5rem,5vw,5.5rem);row-gap:0;margin-top:var(--s-6)}
.dfrow{padding:var(--s-5) 0;border-top:1px solid var(--line)}
.dfrow dt{font-size:var(--t-base);font-weight:600;color:var(--head);margin-bottom:0.34rem;display:flex;align-items:baseline;gap:0.6rem}
.dfrow dt::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--dawn);flex:none;transform:translateY(-0.16em);box-shadow:0 0 6px rgba(255,122,69,0.5)}
.dfrow dd{margin:0;font-size:var(--t-body-s);line-height:1.6;color:var(--txt-dim);max-width:46ch;padding-left:1.1rem}
@media (max-width:640px){.deflist{grid-template-columns:1fr}}

/* coverage — architecture diagram (one brain, many sensors) */
.figcov{margin-top:var(--s-6)}
.figcov svg{width:100%;height:auto;display:block;position:relative;z-index:1}
.cvl{fill:none;stroke:var(--line-2);stroke-width:1.4}
.cvtok{fill:var(--dawn);filter:drop-shadow(0 0 5px var(--dawn))}
.cvn rect{fill:rgba(255,255,255,0.025);stroke:var(--line);stroke-width:1.2}
.cvn__name{fill:var(--head);font-family:var(--font-sans);font-size:17px;font-weight:600}
.cvn__how{fill:var(--txt-mut);font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase}
.cvcore{fill:rgba(255,122,69,0.05);stroke:rgba(255,122,69,0.45);stroke-width:1.6}
.cvcore__ring{fill:none;stroke:rgba(255,122,69,0.3);stroke-width:1.2}
.cvcore__l{fill:var(--head);font-family:var(--font-sans);font-size:16px;font-weight:600}
.cvcore__s{fill:var(--txt-mut);font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase}
@media (prefers-reduced-motion:reduce){.cvtok,.cvcore__ring{display:none}}

/* coverage — surfaces + how we connect (one authoritative list) */
.covsurf{margin-top:var(--s-6);border-top:1px solid var(--line)}
.csrow{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,auto);gap:var(--s-5);align-items:center;padding:var(--s-5) var(--s-2) var(--s-5) 0;border-bottom:1px solid var(--line)}
.csrow__ic{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,0.04);border:1px solid var(--line-2);color:var(--dawn-2);flex:none}
.csrow__ic svg{width:23px;height:23px}
.csrow__head{display:flex;align-items:center;gap:0.7rem;flex-wrap:wrap;margin-bottom:0.3rem}
.csrow__head b{color:var(--head);font-weight:600;font-size:1.02rem}
.csrow__how{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.06em;text-transform:uppercase;color:var(--dawn-2);border:1px solid var(--line-2);border-radius:5px;padding:0.16rem 0.44rem}
.csrow p{margin:0;font-size:var(--t-body-s);color:var(--txt-dim);line-height:1.5}
.csrow__agents{display:flex;flex-wrap:wrap;gap:0.34rem;justify-content:flex-end}
.csrow__agents span{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-dim);border:1px solid var(--line-2);border-radius:100px;padding:0.15rem 0.5rem;white-space:nowrap}
@media (max-width:720px){.csrow{grid-template-columns:44px 1fr}.csrow__agents{grid-column:1/-1;justify-content:flex-start;margin-top:0.2rem}}

/* about — Venus / Hawk duo */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);margin-top:var(--s-6)}
.duo__half{padding-left:var(--s-5);border-left:1px solid var(--line-2)}
.duo__k{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dawn-2);display:block;margin-bottom:var(--s-4)}
.duo__word{font-size:clamp(2.4rem,4.5vw,3.4rem);font-weight:600;letter-spacing:-0.03em;color:var(--head);line-height:1;display:block;margin-bottom:var(--s-4)}
.duo__desc{font-size:1.02rem;color:var(--txt-dim);line-height:1.6;max-width:42ch}
@media (max-width:760px){.duo{grid-template-columns:1fr;gap:var(--s-7)}}

/* about — founders with photos */
.founders{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);margin-top:var(--s-6)}
.founder{display:grid;grid-template-columns:104px 1fr;gap:var(--s-5);align-items:start;padding-top:var(--s-5);border-top:1px solid var(--line)}
.founder__photo{width:104px;height:104px;border-radius:16px;object-fit:cover;object-position:center 22%;border:1px solid var(--line-2);flex:none;display:block;background:var(--panel);filter:saturate(1.04) contrast(1.02);transition:filter 0.45s var(--ease)}
.founder:hover .founder__photo{filter:saturate(1.12) contrast(1.03)}
.founder__name{font-size:var(--t-lg);font-weight:600;color:var(--head);line-height:1.2}
.founder__role{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--dawn-2);display:block;margin:0.32rem 0 0.7rem}
.founder__bio{font-size:var(--t-body-s);color:var(--txt-dim);line-height:1.55}
@media (max-width:820px){.founders{grid-template-columns:1fr;gap:var(--s-6)}}
@media (max-width:460px){.founder{grid-template-columns:1fr}.founder__photo{width:96px;height:96px}}

/* chips / tags */
.chips{display:flex;flex-wrap:wrap;gap:0.45rem}
.tag{font-size:var(--t-xs);color:var(--txt);border:1px solid var(--line-2);background:rgba(255,255,255,0.03);border-radius:100px;padding:0.28rem 0.7rem}
.tag--red{color:#ff97a0;border-color:var(--red-line);background:var(--red-100)}
.tag--amber{color:#ffd18a;border-color:var(--amber-line);background:var(--amber-100)}
.tag--green{color:#8ceeb8;border-color:var(--green-line);background:var(--green-100)}
.tag--blue{color:#aec5ff;border-color:var(--blue-line);background:var(--blue-100)}
.tag--mono{font-family:var(--font-mono);font-size:0.78rem;color:var(--txt-dim)}

/* signal flow: a working day streaming through the agents */
.sigflow{margin-top:var(--s-6)}
.sigflow__cap{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-3)}
.sigflow__stage{position:relative;height:380px;container-type:inline-size;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.sigflow__rail{position:absolute;left:2%;right:2%;top:50%;border-top:1px dashed rgba(255,255,255,0.1)}
.sigflow__beam{position:absolute;left:0;top:50%;width:26cqw;height:3px;margin-top:-1.5px;border-radius:3px;background:var(--venus,linear-gradient(90deg,#ff4066,#ff7a45,#ffb84d));filter:blur(1px);box-shadow:0 0 18px rgba(255,110,70,0.55);opacity:0;animation:sig-beam 4.2s cubic-bezier(0.45,0,0.2,1) infinite}
.sigflow__node{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:grid;place-items:center;width:88px;height:88px}
.vorb{position:absolute;left:50%;top:50%;translate:-50% -50%;width:190px;height:190px;display:grid;place-items:center;isolation:isolate}
.vorb__glow{position:absolute;width:88px;height:88px;border-radius:24px;background:linear-gradient(165deg,#ff8a3d,#f5408e 48%,#ffb04a);filter:blur(20px) saturate(1.2);opacity:0.7;z-index:0;animation:vorb-breath 5.4s ease-in-out infinite;will-change:transform,opacity}
.vorb__stage{position:absolute;inset:0;display:grid;place-items:center;transform:perspective(640px) rotateX(18deg) rotateZ(-4deg);z-index:1}
.vorb__pulse{position:absolute;width:150px;height:150px;border-radius:50%;border:1.5px solid rgba(255,122,69,0.55);opacity:0;transform:scale(0.32);animation:vorb-pulse 3.2s cubic-bezier(0,0.2,0.25,1) infinite;pointer-events:none}
.vorb__scan{position:absolute;width:152px;height:152px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 280deg,rgba(255,122,69,0.38) 340deg,rgba(255,184,77,0.38) 358deg,transparent 360deg);-webkit-mask:radial-gradient(closest-side,transparent 60%,#000 62%,#000 73%,transparent 75%);mask:radial-gradient(closest-side,transparent 60%,#000 62%,#000 73%,transparent 75%);animation:vorb-spin 3.8s cubic-bezier(0.65,0,0.35,1) infinite;opacity:0.9;pointer-events:none}
.vorb__orbit{position:absolute;width:150px;height:150px;animation:vorb-spin 26s linear infinite;will-change:transform}
.vorb__orbit--mid{width:120px;height:120px;animation:vorb-spin 16s linear infinite reverse}
.vorb__orbit--inner{width:96px;height:96px;animation:vorb-spin 20s linear infinite;opacity:0.8}
.vorb__orbit--ticks{width:168px;height:168px;animation:vorb-spin 70s linear infinite reverse;opacity:0.4}
.vorb__sat{position:absolute;width:150px;height:150px;color:#ffb84d;animation:vorb-spin 9s cubic-bezier(0.4,0,0.6,1) infinite;pointer-events:none}
.vorb__sat>span{position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor,0 0 18px rgba(255,184,77,0.5),0 0 30px rgba(255,184,77,0.22)}
.vorb__sat>i{position:absolute;top:-1.5px;right:50%;margin-right:3px;width:30px;height:3px;border-radius:999px;background:linear-gradient(to left,currentColor,transparent);opacity:0.45}
.vorb__sat--mid{width:120px;height:120px;color:#ff7a45;animation:vorb-spin 6.5s cubic-bezier(0.45,0.05,0.55,0.95) infinite reverse}
.vorb__sat--mid>span{width:6px;height:6px;box-shadow:0 0 8px currentColor,0 0 18px rgba(255,122,69,0.5)}
.vorb__sat--mid>i{right:auto;left:50%;margin-right:0;margin-left:3px;width:24px;height:2.5px;background:linear-gradient(to right,currentColor,transparent)}
.vorb__sat--spark{width:96px;height:96px;color:#ffd98a;animation:vorb-spin 4s cubic-bezier(0.33,1,0.68,1) infinite}
.vorb__sat--spark>span{width:4px;height:4px;box-shadow:0 0 6px currentColor,0 0 14px rgba(255,184,74,0.6)}
.vorb__sat--spark>i{width:18px;height:2px;opacity:0.4}
.vorb__core{position:relative;z-index:3;animation:vorb-float 5.8s cubic-bezier(0.45,0.05,0.55,0.95) infinite;will-change:transform}
.vorb__tile{position:relative;display:block;width:80px;height:80px;overflow:hidden;border-radius:19px;box-shadow:0 0 0 1px rgba(255,255,255,0.1),0 2px 10px rgba(0,0,0,0.35);animation:sig-gulp 2s var(--ease) infinite}
.vorb__tile img{width:100%;height:100%;object-fit:cover;display:block}
.vorb__shine{position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,0.28) 46%,rgba(255,255,255,0.6) 50%,rgba(255,255,255,0.28) 54%,transparent 62%);transform:translateX(-130%);animation:vorb-shine 4.6s cubic-bezier(0.4,0,0.2,1) infinite;will-change:transform}
.sigflow__label{position:absolute;left:50%;top:calc(50% + 100px);transform:translateX(-50%);z-index:3;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--txt-mut);white-space:nowrap}
.sigflow__chip{position:absolute;left:0;top:var(--y,50%);z-index:2;display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-dim);border:1px solid var(--line);background:#131020;border-radius:100px;padding:0.35rem 0.8rem;white-space:nowrap;opacity:0;will-change:transform,opacity}
.sigflow__chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);flex:none}
.sigflow__chip img{height:15px;width:auto;border-radius:3px}
.sigflow__chip img[src*="anthropic"],.sigflow__chip img[src*="openai"]{filter:grayscale(1) invert(1) brightness(1.75)}
.sigflow__chip img[src*="slack"]{filter:brightness(1.75)}
.sigflow__chip--in{animation:sig-in 16s linear var(--d,0s) infinite}
.sigflow__chip--out{animation:sig-out 16s linear var(--d,0s) infinite}
.sigflow__chip--out::before{background:var(--green)}
.sigflow__chip--out::after{content:"";position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,105,75,0.55) 55%,#ffb84d);box-shadow:0 0 14px rgba(255,120,70,0.55);z-index:-1;opacity:0;width:0;animation:sig-trail 16s linear var(--d,0s) infinite;pointer-events:none}
.sigflow__chip--hot::before{background:var(--red)}
.sigflow__chip--hot{border-color:var(--red-line)}
@keyframes sig-in{0%{opacity:0;transform:translateX(-110%) scale(1)}5%{opacity:1}42%{opacity:1}50%{opacity:0;transform:translateX(calc(54cqw - 50%)) scale(0.8)}100%{opacity:0;transform:translateX(calc(54cqw - 50%)) scale(0.8)}}
@keyframes sig-out{0%,52%{opacity:0;transform:translateX(calc(52cqw - 50%)) scale(0.82);animation-timing-function:cubic-bezier(0.12,0.85,0.18,1)}55%{opacity:1}57%{opacity:1;transform:translateX(var(--sx,70cqw)) scale(1);animation-timing-function:linear}92%{opacity:1;transform:translateX(var(--sx,70cqw)) scale(1)}97%,100%{opacity:0;transform:translateX(var(--sx,70cqw)) scale(1)}}
@keyframes sig-beam{0%{transform:translateX(-28cqw);opacity:0}14%{opacity:0.5}55%{opacity:0.5}100%{transform:translateX(112cqw);opacity:0}}
@keyframes sig-trail{0%,52%{opacity:0;width:0}57%{opacity:0.85;width:calc(var(--sx,70cqw) - 52cqw)}76%{opacity:0;width:calc(var(--sx,70cqw) - 52cqw)}100%{opacity:0;width:0}}
@keyframes vorb-spin{to{transform:rotate(360deg)}}
@keyframes vorb-pulse{0%{transform:scale(0.32);opacity:0.8}55%{opacity:0}100%{transform:scale(1.25);opacity:0}}
@keyframes vorb-breath{0%,100%{opacity:0.7;transform:scale(1)}50%{opacity:0.95;transform:scale(1.1)}}
@keyframes vorb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes vorb-shine{0%{transform:translateX(-130%)}55%,100%{transform:translateX(130%)}}
@keyframes sig-gulp{0%{transform:scale(1)}7%{transform:scale(1.08)}16%{transform:scale(1)}100%{transform:scale(1)}}
@media (max-width:760px){
  .sigflow__stage{height:250px}
  .sigflow__chip{font-size:var(--t-2xs);padding:0.3rem 0.65rem}
  .sigflow__chip img{height:12px}
  .sigflow__chip--xtra{display:none}
  .sigflow__node{width:64px;height:64px}
  .vorb{transform:scale(0.62)}
  .sigflow__label{display:none}
}
@media (prefers-reduced-motion:reduce){
  .sigflow__beam{animation:none;opacity:0}
  .sigflow__node::before{animation:none;opacity:0.5;transform:none}
  .sigflow__chip--in,.sigflow__chip--out{animation:none;opacity:1;transform:translateX(var(--sx,20cqw))}
  .sigflow__chip--out::after{animation:none;opacity:0}
  .vorb__glow,.vorb__pulse,.vorb__scan,.vorb__orbit,.vorb__sat,.vorb__core,.vorb__shine,.vorb__tile{animation:none}
  .vorb__stage{transform:none}
  .vorb__pulse,.vorb__scan,.vorb__shine{display:none}
  .vorb__sat>i{display:none}
  .levent.on .levent__node{animation:none}
  .levent__node::before{animation:none!important;opacity:0}
  .ltl__card.show .ltl__card-h,.ltl__card.show .ltl__row,.ltl__card.show .ltl__desc{animation:none}
  .sigflow__chip--xtra{display:none}
}

/* =========================================================================
   LINEAGE — the scroll-drawn "trail" (reinvented)
   ========================================================================= */
.trail{position:relative;margin-top:var(--s-8);padding-left:clamp(2.4rem,4vw,3.4rem)}
.trail__file{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-body-s);font-weight:600;color:var(--head);border:1px solid var(--line-2);background:var(--panel);border-radius:100px;padding:0.4rem 0.9rem;margin-bottom:var(--s-3)}
.trail__file svg{width:15px;height:15px;color:var(--dawn-2)}
.trail__intro{color:var(--txt-dim);font-size:var(--t-body-s);margin-bottom:var(--s-7);max-width:56ch}
.trail__rail{position:absolute;left:clamp(1.1rem,2vw,1.6rem);top:0.4rem;bottom:3.2rem;width:2px;background:var(--line-2);border-radius:2px;overflow:hidden}
.trail__rail::after{content:"";position:absolute;left:0;top:0;width:100%;height:var(--p,0%);background:linear-gradient(180deg,var(--gold),var(--dawn) 55%,var(--dusk));box-shadow:0 0 12px rgba(255,107,61,0.6);transition:height 0.15s linear}
.stop{position:relative;display:grid;grid-template-columns:1fr;gap:0;padding-block:0 var(--s-6)}
.stop:last-child{padding-bottom:0}
.stop__dot{position:absolute;left:calc(clamp(1.1rem,2vw,1.6rem) - clamp(2.4rem,4vw,3.4rem) + 1px);top:0.5rem;width:14px;height:14px;transform:translateX(-50%);border-radius:50%;background:var(--bg-2);border:2px solid var(--line-3);z-index:2;transition:border-color 0.4s var(--ease),background-color 0.4s var(--ease),box-shadow 0.4s var(--ease)}
.stop.lit .stop__dot{border-color:var(--dawn);background:var(--dawn);box-shadow:0 0 0 5px rgba(255,107,61,0.14),0 0 16px rgba(255,107,61,0.8)}
.stop__card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:var(--s-5) var(--s-5);transition:border-color 0.4s var(--ease),background-color 0.4s var(--ease),transform 0.4s var(--ease)}
.stop.lit .stop__card{border-color:var(--line-2);background:var(--panel-2)}
.stop__where{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.3rem}
.stop__where svg{width:18px;height:18px;color:var(--dawn-2);flex:none}
.stop__where b{font-size:1.05rem;font-weight:600;color:var(--head);letter-spacing:-0.01em}
.stop__surface{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.stop__op{color:var(--txt-dim);font-size:var(--t-body-s)}
.stop__seen{display:inline-flex;align-items:center;gap:0.35rem;margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut);transition:color 0.4s var(--ease)}
.stop__seen::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--txt-mut);transition:background-color 0.4s var(--ease),box-shadow 0.4s var(--ease)}
.stop.lit .stop__seen{color:var(--green)}
.stop.lit .stop__seen::before{background:var(--green);box-shadow:0 0 8px var(--green)}
.trail__note{margin-top:var(--s-6);color:var(--txt-dim)}
.trail__note strong{color:var(--head);font-weight:600}

/* =========================================================================
   LINEAGE v2 — animated flow illustration (self-contained SVG)
   ========================================================================= */
.flowmap-wrap{display:grid;grid-template-columns:1fr minmax(0,440px);gap:clamp(2rem,4vw,4.5rem);align-items:center;margin-top:var(--s-7)}
.flowmap{width:100%;max-width:440px;justify-self:center}
.flowmap svg{width:100%;height:auto;display:block;overflow:visible}
.fm-track{fill:none;stroke:var(--line-2);stroke-width:2}
.fm-beam{fill:none;stroke:url(#fmBeam);stroke-width:2.4;stroke-linecap:round;filter:url(#fmGlow);stroke-dasharray:7 9;animation:fm-flow 1.4s linear infinite}
@keyframes fm-flow{to{stroke-dashoffset:-32}}
.fm-box{fill:rgba(20,16,26,0.9);stroke:var(--line-2);stroke-width:1.4}
.fm-box-glow{fill:none;stroke:var(--dawn);stroke-width:1.6;opacity:0;animation:fm-pulse 7s ease-in-out infinite}
.fm-ic{fill:none;stroke:var(--dawn-2);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fm-title{fill:var(--head);font-family:var(--font-sans);font-size:14px;font-weight:600}
.fm-sub{fill:var(--txt-mut);font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase}
.fm-token{fill:#fff;filter:url(#fmGlow)}
.fm-chip{fill:var(--red);filter:url(#fmGlow)}
@keyframes fm-pulse{0%,100%{opacity:0}45%,55%{opacity:0.9}}
@media (prefers-reduced-motion:reduce){.fm-beam,.fm-box-glow,.fm-token,.fm-chip [class]{animation:none}.fm-beam{stroke-dasharray:none}}
.hoplist{display:grid;gap:var(--s-3)}
.hopitem{position:relative;padding:var(--s-4) var(--s-5);background:var(--panel);border:1px solid var(--line);border-radius:12px}
.hopitem__k{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.35rem}
.hopitem__k b{font-size:1.02rem;font-weight:600;color:var(--head)}
.hopitem__k span{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dawn-2);border:1px solid var(--line-2);border-radius:100px;padding:0.16rem 0.5rem}
.hopitem p{font-size:var(--t-body-s);color:var(--txt-dim)}
@media (max-width:840px){.flowmap-wrap{grid-template-columns:1fr}.flowmap{order:-1}}

/* =========================================================================
   SCROLL-DRAWN FLOW (matters.ai-style) — line draws on scroll, nodes light
   ========================================================================= */
.sflow{position:relative;margin-top:var(--s-8)}
.sflow__track{position:relative;display:grid;grid-template-columns:1fr 320px;column-gap:clamp(1.5rem,4vw,4rem);row-gap:clamp(4rem,11vh,9rem)}
.sflow__wire{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:visible}
.wire-track{fill:none;stroke:var(--line-2);stroke-width:1.4}
.wire-live{fill:none;stroke:rgba(255,255,255,0.85);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.wire-head{fill:#fff}
.sflow__copy{grid-column:1;align-self:center;opacity:0.35;transform:translateY(10px);transition:opacity 0.5s var(--ease),transform 0.5s var(--ease);z-index:1}
.sflow__copy.lit{opacity:1;transform:none}
.sflow__k{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.5rem;flex-wrap:wrap}
.sflow__k b{font-size:var(--t-lg);color:var(--head);font-weight:600;letter-spacing:-0.02em}
.sflow__k span{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dawn-2);border:1px solid var(--line-2);border-radius:100px;padding:0.18rem 0.55rem}
.sflow__copy p{color:var(--txt-dim);max-width:46ch}
.sflow__copy .chips{margin-top:var(--s-3)}
.sflow__node{grid-column:2;display:flex;align-items:center;position:relative;z-index:1}
.sflow__node--r{justify-content:flex-end}
.sflow__node--l{justify-content:flex-start}
.sflow__node--c{justify-content:center}
.sflow__blob{position:relative;width:74px;height:74px;display:grid;place-items:center}
.sflow__blob::before{content:"";position:absolute;inset:-45%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.12),transparent 66%);filter:blur(8px);opacity:0;transition:opacity 0.5s var(--ease);transform:scale(0.85)}
.sflow__node.lit .sflow__blob::before{opacity:1;transform:scale(1)}
.sflow__tile{position:relative;width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:rgba(18,15,24,0.92);border:1px solid var(--line-2);color:var(--txt-dim);transition:border-color 0.5s var(--ease),color 0.5s var(--ease),box-shadow 0.5s var(--ease)}
.sflow__node.lit .sflow__tile{border-color:rgba(255,255,255,0.5);color:#fff}
.sflow__tile svg{width:26px;height:26px}
@media (max-width:820px){
  .sflow__track{grid-template-columns:56px 1fr;column-gap:var(--s-5);row-gap:var(--s-7)}
  .sflow__wire{display:none}
  .sflow__node{grid-column:1}
  .sflow__node--r,.sflow__node--l{justify-content:center}
  .sflow__blob{width:56px;height:56px}.sflow__tile{width:48px;height:48px}
  .sflow__copy{grid-column:2;opacity:1;transform:none}
  .sflow__track::before{content:"";position:absolute;left:27px;top:20px;bottom:20px;width:2px;background:linear-gradient(180deg,var(--gold),var(--dawn),var(--dusk));opacity:0.5;border-radius:2px}
}

/* =========================================================================
   LINEAGE GRAPH — matters.ai-style event timeline, cards flash in sequence
   ========================================================================= */
.lingraph{margin-top:var(--s-7);position:relative;border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(180deg,#131120 0%,#0c0a14 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.7);overflow:hidden}
.lingraph::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 42% at 50% 84%,rgba(255,110,66,0.11),transparent 72%),radial-gradient(40% 32% at 10% 8%,rgba(214,70,240,0.07),transparent 72%),radial-gradient(rgba(255,255,255,0.05) 1px,transparent 1.2px);background-size:auto,auto,24px 24px;-webkit-mask-image:radial-gradient(130% 100% at 50% 72%,#000 50%,transparent 100%);mask-image:radial-gradient(130% 100% at 50% 72%,#000 50%,transparent 100%)}
.lingraph__bar{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:0.8rem var(--s-5);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut)}
.lingraph__bar b{color:var(--txt);font-weight:600}
.lingraph__body{position:relative;z-index:1;padding:clamp(1.4rem,3vw,2.4rem) clamp(1rem,3vw,2.4rem) clamp(1.4rem,3vw,2.4rem)}
.lingraph__file{display:inline-flex;align-items:center;gap:0.6rem;border:1px solid var(--line-2);border-radius:10px;padding:0.5rem 0.9rem;background:rgba(255,255,255,0.03);font-family:var(--font-mono);font-size:var(--t-xs);color:var(--head);margin:0 auto var(--s-3)}
.lingraph__file svg{width:15px;height:15px;color:var(--txt-dim)}
.lingraph__file .tag{margin-left:0.3rem}
.lingraph__lead{text-align:center;color:var(--txt-mut);font-size:var(--t-xs);margin-bottom:var(--s-9)}
.lingraph__scroll{overflow:visible;scrollbar-width:none}
.lingraph__scroll::-webkit-scrollbar{display:none}
@media (max-width:760px){.lingraph__scroll{overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}.ltl{min-width:680px;padding-top:0}.ltl__rail{top:23px}.ltl__prog{top:22px}.ltl__card{display:none}.lingraph__file{flex-wrap:wrap;justify-content:center}.lingraph__lead{margin-bottom:var(--s-5)}}
.ltl{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(116px,1fr);min-width:800px;padding-top:210px}
.ltl__rail{position:absolute;top:calc(210px + 23px);left:10%;right:10%;height:2px;background:repeating-linear-gradient(90deg,var(--line-2) 0 5px,transparent 5px 11px)}
.ltl__prog{position:absolute;top:calc(210px + 22px);left:10%;height:3px;width:0;background:var(--venus,linear-gradient(90deg,#ff4066,#ff7a45,#ffb84d));box-shadow:0 0 12px rgba(255,110,70,0.55);border-radius:3px;transition:width 0.6s var(--ease)}
.ltl__prog::after{content:"";position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 10px #ffb84d,0 0 24px rgba(255,110,70,0.8)}
.levent{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.55rem;padding:0 0.3rem}
.levent__node{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bg-2);border:1.5px solid var(--line-2);color:var(--txt-mut);position:relative;z-index:2;transition:border-color 0.4s var(--ease),color 0.4s var(--ease),box-shadow 0.4s var(--ease),transform 0.4s var(--ease)}
.levent__node svg{width:20px;height:20px}
.levent.on .levent__node{border-color:rgba(255,150,110,0.65);color:#ffd6c2;transform:scale(1.04);box-shadow:0 0 0 5px rgba(255,120,80,0.07);animation:lt-kick 0.5s var(--ease)}
.levent.on:has(+ .levent:not(.on)) .levent__node,.levent.on:last-child .levent__node{border-color:#ffb84d;color:#fff;transform:scale(1.1);box-shadow:0 0 0 5px rgba(255,150,80,0.14),0 0 26px rgba(255,120,70,0.4)}
.levent__node::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(255,150,100,0.55);opacity:0;pointer-events:none}
.levent.on:has(+ .levent:not(.on)) .levent__node::before,.levent.on:last-child .levent__node::before{animation:lt-ping 1.6s var(--ease) infinite}
.levent--flag.on .levent__node::before{border-color:rgba(244,184,96,0.65)}
.levent{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px}
.levent:hover .levent__node{border-color:rgba(255,170,130,0.9);color:#fff;transform:scale(1.14)}
.levent:focus-visible{outline:2px solid #ff8a5e;outline-offset:4px}
.levent--flag.on .levent__node{border-color:var(--amber);color:var(--amber);box-shadow:0 0 0 5px rgba(244,184,96,0.16),0 0 20px rgba(244,184,96,0.35)}
.levent--flag .levent__node::after{content:"!";position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--amber);color:#1a1204;font-size:11px;font-weight:800;display:grid;place-items:center;font-family:var(--font-sans)}
.levent b{font-size:var(--t-body-s);color:var(--txt-dim);font-weight:560;letter-spacing:-0.01em;transition:color 0.4s var(--ease)}
.levent.on b{color:var(--head)}
.levent__surf{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut);border:1px solid var(--line-2);border-radius:100px;padding:0.12rem 0.5rem;transition:color 0.4s var(--ease),border-color 0.4s var(--ease)}
.levent.on .levent__surf{color:var(--dawn-2);border-color:var(--line-3)}
.levent--flag.on .levent__surf{color:var(--amber);border-color:var(--amber-line)}
.levent small{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);letter-spacing:0.02em}
/* detail card that flashes in on the flagged event */
.ltl__card{position:absolute;top:6px;left:0;width:290px;background:rgba(13,15,23,0.98);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--lift-3);padding:var(--s-5);opacity:0;visibility:hidden;transform:translateX(-50%);transition:opacity 0.3s var(--ease),left 0.5s var(--ease),visibility 0.3s;z-index:6;pointer-events:none;text-align:left}
.ltl__card.show{opacity:1;visibility:visible}
.ltl__card.sev-med{border-color:var(--amber-line,rgba(244,184,96,0.4))}
.ltl__card.show .ltl__card-h{animation:lt-row 0.4s var(--ease) both}
.ltl__card.show .ltl__row{animation:lt-row 0.45s var(--ease) both}
.ltl__card.show .ltl__row:nth-of-type(1){animation-delay:0.05s}
.ltl__card.show .ltl__row:nth-of-type(2){animation-delay:0.11s}
.ltl__card.show .ltl__row:nth-of-type(3){animation-delay:0.17s}
.ltl__card.show .ltl__desc{animation:lt-row 0.5s var(--ease) 0.24s both}
@keyframes ltlpop{0%{transform:translateX(-50%) translateY(7px) scale(0.96)}60%{transform:translateX(-50%) translateY(-3px) scale(1.015)}100%{transform:translateX(-50%) translateY(0) scale(1)}}
.ltl__card::after{content:"";position:absolute;left:var(--arrow,50%);bottom:-6px;width:11px;height:11px;background:rgba(13,15,23,0.98);border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);transform:translateX(-50%) rotate(45deg)}
.ltl__card-h{display:flex;align-items:center;gap:0.5rem;margin-bottom:var(--s-4)}
.ltl__card-h svg{width:20px;height:20px;color:var(--txt-dim);flex:none;transition:color 0.3s var(--ease)}
.ltl__card.sev-med .ltl__card-h svg{color:var(--amber)}
.ltl__card-h b{font-size:var(--t-body-s);color:var(--head)}
.ltl__card-h span{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut)}
.ltl__row{display:grid;grid-template-columns:64px 1fr;gap:0.5rem;font-size:var(--t-xs);padding:0.2rem 0}
.ltl__row dt{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut);align-self:center}
.ltl__row dd{color:var(--txt);margin:0}
.ltl__sev{display:inline-block;font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.08em;color:var(--head);background:var(--line-3);border-radius:3px;padding:0.1rem 0.4rem}
.ltl__card.sev-med .ltl__sev{color:#1a1204;background:var(--amber)}
.ltl__desc{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line);font-size:var(--t-xs);color:var(--txt-dim);line-height:1.5}
@keyframes lt-ping{0%{transform:scale(0.7);opacity:0.8}100%{transform:scale(1.5);opacity:0}}
@keyframes lt-kick{0%{transform:scale(0.9)}45%{transform:scale(1.22)}100%{transform:scale(1.04)}}
@keyframes lt-row{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ltl__prog{transition:none}}

/* =========================================================================
   PRIVACY — the containment ring (reinvented)
   ========================================================================= */
.vault{margin-top:var(--s-7);display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(1.5rem,3vw,3.5rem);align-items:center;border:1px solid var(--line);border-radius:20px;background:var(--panel);padding:clamp(1.5rem,3vw,3rem);overflow:hidden}
.vault__field{position:relative;aspect-ratio:1.05;min-height:300px}
.vault__field svg{position:absolute;inset:0;width:100%;height:100%}
.ring-track{fill:none;stroke:var(--line-2);stroke-width:1.1}
.ring-glow{fill:none;stroke:rgba(255,255,255,0.5);stroke-width:1.4;stroke-dasharray:4 7;opacity:0.8;animation:ring-spin 44s linear infinite;transform-origin:center}
@keyframes ring-spin{to{transform:rotate(360deg)}}
.ring-core-glow{fill:url(#coreGlow)}
.meta-dot{fill:var(--gold)}
.vault__core{position:absolute;left:34%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,0.05);border:1px solid var(--line-2)}
.vault__core img{width:36px;height:36px;border-radius:8px}
.vault__chip{position:absolute;font-size:var(--t-2xs);font-family:var(--font-mono);letter-spacing:0.02em;padding:0.22rem 0.55rem;border-radius:100px;border:1px solid var(--red-line);background:var(--red-100);color:#ff97a0;white-space:nowrap;transform:translate(-50%,-50%)}
.vault__chip--amber{border-color:var(--amber-line);background:var(--amber-100);color:#ffd18a}
.vault__insight{position:absolute;right:-2%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:0.4rem;text-align:center}
.vault__insight-node{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(122,162,255,0.1);border:1px solid var(--blue-line);color:#aec5ff}
.vault__insight-node svg{width:20px;height:20px}
.vault__insight span{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut);max-width:9ch;line-height:1.3}
.vault__copy .vault__zone{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut);display:block;margin-bottom:var(--s-3)}
.vault__copy h3{font-size:var(--t-xl);color:var(--head);margin-bottom:var(--s-4)}
.vault__copy p{color:var(--txt-dim);margin-bottom:var(--s-4)}
.vault__stay{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.06em;text-transform:uppercase;color:var(--green);font-weight:600}
.vault__stay::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--green);box-shadow:0 0 8px var(--green)}
@media (max-width:820px){.vault{grid-template-columns:1fr}.vault__field{max-width:440px;margin-inline:auto;width:100%}}
.pfacts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);margin-top:var(--s-7)}
.pfact{font-size:var(--t-body-s);color:var(--txt-dim);padding-left:var(--s-4);border-left:1px solid var(--line-2)}
.pfact strong{color:var(--head);font-weight:600;display:block;margin-bottom:0.2rem}
@media (max-width:760px){.pfacts{grid-template-columns:1fr;gap:var(--s-4)}}

/* =========================================================================
   Source coverage grid + IOA-vs-IOC comparison
   ========================================================================= */
.watch{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);overflow:hidden;box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.watch__bar,.steps__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;padding:0.8rem var(--s-5);border-bottom:1px solid var(--line);background:rgba(255,255,255,0.02);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.12em;text-transform:uppercase}
.watch__sys,.steps__sys{display:inline-flex;align-items:center;gap:0.55rem;color:var(--txt);font-weight:600}
.watch__sys::before,.steps__sys::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dawn);box-shadow:0 0 0 3px rgba(255,110,70,0.16);animation:brain-pulse 2s ease-out infinite}
.watch__meta,.steps__meta{color:var(--txt-mut)}
.watch__line{display:flex;align-items:baseline;gap:0.55rem;padding:0.75rem var(--s-5);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-dim);min-height:2.6em}
.watch__g{color:var(--dawn-2);font-weight:700}
.watch__line .w{opacity:0;animation:scan-word 0.35s cubic-bezier(0.22,0.61,0.25,1) both;animation-delay:calc(var(--wi,0)*0.045s)}
.srcgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);padding:var(--s-4) var(--s-4)}
@media (max-width:900px){.srcgrid{grid-template-columns:repeat(2,1fr)}}
.src{position:relative;overflow:hidden;display:flex;align-items:center;gap:0.7rem;padding:0.9rem 1rem;background:linear-gradient(180deg,#131120 0%,#0c0a14 100%);border:1px solid var(--line);border-radius:12px;transition:border-color 0.35s var(--ease),transform 0.35s var(--ease),box-shadow 0.35s var(--ease)}
.src::after{content:"";position:absolute;top:10px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--green);opacity:0.45;box-shadow:0 0 6px rgba(84,217,150,0.5);transition:opacity 0.3s var(--ease),background-color 0.3s var(--ease),box-shadow 0.3s var(--ease)}
.src::before{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,150,100,0.14),transparent);opacity:0;pointer-events:none}
.src.is-scan{border-color:rgba(255,150,110,0.55);transform:translateY(-2px);box-shadow:0 14px 34px -14px rgba(255,110,70,0.4)}
.src.is-scan::after{opacity:1;background:#ffcf87;box-shadow:0 0 10px rgba(255,190,120,0.9)}
.src.is-scan::before{animation:src-sheen 0.9s var(--ease)}
.src.is-scan .src__ic{background:linear-gradient(135deg,rgba(255,64,102,0.3),rgba(255,184,77,0.22));border-color:rgba(255,150,110,0.6);color:#fff}
@keyframes src-sheen{0%{left:-60%;opacity:1}100%{left:120%;opacity:1}}
.src:hover{border-color:var(--line-2);transform:translateY(-2px)}
.src__ic{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,0.04);border:1px solid var(--line-2);color:var(--dawn-2);transition:background 0.35s var(--ease),border-color 0.35s var(--ease),color 0.35s var(--ease)}
.src__ic svg{width:16px;height:16px}
.src b{display:block;font-size:var(--t-body-s);font-weight:560;color:var(--head);line-height:1.2}
.src span{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut)}

.vs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-6)}
.vs::after{content:"VS";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;display:grid;place-items:center;border-radius:50%;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.1em;color:var(--dawn-2);background:radial-gradient(circle at 35% 28%,rgba(255,107,61,0.2),var(--bg) 72%);border:1px solid rgba(255,140,100,0.38);box-shadow:0 0 26px rgba(255,107,61,0.22),inset 0 1px 0 rgba(255,255,255,0.1);z-index:2}
.vs__col{position:relative;overflow:hidden;padding:var(--s-6);border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.vs__col--old::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,0.02) 0 1px,transparent 1px 10px);pointer-events:none}
.vs__col--old h3{color:var(--txt-dim)}
.vs__col--new{border-color:rgba(255,107,61,0.4);background:linear-gradient(180deg,rgba(255,107,61,0.08),rgba(255,255,255,0.015));box-shadow:0 0 40px rgba(255,107,61,0.08),inset 0 1px 0 rgba(255,255,255,0.14)}
.vs__col--new::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent 8%,rgba(255,168,128,0.75),transparent 92%);pointer-events:none}
.vs__col--new::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120% 90% at 85% -10%,rgba(255,107,61,0.18),transparent 55%),linear-gradient(165deg,rgba(255,255,255,0.2) 0%,rgba(255,255,255,0.07) 30%,transparent 55%);pointer-events:none}
.vs__tag{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut);display:flex;align-items:center;gap:0.5rem;margin-bottom:var(--s-2)}
.vs__tag::before{content:"";width:7px;height:7px;border-radius:50%;flex:none}
.vs__col--old .vs__tag::before{border:1px solid var(--txt-mut)}
.vs__col--new .vs__tag{color:var(--dawn-2)}
.vs__col--new .vs__tag::before{background:var(--dawn);box-shadow:0 0 10px var(--dawn)}
.vs h3{font-size:var(--t-lg);color:var(--head);margin-bottom:var(--s-4)}
.vs ul{display:grid;gap:var(--s-3)}
.vs li{display:flex;gap:0.7rem;align-items:flex-start;font-size:var(--t-body-s);color:var(--txt-dim)}
.vs li svg{width:21px;height:21px;flex:none;padding:4px;border-radius:7px;margin-top:0.05em}
.vs__col--old li svg{color:var(--txt-mut);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08)}
.vs__col--new li svg{color:var(--green);background:var(--green-100);border:1px solid rgba(84,217,150,0.28)}
@media (max-width:760px){.vs{grid-template-columns:1fr}.vs::after{display:none}}

/* =========================================================================
   PRIVACY GATE — data stays in, only metadata crosses (secasure concept)
   ========================================================================= */
.pgate{margin-top:var(--s-7);display:grid;grid-template-columns:1.6fr 132px 1fr;border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#131120 0%,#0c0a14 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.7)}
.pgate__in{padding:clamp(1.4rem,3vw,2.2rem);position:relative}
.pgate__out{padding:clamp(1.4rem,3vw,2.2rem);background:rgba(255,255,255,0.02);display:flex;flex-direction:column;justify-content:center}
.pgate__zone{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--txt-mut);display:block;margin-bottom:var(--s-4)}
.pgate__chips{display:flex;flex-wrap:wrap;gap:0.45rem;margin-bottom:var(--s-5)}
.pgate__engine{display:flex;align-items:center;gap:0.65rem;font-size:var(--t-body-s);color:var(--txt);border-top:1px solid var(--line);padding-top:var(--s-4);margin-bottom:var(--s-4)}
.pgate__engine img{width:34px;height:34px;border-radius:9px;flex:none}
.pgate__stay{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--green);font-weight:600}
.pgate__stay::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--green);box-shadow:0 0 8px rgba(84,217,150,0.7)}
.pgate__gate{position:relative;border-left:1px dashed var(--line-2);border-right:1px dashed var(--line-2);display:flex;align-items:center;justify-content:center;overflow:hidden;background:repeating-linear-gradient(45deg,transparent 0 8px,rgba(255,255,255,0.02) 8px 16px)}
.pgate__lbl{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dawn-2);writing-mode:vertical-rl;transform:rotate(180deg)}
.pgate__dot{position:absolute;top:50%;left:-8px;width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 8px var(--dawn);animation:pcross 3s linear infinite}
.pgate__dot:nth-child(2){top:34%;animation-delay:1s}
.pgate__dot:nth-child(3){top:66%;animation-delay:2s}
@keyframes pcross{0%{left:-8px;opacity:0}16%{opacity:1}84%{opacity:1}100%{left:calc(100% + 6px);opacity:0}}
.pgate__outtx{font-size:var(--t-body-s);color:var(--txt-dim)}
.pgate__outtx strong{color:var(--head);font-weight:600}
@media (max-width:760px){.pgate{grid-template-columns:1fr}.pgate__gate{min-height:60px;border:0;border-top:1px dashed var(--line-2);border-bottom:1px dashed var(--line-2);flex-direction:row;gap:var(--s-4)}.pgate__lbl{writing-mode:horizontal-tb;transform:none}.pgate__dot{top:50%!important}@keyframes pcross{0%{left:-8px;opacity:0}16%{opacity:1}84%{opacity:1}100%{left:calc(100% + 6px);opacity:0}}}
@media (prefers-reduced-motion:reduce){.pgate__dot{animation:none;opacity:0.7;left:25%}.scan__line .tx .w{animation:none}.scan__grid i,.scan__shimmer{animation:none}.radar__sweep{animation:none;opacity:0}.radar__b,.radar__b--hot{animation:none;opacity:0.55}.radar__b--hot::after{animation:none;opacity:0}.scen__tab.is-active::after{animation:none;transform:none}.scen__panel.is-active .scen__who,.scen__panel.is-active .scen__chain>*,.scen__panel.is-active .scen__lose,.scen__panel.is-active .scen__keep,.scen__panel.is-active .scen__out{animation:none}.scen__panel .w{animation:none!important;opacity:1!important}.src.is-scan::before{animation:none}.watch__line .w{animation:none;opacity:1}.watch__sys::before,.steps__sys::before{animation:none}.steps__prog{transition:none}.step.is-on .step__n::before{animation:none}.step__status.is-swap{animation:none}.step__status i{animation:none}.wslot__grid i{animation:none}.wslot[data-state="hunting"] .wslot__name{animation:none;-webkit-text-fill-color:currentColor;color:#fff}.crew__par::before{animation:none}.cchip[data-s="hunting"] .cchip__dot{animation:none}.crew__flow i{animation:none;opacity:0.5}.vread i{animation:none}.vlist__batch i{animation:none}.vrow__reason .w{animation:none;opacity:1}.vrow[data-state="done"] .vbadge{animation:none}.vrow__scan{display:none}.vrow[data-state="done"] .vbadge::after{animation:none}.vlist__prog i{transition:none}.tmstep__ring{animation:none}.tmodel.is-working .tmodel__title{animation:none}.tmodel__spark{animation:none}.stream.is-live .w{animation:none;opacity:1}.report__exp::before{animation:none}.cline.is-cur .cline__caret{animation:none}.cvss.is-live .cvmetric{animation:none;opacity:1;transform:none}.ctx__grid3 i{animation:none}.ctx.is-built .cdist i{transition:none}.ctx.is-built .ctxrow{animation:none;opacity:1;transform:none}.wiki.is-live .wiki__toc li{animation:none;opacity:1;transform:none}.wiki.is-live .wnode,.wiki.is-live .warrow svg{animation:none;opacity:1;transform:none}.wslot[data-state="done"] .wslot__check{animation:none}.wslot::after{animation:none;opacity:0}.wslot[data-state="hunting"],.wslot[data-state="done"]{animation:none}.cchip[data-s="hunting"],.cchip[data-s="done"]{animation:none}.wslot__count.is-pop,.crew__tally b.is-pop{animation:none}.crew__cursor{animation:none;opacity:0.6}.wslot__beam{display:none}.cl.is-hit,.cl.is-hit .cl__flag,.wslot__file.is-in{animation:none}.cl.is-hit .cl__flag,.cl.is-clear .cl__flag{opacity:1;transform:translateY(-50%)}.wslot[data-state="hunting"] .wslot__file::before{animation:none}.scen__panel.is-active .scen__out svg path{animation:none;stroke-dashoffset:0}.bsen.on::after{animation:none}.brain.is-thinking .brain__bar::after{animation:none;opacity:0}.brain__ans>svg path{transition:none;stroke-dashoffset:0}}

/* =========================================================================
   DETECT — signal ledger
   ========================================================================= */
.feed{margin-top:var(--s-6);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.feed__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;padding:0.9rem var(--s-5);background:rgba(255,255,255,0.02);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.14em;text-transform:uppercase}
.feed__sys{display:inline-flex;align-items:center;gap:0.55rem;color:var(--txt);font-weight:600}
.feed__sys::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(84,217,150,0.16)}
.feed__meta{color:var(--txt-mut)}
.ev{display:grid;grid-template-columns:84px 150px minmax(0,1fr) auto;gap:var(--s-5);align-items:center;padding:var(--s-5);border-bottom:1px solid var(--line);transition:background-color 0.18s var(--ease)}
.ev:last-child{border-bottom:0}
.ev:hover{background:rgba(255,255,255,0.025)}
.ev__ref{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-mut)}
.ev__surface{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-dim)}
.ev__surface::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;box-shadow:0 0 0 3px rgba(255,100,112,0.14)}
.ev__sig{display:block;font-weight:600;font-size:1.05rem;color:var(--head);letter-spacing:-0.01em;line-height:1.35}
.ev__act{display:block;font-size:var(--t-body-s);color:var(--txt-dim);margin-top:0.25rem}
.ev__stamp{justify-self:end;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;min-width:8.6em;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;font-weight:600;color:var(--green);border:1px solid var(--green-line);border-radius:100px;padding:0.28rem 0.65rem;transition:color 0.3s var(--ease),border-color 0.3s var(--ease),background-color 0.3s var(--ease)}
.ev{transition:background-color 0.4s var(--ease)}
.ev[data-state="detected"]{background:rgba(255,100,112,0.04)}
.ev[data-state="detected"] .ev__stamp{color:var(--red);border-color:var(--red-line)}
.ev[data-state="detected"] .ev__stamp svg{display:none}
.ev[data-state="detected"] .ev__stamp::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 8px rgba(255,100,112,0.8);animation:ev-blink 0.85s ease-in-out infinite}
.ev[data-state="detected"] .ev__surface::before{animation:ev-blink 0.85s ease-in-out infinite}
.ev[data-state="containing"] .ev__stamp{color:var(--amber);border-color:var(--amber-line)}
.ev[data-state="containing"] .ev__stamp svg{display:none}
.ev[data-state="containing"] .ev__stamp::before{content:"";width:0.8em;height:0.8em;border-radius:50%;border:1.6px solid currentColor;border-top-color:transparent;animation:ev-spin 0.7s linear infinite}
.ev[data-state="contained"] .ev__stamp svg path{stroke-dasharray:22;stroke-dashoffset:22;animation:ev-check 0.5s var(--ease) forwards}
@keyframes ev-blink{0%,100%{opacity:1}50%{opacity:0.3}}
@keyframes ev-spin{to{transform:rotate(360deg)}}
@keyframes ev-check{to{stroke-dashoffset:0}}
.ev__stamp svg{width:1em;height:1em}
@media (max-width:820px){
  .ev{grid-template-columns:1fr auto;gap:0.55rem var(--s-4)}
  .ev__ref{grid-row:1;grid-column:1}.ev__surface{grid-row:1;grid-column:2;justify-self:end}
  .ev__body{grid-row:2;grid-column:1 / -1}.ev__stamp{grid-row:3;grid-column:1 / -1;justify-self:start}
}

/* =========================================================================
   BRAIN console
   ========================================================================= */
.brain{max-width:820px;margin:var(--s-7) auto 0;background:linear-gradient(180deg,rgba(255,255,255,0.045),rgba(255,255,255,0.012));border:1px solid var(--line-2);border-radius:20px;padding:var(--s-5);position:relative;overflow:hidden;box-shadow:var(--lift-3)}
.brain::before{content:"";position:absolute;top:-50%;left:50%;width:70%;height:90%;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(255,255,255,0.05),transparent 70%);pointer-events:none}
.brain__top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:var(--s-4)}
.brain__id{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-dim)}
.brain__id b{color:#fff;font-weight:600;letter-spacing:0.06em}
.brain__dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:brain-pulse 2s ease-out infinite}
@keyframes brain-pulse{0%{box-shadow:0 0 0 0 rgba(84,217,150,0.5)}100%{box-shadow:0 0 0 9px rgba(84,217,150,0)}}
.brain__meta{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-mut);white-space:nowrap}
.brain__bar{position:relative;display:flex;align-items:center;gap:0.75rem;background:rgba(0,0,0,0.35);border:1px solid var(--line-2);border-radius:12px;padding:0.95rem 1.15rem}
.brain__bar::after{content:"";position:absolute;inset:-1px;border-radius:12px;padding:1px;background:linear-gradient(110deg,transparent 20%,rgba(255,150,100,0.75) 50%,transparent 80%) no-repeat -150% 0/60% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:0;pointer-events:none}
.brain.is-thinking .brain__bar::after{opacity:1;animation:brain-sweep 0.9s var(--ease) infinite}
@keyframes brain-sweep{0%{background-position:-150% 0}100%{background-position:250% 0}}
.brain__bar>svg{width:19px;height:19px;color:var(--txt-mut);flex:none}
.brain__q{flex:1;min-width:0;color:#fff;font-size:1.075rem;font-weight:460;white-space:nowrap;overflow:hidden}
.brain__cursor{display:inline-block;width:2px;height:1.1em;background:var(--dawn);vertical-align:-0.15em;animation:brain-blink 1s step-end infinite;flex:none}
@keyframes brain-blink{50%{opacity:0}}
.brain__sensors{position:relative;display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:var(--s-5)}
.bsen{position:relative;display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.05em;text-transform:uppercase;color:var(--txt-mut);border:1px solid var(--line-2);border-radius:100px;padding:0.4rem 0.8rem;transition:color 0.35s var(--ease),border-color 0.35s var(--ease),background-color 0.35s var(--ease),box-shadow 0.35s var(--ease)}
.bsen__d{width:5px;height:5px;border-radius:50%;background:var(--txt-mut);transition:background-color 0.35s var(--ease),box-shadow 0.35s var(--ease)}
.bsen.on{color:#fff;border-color:rgba(255,107,61,0.55);background:rgba(255,107,61,0.12);box-shadow:0 0 18px rgba(255,107,61,0.2)}
.bsen.on .bsen__d{background:var(--dawn);box-shadow:0 0 9px var(--dawn)}
.bsen.ping{color:var(--txt-dim);border-color:var(--line-3)}
.bsen.ping .bsen__d{background:var(--dawn-2);box-shadow:0 0 7px rgba(255,150,110,0.8)}
.bsen.on::after{content:"";position:absolute;inset:-3px;border-radius:100px;border:1px solid rgba(255,107,61,0.55);opacity:0;animation:bsen-ping 0.7s var(--ease) 1;pointer-events:none}
@keyframes bsen-ping{0%{opacity:0.9;transform:scale(0.96)}100%{opacity:0;transform:scale(1.12)}}
.brain__ans{position:relative;display:flex;align-items:flex-start;gap:0.6rem;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line);min-height:1.5em;font-size:var(--t-body-s);line-height:1.5;color:var(--txt);opacity:0;transform:translateY(4px);transition:opacity 0.4s var(--ease),transform 0.4s var(--ease)}
.brain__ans.show{opacity:1;transform:none}
.brain__ans>svg path{stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset 0.45s var(--ease) 0.12s}
.brain__ans.show>svg path{stroke-dashoffset:0}
.brain__ans>svg{width:17px;height:17px;color:var(--green);flex:none;margin-top:0.15em}
.brain__ans b{color:#fff;font-weight:600}
@media (max-width:560px){.brain__meta{display:none}.brain__q{font-size:var(--t-body-s)}}

/* integrations marquee */
.logomq{margin-top:var(--s-6);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.logomq__row{display:flex;align-items:center;gap:clamp(2rem,5vw,4.5rem);width:max-content;animation:logomq 40s linear infinite}
.logomq:hover .logomq__row{animation-play-state:paused}
.logomq img{height:28px;width:auto;max-width:160px;object-fit:contain;opacity:0.62;filter:grayscale(1) brightness(2.2);transition:opacity 0.2s var(--ease),filter 0.2s var(--ease)}
.logomq img:hover{opacity:1;filter:none}
@keyframes logomq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.logomq__row{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.logomq__row img[aria-hidden="true"]{display:none}}

/* steps */
.steps{position:relative;margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);overflow:hidden;box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.steps__track,.steps__prog{position:absolute;width:2px;border-radius:2px;pointer-events:none;z-index:0}
.steps__track{background:var(--line-2)}
.steps__prog{background:linear-gradient(180deg,var(--dawn),var(--dawn-2));box-shadow:0 0 12px rgba(255,110,70,0.45);transition:height 0.9s var(--ease)}
.step{position:relative;display:grid;grid-template-columns:44px 1fr;gap:var(--s-5);padding:var(--s-5)}
.step+.step{border-top:1px solid var(--line)}
.step>div{min-width:0}
.step__n{position:relative;z-index:1;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:600;font-size:var(--t-body-s);color:var(--txt-dim);background:#141020;border:1px solid var(--line-2);transition:color 0.5s var(--ease),border-color 0.5s var(--ease),box-shadow 0.5s var(--ease)}
.step__n::before{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(255,150,110,0.7);opacity:0}
.step__n::after{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;background:#141020;color:var(--green);opacity:0;transform:scale(0.6);transition:opacity 0.35s var(--ease),transform 0.35s var(--ease)}
.step.is-on .step__n{color:var(--dawn-2);border-color:rgba(255,150,110,0.55);box-shadow:0 0 0 4px rgba(255,110,70,0.12),0 10px 26px -12px rgba(255,110,70,0.5)}
.step.is-on .step__n::before{animation:bsen-ping 1.7s var(--ease) infinite}
.step.is-done .step__n{border-color:var(--green-line)}
.step.is-done .step__n::after{opacity:1;transform:scale(1)}
.step__k{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dawn-2);display:block;margin-bottom:0.35rem}
.step h3{font-size:var(--t-lg);color:var(--head);margin-bottom:var(--s-3);transition:color 0.5s var(--ease)}
.step p{color:var(--txt-dim);font-size:var(--t-body-s);max-width:60ch;transition:opacity 0.5s var(--ease)}
.step .chips{margin-top:var(--s-4)}
.step__status{position:absolute;top:calc(var(--s-5) + 0.55rem);right:var(--s-5);z-index:1;display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut);padding:0.3rem 0.7rem;border:1px solid var(--line-2);border-radius:999px;background:rgba(255,255,255,0.02);transition:color 0.4s var(--ease),border-color 0.4s var(--ease)}
.step__status i{width:6px;height:6px;border-radius:50%;background:currentColor}
.step__status.is-swap{animation:step-swap 0.32s var(--ease)}
.step__status[data-state="running"]{color:var(--dawn-2);border-color:rgba(255,150,110,0.45)}
.step__status[data-state="running"] i{animation:ev-blink 1.1s linear infinite}
.step__status[data-state="done"]{color:var(--green);border-color:var(--green-line)}
@keyframes step-swap{from{opacity:0;transform:translateY(3px)}}
.steps.is-live .step{cursor:pointer}
.steps.is-live .step:focus-visible{outline:2px solid var(--dawn-2);outline-offset:-2px}
.steps.is-live .step h3{color:var(--txt-dim)}
.steps.is-live .step p{opacity:0.55}
.steps.is-live .step .chips .tag{opacity:0.28;transform:translateY(5px);transition:opacity 0.5s var(--ease),transform 0.5s var(--ease)}
.steps.is-live .step .codewrap{opacity:0.5;transition:opacity 0.6s var(--ease)}
.steps.is-live .step pre .w{opacity:0}
.steps.is-live .step.is-on h3,.steps.is-live .step.is-done h3{color:var(--head)}
.steps.is-live .step.is-on p,.steps.is-live .step.is-done p{opacity:1}
.steps.is-live .step.is-on .chips .tag,.steps.is-live .step.is-done .chips .tag{opacity:1;transform:none}
.steps.is-live .step.is-on .chips .tag:nth-child(1){transition-delay:0.05s}
.steps.is-live .step.is-on .chips .tag:nth-child(2){transition-delay:0.17s}
.steps.is-live .step.is-on .chips .tag:nth-child(3){transition-delay:0.29s}
.steps.is-live .step.is-on .chips .tag:nth-child(4){transition-delay:0.41s}
.steps.is-live .step.is-done .chips .tag{transition-delay:0s}
.steps.is-live .step.is-on .codewrap,.steps.is-live .step.is-done .codewrap{opacity:1}
.steps.is-live .step.is-on pre .w{animation:scan-word 0.38s cubic-bezier(0.22,0.61,0.25,1) both;animation-delay:calc(var(--wi,0)*0.05s)}
.steps.is-live .step.is-done pre .w{opacity:1}
@media (max-width:640px){.step{grid-template-columns:36px 1fr;gap:var(--s-4);padding:calc(var(--s-5) + 1.8rem) var(--s-4) var(--s-5)}.step__n{width:36px;height:36px;border-radius:10px}.step__status{top:var(--s-4);right:var(--s-4)}}

/* code panel */
.codewrap{margin-top:var(--s-5);background:#05060a;border:1px solid var(--line-2);border-radius:12px;overflow:hidden}
.codewrap__bar{display:flex;align-items:center;gap:0.5rem;padding:0.65rem var(--s-4);border-bottom:1px solid var(--line);background:rgba(255,255,255,0.02);font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-mut)}
.codewrap__dots{display:inline-flex;gap:0.35rem;margin-right:0.4rem}
.codewrap__dots i{width:9px;height:9px;border-radius:50%;background:var(--line-3)}
.codewrap pre{margin:0;padding:var(--s-5);overflow-x:auto;font-family:var(--font-mono);font-size:var(--t-xs);line-height:1.7;color:#cfd3e6}
.codewrap pre .c{color:var(--txt-mut)}
.codewrap pre .k{color:var(--dawn-2)}
.codewrap pre .f{color:var(--gold)}

/* =========================================================================
   SIGNATURE FIGURES — per-page animated illustrations
   ========================================================================= */
.figure{position:relative;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,0.022),rgba(255,255,255,0.004));padding:clamp(1.3rem,3vw,2.4rem);overflow:hidden;margin-top:var(--s-2)}
.figure::after{content:none}
.figure__grid{position:absolute;inset:0;pointer-events:none;opacity:0.5;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(120% 100% at 50% 40%,#000 30%,transparent 80%);mask-image:radial-gradient(120% 100% at 50% 40%,#000 30%,transparent 80%)}
.figure__cap{position:relative;z-index:1;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-4);display:flex;align-items:center;gap:0.5rem}
.figure__cap::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 8px var(--dawn);flex:none}
.figure svg{position:relative;z-index:1;width:100%;height:auto;display:block;overflow:visible}
/* shared figure primitives */
.sg-node{fill:rgba(18,15,24,0.92);stroke:var(--line-2);stroke-width:1.4}
.sg-node-warm{fill:rgba(255,107,61,0.1);stroke:rgba(255,107,61,0.5);stroke-width:1.5}
.sg-core{fill:rgba(255,255,255,0.05);stroke:rgba(255,255,255,0.6);stroke-width:1.6}
.sg-ic{fill:none;stroke:var(--dawn-2);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sg-ic-dim{fill:none;stroke:var(--txt-dim);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sg-line{fill:none;stroke:var(--line-2);stroke-width:1.3}
.sg-line-dash{fill:none;stroke:var(--line-2);stroke-width:1.3;stroke-dasharray:3 5}
.sg-beam{fill:none;stroke:rgba(255,255,255,0.55);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:5 7;animation:fm-flow 1.5s linear infinite}
.sg-lbl{fill:var(--head);font-family:var(--font-sans);font-size:13px;font-weight:600}
.sg-sub{fill:var(--txt-mut);font-family:var(--font-mono);font-size:9px;letter-spacing:0.09em;text-transform:uppercase}
.sg-mono{fill:var(--txt-dim);font-family:var(--font-mono);font-size:11px}
.sg-tok{fill:rgba(255,255,255,0.9)}
.sg-tok-red{fill:var(--red)}
.sg-tok-green{fill:var(--green)}
.sg-tok-blue{fill:var(--blue)}
.sg-pulse{transform-box:fill-box;transform-origin:center;animation:sg-pulse 3s ease-in-out infinite}
@keyframes sg-pulse{0%,100%{opacity:0.35}50%{opacity:1}}
.sg-sweep{transform-box:view-box;transform-origin:var(--ox,50%) var(--oy,50%);animation:sg-spin 6s linear infinite}
@keyframes sg-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sg-beam,.sg-pulse,.sg-sweep{animation:none}.sg-beam{stroke-dasharray:none}}

/* sub-hero for module pages (shorter than home hero) */
.hero--sub{min-height:clamp(460px,58vh,600px)}
.hero--sub .hero__inner{padding-block:clamp(3.5rem,3rem + 3vw,5.5rem)}
.hero--sub h1{font-size:clamp(2.3rem,1.6rem + 3.4vw,4rem);max-width:20ch}

/* live scan console — the Dark Web signature */
/* scan + radar companion */
.scanwrap{display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);align-items:center}
@media (max-width:1100px){.scanwrap{grid-template-columns:1fr}.radar{display:none}}
.radar{position:relative;width:min(100%,400px);aspect-ratio:1;justify-self:center}
.radar__ring{position:absolute;border-radius:50%;border:1px solid rgba(255,140,100,0.2)}
.radar__ring--1{inset:0}
.radar__ring--2{inset:17%}
.radar__ring--3{inset:34%}
.radar__cross{position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(50% - 0.5px),rgba(255,140,100,0.12) 50%,transparent calc(50% + 0.5px)),linear-gradient(180deg,transparent calc(50% - 0.5px),rgba(255,140,100,0.12) 50%,transparent calc(50% + 0.5px))}
.radar__scope{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.radar__sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 76%,rgba(255,150,90,0.04) 86%,rgba(255,170,100,0.18) 96%,rgba(255,214,140,0.5) 99.4%,transparent 100%);animation:radar-rot 4.2s linear infinite}
.radar__b{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#ffd6b8;opacity:0.3;animation:radar-ping 4.2s linear infinite}
.radar__b--hot{width:7px;height:7px;margin:-3.5px;background:var(--red);animation:radar-hot 4.2s linear infinite}
.radar__b--hot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,100,112,0.7);opacity:0;animation:radar-halo 4.2s linear infinite;animation-delay:inherit}
.radar__core{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--dawn);box-shadow:0 0 14px var(--dawn)}
.radar__cap{position:absolute;left:50%;bottom:-2.2rem;transform:translateX(-50%);white-space:nowrap;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut)}
@keyframes radar-rot{to{transform:rotate(360deg)}}
@keyframes radar-ping{0%{opacity:1;box-shadow:0 0 12px rgba(255,190,140,0.9)}10%{opacity:0.8}26%{opacity:0.35;box-shadow:none}100%{opacity:0.3}}
@keyframes radar-hot{0%{opacity:1;box-shadow:0 0 16px rgba(255,100,112,1)}14%{opacity:0.95}40%{opacity:0.55;box-shadow:0 0 6px rgba(255,100,112,0.4)}100%{opacity:0.5}}
@keyframes radar-halo{0%{opacity:0.9;transform:scale(0.6)}22%{opacity:0;transform:scale(1.9)}100%{opacity:0}}
.scan{margin-top:var(--s-6);max-width:720px;border:1px solid rgba(255,255,255,0.14);border-radius:14px;background:#060509;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,0.9),var(--lift-3);transition:border-color 0.45s var(--ease),box-shadow 0.45s var(--ease)}
.scan[data-mood="hot"]{border-color:var(--red-line);box-shadow:0 0 38px -12px rgba(255,100,112,0.5),var(--lift-3)}
.scan[data-mood="warn"]{border-color:var(--amber-line)}
.scan[data-mood="ok"]{border-color:var(--green-line);box-shadow:0 0 38px -12px rgba(84,217,150,0.4),var(--lift-3)}
.scan__live,.scan__live::before{transition:color 0.35s var(--ease),background-color 0.35s var(--ease)}
.scan[data-mood="hot"] .scan__live{color:var(--red)}
.scan[data-mood="hot"] .scan__live::before{background:var(--red);box-shadow:0 0 0 3px rgba(255,100,112,0.18)}
.scan[data-mood="warn"] .scan__live{color:var(--amber)}
.scan[data-mood="warn"] .scan__live::before{background:var(--amber);box-shadow:0 0 0 3px rgba(244,184,96,0.18)}
.scan__dots i{transition:background-color 0.35s var(--ease)}
.scan[data-mood="hot"] .scan__dots i:nth-child(3){background:var(--red)}
.scan[data-mood="warn"] .scan__dots i:nth-child(3){background:var(--amber)}
.scan[data-mood="ok"] .scan__dots i:nth-child(3){background:var(--green)}
.scan__replay{margin-left:0.9rem;font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--txt-mut);background:none;border:0;cursor:pointer;padding:0.15rem 0.4rem;border-radius:6px;transition:color 0.2s var(--ease)}
.scan__replay:hover{color:#fff}
.scan__replay:focus-visible{outline:2px solid #ff8a5e;outline-offset:2px}
.scan__bar{display:flex;align-items:center;gap:0.7rem;padding:0.7rem var(--s-5);border-bottom:1px solid rgba(255,255,255,0.08);background:#0d0b14;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.scan__dots{display:inline-flex;gap:0.35rem}.scan__dots i{width:9px;height:9px;border-radius:50%}.scan__dots i:nth-child(1){background:#ff5f57}.scan__dots i:nth-child(2){background:#febc2e}.scan__dots i:nth-child(3){background:#28c840}
.scan__live{margin-left:auto;display:inline-flex;align-items:center;gap:0.45rem;color:var(--green)}
.scan__live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(84,217,150,0.16);animation:brain-pulse 2s ease-out infinite}
.scan__body{padding:var(--s-5) var(--s-5) var(--s-6);font-family:var(--font-mono);font-size:var(--t-xs);line-height:1.85;min-height:246px;color:var(--txt-dim)}
.scan__line{display:block;white-space:pre-wrap;opacity:0;transform:translateY(4px);animation:scan-in 0.32s var(--ease) forwards}
@keyframes scan-in{to{opacity:1;transform:none}}
.scan__line{display:flex;align-items:baseline;gap:0.55rem}
.scan__line .g{flex:none;width:1.1em;text-align:center;font-weight:700}
.scan__line .g.hot{color:#ff8a92}.scan__line .g.warn{color:#ffce7a}.scan__line .g.ok{color:#8ceeb8}.scan__line .g.dim{color:var(--dawn-2);animation:cst-breathe 2s ease-in-out infinite}
.scan__line .tx{color:#a9a4bd;transition:color 0.4s var(--ease)}.scan__line .tx.dim{color:var(--txt-mut)}
.scan__line.is-now .tx{color:#f2effa}
.scan__line.is-now .g{text-shadow:0 0 10px currentColor}
.scan__line .tx .w--str{color:#ffd28a}
.scan__line .tx .w--num{color:#ff9db8}
.scan__line.is-now .tx .w--str{color:#ffe0a8}
.scan__line.is-now .tx .w--num{color:#ffb3c8}
.scan__line .cmd{color:#fff}.scan__line .hot{color:#ff97a0}.scan__line .warn{color:#ffce7a}.scan__line .ok{color:#8ceeb8}.scan__line .dim{color:var(--txt-mut)}
.scan__cursor{display:inline-block;width:8px;height:1.05em;background:var(--dawn);vertical-align:-0.16em;animation:brain-blink 1s step-end infinite}
.scan__line .tx .w{display:inline;will-change:filter,opacity;animation:scan-word 0.42s cubic-bezier(0.22,0.61,0.25,1) both}
.scan__load{display:flex;align-items:center;gap:0.65rem;padding:0.2rem 0;min-height:1.85em}
.scan__grid{display:grid;grid-template-columns:repeat(3,4px);gap:1.5px;flex:none}
.scan__grid i{width:4px;height:4px;border-radius:1px;background:#fff;opacity:0.15;animation:scan-pixel 0.65s ease-in-out infinite}
.scan__shimmer{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;background:linear-gradient(90deg,var(--txt-mut) 35%,#fff 50%,var(--txt-mut) 65%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:scan-shimmer 1.4s linear infinite}
.scan__elapsed{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);font-variant-numeric:tabular-nums}
@keyframes scan-word{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}
@keyframes scan-pixel{0%,100%{opacity:0.15}50%{opacity:1}}
@keyframes scan-shimmer{to{background-position:-200% 0}}

/* ---- Code agent: threat model card ---- */
.tmodel{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);overflow:hidden;box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.tmodel__head{width:100%;display:flex;align-items:center;gap:0.6rem;padding:0.8rem var(--s-5);background:rgba(255,255,255,0.02);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut);transition:background 0.2s var(--ease)}
.tmodel__head:hover{background:rgba(255,255,255,0.045)}
.tmodel__head:focus-visible{outline:2px solid var(--dawn-2);outline-offset:-2px}
.tmodel__spark{width:15px;height:15px;flex:none;color:var(--dawn-2)}
.tmodel.is-working .tmodel__spark{color:#ff9e78}
.tmodel__title{font-weight:600;color:var(--txt-dim)}
.tmodel.is-working .tmodel__title{background:linear-gradient(90deg,var(--txt-mut) 35%,#fff 50%,var(--txt-mut) 65%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:scan-shimmer 1.4s linear infinite}
.tmodel__chev{margin-left:auto;width:14px;height:14px;color:var(--txt-mut);transition:transform 0.3s var(--ease)}
.tmodel[data-open="false"] .tmodel__chev{transform:rotate(-90deg)}
.tmodel__trace{display:grid;grid-template-rows:1fr;transition:grid-template-rows 0.45s cubic-bezier(0.23,1,0.32,1),opacity 0.3s var(--ease)}
.tmodel[data-open="false"] .tmodel__trace{grid-template-rows:0fr;opacity:0}
.tmodel__trace>div{overflow:hidden}
.tmtrace{position:relative;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line)}
.tmtrace::before{content:"";position:absolute;left:calc(var(--s-5) + 7.5px);top:2rem;bottom:2rem;width:1.5px;background:var(--line);z-index:0}
.tmstep{position:relative;z-index:1;display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:0.7rem;min-height:34px;opacity:0;transform:translateY(4px)}
.tmstep.is-in{opacity:1;transform:none;transition:opacity 0.4s var(--ease),transform 0.4s var(--ease)}
.tmstep__ic{width:16px;height:16px;display:grid;place-items:center;background:#0b0912;border-radius:50%}
.tmstep__ring{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--line-3);border-top-color:#ff9e78;animation:spin 0.7s linear infinite}
.tmstep__check{width:14px;height:14px;color:var(--green);opacity:0;display:none}
.tmstep.is-done .tmstep__ring{display:none}
.tmstep.is-done .tmstep__check{display:block;opacity:1;animation:vbadge-pop 0.35s var(--ease)}
.tmstep__tx{font-size:var(--t-body-s);color:var(--txt-mut);transition:color 0.4s var(--ease)}
.tmstep.is-done .tmstep__tx{color:var(--txt-dim)}
.tmstep__meta{font-family:var(--font-mono);font-size:var(--t-2xs);color:#ff9e78;font-variant-numeric:tabular-nums;white-space:nowrap}
.tmstep.is-done .tmstep__meta{color:var(--dawn-2)}
@keyframes spin{to{transform:rotate(360deg)}}
.tmodel__out{opacity:0;transition:opacity 0.55s var(--ease)}
.tmodel.is-built .tmodel__out{opacity:1}
.tmodel__bar{display:flex;align-items:center;gap:0.5rem;padding:0.75rem var(--s-5);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.tmodel__bar b{color:var(--head);font-weight:600}.tmodel__bar span{margin-left:auto}
.tmrow{display:grid;grid-template-columns:170px 1fr;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);font-size:var(--t-body-s)}
.tmrow:last-child{border-bottom:0}
.tmrow dt{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dawn-2);align-self:center}
.tmrow dd{color:var(--txt);margin:0}

/* ---- Code agent: confirmed finding card ---- */
.finding2{margin-top:var(--s-6);border:1px solid var(--red-line);border-radius:14px;overflow:hidden;background:var(--panel);box-shadow:var(--lift-2)}
.finding2 + .caps,.ask + .caps{margin-top:var(--s-6)}
.finding2__head{display:flex;align-items:center;gap:0.7rem;padding:var(--s-4) var(--s-5) var(--s-3)}
.finding2__sev{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.1em;color:#1a0608;background:var(--red);border-radius:4px;padding:0.16rem 0.5rem}
.finding2__title{font-weight:600;color:var(--head)}
.finding2__loc{padding:0 var(--s-5);font-family:var(--font-mono);font-size:0.78rem;color:var(--txt-mut)}
.finding2 pre{margin:var(--s-3) var(--s-5);background:#05060a;border:1px solid var(--line);border-radius:8px;padding:var(--s-4);font-family:var(--font-mono);font-size:var(--t-xs);line-height:1.75;color:#cfd3e6;overflow-x:auto}
.finding2 pre .ln{color:var(--txt-mut);margin-right:0.9rem}.finding2 pre .c{color:var(--txt-mut)}
.finding2__foot{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;padding:0 var(--s-5) var(--s-5)}
.finding2__cvss{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;color:#cbb8ff;background:rgba(130,100,240,0.18);border:1px solid rgba(150,120,255,0.45);border-radius:5px;padding:0.2rem 0.5rem}
.finding2__note{font-size:var(--t-xs);color:var(--txt-mut)}
.finding2__pr{margin-left:auto;font-family:var(--font-sans);font-size:var(--t-xs);font-weight:600;color:#06210f;background:var(--green);border-radius:100px;padding:0.4rem 0.85rem;display:inline-flex;align-items:center;gap:0.4rem;white-space:nowrap}
/* ---- example finding report ---- */
.report{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.report__head{padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid var(--line);background:rgba(255,255,255,0.015)}
.report__badges{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;margin-bottom:var(--s-3)}
.report__sev{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.08em;border-radius:5px;padding:0.2rem 0.5rem;color:#2a080c;background:var(--red)}
.report__id{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);letter-spacing:0.08em}
.report__exp{margin-left:auto;display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--amber);letter-spacing:0.04em}
.report__exp::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 6px rgba(244,184,96,0.6);animation:ev-blink 1.4s linear infinite}
.report__title{font-family:var(--font-sans);font-size:var(--t-lg);font-weight:600;color:var(--head);line-height:1.3}
.report__meta{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-4);font-size:var(--t-2xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0.08em;color:var(--txt-mut)}
.report__meta b{color:var(--txt-dim);font-weight:600;margin-left:0.45rem;text-transform:none;letter-spacing:0}
.report__grid{display:grid;grid-template-columns:1fr 290px}
.report__main{padding:var(--s-5);min-width:0}
.report__aside{border-left:1px solid var(--line);padding:var(--s-5);background:rgba(255,255,255,0.012)}
.report__toolbar{display:flex;align-items:center;gap:0.6rem;margin-bottom:var(--s-5)}
.report__lbl{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.report__pr{margin-left:auto;font-family:var(--font-sans);font-size:var(--t-2xs);font-weight:600;color:#06210f;background:var(--green);border:0;border-radius:100px;padding:0.4rem 0.8rem;display:inline-flex;align-items:center;gap:0.4rem;white-space:nowrap;cursor:pointer;transition:filter 0.2s var(--ease)}
.report__pr:hover{filter:brightness(1.08)}
.report__pr svg{width:12px;height:12px}
.report__sec + .report__sec{margin-top:var(--s-5)}
.report__h{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dawn-2);margin-bottom:var(--s-3)}
.stream{font-size:var(--t-body-s);color:var(--txt-dim);line-height:1.62}
.stream code{font-family:var(--font-mono);font-size:0.92em;background:rgba(255,255,255,0.06);border-radius:4px;padding:0.05em 0.32em;color:#ffd28a}
.stream .w{opacity:0}
.stream.is-live .w{animation:scan-word 0.34s cubic-bezier(0.22,0.61,0.25,1) both;animation-delay:calc(var(--wi,0)*0.028s)}
/* reusable streaming code block */
.cblock{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#05060a;margin-top:var(--s-2)}
.cblock__bar{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding:0.5rem 0.75rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,0.02)}
.cblock__file{min-width:0;display:flex;align-items:baseline;gap:0.5rem}
.cblock__name{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-dim);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cblock__lang{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);flex:none}
.cblock__copy{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:0.35rem;padding:0.25rem 0.45rem;border-radius:6px;flex:none;transition:background 0.15s var(--ease),color 0.15s var(--ease)}
.cblock__copy:hover{background:rgba(255,255,255,0.06);color:var(--txt-dim)}
.cblock__copy.is-copied{color:var(--green)}
.cblock__copy svg{width:11px;height:11px}
.cblock__code{margin:0;padding:0.7rem 0.9rem;white-space:normal;font-family:var(--font-mono);font-size:var(--t-xs);line-height:1.55;color:#cfd3e6}
.cline{display:block;position:relative;padding-left:2.7rem;opacity:0}
.cline__n,.cline__tx{line-height:1.55}
.cline.is-in{animation:fade-up 0.24s cubic-bezier(0.23,1,0.32,1) both}
.cline__n{position:absolute;left:0;top:0;width:1.7rem;text-align:right;color:rgba(255,255,255,0.26);user-select:none}
.cline__tx{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.ck{color:#c9a8ff}.cs{color:#ffd28a}.cn{color:#ff9db8}.cf{color:#8fb8ff}.cc{color:var(--txt-mut);font-style:italic}.ct{color:#7ee0c0}
.cline__caret{display:none;width:3px;height:0.95em;transform:translateY(0.14em);border-radius:2px;background:#ff9e78;margin-left:1px}
.cline.is-cur .cline__caret{display:inline-block;animation:ev-blink 1s steps(2,end) infinite}
@keyframes fade-up{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* cvss panel */
.cvss__bar{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:var(--s-4)}
.cvss__k{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.cvss__k::before{content:"";width:6px;height:6px;border-radius:50%;background:#8f7bff;box-shadow:0 0 6px rgba(143,123,255,0.6)}
.cvss__adjust{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);border:1px solid var(--line-2);border-radius:6px;padding:0.25rem 0.5rem;background:transparent;cursor:pointer;transition:color 0.15s var(--ease),border-color 0.15s var(--ease)}
.cvss__adjust:hover{color:var(--txt-dim);border-color:var(--line-3)}
.cvss__score{font-family:var(--font-sans);font-size:2.7rem;font-weight:700;color:var(--red);line-height:1;font-variant-numeric:tabular-nums}
.cvss__sev{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.1em;color:var(--red);display:block;margin-top:0.25rem}
.cvss__vector{display:flex;align-items:center;gap:0.4rem;margin-top:var(--s-4);padding:0.4rem 0.55rem;border:1px solid var(--line-2);border-radius:7px;background:rgba(0,0,0,0.3)}
.cvss__vtx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-dim)}
.cvss__vcopy{flex:none;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);border:0;background:transparent;cursor:pointer;padding:0.15rem 0.3rem;border-radius:5px;display:inline-flex;align-items:center;gap:0.3rem;transition:color 0.15s var(--ease)}
.cvss__vcopy:hover{color:var(--txt-dim)}
.cvss__vcopy.is-copied{color:var(--green)}
.cvss__vcopy svg{width:11px;height:11px}
.cvss__metrics{margin-top:var(--s-5);display:grid;gap:0.6rem}
.cvmetric{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0.55rem;opacity:0;transform:translateY(3px)}
.cvss.is-live .cvmetric{animation:fade-up 0.4s var(--ease) both;animation-delay:calc(var(--ci,0)*0.09s + 0.5s)}
.cvmetric__l{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);white-space:nowrap}
.cvmetric__lead{border-bottom:1px dotted var(--line-3);height:0.55em}
.cvmetric__v{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-dim);font-weight:700;min-width:1.2em;text-align:right}
.cvmetric__v[data-h="high"]{color:#ff9e78}
@media (max-width:820px){.report__grid{grid-template-columns:1fr}.report__aside{border-left:0;border-top:1px solid var(--line)}.report__exp{margin-left:0}}
.report__sub{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.09em;text-transform:uppercase;color:var(--txt-mut);margin:var(--s-4) 0 var(--s-2)}
.rsteps{margin:var(--s-3) 0 0;padding:0;list-style:none}
.rsteps>li{position:relative;padding:0 0 var(--s-3) 1.4rem;color:var(--txt-dim);font-size:var(--t-body-s);line-height:1.6}
.rsteps>li:last-child{padding-bottom:0}
.rsteps>li::before{content:"";position:absolute;left:0.3rem;top:0.62em;width:5px;height:5px;border-radius:50%;background:#ff9e78}
.rsteps code,.rpre{font-family:var(--font-mono)}
.rpre{margin:var(--s-3) 0 0;padding:0.7rem 0.9rem;border:1px solid var(--line);border-radius:8px;background:#05060a;font-size:var(--t-xs);line-height:1.6;color:#ffd28a;white-space:pre-wrap;overflow-wrap:anywhere}
.report .wflow{margin-top:var(--s-3);align-items:stretch}
.report .wnode{opacity:1;transform:none;text-align:left;max-width:none;width:100%}
.wnode b{display:block;color:var(--txt-dim);font-weight:600;font-family:var(--font-mono);font-size:var(--t-2xs)}
.wnode small{display:block;margin-top:0.2rem;color:var(--txt-mut);font-size:0.9em;font-family:var(--font-mono)}
.wnode--src b{color:#a9c6ff}.wnode--sink b{color:#ffb3ba}
.report .warrow{align-self:center}
.report .warrow svg{opacity:1}

/* ---- codebase context ---- */
.ctx{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.ctx__bar{display:flex;align-items:center;gap:0.55rem;flex-wrap:wrap;padding:0.8rem var(--s-5);border-bottom:1px solid var(--line);background:rgba(255,255,255,0.02);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.ctx__bar b{color:var(--head);font-weight:600}
.ctx__load{margin-left:auto;display:inline-flex;align-items:center;gap:0.5rem}
.ctx__grid3{display:grid;grid-template-columns:repeat(3,4px);gap:1.5px}
.ctx__grid3 i{width:4px;height:4px;border-radius:1px;background:#ff9e78;opacity:0.15;animation:scan-pixel 0.65s ease-in-out infinite}
.ctx__loadtx{color:var(--txt-mut)}
.ctx.is-built .ctx__grid3{display:none}
.ctx.is-built .ctx__loadtx{color:var(--green)}
.ctx__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.cstat{padding:var(--s-4) var(--s-5);background:#0b0912}
.cstat__n{font-family:var(--font-sans);font-size:1.85rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--head)}
.cstat--entry .cstat__n{color:#8fb8ff}.cstat--sink .cstat__n{color:var(--red)}.cstat--val .cstat__n{color:var(--green)}
.cstat__l{margin-top:0.45rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut)}
.cstat__s{display:block;margin-top:0.15rem;font-size:var(--t-2xs);color:var(--txt-mut);text-transform:none;letter-spacing:0}
.ctx__dist{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cdist{display:flex;height:9px;border-radius:5px;overflow:hidden;background:rgba(255,255,255,0.05)}
.cdist i{height:100%;width:0;transition:width 0.85s cubic-bezier(0.23,1,0.32,1)}
.ctx.is-built .cdist i{width:var(--w)}
.cdist__legend{display:flex;flex-wrap:wrap;gap:0.4rem 1.1rem;margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut)}
.cdist__legend span{display:inline-flex;align-items:center;gap:0.4rem}
.cdist__legend i{width:8px;height:8px;border-radius:2px;flex:none}
.ctx__cols{display:grid;grid-template-columns:1fr 1fr}
.ctxcol{padding:var(--s-4) var(--s-5);min-width:0}
.ctxcol:first-child{border-right:1px solid var(--line)}
.ctxcol__h{display:flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-2)}
.ctxcol__h b{color:var(--head);font-weight:600}
.ctxcol__h .dot{width:6px;height:6px;border-radius:50%;flex:none}
.ctxcol__h .dot--e{background:#8fb8ff}.ctxcol__h .dot--s{background:var(--red)}
.ctxcol__c{margin-left:auto}
.ctxrow{padding:0.55rem 0;border-top:1px solid var(--line);opacity:0;transform:translateY(4px)}
.ctx.is-built .ctxrow{animation:fade-up 0.4s var(--ease) both;animation-delay:calc(var(--ri,0)*0.07s + 0.35s)}
.ctxrow__f{font-family:var(--font-mono);font-size:var(--t-2xs);color:#8fb8ff;display:block;word-break:break-all}
.ctxrow--sink .ctxrow__f{color:var(--red)}
.ctxrow__d{font-size:var(--t-xs);color:var(--txt-dim);margin-top:0.2rem}
@media (max-width:700px){.ctx__stats{grid-template-columns:repeat(2,1fr)}.ctx__cols{grid-template-columns:1fr}.ctxcol:first-child{border-right:0;border-bottom:1px solid var(--line)}}
/* ---- wiki ---- */
.wiki{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0f0d18 0%,#0a0912 100%);box-shadow:0 24px 60px -30px rgba(0,0,0,0.75)}
.wiki__bar{display:flex;align-items:center;gap:0.55rem;flex-wrap:wrap;padding:0.7rem var(--s-5);border-bottom:1px solid var(--line);background:rgba(255,255,255,0.02);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.wiki__bar b{color:var(--txt-dim);font-weight:600}
.wiki__dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(84,217,150,0.16);flex:none}
.wiki__tools{margin-left:auto;display:flex;gap:0.4rem}
.wiki__tool{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);border:1px solid var(--line-2);border-radius:6px;padding:0.28rem 0.55rem;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:0.35rem;transition:color 0.15s var(--ease),border-color 0.15s var(--ease)}
.wiki__tool:hover{color:var(--txt-dim);border-color:var(--line-3)}
.wiki__tool svg{width:11px;height:11px}
.wiki__head{padding:var(--s-5);border-bottom:1px solid var(--line)}
.wiki__title{font-family:var(--font-sans);font-size:var(--t-xl);font-weight:700;color:var(--head);line-height:1.2}
.wiki__sub{margin-top:0.5rem;font-size:var(--t-body-s);color:var(--txt-dim);display:flex;align-items:center;gap:0.5rem}
.wiki__sub svg{width:14px;height:14px;color:var(--green);flex:none}
.wiki__chips{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:var(--s-4)}
.wchip{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);border:1px solid var(--line-2);border-radius:100px;padding:0.28rem 0.65rem;display:inline-flex;align-items:center;gap:0.4rem}
.wchip svg{width:11px;height:11px;color:var(--dawn-2)}
.wiki__body{display:grid;grid-template-columns:1fr 216px}
.wiki__main{padding:var(--s-5);min-width:0;border-right:1px solid var(--line)}
.wiki__h{font-family:var(--font-sans);font-size:var(--t-lg);font-weight:600;color:var(--head);margin-bottom:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--line)}
.wiki__sh{font-family:var(--font-sans);font-size:var(--t-body);font-weight:600;color:var(--txt-dim);margin:var(--s-5) 0 var(--s-3)}
.wiki__toc{padding:var(--s-5);background:rgba(255,255,255,0.012)}
.wiki__tock{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-3);display:flex;align-items:center;gap:0.45rem}
.wiki__tock::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn-2)}
.wiki__toc ul{list-style:none;margin:0;padding:0}
.wiki__toc li{padding:0.32rem 0;font-size:var(--t-xs);color:var(--txt-mut);border-left:1.5px solid var(--line);padding-left:0.7rem;opacity:0;transform:translateX(-3px)}
.wiki.is-live .wiki__toc li{animation:toc-in 0.4s var(--ease) both;animation-delay:calc(var(--ti,0)*0.06s + 0.2s)}
.wiki__toc li.is-sub{padding-left:1.4rem;font-size:0.72rem}
.wiki__toc li.is-on{color:var(--txt-dim);border-left-color:var(--dawn)}
@keyframes toc-in{from{opacity:0;transform:translateX(-3px)}to{opacity:1;transform:none}}
.wflow{margin-top:var(--s-4);border:1px solid var(--line);border-radius:10px;background:#05060a;padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;align-items:center;gap:0}
.wnode{width:100%;max-width:340px;text-align:center;padding:0.6rem 0.8rem;border:1px solid var(--line-2);border-radius:9px;background:#100d1b;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-dim);opacity:0;transform:translateY(5px)}
.wiki.is-live .wnode{animation:fade-up 0.45s var(--ease) both;animation-delay:calc(var(--ni,0)*0.28s + 0.6s)}
.wnode--sink{border-color:var(--red-line);color:#ffb3ba}
.wnode--src{border-color:rgba(143,184,255,0.4);color:#a9c6ff}
.warrow{display:flex;flex-direction:column;align-items:center;gap:0.1rem;padding:0.35rem 0;color:var(--txt-mut)}
.warrow span{font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.05em}
.warrow svg{width:13px;height:13px;opacity:0}
.wiki.is-live .warrow svg{animation:fade-up 0.4s var(--ease) both;animation-delay:calc(var(--ni,0)*0.28s + 0.74s)}
@media (max-width:700px){.wiki__body{grid-template-columns:1fr}.wiki__main{border-right:0;border-bottom:1px solid var(--line)}}



/* ---- Code agent: validator verdicts ---- */
/* ---- validator: a re-reading console that stamps a verdict on each candidate ---- */
.vlist{margin-top:var(--s-6);border:1px solid rgba(255,255,255,0.14);border-radius:14px;overflow:hidden;background:#060509;box-shadow:0 30px 80px -30px rgba(0,0,0,0.9)}
.vlist__bar{display:flex;align-items:center;gap:0.55rem;padding:0.7rem var(--s-5);border-bottom:1px solid rgba(255,255,255,0.08);background:#0d0b14;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.vlist__bar b{color:var(--head);font-weight:600}
.vlist__batch{margin-left:auto;display:inline-flex;align-items:center;gap:0.5rem;color:var(--dawn-2)}
.vlist__batch i{width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 6px var(--dawn);animation:ev-blink 1.1s linear infinite}
/* batch progress rail under the header */
.vlist__prog{height:2px;background:rgba(255,255,255,0.05)}
.vlist__prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--dawn-deep),var(--dawn) 70%,var(--gold));box-shadow:0 0 10px rgba(255,120,70,0.6);transition:width 0.5s cubic-bezier(0.4,0,0.2,1)}
.vstream{padding:0}
.vrow{position:relative;overflow:hidden;display:grid;grid-template-columns:98px 1fr;gap:var(--s-4);padding:var(--s-4) var(--s-5);align-items:start;opacity:0;transform:translateY(7px)}
.vrow.is-in{opacity:1;transform:none;transition:opacity 0.45s var(--ease),transform 0.45s var(--ease)}
.vrow + .vrow{border-top:1px solid rgba(255,255,255,0.07)}
/* verdict accent bar + faint tint, revealed when the stamp lands */
.vrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:transparent;transition:width 0.35s var(--ease)}
.vrow[data-state="done"]::before{width:2px}
.vrow[data-state="done"][data-verdict="ok"]::before{background:var(--green);box-shadow:0 0 14px rgba(84,217,150,0.55)}
.vrow[data-state="done"][data-verdict="no"]::before{background:var(--red);box-shadow:0 0 14px rgba(255,100,112,0.5)}
.vrow[data-state="done"][data-verdict="warn"]::before{background:var(--amber);box-shadow:0 0 14px rgba(244,184,96,0.5)}
.vrow[data-state="done"][data-verdict="ok"]{background:linear-gradient(90deg,rgba(84,217,150,0.055),transparent 55%)}
.vrow[data-state="done"][data-verdict="no"]{background:linear-gradient(90deg,rgba(255,100,112,0.05),transparent 55%)}
.vrow[data-state="done"][data-verdict="warn"]{background:linear-gradient(90deg,rgba(244,184,96,0.05),transparent 55%)}
/* the re-reading scan sweep across the candidate */
.vrow__scan{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,150,110,0.06) 44%,rgba(255,175,135,0.16) 50%,rgba(255,150,110,0.06) 56%,transparent)}
.vrow[data-state="reading"] .vrow__scan{opacity:1;animation:vscan 1.15s cubic-bezier(0.45,0,0.25,1) infinite}
@keyframes vscan{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.vrow__mark{align-self:start;min-height:23px;display:flex;align-items:center;position:relative;z-index:1}
.vread{display:inline-grid;grid-template-columns:repeat(3,4px);gap:1.5px}
.vread i{width:4px;height:4px;border-radius:1px;background:#ff9e78;opacity:0.15;animation:scan-pixel 0.7s ease-in-out infinite}
.vread i:nth-child(2),.vread i:nth-child(4){animation-delay:0.09s}
.vread i:nth-child(3),.vread i:nth-child(5),.vread i:nth-child(7){animation-delay:0.18s}
.vread i:nth-child(6),.vread i:nth-child(8){animation-delay:0.27s}
.vread i:nth-child(9){animation-delay:0.36s}
.vrow[data-state="done"] .vread{display:none}
/* verdict badge — lands like a rubber stamp with a ring flash */
.vbadge{position:relative;font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.06em;border-radius:5px;padding:0.24rem 0.42rem;text-align:center;align-self:start;opacity:0;transform:scale(0.85);display:none}
.vrow[data-state="done"] .vbadge{display:inline-block;opacity:1;transform:none;animation:vstamp 0.44s cubic-bezier(0.3,1.5,0.5,1)}
.vbadge::after{content:"";position:absolute;inset:-3px;border-radius:7px;border:1.5px solid transparent;opacity:0}
.vbadge--ok::after{border-color:var(--green)}.vbadge--no::after{border-color:var(--red)}.vbadge--warn::after{border-color:var(--amber)}
.vrow[data-state="done"] .vbadge::after{animation:vstamp-ring 0.52s var(--ease)}
@keyframes vstamp{0%{opacity:0;transform:scale(1.55) rotate(-5deg)}55%{opacity:1;transform:scale(0.92) rotate(0)}75%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes vstamp-ring{0%{opacity:0.7;transform:scale(0.55)}100%{opacity:0;transform:scale(1.18)}}
.vbadge--ok{color:#06210f;background:var(--green)}.vbadge--no{color:#2a080c;background:var(--red)}.vbadge--warn{color:#241a06;background:var(--amber)}
@keyframes vbadge-pop{0%{opacity:0;transform:scale(0.7)}60%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
.vrow>div{position:relative;z-index:1}
.vrow b{color:var(--head);font-weight:600;font-size:var(--t-body-s);display:block;margin-bottom:0.2rem}
.vrow[data-state="reading"] b{color:var(--txt-dim)}
.vrow__reason{display:block;color:var(--txt-dim);font-size:var(--t-xs);line-height:1.6;min-height:1.5em}
.vrow__reason .w{opacity:0;animation:scan-word 0.35s cubic-bezier(0.22,0.61,0.25,1) both;animation-delay:calc(var(--wi,0)*0.045s)}
.vlist__note{padding:var(--s-4) var(--s-5);font-size:var(--t-xs);color:var(--txt-mut);border-top:1px solid rgba(255,255,255,0.07);background:rgba(255,255,255,0.012)}

/* ---- Code agent: specialist crew ---- */
.crew{margin-top:var(--s-6);border:1px solid rgba(255,255,255,0.14);border-radius:14px;background:#060509;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,0.9)}
.crew__bar{display:flex;align-items:center;gap:0.7rem;flex-wrap:wrap;padding:0.7rem var(--s-5);border-bottom:1px solid rgba(255,255,255,0.08);background:#0d0b14;font-family:var(--font-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--txt-mut)}
.crew__dots{display:inline-flex;gap:0.35rem}.crew__dots i{width:9px;height:9px;border-radius:50%}.crew__dots i:nth-child(1){background:#ff5f57}.crew__dots i:nth-child(2){background:#febc2e}.crew__dots i:nth-child(3){background:#28c840}
.crew__bar b{color:var(--head);font-weight:600}
.crew__par{margin-left:auto;display:inline-flex;align-items:center;gap:0.5rem}
.crew__par::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dawn);box-shadow:0 0 0 3px rgba(255,110,70,0.16);animation:brain-pulse 2s ease-out infinite}
.crew__lane{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3);padding:var(--s-4) var(--s-4) var(--s-3)}
/* ---- code-scan viewport: a scan-line sweeps real source; the tainted line ignites ---- */
.wslot{position:relative;display:flex;flex-direction:column;gap:0.5rem;padding:0.6rem 0.65rem 0.55rem;border:1px solid rgba(255,255,255,0.09);border-radius:9px;background:#0a0910;overflow:hidden;transition:border-color 0.4s var(--ease),box-shadow 0.4s var(--ease),opacity 0.4s var(--ease)}
.wslot[data-state="idle"]{opacity:0.42}
.wslot[data-state="hunting"]{border-color:rgba(255,150,110,0.42)}
.wslot[data-state="done"]{border-color:var(--green-line);animation:wslot-land 0.7s var(--ease)}
@keyframes wslot-land{0%{box-shadow:0 0 0 5px rgba(84,217,150,0.2),0 0 22px rgba(84,217,150,0.16)}100%{box-shadow:0 0 0 0 rgba(84,217,150,0),0 0 0 rgba(84,217,150,0)}}
.wslot__head{display:flex;align-items:center;gap:0.5rem;min-width:0;padding:0 0.15rem}
.wslot__name{flex:none;font-family:var(--font-mono);font-size:var(--t-xs);font-weight:600;letter-spacing:0.02em;color:var(--head);white-space:nowrap}
.wslot[data-state="idle"] .wslot__name{color:var(--txt-mut)}
.wslot__file{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--txt-mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity 0.3s var(--ease)}
.wslot__file.is-in{animation:log-in 0.28s cubic-bezier(0.23,1,0.32,1) both}
.wslot[data-state="hunting"] .wslot__file,.wslot[data-state="done"] .wslot__file{opacity:1}
.wslot__file::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--dawn);margin-right:0.4rem;vertical-align:1px;box-shadow:0 0 5px var(--dawn)}
.wslot[data-state="done"] .wslot__file::before{background:var(--green);box-shadow:0 0 5px var(--green);animation:none}
.wslot[data-state="hunting"] .wslot__file::before{animation:ev-blink 1.1s linear infinite}
.wslot__check{flex:none;width:14px;height:14px;color:var(--green);opacity:0;transform:scale(0.5);display:none}
.wslot[data-state="done"] .wslot__check{display:block;opacity:1;transform:none;animation:vbadge-pop 0.4s var(--ease)}
.wslot__count{flex:none;font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:600;color:#ff9e78;font-variant-numeric:tabular-nums;white-space:nowrap}
.wslot[data-state="hunting"] .wslot__count{color:var(--txt-mut);font-weight:400}
.wslot[data-state="idle"] .wslot__count{opacity:0}
.wslot[data-state="done"] .wslot__count{color:var(--green)}
.wslot__count.is-pop{animation:count-pop 0.42s var(--ease)}
@keyframes count-pop{0%{transform:scale(1.3);filter:brightness(1.8)}100%{transform:scale(1);filter:brightness(1)}}
/* the code viewport */
.wslot__code{display:block;position:relative;border-radius:6px;background:#06050b;border:1px solid rgba(255,255,255,0.05);padding:0.45rem 0.15rem;overflow:hidden;font-family:var(--font-mono);font-size:0.72rem;line-height:1.62}
.wslot__lines{display:block}
.wslot[data-state="idle"] .wslot__code{opacity:0.5}
.wslot[data-state="idle"] .wslot__code{min-height:3.9em}
.cl{position:relative;display:flex;align-items:baseline;gap:0.5rem;padding:0.05rem 0.55rem;border-left:2px solid transparent;transition:background 0.25s var(--ease),border-color 0.25s var(--ease)}
.cl__n{flex:none;width:1.1rem;text-align:right;color:rgba(255,255,255,0.24);user-select:none}
.cl__c{min-width:0;white-space:pre;overflow:hidden;text-overflow:ellipsis;color:var(--txt-dim)}
.cl.is-scan{background:linear-gradient(90deg,rgba(255,160,120,0.07),transparent)}
.cl.is-hit{background:linear-gradient(90deg,rgba(255,90,60,0.16),rgba(255,90,60,0.02));border-left-color:#ff5a3c;animation:cl-ignite 0.45s var(--ease)}
@keyframes cl-ignite{0%{background:rgba(255,120,80,0.5)}100%{background:linear-gradient(90deg,rgba(255,90,60,0.16),rgba(255,90,60,0.02))}}
.cl.is-clear{border-left-color:var(--green)}
.cl__flag{position:absolute;right:0.35rem;top:50%;flex:none;display:inline-flex;align-items:center;font-size:0.62rem;font-weight:600;letter-spacing:0.02em;color:#ff8a5e;white-space:nowrap;padding:0.06rem 0.4rem;border-radius:5px;background:rgba(38,12,8,0.9);box-shadow:-8px 0 10px 4px rgba(38,12,8,0.9);opacity:0;transform:translateY(-50%) translateX(8px);pointer-events:none}
.cl.is-hit .cl__flag{animation:flag-in 0.34s cubic-bezier(0.23,1,0.32,1) 0.06s both}
.cl.is-clear .cl__flag{color:var(--green);background:rgba(10,30,20,0.9);box-shadow:-8px 0 10px 4px rgba(10,30,20,0.9);opacity:1;transform:translateY(-50%)}
@keyframes flag-in{to{opacity:1;transform:translateY(-50%) translateX(0)}}
/* the scan-line */
.wslot__beam{position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,170,120,0.95) 20%,#fff 50%,rgba(255,170,120,0.95) 80%,transparent);box-shadow:0 0 10px 1px rgba(255,150,90,0.7),0 0 22px rgba(255,120,70,0.35);transition:top 0.09s linear}
.wslot__beam::before{content:"";position:absolute;left:6%;right:6%;bottom:0;height:22px;background:linear-gradient(180deg,rgba(255,140,90,0.16),transparent);transform:translateY(-100%)}
.wslot[data-state="hunting"] .wslot__beam{opacity:1}
.crew__roster{display:flex;flex-wrap:wrap;gap:0.5rem;padding:var(--s-3) var(--s-4) var(--s-4)}
.cchip{font-family:var(--font-mono);font-size:0.78rem;color:var(--txt-dim);border:1px solid rgba(255,255,255,0.09);border-radius:6px;padding:0.3rem 0.75rem;display:inline-flex;align-items:center;gap:0.45rem;background:rgba(255,255,255,0.015);transition:color 0.35s var(--ease),border-color 0.35s var(--ease),background 0.35s var(--ease),opacity 0.35s var(--ease)}
.cchip__dot{width:6px;height:6px;border-radius:50%;background:var(--line-3);flex:none;transition:background 0.35s var(--ease),box-shadow 0.35s var(--ease)}
.cchip[data-s="skip"]{opacity:0.3}
.cchip[data-s="queued"]{color:var(--txt-mut)}
.cchip[data-s="queued"] .cchip__dot{background:var(--dawn-2);opacity:0.55}
.cchip[data-s="hunting"]{color:#fff;border-color:rgba(255,107,61,0.5);background:rgba(255,107,61,0.1);animation:cchip-glow 1.6s ease-in-out infinite}
.cchip[data-s="hunting"] .cchip__dot{background:var(--dawn);box-shadow:0 0 6px var(--dawn);animation:ev-blink 1.1s linear infinite}
@keyframes cchip-glow{0%,100%{box-shadow:0 0 10px -6px rgba(255,107,61,0.35)}50%{box-shadow:0 0 16px -3px rgba(255,107,61,0.7)}}
.cchip[data-s="done"]{color:var(--txt-dim);border-color:var(--green-line);animation:vbadge-pop 0.4s var(--ease)}
.cchip[data-s="done"] .cchip__dot{background:var(--green);box-shadow:0 0 6px rgba(84,217,150,0.5)}
.crew__tally{display:flex;align-items:center;gap:0.6rem;padding:0.8rem var(--s-5);border-top:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.015);font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt-mut)}
.crew__tally svg{width:17px;height:17px;color:var(--dawn-2);flex:none}
.crew__tally b{color:#ff9e78;font-variant-numeric:tabular-nums;display:inline-block}
.crew__tally b.is-pop{animation:count-pop 0.4s var(--ease)}
.crew__flow{margin-left:auto;display:inline-flex;align-items:center;gap:0.4rem;color:var(--txt-mut)}
.crew__flow i{width:5px;height:5px;border-radius:50%;background:var(--dawn-2);opacity:0.5;animation:crew-flow 1.4s ease-in-out infinite}
.crew__flow i:nth-child(2){animation-delay:0.18s}.crew__flow i:nth-child(3){animation-delay:0.36s}
@keyframes crew-flow{0%,100%{opacity:0.2}50%{opacity:0.9}}
.crew__note{padding:var(--s-3) var(--s-5) var(--s-5);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:1.8;color:var(--txt-mut)}
.crew__note::before{content:"# ";color:var(--dawn-2)}
.crew__cursor{display:inline-block;width:7px;height:12px;margin-left:0.35rem;vertical-align:-1px;background:var(--dawn-2);animation:term-blink 1.1s steps(1) infinite}
@keyframes term-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@media (max-width:640px){.crew__lane{grid-template-columns:1fr}}

/* ---- Code agent: interactive session (typed chat) ---- */
.ask{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:var(--panel);overflow:hidden;box-shadow:var(--lift-2)}
.ask__bar{display:flex;align-items:center;gap:0.5rem;padding:0.75rem var(--s-5);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.ask__bar .tag{margin-left:auto}
.ask__thread{padding:var(--s-5) var(--s-5) var(--s-4);min-height:118px;display:flex;flex-direction:column;justify-content:flex-end}
.ask__bubble{align-self:flex-start;max-width:90%;background:rgba(255,255,255,0.045);border:1px solid var(--line);border-radius:5px 15px 15px 15px;padding:0.7rem 0.95rem;color:var(--txt);font-size:var(--t-body-s);line-height:1.55;opacity:0;transform:translateY(7px);transition:opacity .42s var(--ease),transform .42s var(--ease)}
.ask__bubble.show{opacity:1;transform:none}
.ask__bubble b{display:block;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.11em;text-transform:uppercase;color:var(--dawn-2);margin-bottom:0.32rem;font-weight:600}
.ask__composer{display:flex;align-items:center;gap:var(--s-3);margin:0 var(--s-5) var(--s-5);padding:0.6rem 0.6rem 0.6rem 0.95rem;border:1px solid var(--line-2);border-radius:12px;background:#05060a}
.ask__line{flex:1;min-width:0;display:flex;align-items:center;overflow:hidden}
.ask__field{font-family:var(--font-mono);font-size:var(--t-body-s);color:var(--head);white-space:pre;min-height:1.35em}
.ask__field:empty::before{content:"Ask in plain language\2026";color:var(--txt-mut)}
.ask__caret{flex:none;display:inline-block;width:2px;height:1.05em;background:var(--dawn);margin-left:2px;box-shadow:0 0 6px var(--dawn);animation:ask-blink 1.05s steps(1) infinite}
@keyframes ask-blink{50%{opacity:0}}
.ask__send{flex:none;width:34px;height:34px;border-radius:9px;background:#fff;color:#000;display:grid;place-items:center;border:0;cursor:default}
.ask__send svg{width:15px;height:15px}

/* ---- Attack surface: recon dossier for one discovered asset ---- */
.asset{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:var(--panel);overflow:hidden;box-shadow:var(--lift-2)}
.asset__bar{display:flex;align-items:center;gap:0.5rem;padding:0.75rem var(--s-5);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.asset__bar b{color:var(--head);font-weight:600}.asset__bar span{margin-left:auto;display:inline-flex;align-items:center;gap:0.4rem}
.asset__bar span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 6px var(--dawn)}
.asset__head{display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;padding:var(--s-5) var(--s-5) var(--s-4)}
.asset__host{font-family:var(--font-mono);font-size:1.06rem;color:var(--head);font-weight:600;word-break:break-all}
.asset__flag{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.07em;color:#241a06;background:var(--amber);border-radius:5px;padding:0.22rem 0.5rem}
.asset__meta{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(1.5rem,4vw,3.5rem);row-gap:0;padding:0 var(--s-5)}
.arow{display:grid;grid-template-columns:104px 1fr;gap:var(--s-3);align-items:baseline;padding:0.62rem 0;border-top:1px solid var(--line)}
.arow dt{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--dawn-2)}
.arow dd{margin:0;font-family:var(--font-mono);font-size:var(--t-xs);color:var(--txt)}
.arow dd .bad{color:#ff97a0}.arow dd .warn{color:#ffd18a}
.asset__tech{display:flex;flex-wrap:wrap;gap:0.4rem;padding:var(--s-4) var(--s-5) 0}
.asset__foot{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;margin-top:var(--s-4);padding:var(--s-4) var(--s-5);border-top:1px solid var(--line)}
.asset__sev{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.1em;color:#2a080c;background:var(--red);border-radius:4px;padding:0.18rem 0.5rem}
.asset__note{font-size:var(--t-xs);color:var(--txt-dim)}
.asset__cta{margin-left:auto;font-family:var(--font-sans);font-size:var(--t-xs);font-weight:600;color:#06210f;background:var(--green);border-radius:100px;padding:0.4rem 0.85rem;display:inline-flex;align-items:center;gap:0.4rem;white-space:nowrap}
@media (max-width:600px){.asset__meta{grid-template-columns:1fr}}

/* ---- Data: tabbed "follow the data" scenarios ---- */
.scen{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:16px;background:var(--panel);overflow:hidden;box-shadow:var(--lift-2)}
.scen__tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);background:rgba(255,255,255,0.015)}
.scen__tab{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.03em;color:var(--txt-mut);background:transparent;border:0;border-right:1px solid var(--line);border-bottom:1px solid transparent;padding:0.85rem 1.05rem;cursor:pointer;transition:color .2s var(--ease),background .2s var(--ease);position:relative;flex:1 1 auto;text-align:center;white-space:nowrap}
.scen__tab:hover{color:var(--txt)}
.scen__tab.is-active{color:var(--head);background:rgba(255,122,69,0.07)}
.scen__tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--venus,var(--dawn));box-shadow:0 0 10px var(--dawn);transform-origin:left;animation:scen-timer 5.2s linear both}
.scen:hover .scen__tab.is-active::after,.scen:focus-within .scen__tab.is-active::after{animation-play-state:paused}
.scen.is-manual .scen__tab.is-active::after{animation:none;transform:none}
@keyframes scen-timer{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.scen__panels{padding:clamp(1.4rem,3vw,2.1rem)}
.scen__panel{display:none}
.scen__panel.is-active{display:block;animation:scen-in 0.55s cubic-bezier(0.22,0.61,0.25,1)}
@keyframes scen-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.scen__who{font-size:1rem;color:var(--txt-dim);margin-bottom:var(--s-5)}
.scen__role{font-weight:600;color:var(--head)}
.scen__chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--s-3);margin-bottom:var(--s-5)}
.scen__hop{flex:1 1 200px;min-width:180px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,0.02);padding:var(--s-4);display:flex;flex-direction:column;gap:0.5rem}
.scen__hs{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--dawn-2);display:inline-flex;align-items:center;gap:0.4rem}
.scen__hs::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--dawn);opacity:0.8}
.scen__hop p{margin:0;font-size:var(--t-body-s);color:var(--txt);line-height:1.45}
.scen__ha{align-self:center;width:20px;height:14px;color:var(--txt-mut);flex:none}
.scen__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-5)}
.scen__lose,.scen__keep{border:1px solid var(--line);border-radius:12px;padding:var(--s-4) var(--s-5)}
.scen__lose{background:var(--red-100);border-color:var(--red-line)}
.scen__keep{background:var(--green-100);border-color:var(--green-line)}
.scen__vk{font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#ff97a0;display:block;margin-bottom:0.4rem}
.scen__vk--on{color:#8ceeb8}
.scen__lose p,.scen__keep p{font-size:var(--t-body-s);color:var(--txt-dim);line-height:1.55;margin:0}
.scen__out{margin-top:var(--s-5);display:flex;align-items:center;gap:0.55rem;font-size:var(--t-body-s);color:var(--txt);font-weight:500}
.scen__out svg{color:var(--green);width:16px;height:16px;flex:none}
.scen__panel.is-active .scen__who{--base:0.05s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) both}
.scen__panel.is-active .scen__chain>*:nth-child(1){--base:0.15s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) 0.12s both,scen-hopflash 1.1s var(--ease) 0.12s}
.scen__panel.is-active .scen__chain>*:nth-child(2){animation:scen-arr 0.6s cubic-bezier(0.22,0.61,0.25,1) 0.55s both}
.scen__panel.is-active .scen__chain>*:nth-child(3){--base:0.7s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) 0.65s both,scen-hopflash 1.1s var(--ease) 0.65s}
.scen__panel.is-active .scen__chain>*:nth-child(4){animation:scen-arr 0.6s cubic-bezier(0.22,0.61,0.25,1) 1.08s both}
.scen__panel.is-active .scen__chain>*:nth-child(5){--base:1.25s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) 1.2s both,scen-hopflash 1.1s var(--ease) 1.2s}
.scen__panel.is-active .scen__lose{--base:1.85s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) 1.78s both}
.scen__panel.is-active .scen__keep{--base:2.25s;animation:scen-keepin 0.65s cubic-bezier(0.22,0.61,0.25,1) 2.18s both}
.scen__panel.is-active .scen__out{--base:2.72s;animation:scen-kid 0.55s cubic-bezier(0.22,0.61,0.25,1) 2.65s both}
.scen__panel.is-active .scen__out svg path{stroke-dasharray:26;stroke-dashoffset:26;animation:ev-check 0.5s var(--ease) 2.9s forwards}
.scen__panel.is-active .w{opacity:0;animation:scan-word 0.4s cubic-bezier(0.22,0.61,0.25,1) both;animation-delay:calc(var(--base,0s) + var(--wi,0)*0.038s)}
@keyframes scen-kid{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes scen-arr{0%{opacity:0;transform:translateX(-6px);color:var(--txt-mut)}55%{opacity:1;transform:translateX(3px);color:#ffb84d}100%{opacity:1;transform:none;color:var(--txt-mut)}}
@keyframes scen-hopflash{0%{border-color:var(--line);box-shadow:none}30%{border-color:rgba(255,150,110,0.6);box-shadow:0 0 24px -8px rgba(255,110,70,0.5)}100%{border-color:var(--line);box-shadow:none}}
@keyframes scen-keepin{0%{opacity:0;transform:translateY(10px) scale(0.985)}55%{opacity:1;box-shadow:0 0 32px -8px rgba(84,217,150,0.5)}100%{opacity:1;transform:none;box-shadow:none}}
@media (max-width:720px){.scen__tab{flex:1 1 45%}.scen__ha{transform:rotate(90deg)}.scen__grid{grid-template-columns:1fr}}

/* ---- Data: information journey — horizontal timeline, a card at every movement (fits, no scroll) ---- */
.jrn{margin-top:var(--s-6)}
.jrn__lead{display:flex;align-items:center;gap:0.55rem 0.7rem;flex-wrap:wrap;margin-bottom:var(--s-6)}
.jrn__rec{display:inline-flex;align-items:center;gap:0.5rem;font-weight:600;color:var(--head);font-size:1.02rem}
.jrn__rec svg{width:18px;height:18px;color:var(--dawn);flex:none}
.jrn__track{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--s-3);padding-top:42px}
.jrn__rail{position:absolute;top:20px;left:16px;right:16px;height:2px;background:var(--line-2)}
.jrn__prog{position:absolute;top:20px;left:16px;height:2px;width:0;background:var(--venus,linear-gradient(90deg,#ff4066,#ff7a45,#ffb84d));box-shadow:0 0 12px rgba(255,110,70,0.55);border-radius:2px;transition:width 0.7s var(--ease),height 0.7s var(--ease)}
.jrn__prog::after{content:"";position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 10px #ffb84d,0 0 22px rgba(255,110,70,0.8)}
.jstep{position:relative;min-width:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.jstep:focus-visible{outline:2px solid #ff8a5e;outline-offset:3px;border-radius:12px}
.jstep__node{position:absolute;top:-28px;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:#0a0b11;border:2px solid var(--line-3);z-index:1;transition:border-color 0.35s var(--ease),box-shadow 0.35s var(--ease),background-color 0.35s var(--ease)}
.jstep__node::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(255,150,100,0.55);opacity:0;pointer-events:none}
.jstep.on .jstep__node{border-color:rgba(255,150,110,0.7);background:#1b1420}
.jstep.is-now .jstep__node{border-color:#ffb84d;box-shadow:0 0 16px rgba(255,150,80,0.5)}
.jstep.is-now .jstep__node::after{animation:bsen-ping 0.7s var(--ease) 1}
.jstep.is-hot .jstep__node{border-color:var(--red);background:#2a1016;box-shadow:0 0 18px rgba(255,100,112,0.6)}
.jstep.is-hot .jstep__node::after{border-color:rgba(255,100,112,0.7);animation:bsen-ping 0.8s var(--ease) infinite}
.jcard{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:var(--s-4);height:100%;display:flex;flex-direction:column;gap:0.5rem;transition:border-color .3s var(--ease),transform .3s var(--ease),opacity .3s var(--ease),box-shadow .3s var(--ease)}
.jcard:hover{border-color:var(--line-2);transform:translateY(-2px)}
.jrn.is-run .jstep:not(.on) .jcard{opacity:0.5}
.jstep.is-now .jcard{border-color:rgba(255,150,110,0.55);transform:translateY(-4px);box-shadow:0 18px 44px -18px rgba(255,110,70,0.35);opacity:1}
.jstep.is-hot .jcard{border-color:var(--red-line);box-shadow:0 18px 44px -18px rgba(255,100,112,0.45)}
.jtag{align-self:flex-start;font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:700;letter-spacing:0.06em;text-transform:uppercase;border-radius:5px;padding:0.2rem 0.44rem;border:1px solid var(--line-2);color:var(--dawn-2)}
.jtag--move{color:#aec5ff;border-color:var(--blue-line);background:var(--blue-100)}
.jtag--xform{color:#ffd18a;border-color:var(--amber-line);background:var(--amber-100)}
.jtag--copy{color:#ffd18a;border-color:var(--amber-line)}
.jtag--out{color:#ff97a0;border-color:var(--red-line);background:var(--red-100)}
.jcard__where{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.07em;text-transform:uppercase;color:var(--txt-mut)}
.jcard b{color:var(--head);font-weight:600;font-size:var(--t-body-s);line-height:1.24}
.jcard p{font-size:var(--t-xs);color:var(--txt-dim);line-height:1.48;margin:0}
.jcard__seen{margin-top:auto;padding-top:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.05em;text-transform:uppercase;color:#8ceeb8;display:inline-flex;align-items:center;gap:0.4rem;transition:color 0.3s var(--ease)}
.jcard__seen::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);transition:background-color 0.3s var(--ease),box-shadow 0.3s var(--ease)}
.jrn.is-run .jstep:not(.on) .jcard__seen{color:var(--txt-mut)}
.jrn.is-run .jstep:not(.on) .jcard__seen::before{background:var(--txt-mut);box-shadow:none}
.jcard__seen.seen--hot{color:#ff97a0}
.jcard__seen.seen--hot::before{background:var(--red);box-shadow:0 0 8px rgba(255,100,112,0.8);animation:ev-blink 0.7s ease-in-out infinite}
.jcard__seen.seen--held{color:#8ceeb8}
.jrn__note{margin-top:var(--s-6);max-width:74ch;color:var(--txt-dim);line-height:1.65}
.jrn__note strong{color:var(--head);font-weight:600}
@media (max-width:860px){.jrn__track{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;padding-top:0;padding-left:32px;gap:var(--s-4)}.jrn__rail{top:14px;bottom:14px;left:9px;right:auto;width:2px;height:auto}.jrn__prog{top:14px;left:9px;width:2px;height:0}.jrn__prog::after{right:auto;left:50%;top:auto;bottom:-4px;transform:translateX(-50%)}.jstep__node{top:50%;left:-27px;transform:translateY(-50%)}.jstep.is-now .jstep__node{transform:translateY(-50%)}.jcard{height:auto}}
@media (prefers-reduced-motion:reduce){.jstep__node::after{animation:none!important}.jcard__seen.seen--hot::before{animation:none}}

/* =========================================================================
   INTERIOR / MODULE PAGES
   ========================================================================= */
.pagehead{position:relative;overflow:hidden;padding-block:clamp(3.5rem,2.5rem + 5vw,6.5rem) clamp(2.5rem,2rem + 3vw,4rem);background:transparent;border-bottom:1px solid var(--line)}
.pagehead__aura{content:none;display:none}
.pagehead__inner{position:relative;z-index:2;max-width:58ch}
.pagehead__eyebrow{display:inline-flex;align-items:center;gap:0.55rem;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dawn-2);margin-bottom:var(--s-4)}
.pagehead__eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dawn);box-shadow:0 0 10px var(--dawn)}
@media (max-width:480px){.pagehead__eyebrow,.hero--sub .eyebrow{font-size:0.64rem;letter-spacing:0.06em;align-items:baseline}}
.pagehead h1{font-size:var(--t-3xl);margin-bottom:var(--s-4)}
.pagehead__lede{font-size:var(--t-lg);color:var(--txt);max-width:var(--measure)}
.pagehead__actions{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-6)}

.frow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:center}
.frow + .frow{margin-top:var(--section-y)}
.frow--flip .frow__media{order:-1}
.frow__k{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dawn-2);display:block;margin-bottom:var(--s-3)}
.frow h2{font-size:var(--t-2xl);margin-bottom:var(--s-4)}
.frow p{color:var(--txt-dim)}
.frow p + p{margin-top:var(--s-4)}
.frow__media{position:relative;padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:16px;min-height:220px}
@media (max-width:840px){.frow{grid-template-columns:1fr}.frow--flip .frow__media{order:0}}

/* capability list */
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-4)}
.cap{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:14px;align-items:start;transition:border-color 0.25s var(--ease),transform 0.25s var(--ease)}
.cap:hover{border-color:var(--line-2);transform:translateY(-2px)}
.cap>div{min-width:0}
.cap__ic{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,0.04);border:1px solid var(--line-2);color:var(--dawn-2)}
.cap__ic svg{width:18px;height:18px}
.cap h3{font-size:var(--t-base);font-weight:600;color:var(--head);margin-bottom:0.25rem}
.cap p{font-size:var(--t-body-s);color:var(--txt-dim)}

/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-4)}
.stat{padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:14px}
.stat__n{font-size:var(--t-2xl);font-weight:600;letter-spacing:-0.03em;color:var(--head)}
.stat__n em{font-style:normal;color:var(--dawn-2)}
.stat__l{font-size:var(--t-body-s);color:var(--txt-dim);margin-top:0.3rem}
.stat__k{display:block;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-3)}
.stats--price{margin-top:var(--s-4);grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}
.stats--price .stat{position:relative;background:none;border:0;border-radius:0;padding:var(--s-6)}
.stats--price .stat+.stat{border-left:1px solid var(--line)}
.stats--price .stat::before{content:"";position:absolute;top:-38%;left:-14%;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,107,61,0.09),transparent 68%);pointer-events:none}
.stats--price .stat:hover{transform:none}
.stats--price .stat+.stat:hover{border-color:var(--line)}
.stats--price .stat__n{font-size:var(--t-3xl);line-height:1.05}
.stats--price .stat__l{margin-top:var(--s-2);max-width:34ch}
@media (max-width:760px){.stats--price{grid-template-columns:1fr}.stats--price .stat+.stat{border-left:0;border-top:1px solid var(--line)}}

/* prose */
.prose{max-width:var(--measure)}
.prose>* + *{margin-top:var(--s-5)}
.prose h2{font-size:var(--t-2xl);margin-top:var(--s-9)}
.prose h3{font-size:var(--t-xl);margin-top:var(--s-7)}
.prose p{color:var(--txt-dim)}
.prose strong{color:var(--head);font-weight:600}
.prose ul{display:grid;gap:var(--s-3)}
.prose ul li{display:flex;gap:var(--s-3);align-items:baseline;color:var(--txt-dim)}
.prose ul li::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:var(--dawn);transform:translateY(-2px)}

/* FAQ */
.faq{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item:last-child{border-bottom:0}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);width:100%;padding:var(--s-5) var(--s-6);text-align:left;font-size:var(--t-lg);font-weight:560;letter-spacing:-0.02em;color:var(--head);transition:background-color 0.18s var(--ease)}
.faq__q:hover{background:rgba(255,255,255,0.03)}
.faq__sign{flex:none;width:22px;height:22px;position:relative;color:var(--dawn-2)}
.faq__sign::before,.faq__sign::after{content:"";position:absolute;background:currentColor;border-radius:2px;transition:transform 0.32s var(--ease),opacity 0.25s var(--ease)}
.faq__sign::before{top:50%;left:3px;right:3px;height:1.6px;transform:translateY(-50%)}
.faq__sign::after{left:50%;top:3px;bottom:3px;width:1.6px;transform:translateX(-50%)}
.faq__q[aria-expanded="true"] .faq__sign::after{transform:translateX(-50%) rotate(90deg);opacity:0}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.36s var(--ease)}
.faq__item[data-open="true"] .faq__a{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 var(--s-6) var(--s-6);color:var(--txt-dim);max-width:var(--measure)}

/* closer */
.closer{position:relative;overflow:hidden;background:transparent;border-top:1px solid var(--line)}
.closer__aura{position:absolute;left:50%;bottom:-50%;width:min(900px,110%);aspect-ratio:1;transform:translateX(-50%);pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,0.04),transparent 62%)}
.closer__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr auto;gap:var(--s-8);align-items:center}
.closer h2{font-size:var(--t-2xl);margin-bottom:var(--s-3)}
.closer p{color:var(--txt-dim);max-width:52ch}
.closer__actions{display:flex;flex-direction:column;gap:var(--s-4);align-items:flex-start}
.closer__direct{display:flex;gap:var(--s-5);flex-wrap:wrap;font-size:var(--t-body-s)}
.closer__direct a{color:var(--txt);text-decoration:none;display:inline-flex;align-items:center;gap:0.45rem}
.closer__direct a:hover{color:#fff}
.closer__direct svg{width:1em;height:1em;color:var(--dawn-2)}
@media (max-width:780px){.closer__inner{grid-template-columns:1fr}}

/* contact form */
.hero--contact{min-height:0}
.contact{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
.form{display:grid;gap:var(--s-5);position:relative;overflow:hidden;padding:clamp(var(--s-6),2rem + 1.5vw,2.75rem);background:var(--panel);border:1px solid var(--line);border-radius:18px}
.form::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent 8%,rgba(255,168,128,0.5),transparent 92%);pointer-events:none}
.form .btn--primary{justify-self:start;padding-inline:2.4rem}
.form__note{font-size:var(--t-sm);color:var(--txt-mut);margin-top:calc(-1*var(--s-3))}
@media (max-width:560px){.form .btn--primary{justify-self:stretch}}
.field{display:grid;gap:var(--s-2)}
.field label{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:0.11em;text-transform:uppercase;color:var(--txt-dim);font-weight:500}
.field label .req{color:var(--dawn)}
.field input,.field textarea,.field select{width:100%;padding:0.85rem var(--s-4);background:rgba(255,255,255,0.03);border:1px solid var(--line-2);border-radius:12px;font-size:var(--t-base);color:#fff;transition:border-color 0.18s var(--ease),box-shadow 0.18s var(--ease),background-color 0.18s var(--ease)}
.field input:hover,.field textarea:hover,.field select:hover{border-color:rgba(255,255,255,0.2)}
.field input::placeholder,.field textarea::placeholder{color:var(--txt-mut)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--dawn);background:rgba(255,255,255,0.045);box-shadow:0 0 0 3px rgba(255,107,61,0.22)}
.field textarea{resize:vertical;min-height:150px}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.field__error{font-size:var(--t-sm);color:var(--red);display:none;align-items:center;gap:var(--s-2)}
.field[data-invalid="true"] input,.field[data-invalid="true"] textarea,.field[data-invalid="true"] select{border-color:var(--red)}
.field[data-invalid="true"] .field__error{display:flex}
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
@media (max-width:560px){.form__row{grid-template-columns:1fr}}
.form__status{padding:var(--s-4) var(--s-5);border-radius:10px;font-size:1rem;display:none;align-items:flex-start;gap:var(--s-3)}
.form__status[data-state="ok"]{display:flex;background:var(--green-100);border:1px solid var(--green-line);color:#8ceeb8}
.form__status[data-state="error"]{display:flex;background:var(--red-100);border:1px solid var(--red-line);color:#ff97a0}
.contact__aside{display:grid;gap:var(--s-5)}
.infocard{padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:16px}
.infocard h2,.infocard h3{font-size:var(--t-base);font-weight:600;margin-bottom:var(--s-5);color:var(--head)}
.infolist{display:grid;gap:var(--s-5)}
.infolist li{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:start}
.infolist svg{width:34px;height:34px;padding:9px;border-radius:10px;color:var(--dawn-2);flex:none;background:linear-gradient(135deg,rgba(255,64,102,0.14),rgba(255,184,77,0.1));border:1px solid rgba(255,150,110,0.26)}
.infolist a{color:var(--head);text-decoration:none;font-weight:520}
.infolist a:hover{color:var(--dawn-2)}
.infolist span{color:var(--txt-dim);font-size:1rem}
.infolist__label{display:block;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:0.15rem}
.nextlist{display:grid;gap:var(--s-5);counter-reset:next}
.nextlist li{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:start;counter-increment:next}
.nextlist li::before{content:counter(next,decimal-leading-zero);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.05em;color:var(--dawn-2);width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,110,70,0.07);border:1px solid rgba(255,150,110,0.26)}
.nextlist b{display:block;font-weight:600;color:var(--head);font-size:var(--t-body-s);line-height:1.35}
.nextlist b+span{display:block;color:var(--txt-dim);font-size:var(--t-sm);margin-top:0.2rem;line-height:1.5}
@media (max-width:900px){.contact{grid-template-columns:1fr}}

/* related */
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-4)}
.related__card{display:grid;gap:var(--s-3);padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;transition:border-color 0.2s var(--ease),background-color 0.2s var(--ease),transform 0.2s var(--ease)}
.related__card:hover{border-color:var(--line-2);background:var(--panel-2);transform:translateY(-3px)}
.related__card h3{font-size:var(--t-base);font-weight:600;color:var(--head)}
.related__card p{font-size:var(--t-body-s);color:var(--txt-dim)}
.related__k{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dawn-2)}


/* home — the AI dilemma (two dead-end choices, then VenusHawk breaks the fork) */
.fork{margin-top:var(--s-4);display:grid;grid-template-columns:clamp(150px,20vw,230px) 1fr;column-gap:var(--s-6);row-gap:var(--s-7);align-items:center}
.fork__art{grid-column:1;grid-row:1/4;width:100%;height:100%;min-height:280px}
.fork__dead{fill:none;stroke:rgba(255,100,112,0.42);stroke-width:1.5}
.fork__live{fill:none;stroke:url(#forkLive);stroke-width:2.4;filter:drop-shadow(0 0 7px rgba(255,110,70,0.55))}
.fork__x path{stroke:var(--red);stroke-width:1.8;stroke-linecap:round}
.fork__comet{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:10 90;stroke-dashoffset:100;opacity:0}
.fork__comet--live{stroke:#fff;animation:fork-run 2.8s linear infinite}
.fork__comet--a{stroke:#ff9aa4;animation:fork-run 5.6s linear 1.2s infinite}
.fork__comet--b{stroke:#ff9aa4;animation:fork-run 5.6s linear 4s infinite}
@keyframes fork-run{0%{stroke-dashoffset:100;opacity:0}8%{opacity:0.9}82%{opacity:0.9}100%{stroke-dashoffset:0;opacity:0}}
.fork__opt{grid-column:2;max-width:56ch}
.fork__tag{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:#ff97a0;display:block;margin-bottom:0.3rem}
.fork__opt b{display:block;font-size:clamp(1.2rem,1.7vw,1.5rem);font-weight:600;letter-spacing:-0.02em;color:var(--head)}
.fork__opt p{margin-top:0.25rem;color:var(--txt-dim);font-size:1.02rem}
.fork__win{grid-column:2;max-width:62ch}
.fork__lead{margin:0;font-size:var(--t-xl);line-height:1.35;font-weight:600;letter-spacing:-0.01em;color:var(--head);display:flex;align-items:center;gap:0.55rem}
.fork__lead::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dawn);box-shadow:0 0 10px var(--dawn);flex:none}
.fork__sub{margin:0.45rem 0 0 calc(8px + 0.55rem);font-size:1.08rem;line-height:1.5;color:var(--txt-dim)}
@media (max-width:680px){.fork{grid-template-columns:1fr;row-gap:var(--s-5)}.fork__art{display:none}.fork__opt{padding-left:0.9rem;border-left:2px solid rgba(255,100,112,0.42)}.fork__win{margin-top:var(--s-2)}}
@media (prefers-reduced-motion:reduce){.fork__comet{animation:none;opacity:0}}

/* hero heights — responsive floors */
@media (max-width:1060px){.hero{min-height:clamp(560px,78vh,800px)}}
@media (max-width:640px){.hero--sub{min-height:0}.hero--sub .hero__inner{padding-block:3rem 2rem}}
