/* ===== fonts ===== */
@font-face{font-family:'General Sans';src:url('/assets/fonts/gs-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'General Sans';src:url('/assets/fonts/gs-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'General Sans';src:url('/assets/fonts/gs-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'General Sans';src:url('/assets/fonts/gs-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Golos Text';src:url('/assets/fonts/golos-400-cyr.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0400-04FF,U+0500-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:'Golos Text';src:url('/assets/fonts/golos-500-cyr.woff2') format('woff2');font-weight:500;font-display:swap;unicode-range:U+0400-04FF,U+0500-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/nr-400i.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/nr-500i.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}
/* Newsreader has no Cyrillic — Lora (cyrillic italic) covers RU/UK serif accents via glyph fallback; loaded only when Cyrillic is rendered in a serif context */
@font-face{font-family:'Lora';src:url('/assets/fonts/lora-400i-cyr.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0400-04FF,U+0500-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:'Lora';src:url('/assets/fonts/lora-500i-cyr.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0400-04FF,U+0500-052F,U+2DE0-2DFF,U+A640-A69F}

/* ===== tokens ===== */
:root{
  --bg:#0C0C0E; --card:#151518; --brand:#03FFF1;
  --text:#F5F5F4; --mid:#A1A1AA; --dim:#82828B;
  --line:rgba(255,255,255,.08); --edge:rgba(255,255,255,.14);
  --sans:'General Sans','Golos Text',system-ui,sans-serif;
  --serif:'Newsreader','Lora',Georgia,serif;
  --pad:clamp(20px,5vw,72px); --measure:64ch;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
::selection{background:var(--brand);color:var(--bg)}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
img,svg{display:block}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:var(--bg);padding:.5em 1em;z-index:20}
.skip:focus{left:0}

.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--brand);opacity:.8}

/* ===== topbar ===== */
.topbar{display:flex;justify-content:space-between;align-items:center;gap:1em;padding:18px var(--pad);border-bottom:1px solid var(--line);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(8px);z-index:10}
.brand{display:flex;align-items:center;gap:.5em;font-weight:600;letter-spacing:.04em}
.brand img{width:22px;height:auto;filter:drop-shadow(0 0 8px rgba(3,255,241,.5))}
.top-nav{display:flex;align-items:center;gap:1.2em}
.switcher{display:inline-flex;align-items:center;gap:.5em;font-size:.8rem;letter-spacing:.06em}
.lang{color:var(--dim)}.lang.on{color:var(--brand)}.lang-sep{color:var(--dim);opacity:.5}
.top-join{font-size:.85rem;color:var(--mid)}
.top-join:hover{color:var(--text)}

/* ===== buttons ===== */
.btn{display:inline-block;padding:.85em 1.5em;font-weight:600;font-size:.95rem;border-radius:8px;transition:transform .2s ease,box-shadow .3s ease,background .2s ease}
.btn-primary{background:var(--brand);color:var(--bg);box-shadow:0 0 0 rgba(3,255,241,0)}
.btn-primary:hover{box-shadow:0 0 36px rgba(3,255,241,.35);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--edge);color:var(--text)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-lg{padding:1.05em 2em;font-size:1.05rem}

/* ===== hero ===== */
.hero{position:relative;min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(48px,9vh,120px) var(--pad);overflow:hidden}
.glow{position:absolute;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(3,255,241,.14),transparent 62%);filter:blur(20px);pointer-events:none;z-index:0}
.glow-sm{width:440px;height:340px;opacity:.7}
.hero>*{position:relative;z-index:1}
.hero-mark{width:clamp(84px,11vw,120px);height:auto;margin-bottom:1.6rem;filter:drop-shadow(0 0 26px rgba(3,255,241,.5))}
.hero h1{font-weight:700;font-size:clamp(2.4rem,6.4vw,4.6rem);line-height:1.04;letter-spacing:-.025em;max-width:18ch;margin:.5rem auto 0}
.hero h1 .h-b{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--brand)}
.hero .sub{color:var(--mid);max-width:52ch;margin:1.6rem auto 0;font-size:clamp(1rem,1.4vw,1.16rem)}
.cta-row{display:flex;gap:.8em;flex-wrap:wrap;justify-content:center;margin-top:2rem}

/* ===== plates ===== */
.plate{max-width:var(--maxw);margin-inline:auto;padding:clamp(56px,9vh,120px) var(--pad);border-top:1px solid var(--line)}
.plate .eyebrow{display:block;margin-bottom:2rem}

/* ===== map ===== */
.map{position:relative;width:100%;max-width:calc(62vh * 95 / 62);margin-inline:auto;aspect-ratio:95/62}
.map .world{position:absolute;inset:0;color:rgba(255,255,255,.10)}
.map .world svg{width:100%;height:100%}
.map .markers{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.map .dot{fill:var(--brand);filter:drop-shadow(0 0 4px rgba(3,255,241,.9))}
.map .arc{fill:none;stroke:var(--brand);stroke-width:2.2;opacity:.5;stroke-linecap:round}
.map-line{margin-top:1.6rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);color:var(--text)}

/* ===== pains ===== */
.pains{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.pain{position:relative;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:26px 24px}
.pain::before{content:"";position:absolute;top:14px;right:14px;width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 8px rgba(3,255,241,.8)}
.pain-q{font-weight:600;font-size:1.06rem;line-height:1.32;letter-spacing:-.01em}
.pain-a{margin-top:.8em;color:var(--mid);font-size:.95rem}

/* ===== principles ===== */
.principles{list-style:none;max-width:var(--measure);display:grid;gap:1.1em}
.principles li{font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.35;letter-spacing:-.01em;padding-left:1em;border-left:2px solid var(--brand)}
.principles strong{font-weight:700}

/* ===== status ===== */
.status{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px)}
.status-h{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1em}
.status-open{color:var(--brand)}.status-build{color:var(--dim)}
.status ul{list-style:none;display:grid;gap:.7em}
.status li{position:relative;padding-left:1.4em;color:var(--text)}
.status li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%}
.status-col:first-child li::before{background:var(--brand)}
.status-col:last-child li{color:var(--mid)}
.status-col:last-child li::before{border:1px solid var(--dim)}
.status-foot{margin-top:2rem;color:var(--mid);font-family:var(--serif);font-style:italic;font-size:1.15rem}

/* ===== name ===== */
.name-body{max-width:var(--measure);font-size:clamp(1.2rem,2.2vw,1.7rem);line-height:1.45}
.name-body .hl{padding-bottom:2px;background:linear-gradient(var(--brand),var(--brand)) left bottom/100% 2px no-repeat;color:var(--text)}

/* ===== join ===== */
.join-plate{position:relative;overflow:hidden;text-align:center}
.join-plate>*{position:relative;z-index:1}
.join-title{font-weight:700;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.02em;margin-bottom:.5rem}
.join-sub{color:var(--mid);margin-bottom:1.8rem}
.form-wrap{max-width:620px;margin:3.5rem auto 0;border:1px solid var(--line);background:var(--card);border-radius:16px;padding:clamp(24px,4vw,40px);text-align:left}
.form-title{font-weight:600;font-size:1.3rem}
.form-sub{color:var(--mid);margin:.4rem 0 1.6rem;font-size:.95rem}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fields label{display:flex;flex-direction:column;gap:.4em;font-size:.82rem;color:var(--mid)}
.fields label.wide{grid-column:1/-1}
.fields input{font:inherit;color:var(--text);background:#0E0E11;border:1px solid var(--edge);border-radius:8px;padding:.7em .8em}
.fields input:focus{outline:none;border-color:var(--brand)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy{margin:1.1rem 0 1.4rem;color:var(--dim);font-size:.82rem}
.form-msg{margin-top:1rem;min-height:1.2em;font-size:.92rem}
.form-msg.ok{color:var(--brand)}.form-msg.err{color:#ff8080}

/* ===== footer ===== */
.seal{display:flex;align-items:center;gap:1em;flex-wrap:wrap;padding:28px var(--pad);border-top:1px solid var(--line);color:var(--mid)}
.seal img{filter:drop-shadow(0 0 6px rgba(3,255,241,.5))}
.seal-tag{flex:1;min-width:200px;font-size:.9rem}
.seal-rights{font-size:.82rem;color:var(--dim)}
.seal-switch{font-size:.78rem}

/* ===== reveals / fade ===== */
.fade{opacity:0;transform:translateY(16px);animation:fade-up .7s cubic-bezier(.22,.9,.3,1) forwards;animation-delay:calc(var(--d,0)*.1s + .05s)}
@keyframes fade-up{to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
html:not(.js) .reveal{opacity:1;transform:none}
html:not(.js) .fade{opacity:1;transform:none;animation:none}

/* ===== responsive ===== */
@media (max-width:760px){
  .status{grid-template-columns:1fr}
  .fields{grid-template-columns:1fr}
  .topbar .top-join{display:none}
}

/* ===== reduced motion ===== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .fade,.reveal{opacity:1!important;transform:none!important}
}
