@font-face{font-family:'Archivo';font-weight:500;font-display:swap;src:url(fonts/Archivo-500.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:600;font-display:swap;src:url(fonts/Archivo-600.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:700;font-display:swap;src:url(fonts/Archivo-700.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:800;font-display:swap;src:url(fonts/Archivo-800.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:400;font-display:swap;src:url(fonts/IBMPlexMono-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:500;font-display:swap;src:url(fonts/IBMPlexMono-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:600;font-display:swap;src:url(fonts/IBMPlexMono-600.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-weight:600;font-display:swap;src:url(fonts/Cinzel-600.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-weight:700;font-display:swap;src:url(fonts/Cinzel-700.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-weight:800;font-display:swap;src:url(fonts/Cinzel-800.woff2) format('woff2')}:root{--bg:#0b0f17;--bg2:#101725;--panel:#151d2c;--panel2:#1b2536;--border:#243147;--border2:#33425c;--text:#e7eef8;--muted:#93a3bd;--accent:#4f8cff;--accent2:#37d9a9;--gold:#e3b341;--red:#f0625f;--green:#37d9a9;--rome:#d9a441;--rome2:#c98be0;--mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;--disp:'Archivo',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--disp);-webkit-text-size-adjust:100%}
a{color:var(--accent)}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.wrapgap{flex-wrap:wrap}
.muted{color:var(--muted)}.small{font-size:13px}
.kicker{font:600 12px/1.4 var(--mono);letter-spacing:2.5px;color:var(--accent2);text-transform:uppercase;margin-bottom:6px}
.kicker.gold{color:var(--gold)}
h2{font:800 clamp(26px,4vw,36px)/1.15 var(--disp);margin:0 0 10px;letter-spacing:.3px}
.intro{max-width:680px;margin:0 0 26px}
section{padding:64px 0;border-top:1px solid var(--border)}

/* top bar, like the game header */
.topbar{position:sticky;top:0;z-index:50;background:rgba(11,15,23,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.topbar .row{height:60px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font:800 18px var(--disp);letter-spacing:3px}
.logo img{width:30px;height:30px;border-radius:8px}
.logo b{color:var(--accent)}
.navlinks{display:flex;gap:22px;align-items:center}
.navlinks a{color:var(--muted);text-decoration:none;font:500 14px var(--disp)}
.navlinks a:hover{color:var(--text)}
.pill-new{white-space:nowrap;border:1px solid var(--gold);color:var(--gold)!important;border-radius:999px;padding:4px 12px;font:600 12px var(--mono)!important;letter-spacing:1px}

/* END TURN style buttons */
.endturn{display:inline-block;position:relative;white-space:nowrap;text-decoration:none;color:var(--accent2);background:rgba(55,217,169,.06);border:1px solid rgba(55,217,169,.55);border-left:4px solid var(--accent2);border-radius:10px;padding:10px 20px;font:700 18px var(--mono);letter-spacing:2px;transition:background .15s,transform .15s}
.endturn small{display:block;font:500 10px var(--mono);letter-spacing:1.5px;opacity:.75;margin-bottom:2px}
.endturn span{margin-left:6px}
.endturn:hover{background:rgba(55,217,169,.14);transform:translateY(-1px)}
.endturn.rome{color:var(--rome);border-color:rgba(217,164,65,.6);border-left-color:var(--rome);background:rgba(217,164,65,.07);font-family:'Cinzel',serif}
.endturn.rome:hover{background:rgba(217,164,65,.16)}
.endturn.small{padding:6px 14px;font-size:14px}

.btn{display:inline-block;text-decoration:none;font:700 16px var(--disp);padding:13px 22px;border-radius:10px;border:1px solid transparent;white-space:nowrap}
.btn.gold{background:var(--gold);color:#1a1405}
.btn.discord{background:#5865F2;color:#fff;margin-top:8px}

/* hero */
.hero{position:relative;overflow:hidden;padding:72px 0 64px}
.hero-map{position:absolute;inset:0;background:url(img/v1/terrastate-map-crop.jpg) center 40%/cover no-repeat;opacity:.55}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,15,23,.97) 0%,rgba(11,15,23,.82) 45%,rgba(11,15,23,.45) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 30%);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.3fr .85fr;gap:40px;align-items:center}
.hero-grid>*{min-width:0}
.brand{font:800 clamp(40px,6vw,84px)/.95 var(--disp);letter-spacing:clamp(1px,.35vw,4px);margin:4px 0 14px}
.brand b{color:var(--accent)}
.tagline{font:700 clamp(19px,2.6vw,24px)/1.3 var(--disp);margin:0 0 10px}
.lead{color:var(--muted);max-width:560px;margin:0 0 26px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.statline{margin-top:22px;font:500 13px var(--mono);color:var(--accent2);letter-spacing:.5px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent2);margin-right:4px;box-shadow:0 0 0 0 rgba(55,217,169,.6);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(55,217,169,.6)}70%{box-shadow:0 0 0 10px rgba(55,217,169,0)}100%{box-shadow:0 0 0 0 rgba(55,217,169,0)}}

/* the HUD card in the hero */
.hud{background:rgba(21,29,44,.92);border:1px solid var(--border2);border-radius:14px;padding:14px;box-shadow:0 24px 60px rgba(0,0,0,.5);font-size:14px}
.hud .k{font:500 10px var(--mono);letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}
.hud-top{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.hud-top .v{font:700 20px var(--mono)}.hud-top .v span{font-size:13px;color:var(--muted)}
.hud-top .d{font:500 11px var(--mono);color:var(--muted)}.hud-top .d.up{color:var(--green)}
.hud-alert{margin:10px 0;border:1px solid rgba(240,98,95,.6);border-radius:8px;padding:6px 10px;color:var(--red);font:600 12px var(--mono)}
.hud-h{font:500 11px var(--mono);letter-spacing:2px;color:var(--muted);margin:12px 0 8px;display:flex;align-items:center;gap:8px}
.num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:#1a1405;font:700 12px var(--mono)}
.hud-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.col{border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:rgba(0,0,0,.18)}
.col.red{border-left:3px solid var(--red)}.col.green{border-left:3px solid var(--green)}
.ch{font:700 10px var(--mono);letter-spacing:1px;margin-bottom:4px}
.col.red .ch{color:var(--red)}.col.green .ch{color:var(--green)}
.ln{display:flex;justify-content:space-between;gap:6px;font-size:12px;padding:3px 0;border-top:1px solid var(--border)}.ln span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ln b{font-family:var(--mono)}
.hud-next{margin-top:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel2)}
.hud-next b{display:block;font-size:16px;margin:2px 0}
.hud-next .d{color:var(--muted);font-size:12px}
.hud-btn{display:inline-block;margin-top:8px;background:var(--accent);color:#fff;font-weight:700;font-size:13px;padding:7px 12px;border-radius:8px}

/* update band */
.update-band{padding:26px 0;background:linear-gradient(90deg,rgba(227,179,65,.12),rgba(227,179,65,.02));border-top:1px solid rgba(227,179,65,.35);border-bottom:1px solid rgba(227,179,65,.35)}
.ub-title{font:800 22px var(--disp);margin-bottom:2px}

/* eras */
.eras{display:grid;grid-template-columns:1fr 1fr;gap:18px}.eras>*,.hud-cols>*,.pair>*,.grid>*,.turns>*,.two>*{min-width:0}
.facts dd{overflow-wrap:anywhere}
.era{border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:14px}
.era.terra{background:linear-gradient(160deg,#122036,#0d1420);border:1px solid #2a4a7a}
.era.rome{background:linear-gradient(160deg,#2a1d10,#150f0a);border:1px solid #6e5222}
.era-head{display:grid;grid-template-columns:1fr 150px;gap:16px;align-items:start}
.era-head img{border-radius:12px;border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 30px rgba(0,0,0,.45)}
.era h3{font:800 34px/1 var(--disp);letter-spacing:3px;margin:4px 0 0}
.era h3 b{color:var(--accent)}
.era.rome .kicker{color:var(--rome)}
.cinzel{font-family:'Cinzel',serif!important;color:var(--rome)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:14px}
.facts dt{font:600 11px/1.9 var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase}
.facts dd{margin:0}
.era.rome .facts dd{color:#f1e6d2}
.era .endturn{align-self:flex-start;margin-top:auto}

/* in action */
.tabs{display:inline-flex;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:18px}
.tabs button{appearance:none;border:0;background:transparent;color:var(--muted);font:600 14px var(--disp);padding:8px 14px;border-radius:7px;cursor:pointer}
.tabs button.on{background:var(--accent);color:#fff}
.pair{display:grid;grid-template-columns:260px 260px 1fr;gap:18px;align-items:center}
.pair figure{margin:0}
.pair img{border-radius:18px;border:1px solid var(--border2);display:block;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.lbl{font:700 11px var(--mono);letter-spacing:2px;margin-bottom:8px}
.lbl.terra{color:var(--accent)}.lbl.rome{color:var(--rome);font-family:'Cinzel',serif}
.pair-text p{font-size:17px;color:var(--muted)}.pair-text b{color:var(--text)}
.wide{margin:34px 0 0}.wide img{border-radius:14px;border:1px solid var(--border2);display:block}
.wide figcaption{color:var(--muted);font-size:13px;margin-top:8px}

/* cards */
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;position:relative}
.card .k{font:600 11px var(--mono);letter-spacing:2px;color:var(--accent2);margin-bottom:4px}
.card b{display:block;font-size:17px;margin-bottom:4px}
.card p{margin:0;color:var(--muted);font-size:15px}
.turns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.turns .num{position:absolute;top:16px;right:16px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.soon{border-left:3px solid var(--gold);background:var(--bg2);padding:18px 20px;border-radius:0 14px 14px 0}
.soon b{font-size:18px}
footer{padding:36px 0 56px;border-top:1px solid var(--border);text-align:center}
.foot-links{margin-bottom:10px}.foot-links a{color:var(--text);text-decoration:none}

@media(max-width:900px){
  .brand{font-size:clamp(40px,10.5vw,84px)}
  .hero-grid{grid-template-columns:1fr}.hud{max-width:460px}
  .eras,.two{grid-template-columns:1fr}
  .grid,.turns{grid-template-columns:1fr 1fr}
  .pair{grid-template-columns:1fr 1fr}.pair-text{grid-column:1/-1}
}
@media(max-width:640px){
  .wrap{padding:0 16px}
  .navlinks a:not(.pill-new){display:none}
  .hero{padding:44px 0 40px}
  .cta .endturn{width:100%;text-align:center}.endturn{font-size:16px}
  .grid,.turns{grid-template-columns:1fr}
  .era-head{grid-template-columns:1fr}.era-head img{max-width:240px;justify-self:center}
  .logo span{display:none}.topbar .row{gap:10px}
  .era h3{font-size:28px}
  .tabs{display:flex;width:100%}.tabs button{flex:1;padding:8px 6px;font-size:13px}
  .pair{gap:10px}.pair img{border-radius:12px}
  section{padding:44px 0}
  .update-band .btn{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){.dot{animation:none}html{scroll-behavior:auto}}
