/* Project start page. Values from branding/tokens.css (dark set); fonts and images come from the brand guide in brand/. */
@font-face{font-family:'Pixelify Sans';src:url(brand/fonts/pixelify-sans/PixelifySans-Variable.ttf) format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:'Atkinson Hyperlegible Next';src:url(brand/fonts/atkinson-hyperlegible-next/AtkinsonHyperlegibleNext-Variable.ttf) format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url(brand/fonts/jetbrains-mono/JetBrainsMono-Variable.ttf) format('truetype');font-weight:100 800;font-display:swap}

:root{
  --surface:#14111F;--raised:#1E1A2E;--sunken:#0B0913;--border:#2A2440;
  --text:#ECEEF4;--muted:#9EA3B8;--cyan:#00E5FF;--gold:#FFD23F;
  --display:'Pixelify Sans',monospace;--body:'Atkinson Hyperlegible Next',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --gutter:clamp(16px,5vw,64px);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--text);font:400 18px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--cyan);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

.skip{position:absolute;left:var(--gutter);top:-48px;background:var(--gold);color:var(--surface);padding:8px 12px;font-weight:700;z-index:2}
.skip:focus{top:8px}

.top{display:flex;justify-content:flex-end;padding:20px var(--gutter) 0}
.top nav{display:flex;gap:24px;flex-wrap:wrap}
.top a{color:var(--muted);text-decoration:none;font-size:16px}
.top a:hover{color:var(--text);text-decoration:underline}

/* Hero: lockup and tagline left, the server list on the right. */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,6fr);gap:clamp(32px,5vw,80px);align-items:center;
  padding:clamp(40px,8vw,112px) var(--gutter) clamp(56px,8vw,112px);max-width:1440px;margin:0 auto}
h1{margin:0;line-height:0}
.lockup{display:block;width:min(100%,484px);image-rendering:pixelated}
.tagline{font:700 clamp(40px,6.2vw,88px)/1 var(--display);margin:clamp(28px,4vw,48px) 0 0;letter-spacing:0;max-width:11ch}
.lede{font-size:20px;line-height:1.5;color:var(--text);max-width:36em;margin:28px 0 0}
/* The gold square repeats the gold block of the mark, as before the date on the release banners. */
.status{color:var(--muted);max-width:36em;margin:16px 0 0}
.status::before{content:"";display:inline-block;width:8px;height:8px;background:var(--gold);margin-right:10px;vertical-align:1px}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin:36px 0 0}
.button{display:inline-block;background:var(--cyan);color:var(--surface);font:700 18px/1 var(--body);text-decoration:none;
  padding:16px 22px;box-shadow:4px 4px 0 var(--gold)}
.button:focus-visible{outline-color:var(--text)}
.button:hover{box-shadow:2px 2px 0 var(--gold);transform:translate(2px,2px)}
.button:active{box-shadow:none;transform:translate(4px,4px)}
.plain{font-weight:700}

.shot{margin:0}
.shot img{display:block;width:100%;max-width:642px;border:2px solid var(--border);box-shadow:8px 8px 0 var(--sunken)}
.shot figcaption{color:var(--muted);font-size:15px;margin-top:16px;max-width:42em}

/* Content blocks: heading in a left rail, text on the right, as in the brand guide. */
.block{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px clamp(32px,5vw,80px);
  max-width:1440px;margin:0 auto;padding:clamp(48px,6vw,88px) var(--gutter);border-top:1px solid var(--border)}
h2{font:700 clamp(28px,3vw,44px)/1.05 var(--display);margin:0;letter-spacing:0}
.body{max-width:46em}
.body p{margin:0 0 16px}
.body p:last-child{margin-bottom:0}

.parts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:20px 32px;margin:0 0 40px}
.parts dt{font-weight:700;color:var(--cyan)}
.parts dd{margin:0}
.note{color:var(--muted)}

/* Roadmap as an inventory column: one slot per stage, the current one framed like a selected hotbar slot. */
.stages{list-style:none;margin:0 0 28px;padding:0}
.stages li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:0 20px;padding:6px 0}
.slot{display:grid;place-items:center;width:48px;height:48px;background:var(--sunken);border:3px solid var(--border);
  font:700 20px/1 var(--body);color:var(--muted)}
.state{font-size:15px;color:var(--muted);white-space:nowrap}
.done .slot{background:var(--gold);border-color:var(--gold);color:var(--surface)}
.now .slot{border-color:var(--text);color:var(--cyan);outline:3px solid var(--sunken);outline-offset:-6px}
.now .name{font-weight:700}
.now .state{color:var(--cyan);font-weight:700}

.links{list-style:none;margin:0;padding:0}
.links li{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:4px 32px;padding:14px 0;border-bottom:1px solid var(--border)}
.links li:first-child{padding-top:0}
.links a{font-weight:700}
.links span{color:var(--muted)}

.foot{max-width:1440px;margin:0 auto;padding:40px var(--gutter) 56px;border-top:1px solid var(--border);color:var(--muted);font-size:15px}
.foot p{margin:0 0 8px;max-width:60em}

@media (max-width:960px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .block{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  body{font-size:17px}
  .lede{font-size:18px}
  .parts{grid-template-columns:minmax(0,1fr);gap:4px}
  .parts dd{margin-bottom:16px}
  .links li{grid-template-columns:minmax(0,1fr)}
  .stages li{grid-template-columns:40px minmax(0,1fr);gap:0 16px}
  .stages .slot{width:40px;height:40px;font-size:18px}
  .stages .state{grid-column:2;font-size:14px}
  .shot img{box-shadow:4px 4px 0 var(--sunken)}
}
@media (prefers-reduced-motion:reduce){.button:hover,.button:active{transform:none}}
