/* nsfwflux.top — TOTALITY: eclipse corona over a blue-black night */
:root{
  --umb:#0b0617;--pen:#160c30;--deep:#05030c;--lime:#74f24e;--lime2:#c3ffb0;--ink:#0f0a20;
  --txt:#ece9f7;--mut:#aca3cb;--peri:#bb9dff;--line:rgba(187,157,255,.2);--line2:rgba(187,157,255,.34);
  --err:#ffdcad;--band:var(--umb);--lit:var(--lime);
  --disp:"Afacad Flux","Onest",system-ui,sans-serif;--body:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"M PLUS 1 Code",ui-monospace,Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{display:flex;flex-direction:column;min-height:100vh;margin:0;background:var(--umb);color:var(--txt);font:400 17px/1.65 var(--body);overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--lime)}
h1,h2,h3,h4{font-family:var(--disp);font-weight:700;line-height:1.08;margin:0;letter-spacing:-.005em;overflow-wrap:break-word}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--lime2);outline-offset:3px;border-radius:4px}
.day :focus-visible{outline-color:var(--ink)}
.skip{position:absolute;left:-999px;top:8px;background:var(--lime);color:var(--ink);padding:12px 18px;border-radius:999px;z-index:99;font-weight:600}
.skip:focus{left:12px}
main{flex:1 0 auto;width:100%}
.top,.foot{flex:none;width:100%}
.wrap{width:100%;max-width:1228px;margin:0 auto;padding:0 24px}
.wrap.narrow{max-width:808px}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:40;background:rgba(11,6,23,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--lime) 18%,transparent 46%);opacity:.7;pointer-events:none}
.bar{display:flex;align-items:center;gap:20px;min-height:68px}
.logo{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--txt);text-decoration:none;font:700 23px/1 var(--disp);letter-spacing:.01em;flex:none}
.logo .mark{color:var(--lime);flex:none}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;color:var(--mut);text-decoration:none;font-size:15px;border-radius:999px;transition:color .15s}
.nav a:hover{color:var(--txt)}
.nav a[aria-current]{color:var(--txt);padding-left:30px}
.nav a[aria-current]::before{content:"";position:absolute;left:10px;top:50%;width:11px;height:11px;margin-top:-6px;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.5px var(--lime),0 0 9px 1px rgba(116,242,78,.7)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line2);border-radius:50%;background:transparent;color:var(--txt);cursor:pointer;padding:0;position:relative;flex:none}
.burger i,.burger i::before,.burger i::after{content:"";position:absolute;left:50%;width:18px;height:1.5px;margin-left:-9px;background:currentColor}
.burger i{top:50%}.burger i::before{top:-6px}.burger i::after{top:6px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--lime);background:var(--lime);color:var(--ink);font:600 15.5px/1.2 var(--body);text-decoration:none;cursor:pointer;text-align:center;transition:box-shadow .2s,background .2s,transform .2s}
.btn:hover{background:var(--lime2);box-shadow:0 0 0 4px rgba(116,242,78,.16),0 0 26px rgba(116,242,78,.4)}
.btn:active{transform:translateY(1px)}
.btn.big{min-height:54px;padding:0 30px;font-size:17px}
.btn.sm{min-height:44px;padding:0 16px;font-size:14.5px}
.btn.ghost{background:transparent;color:var(--txt);border-color:var(--line2)}
.btn.ghost:hover{background:rgba(187,157,255,.1);border-color:var(--peri);box-shadow:none}
.btn[disabled]{opacity:.55;cursor:default}
.hcta{box-shadow:0 0 18px rgba(116,242,78,.28)}
.day .btn{background:var(--ink);border-color:var(--ink);color:var(--lime2)}

/* ---------- bands ---------- */
.band{position:relative;padding:92px 0;background:var(--band)}
.umb{--band:var(--umb)}
.pen{--band:var(--pen);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.day{--band:var(--lime);--lit:var(--ink);color:var(--ink)}
.band>.wrap{position:relative;z-index:1}
.stars{overflow:hidden}
.stars::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.9;
  background-image:radial-gradient(1.2px 1.2px at 24px 38px,#ffffff 55%,transparent 60%),radial-gradient(1px 1px at 150px 96px,#decfff 55%,transparent 60%),
  radial-gradient(1.4px 1.4px at 88px 210px,#c3ffb0 55%,transparent 60%),radial-gradient(1px 1px at 260px 44px,#ffffff 55%,transparent 60%),
  radial-gradient(.9px .9px at 196px 170px,#bb9dff 55%,transparent 60%),radial-gradient(1px 1px at 60px 132px,#9488b8 55%,transparent 60%),
  radial-gradient(1.6px 1.6px at 330px 250px,#ffffff 50%,transparent 60%);
  background-size:290px 270px,370px 310px,430px 390px,510px 230px,230px 350px,170px 190px,610px 470px;
  -webkit-mask-image:linear-gradient(#000000 30%,transparent 96%);mask-image:linear-gradient(#000000 30%,transparent 96%)}

/* eclipse-contact glyph */
.ph{--o:50%;position:relative;display:inline-block;flex:none;width:26px;height:26px;border-radius:50%;background:var(--lit);overflow:hidden;font-style:normal}
.ph::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--band);transform:translateX(var(--o))}
.ph1{--o:72%}.ph2{--o:48%}.ph3{--o:26%}.ph4{--o:11%}
.ph5{background:var(--deep);box-shadow:0 0 0 1.6px var(--lit),0 0 14px 2px rgba(116,242,78,.75);overflow:visible}
.ph5::after{inset:auto;right:-3px;top:-3px;width:8px;height:8px;background:#ffffff;box-shadow:0 0 8px 2px var(--lime2);transform:none}
.day .ph5{box-shadow:0 0 0 1.6px var(--ink)}
.day .ph5::after{background:var(--ink);box-shadow:none}

.sh{position:relative;z-index:2;display:flex;align-items:center;gap:16px;margin:0 0 44px}
.sh h2{font-size:clamp(30px,3.6vw,46px);font-weight:300;letter-spacing:.005em}
.sh::after{content:"";flex:1;height:1px;min-width:24px;background:linear-gradient(90deg,var(--lit),transparent)}
.day .sh::after{background:linear-gradient(90deg,var(--ink),rgba(15,10,32,0))}

/* ---------- hero ---------- */
.hero{padding:72px 0 96px}
.hgrid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:56px;align-items:center}
.hgrid>*{min-width:0}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;font:400 13px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--lime)}
h1{font-size:clamp(40px,5.5vw,76px);letter-spacing:-.015em}
.hero h1{max-width:13ch}
.lead{font-size:clamp(17.5px,1.5vw,20px);line-height:1.6;color:var(--mut);max-width:60ch;margin:24px 0 0}
.acts2{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ticks{list-style:none;margin:36px 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:grid;gap:12px}
.ticks li{position:relative;padding-left:30px;color:var(--txt);font-size:16px;line-height:1.5}
.ticks li::before{content:"";position:absolute;left:2px;top:.36em;width:12px;height:12px;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.4px var(--lime),0 0 8px rgba(116,242,78,.6)}
.hart{position:relative;padding-top:264px}
.ecl{display:block;pointer-events:none}
.eclh{position:absolute;top:-84px;left:50%;width:620px;max-width:none;margin-left:-310px}
.hcode{position:relative}
.try{margin:0 0 10px;font:400 12.5px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
@keyframes flare{50%{opacity:.62}}
.flare{animation:flare 5s ease-in-out infinite}

/* ---------- code ---------- */
.codebox{border:1px solid var(--line2);border-radius:16px;background:rgba(5,3,12,.9);box-shadow:0 30px 70px -30px #000000,0 0 0 1px rgba(116,242,78,.07);overflow:hidden;min-width:0}
.codetabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--line);overflow-x:auto}
.codetabs button{position:relative;min-height:48px;padding:0 16px;background:none;border:0;color:var(--mut);font:400 14px/1 var(--mono);cursor:pointer;white-space:nowrap}
.codetabs button[aria-selected="true"]{color:var(--lime)}
.codetabs button[aria-selected="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--lime);box-shadow:0 0 10px var(--lime)}
pre.code{position:relative;margin:0 0 1.4em;padding:54px 20px 20px;background:var(--deep);border:1px solid var(--line);border-radius:14px;color:#e4dff5;font:400 14px/1.7 var(--mono);overflow-x:auto;max-width:100%;-moz-tab-size:2;tab-size:2}
.codebox pre.code{margin:0;border:0;border-radius:0;background:transparent}
pre.code code{font:inherit;background:none;border:0;padding:0;color:inherit;white-space:pre}
pre.code .k{color:var(--lime)}pre.code .s{color:#cfb9ff}pre.code .c{color:#968bb8;font-style:italic}
.copy{position:absolute;top:5px;right:8px;min-width:64px;min-height:44px;padding:0 12px;background:transparent;border:0;color:var(--mut);font:400 12.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.copy::before{content:"";display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;box-shadow:0 0 0 1.3px currentColor}
.copy:hover{color:var(--lime)}

/* ---------- facts: eclipse sequence ---------- */
.factsband{padding:44px 0}
.seq{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0}
.seq::before{content:"";position:absolute;left:0;right:0;top:13px;height:1px;background:linear-gradient(90deg,transparent,var(--line2) 12%,var(--lime) 50%,var(--line2) 88%,transparent)}
.seq>div{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 10px;min-width:0}
.seq .ph{box-shadow:0 0 0 7px var(--band)}
.seq .ph5{box-shadow:0 0 0 1.6px var(--lime),0 0 0 7px var(--band),0 0 20px 6px rgba(116,242,78,.6)}
.seq dd{margin:20px 0 4px;font:700 clamp(28px,3vw,42px)/1 var(--disp);color:var(--txt)}
.seq div:nth-child(3) dd{color:var(--lime)}
.seq dt{font-size:14px;line-height:1.4;color:var(--mut)}
.psub{margin:34px 0 0;text-align:center;color:var(--mut);font-size:15.5px}

/* ---------- features: star-chart cells ---------- */
.chart{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.chart.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cell{position:relative;padding:32px 26px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;transition:background .2s}
.cell::before{content:"";position:absolute;left:-3px;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime)}
.cell:hover{background:rgba(187,157,255,.05)}
.cell h3{font-size:23px;margin-bottom:10px}
.cell p{margin:0;color:var(--mut);font-size:15.5px;line-height:1.6}

/* ---------- steps (daylight band) ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:st}
.steps li{position:relative;counter-increment:st;padding:0 34px 0 0;min-width:0}
.steps li+li{padding-left:34px;border-left:1px solid rgba(15,10,32,.28)}
.steps li::before{content:"0" counter(st);display:block;font:300 84px/.9 var(--disp);margin-bottom:18px;letter-spacing:-.03em}
.steps h3{font-size:26px;margin-bottom:10px}
.steps p{margin:0;font-size:16px;line-height:1.6}

/* ---------- use cases ---------- */
.uses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.use{position:relative;padding:30px 30px 30px 84px;border:1px solid var(--line);border-radius:20px;background:rgba(11,6,23,.5);min-width:0;overflow:hidden}
.use::before{content:"";position:absolute;left:24px;top:30px;width:36px;height:36px;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.5px var(--lime),0 0 16px rgba(116,242,78,.5)}
.use::after{content:"";position:absolute;left:8px;top:39px;width:68px;height:18px;border:1px solid var(--peri);border-radius:50%;transform:rotate(-20deg);opacity:.6}
.use h3{font-size:24px;margin-bottom:8px}
.use p{margin:0;color:var(--mut);font-size:16px}

/* ---------- prose ---------- */
.prose{min-width:0;overflow-wrap:break-word}
.prose>*:first-child{margin-top:0}
.prose h2{font-size:clamp(28px,3vw,38px);font-weight:300;margin:2em 0 .65em;padding-top:.5em;position:relative}
.prose h2::before{content:"";position:absolute;left:0;top:0;width:54px;height:1px;background:var(--lime);box-shadow:0 0 8px var(--lime)}
.prose h3{font-size:24px;margin:1.7em 0 .5em}
.prose h4{font-size:19px;margin:1.4em 0 .4em}
.prose p,.prose li{color:#d9d3ea}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.prose li::marker{color:var(--lime)}
.prose a{color:var(--lime);text-underline-offset:3px}
.prose strong{color:var(--txt)}
.prose code{font:400 .9em var(--mono);background:rgba(187,157,255,.12);border:1px solid var(--line);border-radius:6px;padding:.1em .38em;overflow-wrap:anywhere}
.prose table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:0 0 1.5em;font-size:15.5px;border:1px solid var(--line);border-radius:14px}
.prose th,.prose td{padding:13px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);min-width:130px}
.prose thead th{font:400 12.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lime);background:rgba(187,157,255,.07);white-space:nowrap}
.prose tbody th{color:var(--txt);font-weight:600}
.prose td{color:#d9d3ea}
.prose tbody tr:last-child>*{border-bottom:0}
.prose blockquote{margin:0 0 1.2em;padding:4px 0 4px 20px;border-left:1px solid var(--lime);color:var(--mut)}

/* ---------- FAQ ---------- */
.fgrid2{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:48px;align-items:start}
.fhead{position:sticky;top:100px}
.fhead .sh{margin:0;flex-wrap:wrap}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{position:relative;display:flex;align-items:center;min-height:64px;padding:16px 52px 16px 0;cursor:pointer;list-style:none;font:700 21px/1.25 var(--disp);color:var(--txt)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"";position:absolute;right:6px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--lime);transition:box-shadow .25s,background .25s}
.faq summary::after{content:"";position:absolute;right:-4px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--pen);transition:right .25s}
.faq details[open] summary::before{background:var(--deep);box-shadow:0 0 0 1.6px var(--lime),0 0 14px 2px rgba(116,242,78,.7)}
.faq details[open] summary::after{right:6px;background:var(--deep)}
.faq details[open] summary{color:var(--lime)}
.faq p{margin:0;padding:0 52px 22px 0;color:#d9d3ea}
.umb .faq summary::after{background:var(--umb)}

/* ---------- CTA band ---------- */
.ctaband{padding:120px 0;text-align:center;border-top:1px solid var(--line)}
.ctain{display:flex;justify-content:center}
.eclc{position:absolute;left:50%;top:50%;width:680px;max-width:none;margin:-340px 0 0 -340px;opacity:.9}
.ctatxt{position:relative;max-width:560px}
.ctatxt h2{font-size:clamp(34px,4.6vw,58px)}
.ctatxt p{color:#d9d3ea;margin:18px auto 30px;max-width:44ch;font-size:18px}

/* ---------- page head ---------- */
.phd{padding:58px 0 62px;border-bottom:1px solid var(--line)}
.phd::after{content:"";position:absolute;right:-140px;top:-190px;width:520px;height:520px;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.5px var(--lime),0 0 60px 6px rgba(116,242,78,.28),0 0 160px 40px rgba(187,157,255,.1);pointer-events:none}
.phd h1{font-size:clamp(36px,4.6vw,62px);max-width:20ch}
.phd .lead{max-width:62ch}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;margin:0 0 20px;font:400 13px/1.4 var(--mono);letter-spacing:.06em;color:var(--mut)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--mut);text-decoration:none}
.crumbs a:hover{color:var(--lime)}
.crumbs a::after{content:"";width:18px;height:1px;margin:0 10px;background:var(--line2)}
.crumbs span{color:var(--lime)}
.upd{margin:22px 0 0;font:400 13px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}

/* ---------- key page ---------- */
.khero{padding:44px 0 80px}
.kgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);grid-template-areas:"head form" "ben form";grid-template-rows:auto 1fr;gap:36px 64px;align-items:start}
.khead{grid-area:head;position:relative;z-index:2}.kform{grid-area:form;position:relative}.kben{grid-area:ben;position:relative;z-index:2}
.khead h1{font-size:clamp(36px,4.4vw,60px)}
.kben{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.ben{padding:22px 22px 20px 0;border-bottom:1px solid var(--line);min-width:0}
.ben:nth-child(even){padding-left:22px;border-left:1px solid var(--line)}
.ben h2{font-size:21px;margin-bottom:6px}
.ben p{margin:0;color:var(--mut);font-size:15px;line-height:1.55}
.halo{position:absolute;left:50%;top:-70px;width:560px;height:560px;margin-left:-280px;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.5px var(--lime),0 0 70px 10px rgba(116,242,78,.3),0 0 180px 60px rgba(187,157,255,.12);pointer-events:none}
.halo::after{content:"";position:absolute;right:70px;top:66px;width:12px;height:12px;border-radius:50%;background:#ffffff;box-shadow:0 0 22px 9px rgba(195,255,176,.8)}
.form{position:relative;padding:26px;border:1px solid var(--line2);border-radius:22px;background:rgba(17,10,36,.94);box-shadow:0 40px 80px -40px #000000}
.tabs2{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 18px;border:1px solid var(--line);border-radius:999px;background:var(--deep)}
.tabs2 button{min-height:44px;border:0;border-radius:999px;background:transparent;color:var(--mut);font:600 15px/1 var(--body);cursor:pointer}
.tabs2 button[aria-selected="true"]{background:var(--lime);color:var(--ink)}
.msg{margin:0 0 14px;font-size:15px;color:var(--txt)}
.msg:empty{display:none}
.msg.err{padding:11px 14px;border:1px solid rgba(255,203,130,.5);border-radius:12px;background:rgba(255,178,80,.12);color:var(--err)}
.row{margin:0 0 14px}
.row label,.calc label{display:block;margin:0 0 6px;font:400 12.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
input,select,textarea{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--line2);border-radius:12px;background:var(--deep);color:var(--txt);font:400 16px/1.4 var(--body);transition:border-color .15s,box-shadow .15s}
textarea{min-height:160px;resize:vertical}
select{appearance:auto}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--lime);box-shadow:0 0 0 3px rgba(116,242,78,.22)}
.note{margin:8px 0 0;font-size:13.5px;line-height:1.5;color:var(--mut)}
.mut{color:var(--mut)}
.form form .btn{width:100%;min-height:52px;margin-top:6px;font-size:16.5px}
.form .btn.ghost{background:var(--deep)}
.keyout{display:none}
.keyout.on{display:block}
.keyout h3{font-size:24px;margin:0 0 12px}
.keybox{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border:1px solid var(--lime);border-radius:14px;background:var(--deep);box-shadow:0 0 22px rgba(116,242,78,.22)}
.keybox span{flex:1;min-width:0;font:400 14px/1.5 var(--mono);color:var(--lime2);overflow-wrap:anywhere}
.keyout p{font-size:15px;margin:12px 0}
.keyout code{font:400 .92em var(--mono);color:var(--lime2);overflow-wrap:anywhere}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

/* ---------- docs ---------- */
.docband{padding:64px 0 92px}
.dgrid{display:grid;grid-template-columns:264px minmax(0,1fr);gap:64px;align-items:start}
.dside{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow:auto}
.toch{margin:0 0 12px;font:400 12.5px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.toc ol{list-style:none;margin:0;padding:0;position:relative;counter-reset:tc}
.toc ol::before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:var(--line2)}
.toc li{position:relative;counter-increment:tc}
.toc li::before{content:"";position:absolute;left:1px;top:17px;width:9px;height:9px;border-radius:50%;background:var(--umb);box-shadow:0 0 0 1.3px var(--peri)}
.toc a{display:flex;align-items:center;min-height:44px;padding:6px 0 6px 28px;color:var(--mut);text-decoration:none;font-size:15px;line-height:1.35}
.toc a:hover{color:var(--lime)}
.toc li:hover::before{background:var(--deep);box-shadow:0 0 0 1.3px var(--lime),0 0 9px var(--lime)}

/* ---------- pricing ---------- */
.calcband{overflow:hidden}
.calcwrap{position:relative;max-width:940px;margin:0 auto}
.calcwrap .halo{top:-150px;width:640px;height:640px;margin-left:-320px}
.calc{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:end;padding:30px;border:1px solid var(--line2);border-radius:22px;background:rgba(17,10,36,.95);box-shadow:0 40px 80px -40px #000000}
.calc>div{min-width:0}
.calc input{font:400 18px/1.4 var(--mono);min-height:56px}
.calc output{display:flex;align-items:center;min-height:56px;font:700 44px/1 var(--disp);color:var(--lime);overflow-wrap:anywhere}
.exs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.ex{padding:0 30px;border-left:1px solid rgba(15,10,32,.28);min-width:0}
.ex:first-child{padding-left:0;border-left:0}
.ex h3{font-size:24px;margin-bottom:12px}
.ex p{margin:0;font-size:16px;line-height:1.6}

/* ---------- article ---------- */
.ahd h1{max-width:24ch}
.artband{padding:60px 0 92px}
.agrid{display:grid;grid-template-columns:minmax(0,740px) 250px;gap:72px;justify-content:center;align-items:start}
.acol{min-width:0}
.aside{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow:auto}
.take{position:relative;margin:0 0 44px;padding:26px 28px 22px;border:1px solid var(--lime);border-radius:20px;background:var(--deep);box-shadow:0 0 44px rgba(116,242,78,.16)}
.take ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.take li{position:relative;padding-left:28px;color:var(--txt);font-size:16.5px;line-height:1.55}
.take li::before{content:"";position:absolute;left:1px;top:.4em;width:12px;height:12px;border-radius:50%;background:var(--lime);box-shadow:inset -5px 0 0 var(--deep),0 0 0 1px var(--lime)}
.artband .prose{font-size:18px;line-height:1.75}

/* ---------- support ---------- */
.supband{padding:60px 0 92px}
.sgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:56px;align-items:start}
.scard{padding:30px;border:1px solid var(--line2);border-radius:22px;background:rgba(17,10,36,.94)}
.scard form{margin-top:0!important}
.scard [data-support-msg]:not(:empty){padding:11px 14px;border-radius:12px;background:#f3f1fb;font-weight:600}
.sside{position:relative;padding:34px 28px 96px;border:1px solid var(--line);border-radius:22px;overflow:hidden;display:grid;gap:12px}
.sside .halo{top:auto;bottom:-462px;width:520px;height:520px;margin-left:-260px}
.sside h2{position:relative;font-size:30px;font-weight:300}
.sside p{position:relative;margin:0 0 8px;color:var(--mut)}
.sside .btn{position:relative}

/* ---------- 404 ---------- */
.nf{padding:150px 0 160px;text-align:center}
.ecln .flare{display:none}
.nfin{display:flex;flex-direction:column;align-items:center}
.ecln{position:absolute;left:50%;top:50%;width:700px;max-width:none;margin:-350px 0 0 -350px;opacity:.85}
.nf h1,.nf .lead,.nflinks,.nf .btn{position:relative}
.nf .lead{margin-left:auto;margin-right:auto;color:#d9d3ea}
.nflinks{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:30px 0 26px}
.nflinks a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line2);border-radius:999px;color:var(--txt);text-decoration:none;font-size:15px;background:rgba(11,6,23,.7)}
.nflinks a:hover{border-color:var(--lime);color:var(--lime)}

/* ---------- footer ---------- */
.foot{position:relative;background:var(--deep);border-top:1px solid var(--line);padding:56px 0 34px;overflow:hidden}
.foot::before{content:"";position:absolute;left:50%;bottom:-1010px;width:1400px;height:1100px;margin-left:-700px;border-radius:50%;box-shadow:0 0 0 1px var(--line2),0 0 0 60px rgba(187,157,255,.03);pointer-events:none}
.fin{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px 44px;align-items:center}
.fbrand p{margin:6px 0 0;color:var(--mut);font-size:15px;max-width:40ch}
.flinks{display:flex;flex-wrap:wrap;gap:0 22px}
.flinks a{display:inline-flex;align-items:center;min-height:44px;color:var(--mut);text-decoration:none;font-size:15px}
.flinks a:hover{color:var(--lime)}
.legal{grid-column:1/-1;margin:14px 0 0;padding-top:22px;border-top:1px solid var(--line);color:var(--mut);font-size:13.5px}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .chart.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hgrid{grid-template-columns:minmax(0,1fr);gap:20px}
  .hero h1{max-width:18ch}
  .hart{padding-top:150px}
  .eclh{width:520px;margin-left:-260px;top:-90px;left:70%}
  .agrid{grid-template-columns:minmax(0,740px)}
  .aside{position:static;max-height:none;grid-row:1}
  .kgrid{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:30px 40px}
}
@media (max-width:900px){
  .burger{display:block}
  .hcta{margin-left:auto}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 16px;background:#0e081f;border-bottom:1px solid var(--line2);box-shadow:0 30px 50px -20px #000000}
  .nav.open{display:flex}
  .nav a{min-height:50px;padding:0 8px;border-radius:0;border-bottom:1px solid var(--line);font-size:17px}
  .nav a[aria-current]{padding-left:30px}
  .nav a[aria-current]::before{left:8px}
  .band{padding:64px 0}
  .factsband{padding:36px 0}
  .kgrid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "form" "ben";grid-template-rows:auto}
  .khero{padding:26px 0 60px}
  .halo{width:460px;height:460px;margin-left:-230px;top:-12px}
  .calcwrap .halo{top:-60px;width:460px;height:460px;margin-left:-230px}
  .sside .halo{top:auto}
  .dgrid,.sgrid,.fgrid2{grid-template-columns:minmax(0,1fr);gap:32px}
  .dside,.fhead{position:static;max-height:none}
  .dside{padding:22px;border:1px solid var(--line);border-radius:18px;background:rgba(22,12,48,.6)}
  .steps,.exs{grid-template-columns:minmax(0,1fr);gap:0}
  .steps li,.steps li+li{padding:26px 0;border-left:0;border-top:1px solid rgba(15,10,32,.28)}
  .steps li:first-child{border-top:0;padding-top:0}
  .steps li::before{font-size:64px;margin-bottom:12px}
  .ex,.ex:first-child{padding:24px 0;border-left:0;border-top:1px solid rgba(15,10,32,.28)}
  .ex:first-child{border-top:0;padding-top:0}
  .uses{grid-template-columns:minmax(0,1fr)}
  .calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .calc>div:last-child{grid-column:1/-1}
  .fin{grid-template-columns:minmax(0,1fr)}
  .phd::after{width:360px;height:360px;right:-190px;top:-200px}
  .ctaband{padding:90px 0}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .wrap{padding:0 16px}
  .bar{gap:10px;min-height:60px}
  .logo{font-size:20px;gap:8px}
  .logo .mark{width:26px;height:26px}
  .hcta{min-height:44px;padding:0 14px;font-size:14px}
  .hero{padding:40px 0 60px}
  .hart{padding-top:120px}
  .eclh{width:400px;margin-left:-200px;top:-80px;left:74%}
  .acts2 .btn{flex:1 1 100%}
  .sh{margin-bottom:30px;gap:12px}
  .seq{grid-template-columns:minmax(0,1fr)}
  .seq::before{left:12.5px;right:auto;top:10px;bottom:10px;width:1px;height:auto;background:linear-gradient(transparent,var(--line2) 12%,var(--lime) 50%,var(--line2) 88%,transparent)}
  .seq>div{display:grid;grid-template-columns:26px minmax(0,auto) minmax(0,1fr);align-items:center;gap:0 16px;text-align:left;padding:11px 0}
  .seq dd{margin:0;font-size:28px;min-width:92px}
  .seq dt{font-size:14.5px}
  .chart,.chart.c4{grid-template-columns:minmax(0,1fr)}
  .cell{padding:24px 20px}
  .use{padding:84px 22px 24px}
  .use::before{left:26px;top:26px}.use::after{left:10px;top:35px}
  .kben{grid-template-columns:minmax(0,1fr)}
  .ben,.ben:nth-child(even){padding:18px 0;border-left:0}
  .form,.scard,.calc{padding:20px 18px;border-radius:18px}
  .calc{grid-template-columns:minmax(0,1fr)}
  .calc output{font-size:38px}
  .faq summary{font-size:19px}
  .faq p{padding-right:0}
  .eclc,.ecln{width:520px;margin:-260px 0 0 -260px}
  .artband .prose{font-size:17px}
  pre.code{font-size:13px;padding:52px 14px 16px}
  .take{padding:22px 20px 18px}
  .phd{padding:30px 0 40px}
  .phd::after{width:300px;height:300px;right:-215px;top:-225px}
}
@media (max-width:380px){
  .logo span{font-size:18px}
  .hcta{padding:0 11px;font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
