html,body{margin:0}
[hidden]{display:none!important}
/* Layout: the product is the hero. A live verification window, tilted in space under the headline, flattens as you scroll.
   Below it, a bento of working miniatures (threshold, deep verification, file in/out). One dark world by choice. */
:root{
  color-scheme:dark;
  --bg:#06070B; --panel:#0D0F15; --panel-2:#12141C; --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.16);
  --ink:#F3F4F8; --dim:#A1A6B8; --mute:#6C7186; --brand:#7B6CFF; --brand-2:#4FA3FF;
  --valid:#34D399; --invalid:#F87171; --catch:#FBBF24; --risky:#F472B6; --unknown:#94A3B8;
  --sans:"Geist","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html{overflow-x:clip}
body{position:relative;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,dl{margin:0}
:focus-visible{outline:2px solid var(--brand-2);outline-offset:3px;border-radius:8px}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.mono{font-family:var(--mono)}
h1,h2{font-weight:600;letter-spacing:-.045em;line-height:1.02;text-wrap:balance}
h2{font-size:clamp(2rem,4.6vw,3.5rem)}
.sub{color:var(--dim);font-size:clamp(1rem,1.3vw,1.15rem);max-width:56ch;text-wrap:pretty}
.grad{background:linear-gradient(180deg,#fff 30%,#A9B0D6);-webkit-background-clip:text;background-clip:text;color:transparent}

/* nav */
.nav{display:flex;align-items:center;gap:28px;padding-block:18px}
.logo{display:flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.02em;font-size:1.05rem}
.logo svg{width:22px;height:22px}
.nav nav{display:flex;gap:26px;margin-left:auto;color:var(--dim);font-size:.94rem}
.nav nav a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;font:500 .95rem/1 var(--sans);padding:12px 18px;border-radius:10px;border:1px solid transparent;background:var(--ink);color:#07080C;cursor:pointer;transition:transform .15s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 30px rgba(123,108,255,.45)}
.btn.ghost{background:rgba(255,255,255,.04);color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{background:rgba(255,255,255,.09);box-shadow:none}
.btn.lg{padding:15px 22px;font-size:1rem;border-radius:12px}
@media (max-width:760px){.nav nav{display:none}.nav .btn{margin-left:auto}}

/* hero */
.hero{position:relative;text-align:center;padding-block:clamp(24px,3.4vw,44px) 0}
.hero::before{content:"";position:absolute;inset:-140px -30vw auto;height:900px;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 55% at 50% 38%,rgba(123,108,255,.34),transparent 70%),radial-gradient(34% 40% at 24% 58%,rgba(79,163,255,.2),transparent 70%),radial-gradient(34% 40% at 78% 62%,rgba(52,211,153,.14),transparent 70%)}
#globe{position:absolute;left:50%;top:-76px;width:100vw;height:1120px;margin-left:-50vw;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(#000 62%,transparent 96%);mask-image:linear-gradient(#000 62%,transparent 96%)}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--dim);border:1px solid var(--line-2);background:rgba(255,255,255,.04);border-radius:99px;padding:6px 14px 6px 8px}
.pill b{font-weight:500;color:#07080C;background:var(--valid);border-radius:99px;padding:1px 8px;font-size:.76rem}
.hero h1{font-size:clamp(2.8rem,7.4vw,5.4rem);margin:18px auto 0;max-width:none}
.hero .sub{margin:16px auto 0;max-width:62ch;color:#C3C7D6;text-shadow:0 1px 14px var(--bg)}
.try{display:flex;gap:8px;margin:24px auto 0;max-width:520px;padding:6px;border:1px solid var(--line-2);border-radius:14px;background:rgba(13,15,21,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.try:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(123,108,255,.18)}
.try input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:400 1rem var(--mono);padding:10px 12px;outline:none}
.try input::placeholder{color:var(--mute)}
.result{margin:14px auto 0;max-width:780px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 36px;align-items:center;text-align:left;padding:16px 20px;border:1px solid var(--line-2);border-radius:16px;background:rgba(9,11,18,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.35)}
@media (max-width:640px){.result{grid-template-columns:minmax(0,1fr)}}
.rv{display:flex;align-items:center;gap:12px;min-width:0;--c:var(--dim)}
.rv>i{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);box-shadow:0 0 22px color-mix(in srgb,var(--c) 30%,transparent);transition:color .25s,background .25s,border-color .25s}
.rv>i svg{width:18px;height:18px}
.rv>i.spin{border-style:dashed;animation:sp 1.6s linear infinite;box-shadow:none}
.rv b{display:block;font-weight:600;font-size:1.08rem;line-height:1.25;color:var(--c);letter-spacing:-.01em}
.rv span{display:block;font:400 .82rem var(--mono);color:var(--dim);overflow-wrap:anywhere}
.rsteps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.rsteps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:.78rem;color:var(--mute);text-align:center;--s:var(--line-2)}
.rsteps li.ok{--s:var(--valid);color:var(--dim)}.rsteps li.bad{--s:var(--invalid);color:var(--ink)}.rsteps li.warn{--s:var(--catch);color:var(--ink)}.rsteps li.run{--s:var(--brand-2);color:var(--ink)}
.rsteps li>i{position:relative;z-index:1;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1.5px solid var(--s);color:var(--s);transition:border-color .2s,color .2s}
.rsteps li.ok>i,.rsteps li.bad>i,.rsteps li.warn>i{background:color-mix(in srgb,var(--s) 18%,var(--bg))}
.rsteps li.run>i{border-top-color:transparent;animation:sp .7s linear infinite}
.rsteps li>i svg{width:11px;height:11px}
.rsteps li+li::before{content:"";position:absolute;top:9.5px;right:calc(50% + 14px);width:calc(100% - 28px);height:1.5px;background:var(--s);opacity:.55}
.result .why{grid-column:1/-1;margin:0;padding-top:12px;border-top:1px solid var(--line);font-size:.88rem;color:var(--dim)}
.rtag{float:right;font-size:.74rem;color:var(--mute);margin-left:12px}
.note{font-size:.76rem;color:var(--mute);margin-top:6px}

/* chips */
.chip{display:inline-flex;align-items:center;gap:6px;font:500 .78rem/1 var(--sans);padding:6px 10px;border-radius:99px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);white-space:nowrap}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.chip.spin{--c:var(--mute)}
.chip.spin::before{background:none;box-shadow:none;border:1.5px solid var(--mute);border-top-color:transparent;width:9px;height:9px;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* product window */
.stage{perspective:1800px;margin-top:clamp(28px,3.4vw,44px);padding-bottom:clamp(48px,7vw,96px)}
.win{position:relative;max-width:1040px;margin:0 auto;text-align:left;border-radius:18px;background:var(--panel);transform:rotateX(var(--rx,16deg)) scale(var(--sc,.95));transform-origin:50% 0;
  box-shadow:0 0 0 1px var(--line-2),0 60px 140px -30px rgba(123,108,255,.55),0 30px 80px rgba(0,0,0,.6);will-change:transform}
.win::before{content:"";position:absolute;inset:-1px;border-radius:19px;padding:1px;background:conic-gradient(from var(--a),transparent 0 62%,var(--brand-2),var(--valid),transparent 88%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rot 6s linear infinite;pointer-events:none}
@keyframes rot{to{--a:360deg}}
.bar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:.86rem}
.dots{display:flex;gap:6px}.dots i{width:10px;height:10px;border-radius:50%;background:#2A2D3A}
.bar b{font-weight:500}.bar .rows{color:var(--mute)}
.live{margin-left:auto;display:inline-flex;align-items:center;gap:7px;color:var(--valid);font-size:.8rem}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--valid);animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
.prog{height:2px;background:var(--line)}.prog i{display:block;height:100%;width:38%;background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--valid));transition:width .8s linear}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.tiles div{padding:16px 18px;border-right:1px solid var(--line);min-width:0}.tiles div:last-child{border-right:0}
.tiles span{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--dim)}
.tiles span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.tiles b.hit{animation:hit .7s ease-out}
@keyframes hit{0%{color:var(--hc);text-shadow:0 0 16px var(--hc)}100%{color:inherit;text-shadow:none}}
.tiles b{display:block;font:600 clamp(1.2rem,2.4vw,1.9rem)/1.2 var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px}
.th,.row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr) minmax(0,1.2fr);gap:12px;align-items:center;padding:0 18px}
.th{height:38px;font-size:.74rem;color:var(--mute);border-bottom:1px solid var(--line)}
.rowsbox{height:352px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.row{height:44px;border-bottom:1px solid var(--line);font-size:.86rem;animation:rowIn .45s cubic-bezier(.2,.8,.2,1)}
.row .em{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .pv{color:var(--mute)}
.row .rs{display:flex;gap:6px;justify-content:flex-end;min-width:0}
@keyframes rowIn{from{height:0;opacity:0}}
@media (max-width:640px){.tiles{grid-template-columns:repeat(3,1fr)}.tiles div:nth-child(n+4){border-top:1px solid var(--line)}.th,.row{grid-template-columns:minmax(0,1fr) auto}.pv{display:none}.th span:nth-child(2){display:none}}

/* sections */
section{padding-block:clamp(56px,8vw,112px)}
.head{max-width:720px}.head .sub{margin-top:16px}
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-top:clamp(28px,4vw,48px)}
.card{position:relative;grid-column:span 4;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:clamp(20px,2.4vw,28px);overflow:hidden;min-width:0}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,-500px) var(--my,-500px),rgba(123,108,255,.16),transparent 65%)}
.card>*{position:relative;z-index:1}
.s7{grid-column:span 7}.s5{grid-column:span 5}.s12{grid-column:span 12}
@media (max-width:920px){.card,.s7,.s5{grid-column:span 12}}
.card h3{font-weight:600;font-size:1.3rem;letter-spacing:-.03em}
.card p{color:var(--dim);margin-top:8px;font-size:.96rem;max-width:52ch}
.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:center;padding:clamp(24px,3.6vw,48px);margin-top:14px}
.head+.feat{margin-top:clamp(28px,4vw,48px)}
@media (max-width:860px){.feat{grid-template-columns:minmax(0,1fr)}}
.feat h3{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1;letter-spacing:-.04em;text-wrap:balance}
.feat p{font-size:1.05rem;margin-top:12px;max-width:34ch}
.step{display:block;font:500 .8rem var(--mono);color:var(--valid);margin-bottom:12px}
.feat .scores{margin-top:0;gap:14px}.feat .scores li{font-size:.95rem}.feat .meter{height:8px}
.feat .tracks{margin-top:0}.feat .tracks li{padding:22px 24px}.feat .tracks .top{font-size:1rem}.feat .rail{height:6px;margin-top:20px}.feat .rail i::after{width:16px;height:16px;top:-5px;right:-7px}.feat .stops{font-size:.8rem;margin-top:12px}
.feat p+p{margin-top:10px}
.exaddr{font:400 1rem var(--mono);color:var(--ink);overflow-wrap:anywhere}
.signals li{transition:opacity .3s}
.scorehead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:24px}
.scorehead b{font:600 clamp(2.8rem,5vw,3.8rem)/1 var(--sans);letter-spacing:-.05em;color:var(--c,var(--valid));font-variant-numeric:tabular-nums;transition:color .3s}
.scorehead>span{color:var(--dim)}
.signals{list-style:none;padding:0;margin-top:18px;border-top:1px solid var(--line)}
.signals li{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr) 64px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.signals .k{color:var(--dim)}
.signals .m{height:6px;border-radius:9px;background:var(--line);position:relative}
.signals .m i{position:absolute;inset:0 auto 0 0;border-radius:9px;background:var(--c);transition:width .45s cubic-bezier(.3,.7,.2,1)}
@media (max-width:560px){.signals li{grid-template-columns:minmax(0,1fr) 56px}.signals .k{grid-column:1/-1;font-size:.8rem;margin-bottom:-8px}}
.feat .fine{font-size:.82rem;color:var(--mute);margin-top:12px;max-width:none}
.perks{list-style:none;padding:0;margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:860px){.perks{grid-template-columns:minmax(0,1fr)}}
.perks li{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px 26px}
.perks b{display:block;font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:600;letter-spacing:-.045em;line-height:1.1}
.perks span{display:block;color:var(--dim);margin-top:6px}
.tag{display:inline-block;margin-top:16px;font:500 .76rem var(--mono);color:var(--dim);border:1px solid var(--line-2);border-radius:8px;padding:4px 9px}

/* threshold card */
.scores{list-style:none;padding:0;margin-top:22px;display:grid;gap:8px}
.scores li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) 3.2ch auto;gap:12px;align-items:center;font-size:.84rem}
.scores .em{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}
.meter{position:relative;height:6px;border-radius:9px;background:var(--line)}
.meter i{position:absolute;inset:0 auto 0 0;border-radius:9px;background:var(--c);transition:background .2s}
.scores b{font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
.scores .chip{min-width:104px;justify-content:center}
@media (max-width:520px){.scores li{grid-template-columns:minmax(0,1fr) 3.2ch auto}.scores .meter{display:none}}
.slide{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.slide label,.calc label{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;font-weight:500}
output{font-family:var(--mono);color:var(--valid)}
input[type=range]{width:100%;accent-color:var(--valid);height:26px;margin-top:6px}
.slide p{margin-top:4px;font-size:.88rem}

/* deep verification card */
.tracks{list-style:none;padding:0;margin-top:22px;display:grid;gap:10px}
.tracks li{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--panel-2)}
.tracks .top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.84rem}
.tracks .em{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}
.rail{position:relative;height:4px;border-radius:9px;background:var(--line);margin-top:12px}
.rail i{position:absolute;inset:0 auto 0 0;width:0;border-radius:9px;background:var(--c,var(--brand-2));transition:width 1.1s cubic-bezier(.3,.7,.2,1),background .3s}
.rail i::after{content:"";position:absolute;right:-5px;top:-4px;width:12px;height:12px;border-radius:50%;background:var(--c,var(--brand-2));box-shadow:0 0 14px var(--c,var(--brand-2))}
.stops{display:flex;justify-content:space-between;font:400 .7rem var(--mono);color:var(--mute);margin-top:8px}

/* small cards */
.zero{font:600 clamp(3.4rem,7vw,5rem)/1 var(--sans);letter-spacing:-.06em;background:linear-gradient(180deg,var(--unknown),#3B4257);-webkit-background-clip:text;background-clip:text;color:transparent}
.mini{margin-top:18px;border:1px solid var(--line);border-radius:12px;overflow:hidden;font:400 .74rem var(--mono)}
.mini div{display:grid;grid-template-columns:1fr 1.5fr 1fr .7fr;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mini div:last-child{border-bottom:0}.mini div:first-child{color:var(--mute)}
.mini span{overflow:hidden;text-overflow:ellipsis}
.mini .new{color:var(--valid)}
.toast{margin-top:18px;border:1px solid var(--line-2);border-radius:14px;padding:12px 14px;background:var(--panel-2);font-size:.86rem;display:grid;gap:6px}
.toast small{color:var(--mute);font-size:.76rem}
.toast .mono{font-size:.8rem}
.code{font:400 .8rem/1.75 var(--mono);overflow-x:auto;margin-top:18px;border:1px solid var(--line);border-radius:14px;background:#090A0F;padding:16px 18px}
.code pre{margin:0;font:inherit}
.code .c{color:var(--mute)}.code .k{color:#9DA8FF}.code .s{color:var(--valid)}.code .a{color:var(--catch)}
.plugs{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.plugs span{border:1px solid var(--line-2);border-radius:10px;padding:8px 12px;font-size:.88rem;background:var(--panel-2)}
.facts{list-style:none;padding:0;margin-top:18px;display:grid;gap:10px;color:var(--dim);font-size:.94rem}
.facts li{padding-left:20px;position:relative}
.facts li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--brand)}
.facts b{color:var(--ink);font-weight:500}

/* verdicts */
.verdicts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:clamp(28px,4vw,48px);border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--panel)}
.verdicts div{padding:22px;border-right:1px solid var(--line);min-width:0}.verdicts div:last-child{border-right:0}
.verdicts code{display:block;font:400 .76rem var(--mono);color:var(--mute);margin:12px 0 8px}
.verdicts p{font-size:.9rem;color:var(--dim)}
@media (max-width:980px){.verdicts{grid-template-columns:repeat(2,minmax(0,1fr))}.verdicts div{border-bottom:1px solid var(--line)}}
@media (max-width:520px){.verdicts{grid-template-columns:minmax(0,1fr)}.verdicts div{border-right:0}}

/* pricing */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(28px,4vw,48px)}
@media (max-width:860px){.plans{grid-template-columns:minmax(0,1fr)}}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:6px}
.plan.hot{border-color:transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(140deg,var(--brand),var(--brand-2),var(--valid)) border-box}
.plan h3{font-size:.95rem;font-weight:500;color:var(--dim)}
.plan .price{font:600 clamp(2.2rem,4vw,3rem)/1.1 var(--sans);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.plan .price small{font:400 .9rem var(--sans);letter-spacing:0;color:var(--dim)}
.plan p{color:var(--dim);font-size:.92rem;margin-bottom:14px}
.plan .btn{margin-top:auto}
.calc{margin-top:14px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center}
@media (max-width:860px){.calc{grid-template-columns:minmax(0,1fr)}}
.calc label+input{margin-bottom:14px}
.sum{display:grid;grid-template-columns:1fr auto;gap:6px 16px;font-variant-numeric:tabular-nums}
.sum dt{color:var(--dim)}.sum dd{margin:0;text-align:right;font-family:var(--mono)}
.sum .tot{font:600 2.2rem/1.2 var(--sans);letter-spacing:-.04em;color:var(--ink);padding-top:8px;border-top:1px solid var(--line);margin-top:8px}
.calc small{display:block;margin-top:10px;color:var(--mute)}

/* closer */
.closer{position:relative;overflow:hidden;border-top:1px solid var(--line)}
.closer::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 72% 50%,rgba(52,211,153,.14),transparent 70%),radial-gradient(40% 60% at 20% 80%,rgba(123,108,255,.2),transparent 70%);pointer-events:none}
.closer .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center}
@media (max-width:860px){.closer .wrap{grid-template-columns:minmax(0,1fr)}}
.closer h2{font-size:clamp(2.6rem,6.4vw,5rem)}
.closer .btn{margin-top:28px}
.envsvg{display:block;width:min(100%,400px);margin:0 auto;overflow:visible}
.envsvg .e{fill:rgba(255,255,255,.025);stroke:#DDE3FF;stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 0 12px rgba(123,108,255,.75))}
.envsvg .tb{fill:var(--bg);stroke:var(--valid);stroke-width:2;opacity:.3;transition:opacity .4s}
.envsvg .tk{fill:none;stroke:var(--valid);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48;transition:stroke-dashoffset .55s .2s}
.landed .envsvg .tb{opacity:1;filter:drop-shadow(0 0 16px var(--valid))}
.landed .envsvg .tk{stroke-dashoffset:0}
#route{position:absolute;left:0;top:0;z-index:-1;pointer-events:none;overflow:visible}
.r-guide{fill:none;stroke:none}
.r-dash{stroke:#C9FFE9;stroke-width:1.6;stroke-linecap:round;opacity:0}
.r-plane{filter:drop-shadow(0 0 9px #34D399);transition:opacity .25s}
.r-plane.deep{filter:drop-shadow(0 0 9px #FBBF24)}
.r-plane path{fill:rgba(239,255,248,.16);stroke:#fff;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.r-env{--vc:#8E96B8}
.r-env.v-valid{--vc:var(--valid)}.r-env.v-invalid{--vc:var(--invalid)}.r-env.v-catch{--vc:var(--catch)}
.r-env .eb,.r-env .ef{fill:rgba(255,255,255,.02);stroke:var(--vc);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;opacity:.4;transition:stroke .35s,opacity .35s}
.r-env.on .eb,.r-env.on .ef{opacity:1}
.r-env.on{filter:drop-shadow(0 0 9px var(--vc))}
.r-env .ef{fill:none;transform-box:fill-box;transform-origin:50% 0;transition:transform .5s cubic-bezier(.3,1.5,.5,1),stroke .35s,opacity .35s}
.r-env.on.v-valid .ef{transform:scaleY(-1)}
.r-env .bd{transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .4s .12s cubic-bezier(.3,1.7,.5,1)}
.r-env.on .bd{transform:scale(1)}
.r-env .bd circle{fill:var(--bg);stroke:var(--vc);stroke-width:1.6}
.r-env .bi{fill:none;stroke:var(--vc);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.r-env .ring{fill:none;stroke:var(--vc);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.r-env.on .ring{animation:ringp .8s ease-out}
@keyframes ringp{from{opacity:.75;transform:scale(.45)}to{opacity:0;transform:scale(1.7)}}
@media (prefers-reduced-motion:reduce){.r-env.on .ring{animation:none}}
footer .wrap{padding-block:24px 36px;display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:space-between;color:var(--mute);font-size:.84rem;border-top:1px solid var(--line)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.win::before,.live::before,.chip.spin::before{animation:none}.row{animation:none}}
