@font-face{font-family:'Plex';font-style:normal;font-weight:400;src:url('../fonts/plexmono-400.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Plex';font-style:normal;font-weight:500;src:url('../fonts/plexmono-500.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Plex';font-style:normal;font-weight:600;src:url('../fonts/plexmono-600.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Sans';font-style:normal;font-weight:400;src:url('../fonts/inter-400.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Sans';font-style:normal;font-weight:600;src:url('../fonts/inter-600.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Sans';font-style:normal;font-weight:700;src:url('../fonts/inter-700.woff2') format('woff2');font-display:swap;}

:root{
  --bg:#0A0E13; --surface:#121822; --surface-2:#182030; --border:#232E3D;
  --text:#E7ECF3; --text-dim:#8FA0B3; --text-faint:#5B6B7F;
  --accent:#3D7FFF; --accent-strong:#6C9EFF; --accent-soft:rgba(61,127,255,0.14); --accent-2:#35D0C0;
  --verified:#34D399; --verified-bg:rgba(52,211,153,0.13);
  --revoked:#F76464; --revoked-bg:rgba(247,100,100,0.13);
  --radius:8px;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Sans',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.55;
}
.mono{font-family:'Plex',ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;}
a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline;}
.wrap{max-width:980px; margin:0 auto; padding:0 24px;}
h1,h2,h3{font-family:'Plex',ui-monospace,monospace; font-weight:600; letter-spacing:-0.01em;}
.nav{border-bottom:1px solid var(--border); padding:16px 0; margin-bottom:36px;}
.nav .wrap{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.brand{font-family:'Plex',ui-monospace,monospace; font-weight:600; color:var(--text); text-decoration:none; display:flex; align-items:center; gap:9px;}
.brand:hover{color:var(--accent); text-decoration:none;}
.brand-mark{height:26px; width:auto; display:block;}
.nav-toggle{
  display:none; background:none; border:1px solid var(--border); border-radius:6px;
  color:var(--text); font-size:18px; line-height:1; padding:7px 11px; cursor:pointer;
}
.nav-toggle:hover{border-color:var(--accent); color:var(--accent);}
.nav-links{display:flex; gap:18px; font-size:14px; color:var(--text-dim); align-items:center;}
.nav-links .verify-link{
  font-family:'Plex',monospace; font-size:13px; color:var(--accent); border:1px solid var(--border);
  border-radius:6px; padding:6px 12px;
}
.nav-links .verify-link:hover{border-color:var(--accent); background:var(--accent-soft); text-decoration:none;}
.logout-form{display:contents;}
.logout-form button{
  background:none; border:none; padding:0; margin:0; font-family:inherit; font-size:14px; color:var(--text-dim); cursor:pointer;
}
.logout-form button:hover{color:var(--text); text-decoration:underline;}
.lang-switcher{display:flex; align-items:center; gap:6px; margin:0;}
.lang-switcher span{color:var(--text-faint); font-size:12px;}
.lang-switcher button{
  background:none; border:none; color:var(--text-faint); font-family:'Plex',monospace; font-size:13px;
  cursor:pointer; padding:2px; line-height:1;
}
.lang-switcher button:hover{color:var(--accent);}
.lang-switcher button.active{color:var(--text-dim); font-weight:600; cursor:default;}
@media (max-width:760px){
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
  .nav-links{
    display:none; width:100%; flex-direction:column; align-items:flex-start; gap:14px;
    padding-top:16px; margin-top:14px; border-top:1px solid var(--border);
  }
  .nav.is-open .nav-links{display:flex;}
  .nav-links .verify-link{align-self:flex-start;}
  .lang-switcher{margin-top:2px;}
}
main{padding-bottom:64px;}
.kicker{font-family:'Plex',ui-monospace,monospace; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-2);}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px;}
.grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:700px){ .grid{grid-template-columns:1fr;} }
.btn{
  display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:#fff; border:none;
  border-radius:6px; padding:10px 18px; font-weight:600; font-size:14px; cursor:pointer; text-decoration:none;
}
.btn:hover{background:var(--accent-strong); text-decoration:none;}
.btn-ghost{
  display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--text); border:1px solid var(--border);
  border-radius:6px; padding:10px 18px; font-weight:600; font-size:14px; cursor:pointer; text-decoration:none;
}
input[type=text], input[type=email], input[type=number], input[type=password], textarea, select{
  width:100%; background:var(--bg); border:1px solid var(--border); border-radius:6px; color:var(--text);
  padding:10px 12px; font-family:inherit; font-size:14px;
}
label{display:block; font-size:12.5px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.05em; margin:14px 0 6px;}
.status-pill{font-family:'Plex',ui-monospace,monospace; font-weight:600; font-size:12px; padding:4px 10px; border-radius:100px; display:inline-flex; gap:6px; align-items:center;}
.status-pill.ok{color:var(--verified); background:var(--verified-bg);}
.status-pill.locked{color:var(--revoked); background:var(--revoked-bg);}
.status-pill.muted{color:var(--text-faint); background:var(--surface-2); border:1px solid var(--border);}
.messages{list-style:none; padding:0; margin:0 0 20px;}
.messages li{padding:10px 14px; border-radius:6px; margin-bottom:8px; font-size:14px;}
.messages .success{background:var(--verified-bg); color:var(--verified);}
.messages .error{background:var(--revoked-bg); color:var(--revoked);}
.module-row{border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; margin-bottom:10px; display:flex; gap:12px; align-items:flex-start;}
.module-row .meta{font-size:12px; color:var(--text-faint); margin-top:4px;}
.summary-bar{position:sticky; bottom:0; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 18px; display:flex; justify-content:space-between; align-items:center; margin-top:20px;}
.locked-note{color:var(--text-dim); font-size:13px;}
footer{border-top:1px solid var(--border); padding:44px 0 20px; color:var(--text-faint); font-size:12.5px; margin-top:40px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px; padding-bottom:28px;}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
.footer-logo{width:100%; max-width:280px; height:auto; display:block; margin-bottom:14px;}
.footer-legal{font-size:12.5px; color:var(--text-faint); max-width:320px; line-height:1.6;}
.footer-reps .kicker, .footer-nav .kicker{display:block; margin-bottom:14px;}
.rep-list{display:flex; flex-direction:column; gap:10px;}
.rep-item{display:flex; justify-content:space-between; gap:12px; font-size:12.5px;}
.rep-item b{color:var(--text-dim); font-weight:500;}
.rep-item span{font-family:'Plex',monospace; color:var(--text-faint);}
.footer-nav{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.footer-nav a{font-size:12.5px;}
.footer-bottom{border-top:1px solid var(--border); padding-top:18px; font-size:12px;}

/* --- marketing homepage --- */
.hero{padding:56px 0 40px;}
.hero h1{font-size:38px; line-height:1.15; margin:14px 0 18px;}
.hero .lede{color:var(--text-dim); font-size:16px; max-width:560px;}
.hero-ctas{display:flex; gap:12px; margin-top:24px; flex-wrap:wrap;}
section.mkt{padding:48px 0; border-top:1px solid var(--border);}
section.mkt:first-of-type{border-top:none;}
.section-head{margin-bottom:26px; max-width:620px;}
.section-head h2{font-size:24px; margin:10px 0 10px;}
.section-head p{color:var(--text-dim); font-size:15px;}

.pillars-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius) var(--radius) 0 0; overflow:hidden;}
@media (max-width:820px){ .pillars-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .pillars-grid{grid-template-columns:1fr;} }
.pillar{background:var(--surface); padding:20px; display:flex; flex-direction:column; gap:8px;}
.pillar h3{font-size:14.5px;}
.pillar p{font-size:13px; color:var(--text-dim); margin:0;}
.pillar .step{font-family:'Plex',monospace; font-size:11px; color:var(--text-faint);}

.spec-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-top:none; border-radius:0 0 var(--radius) var(--radius); overflow:hidden;}
@media (max-width:820px){ .spec-strip{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .spec-strip{grid-template-columns:1fr;} }
.spec-item{background:var(--surface-2); padding:14px 16px; display:flex; flex-direction:column; gap:5px;}
.spec-item b{font-family:'Plex',monospace; font-size:12px; color:var(--accent-2);}
.spec-item span{font-size:12px; color:var(--text-dim); line-height:1.45;}


.eab-strip{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; padding:24px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);}
.eab-strip p{margin:0; font-size:14px; color:var(--text-dim); max-width:480px;}
.eab-marks{display:flex; gap:12px; flex-wrap:wrap; font-family:'Plex',monospace; font-size:12.5px; color:var(--text-faint);}
.eab-marks span{border:1px solid var(--border); border-radius:6px; padding:7px 12px;}

.footer-cta{text-align:center; padding:8px 0 12px;}
.footer-cta h2{font-size:22px; margin-bottom:20px;}
.footer-cta .btns{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

.steps-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;}
@media (max-width:700px){ .steps-grid{grid-template-columns:1fr;} }
.steps-grid .pillar{background:var(--surface);}

.track-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:820px){ .track-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .track-grid{grid-template-columns:1fr;} }
.track-card{display:block; text-decoration:none; color:inherit; transition:border-color .15s;}
.track-card:hover{border-color:var(--accent); text-decoration:none;}
.track-card h3{font-size:15.5px; margin:10px 0 8px;}
.track-card p{font-size:13px; color:var(--text-dim); margin:0 0 10px;}
.track-card .meta{font-size:12px; color:var(--text-faint);}

.status-legend{display:flex; flex-direction:column; gap:14px; margin-top:14px;}
.status-legend-row{display:grid; grid-template-columns:88px 1fr; column-gap:14px; align-items:baseline;}
.status-legend-row .status-pill{justify-self:start;}
.status-legend-row p{margin:0; font-size:13.5px; color:var(--text-dim); line-height:1.5;}

.spec-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; margin-top:22px;}
.spec-stat{background:var(--surface); padding:14px 16px; display:flex; flex-direction:column; gap:4px;}
.spec-stat span{font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.05em;}
.spec-stat b{font-family:'Plex',monospace; font-size:17px; font-weight:600; font-variant-numeric:tabular-nums;}
