body{min-height:100vh}.logo{display:flex;align-items:center;gap:10px;font:17px Michroma}.logo img{width:36px;height:36px}
.hdr{background:rgba(7,7,11,.9);border-bottom:1px solid var(--line)}.ph{white-space:normal}
.hero{min-height:92vh;display:flex;align-items:center;padding:120px 0 64px;background:radial-gradient(60% 50% at 80% 30%,color-mix(in srgb,var(--one) 16%,transparent),transparent),radial-gradient(40% 40% at 10% 90%,#2EE6C51a,transparent)}
.lead{font-size:19px;color:#c7cbd6;margin:18px 0 28px;max-width:560px}.cta{display:flex;gap:12px;flex-wrap:wrap}
.si{display:grid;gap:12px}.si .btn{justify-content:flex-start;gap:12px;width:100%}.ico{width:22px;height:22px;border-radius:6px;background:#ffffff1a;display:grid;place-items:center;font:600 12px Sora}
.fine{font-size:13px;color:#aab0c0}sec,section.pad{padding:96px 0}
.steps{display:grid;gap:0}.step{display:grid;grid-template-columns:72px 1fr;gap:18px;padding:26px 0;border-top:1px solid var(--line)}.step b{font:28px Michroma;color:var(--one)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:56px}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ui{border-radius:18px;border:1px solid var(--line);background:#0c0d14;overflow:hidden}.ui .bar{display:flex;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}.ui .bar i{width:10px;height:10px;border-radius:50%;background:#ffffff22}
.row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--line);flex-wrap:wrap}.row:first-of-type{border-top:0}
.pill{font:600 12px Sora;letter-spacing:.06em;padding:4px 10px;border-radius:999px;border:1px solid #2EE6C566;color:var(--one)}.pill.off{border-color:#ffffff33;color:#c3c7d2}
footer{border-top:1px solid var(--line);padding:48px 0}footer .g3 p{color:var(--mut)}
/* portal */
.ph-h{padding:130px 0 0;background:radial-gradient(50% 120% at 85% 0,#2EE6C524,transparent)}.prof{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.av{width:72px;height:72px;border-radius:50%;background:conic-gradient(from 200deg,#2EE6C5,#0b1024,#2EE6C5);display:grid;place-items:center;font:22px Michroma;color:#05060c}
.tabs{display:flex;gap:4px;margin-top:28px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs a{padding:14px 18px;font:600 14px Sora;color:#c3c7d2;white-space:nowrap;border-bottom:2px solid transparent}.tabs a[aria-current]{color:#fff;border-color:var(--one)}
.pm{padding:36px 0 96px}.k{font:600 12px Sora;letter-spacing:.18em;text-transform:uppercase;color:#aab0c0}.v{font:26px Michroma;margin-top:6px}
.auth{min-height:100vh;display:grid;place-items:center;padding:110px 5vw 60px;background:radial-gradient(50% 50% at 50% 20%,#2EE6C520,transparent)}.auth .glass{width:min(460px,100%);padding:36px}
.field{display:grid;gap:8px;margin:18px 0}.field label{font:600 14px Sora}.field input{height:52px;border-radius:12px;border:1px solid #ffffff33;background:#0c0d14;color:#fff;padding:0 16px;font:16px Inter}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:#c7cbd6;margin:14px 0}.chk span.b{flex:0 0 22px;height:22px;border-radius:6px;border:1px solid #ffffff55}
.danger{border-color:#ff8a8a55}.btn.dz{--acc:#ff8a8a}
@media(max-width:900px){.hero,.g2{grid-template-columns:1fr;gap:32px}.hero{padding:100px 0 48px;min-height:0}.g4,.g3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.g4,.g3{grid-template-columns:1fr}.hnav{display:none}.hdr .btn.sm{display:none}footer{padding-bottom:110px}h1{font-size:34px}}
main>section.pm{padding:32px 0 96px!important}main>section.ph-h{padding:130px 0 0!important}
.prose h3{margin:26px 0 8px}.prose p{color:#d6d9e3;max-width:68ch}.prose a{text-decoration:underline;text-underline-offset:3px}
footer a.il{display:inline;margin:0}
.row.act{flex-wrap:nowrap}.row.act>:first-child{flex:1 1 0;min-width:0}.row.act>:last-child{flex:none}
/* 390: session placeholders stay one line and truncate instead of wrapping, so wider font rendering cannot push the row taller; -5px matches the mockup baseline */
@media(max-width:560px){.row.act>:first-child .ph{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:-5px}}
