@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(660px,94vh,980px);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;max-width:64rem;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:0.72rem;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)}
.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:0.62rem;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:0.95rem}

/* 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:0.66rem;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:22px;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:0.66rem;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:0.62rem;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);border-top:1px solid var(--line)}
.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);border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background 0.3s var(--ease),padding-left 0.3s var(--ease)}
.agrow::before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:2px;background:var(--dawn);box-shadow:0 0 10px var(--dawn);transform:scaleY(0);transition:transform 0.3s var(--ease)}
.agrow:hover{background:linear-gradient(90deg,rgba(255,122,69,0.055),transparent 72%);padding-left:calc(var(--s-4) + 9px)}
.agrow:hover::before{transform:scaleY(1)}
.agrow__ic{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,0.04);border:1px solid var(--line-2);color:var(--dawn-2);flex:none;transition:color 0.3s var(--ease),border-color 0.3s var(--ease)}
.agrow:hover .agrow__ic{color:#fff;border-color:rgba(255,122,69,0.5)}
.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 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:0.58rem;letter-spacing:0.02em;color:var(--txt-mut);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:0.95rem;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{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap;margin-top:var(--s-5);padding:var(--s-5) var(--s-6);border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,107,61,0.07),rgba(255,255,255,0.02));text-decoration:none;color:var(--txt-dim);transition:border-color 0.3s var(--ease)}
.agcov:hover{border-color:rgba(255,122,69,0.4)}
.agcov__l{font-size:0.98rem;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.45rem;font-weight:600;color:var(--dawn-2);white-space:nowrap;flex:none}
.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}
.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:0.92rem;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:0.98rem;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:0.94rem;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:0.55rem;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:0.9rem;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:0.58rem;color:var(--txt-mut);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:0.62rem;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)}
.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:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--dawn-2);display:block;margin:0.32rem 0 0.7rem}
.founder__bio{font-size:0.92rem;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:0.85rem;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)}

/* activity marquee */
.flow{margin-top:var(--s-6);position:relative;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)}
.flow__cap{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:var(--s-3)}
.flow__row{display:flex;gap:0.6rem;width:max-content;will-change:transform;animation:flow 58s linear infinite}
.flow__row + .flow__row{margin-top:0.6rem}
.flow__row--rev{animation-duration:70s;animation-direction:reverse}
.flow:hover .flow__row{animation-play-state:paused}
.flow__chip{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:0.82rem;color:var(--txt-dim);border:1px solid var(--line);background:var(--panel);border-radius:100px;padding:0.35rem 0.8rem;white-space:nowrap}
.flow__chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);flex:none}
.flow__chip[data-s="hot"]::before{background:var(--red)}
@keyframes flow{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.flow__row{animation:none;flex-wrap:wrap;width:auto}}

/* =========================================================================
   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:0.9rem;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:0.95rem;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:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut)}
.stop__op{color:var(--txt-dim);font-size:0.95rem}
.stop__seen{display:inline-flex;align-items:center;gap:0.35rem;margin-top:var(--s-3);font-family:var(--font-mono);font-size:0.62rem;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:0.6rem;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:0.92rem;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:0.6rem;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);border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}
.lingraph__bar{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;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:0.86rem;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:0.85rem;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}}
.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:linear-gradient(90deg,rgba(255,255,255,0.2),#fff);box-shadow:0 0 10px rgba(255,255,255,0.5);border-radius:3px;transition:width 0.5s var(--ease)}
.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,255,255,0.85);color:#fff;transform:scale(1.08);box-shadow:0 0 0 5px rgba(255,255,255,0.06)}
.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:0.9rem;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:0.56rem;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:0.62rem;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}
@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:0.95rem;color:var(--head)}
.ltl__card-h span{margin-left:auto;font-family:var(--font-mono);font-size:0.6rem;color:var(--txt-mut)}
.ltl__row{display:grid;grid-template-columns:64px 1fr;gap:0.5rem;font-size:0.82rem;padding:0.2rem 0}
.ltl__row dt{font-family:var(--font-mono);font-size:0.6rem;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:0.6rem;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:0.82rem;color:var(--txt-dim);line-height:1.5}
@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:0.72rem;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:11px;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:0.58rem;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:0.66rem;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:0.68rem;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:0.98rem;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
   ========================================================================= */
.srcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:var(--s-3);margin-top:var(--s-6)}
.src{display:flex;align-items:center;gap:0.6rem;padding:0.75rem 0.9rem;background:var(--panel);border:1px solid var(--line);border-radius:11px;transition:border-color 0.25s var(--ease),transform 0.25s var(--ease)}
.src:hover{border-color:var(--line-2);transform:translateY(-2px)}
.src__ic{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,0.04);border:1px solid var(--line-2);color:var(--dawn-2)}
.src__ic svg{width:16px;height:16px}
.src b{display:block;font-size:0.9rem;font-weight:560;color:var(--head);line-height:1.2}
.src span{font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--txt-mut)}

.vs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-6)}
.vs__col{padding:var(--s-6);border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.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)}
.vs__tag{font-family:var(--font-mono);font-size:0.66rem;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__col--new .vs__tag{color:var(--dawn-2)}
.vs__col--new .vs__tag::before{content:"";width:7px;height:7px;border-radius:50%;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.65rem;align-items:flex-start;font-size:0.95rem;color:var(--txt-dim)}
.vs li svg{width:17px;height:17px;flex:none;margin-top:0.2em}
.vs__col--old li svg{color:var(--txt-mut)}
.vs__col--new li svg{color:var(--green)}
@media (max-width:760px){.vs{grid-template-columns:1fr}}

/* =========================================================================
   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);border-radius:16px;overflow:hidden;background:var(--panel)}
.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:0.64rem;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:0.98rem;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:0.66rem;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:0.6rem;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:0.96rem;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:50%}}

/* =========================================================================
   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:0.8rem;color:var(--txt-mut)}
.ev__surface{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:0.66rem;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:0.92rem;color:var(--txt-dim);margin-top:0.25rem}
.ev__stamp{justify-self:end;white-space:nowrap;display:inline-flex;align-items:center;gap:0.4rem;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}
.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:18px;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>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{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-mono);font-size:0.7rem;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)}
.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:0.98rem;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{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:0.95rem}}

/* 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.5;filter:grayscale(1) brightness(1.7);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}}

/* steps */
.steps{position:relative;margin-top:var(--s-7);display:grid;gap:var(--s-5)}
.step{position:relative;display:grid;grid-template-columns:auto 1fr;gap:var(--s-5);padding:var(--s-6);background:var(--panel);border:1px solid var(--line);border-radius:16px}
.step>div{min-width:0}
.step__n{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:600;font-size:0.9rem;color:var(--dawn-2);background:rgba(255,107,61,0.08);border:1px solid var(--line-2)}
.step__k{font-family:var(--font-mono);font-size:0.66rem;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)}
.step p{color:var(--txt-dim);font-size:0.96rem;max-width:60ch}
.step .chips{margin-top:var(--s-4)}
@media (max-width:600px){.step{grid-template-columns:1fr}}

/* 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:0.82rem;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:0.66rem;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(540px,70vh,720px)}
.hero--sub .hero__inner{max-width:60rem}
.hero--sub h1{font-size:clamp(2.3rem,1.6rem + 3.4vw,4rem);max-width:20ch}

/* live scan console — the Dark Web signature */
.scan{margin-top:var(--s-6);max-width:720px;border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,0.045),rgba(255,255,255,0.012));overflow:hidden;box-shadow:var(--lift-3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.scan__bar{display:flex;align-items:center;gap:0.7rem;padding:0.7rem 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)}
.scan__dots{display:inline-flex;gap:0.35rem}.scan__dots i{width:9px;height:9px;border-radius:50%;background:var(--line-3)}
.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:0.82rem;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:var(--txt)}.scan__line .tx.dim{color:var(--txt-mut)}
.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}

/* ---- Code agent: threat model card ---- */
.tmodel{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:14px;background:var(--panel);overflow:hidden;box-shadow:var(--lift-2)}
.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:0.92rem}
.tmrow:last-child{border-bottom:0}
.tmrow dt{font-family:var(--font-mono);font-size:0.6rem;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:0.6rem;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:0.8rem;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:0.66rem;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:0.82rem;color:var(--txt-mut)}
.finding2__pr{margin-left:auto;font-family:var(--font-sans);font-size:0.82rem;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}

/* ---- Code agent: validator verdicts ---- */
.vlist{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;background:var(--panel)}
.vlist__bar{display:flex;align-items:center;gap:0.55rem;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)}
.vlist__bar b{color:var(--head);font-weight:600}.vlist__bar span{margin-left:auto}
.vrow{display:grid;grid-template-columns:88px 1fr;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);align-items:start}
.vrow:last-child{border-bottom:0}
.vbadge{font-family:var(--font-mono);font-size:0.58rem;font-weight:700;letter-spacing:0.06em;border-radius:5px;padding:0.24rem 0.4rem;text-align:center;align-self:start}
.vbadge--ok{color:#06210f;background:var(--green)}.vbadge--no{color:#2a080c;background:var(--red)}.vbadge--warn{color:#241a06;background:var(--amber)}
.vrow b{color:var(--head);font-weight:600;font-size:0.96rem;display:block;margin-bottom:0.15rem}
.vrow span{color:var(--txt-dim);font-size:0.88rem}
.vlist__note{padding:var(--s-4) var(--s-5);font-size:0.82rem;color:var(--txt-mut);border-top:1px solid var(--line)}

/* ---- Code agent: specialist crew ---- */
.crew{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:14px;background:var(--panel);padding:var(--s-5)}
.crew__bar{display:flex;justify-content:space-between;gap:var(--s-3);font-family:var(--font-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--txt-mut);margin-bottom:var(--s-5)}
.crew__bar b{color:var(--head)}
.crew__chips{display:flex;flex-wrap:wrap;gap:0.5rem}
.cchip{font-family:var(--font-mono);font-size:0.78rem;color:var(--txt-dim);border:1px solid var(--line-2);border-radius:100px;padding:0.3rem 0.75rem;display:inline-flex;align-items:center;gap:0.45rem}
.cchip--on{color:#fff;border-color:rgba(255,107,61,0.5);background:rgba(255,107,61,0.1)}
.cchip--on::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dawn);box-shadow:0 0 6px var(--dawn)}
.crew__note{margin-top:var(--s-5);font-size:0.85rem;color:var(--txt-mut)}

/* ---- 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:0.95rem;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:0.58rem;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:0.9rem;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:0.58rem;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:0.58rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--dawn-2)}
.arow dd{margin:0;font-family:var(--font-mono);font-size:0.85rem;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:0.6rem;font-weight:700;letter-spacing:0.1em;color:#2a080c;background:var(--red);border-radius:4px;padding:0.18rem 0.5rem}
.asset__note{font-size:0.86rem;color:var(--txt-dim)}
.asset__cta{margin-left:auto;font-family:var(--font-sans);font-size:0.82rem;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:0.72rem;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(--dawn);box-shadow:0 0 10px var(--dawn)}
.scen__panels{padding:clamp(1.4rem,3vw,2.1rem)}
.scen__panel{display:none}
.scen__panel.is-active{display:block;animation:scen-in .42s var(--ease)}
@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:0.55rem;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:0.9rem;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:0.58rem;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:0.9rem;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:0.92rem;color:var(--txt);font-weight:500}
.scen__out svg{color:var(--green);width:16px;height:16px;flex: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__comet{position:absolute;top:16px;left:1%;width:10px;height:10px;border-radius:50%;background:var(--dawn);box-shadow:0 0 14px 2px var(--dawn);animation:jrn-travel 8.5s ease-in-out infinite}
@keyframes jrn-travel{0%{left:1%;opacity:0}7%{opacity:1}93%{opacity:1}100%{left:99%;opacity:0}}
.jstep{position:relative;min-width:0}
.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}
.jcard{border:1px solid var(--line);border-radius:13px;background:var(--panel);padding:var(--s-4);height:100%;display:flex;flex-direction:column;gap:0.5rem;transition:border-color .25s var(--ease),transform .25s var(--ease)}
.jcard:hover{border-color:var(--line-2);transform:translateY(-2px)}
.jtag{align-self:flex-start;font-family:var(--font-mono);font-size:0.53rem;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:0.55rem;letter-spacing:0.07em;text-transform:uppercase;color:var(--txt-mut)}
.jcard b{color:var(--head);font-weight:600;font-size:0.95rem;line-height:1.24}
.jcard p{font-size:0.83rem;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:0.54rem;letter-spacing:0.05em;text-transform:uppercase;color:#8ceeb8;display:inline-flex;align-items:center;gap:0.4rem}
.jcard__seen::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}
.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__comet{left:5px;top:1%;animation-name:jrn-travel-v}.jstep__node{top:50%;left:-27px;transform:translateY(-50%)}.jcard{height:auto}}
@keyframes jrn-travel-v{0%{top:1%;opacity:0}7%{opacity:1}93%{opacity:1}100%{top:99%;opacity:0}}
@media (prefers-reduced-motion:reduce){.jrn__comet{animation:none;opacity:0.85}}

/* =========================================================================
   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)}
.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-5);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:0.92rem;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:0.95rem;color:var(--txt-dim);margin-top:0.3rem}

/* 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:0.95rem}
.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 */
.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)}
.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{width:100%;padding:0.85rem var(--s-4);background:rgba(255,255,255,0.03);border:1px solid var(--line-2);border-radius:10px;font-size:var(--t-base);color:#fff;transition:border-color 0.18s var(--ease),box-shadow 0.18s var(--ease)}
.field input::placeholder,.field textarea::placeholder{color:var(--txt-mut)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--dawn);box-shadow:0 0 0 3px rgba(255,107,61,0.15)}
.field textarea{resize:vertical;min-height:140px}
.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{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:14px}
.infocard h3{font-size:var(--t-base);font-weight:600;margin-bottom:var(--s-4);color:var(--head)}
.infolist{display:grid;gap:var(--s-4)}
.infolist li{display:grid;grid-template-columns:auto 1fr;gap:var(--s-3);align-items:start}
.infolist svg{width:1.05em;height:1.05em;color:var(--dawn-2);flex:none;margin-top:0.3em}
.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:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-mut);margin-bottom:0.15rem}
@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-5);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:0.95rem;color:var(--txt-dim)}
.related__k{font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dawn-2)}
