/* Cubby site. Layout: full-width bands alternating bg and chrome, one 1120px column; every object is a block
   (2px edge border, hard offset shadow, no radius), like the launcher itself. Dark-first (Night), Day in light mode. */
:root {
  color-scheme: dark;
  --bg: #2a2622; --chrome: #1e1b18; --surface: #3a3530; --surface-hover: #4a443d; --field: #24201c;
  --line: #4f483f; --edge: #15120f; --outline: #8f8578;
  --ink: #f2ede4; --ink-muted: #bdb3a4; --ink-disabled: #7d7468;
  --grass: #8bd450; --grass-hover: #a3e36e; --on-grass: #15120f; --grass-text: #8bd450;
  --gold: #e8b04a; --on-gold: #15120f; --gold-text: #f0c060;
  --diamond: #4cc9d6; --on-diamond: #15120f; --diamond-text: #6fd8e2;
  --redstone: #b02a1c; --on-redstone: #ffffff; --redstone-text: #ff9b88;
  --focus: #7cc4ff;
  --shadow-well: inset 2px 2px 0 0 #15120f;
  --font-sans: Rubik, "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace;
  --wrap: 1120px;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --bg: #efe9df; --chrome: #e2dacd; --surface: #fbf8f3; --surface-hover: #e9e1d4; --field: #ffffff;
    --line: #d6ccbd; --edge: #1e1b18; --outline: #6e655a;
    --ink: #1e1b18; --ink-muted: #5a5248; --ink-disabled: #9a9184;
    --grass-text: #3b6c14; --gold-text: #875400; --diamond-text: #0b6872; --redstone-text: #a8281c;
    --focus: #0b5fd9; --shadow-well: inset 2px 2px 0 0 #d6ccbd;
  }
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #efe9df; --chrome: #e2dacd; --surface: #fbf8f3; --surface-hover: #e9e1d4; --field: #ffffff;
  --line: #d6ccbd; --edge: #1e1b18; --outline: #6e655a;
  --ink: #1e1b18; --ink-muted: #5a5248; --ink-disabled: #9a9184;
  --grass-text: #3b6c14; --gold-text: #875400; --diamond-text: #0b6872; --redstone-text: #a8281c;
  --focus: #0b5fd9; --shadow-well: inset 2px 2px 0 0 #d6ccbd;
}
:root {
  --shadow-sm: 2px 2px 0 0 var(--edge); --shadow: 4px 4px 0 0 var(--edge); --shadow-lift: 6px 6px 0 0 var(--edge);
  --shadow-float: 8px 8px 0 0 var(--edge); --shadow-press: 0 0 0 0 var(--edge);
  --focus-ring: 0 0 0 2px var(--bg), 0 0 0 5px var(--focus);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 16px/1.5 var(--font-sans); font-synthesis: none; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--chrome); }
img { max-width: 100%; display: block; }
a { color: var(--grass-text); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:focus-visible, button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; line-height: 1.1; }
h2 { font-size: clamp(28px, 3.4vw, 40px); font-weight: 700; letter-spacing: -0.01em; }
h3 { font-size: 20px; font-weight: 600; }
p { margin: 0; }
code, kbd, .mono { font-family: var(--font-mono); font-size: 0.9em; }
kbd { display: inline-block; padding: 1px 6px; line-height: 20px; font-size: 13px; font-weight: 500; color: var(--ink); background: var(--field); border: 2px solid var(--edge); box-shadow: var(--shadow-sm); vertical-align: middle; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.band { padding-block: 72px; }
.band-chrome { background: var(--chrome); border-top: 3px solid var(--edge); border-bottom: 3px solid var(--edge); }
.band-chrome + .band-chrome { border-top: 0; }
.label { font-size: 13px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }
.muted { color: var(--ink-muted); }
.lede { font-size: 19px; line-height: 1.5; max-width: 60ch; }
.sec-head { display: grid; gap: 12px; max-width: 64ch; margin-bottom: 40px; }
.sec-head .lede { font-size: 17px; }
.stack { display: grid; gap: 16px; }

/* Icons: 24-grid line icons, 2px strokes, square caps, mitred joins, one ink. */
.ic { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; stroke-linejoin: miter; flex: none; }
.ic-27 { width: 27px; height: 27px; }
.ic-9 { width: 9px; height: 9px; stroke-width: 3; }
.ic-fill { fill: currentColor; stroke: none; }

/* Blocks and buttons */
.block { background: var(--surface); border: 2px solid var(--edge); box-shadow: var(--shadow); }
.block-float { background: var(--surface); border: 2px solid var(--edge); box-shadow: var(--shadow-float); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 18px; border: 2px solid var(--edge); background: var(--surface); color: var(--ink); font: 500 16px/1.2 var(--font-sans); text-decoration: none; box-shadow: var(--shadow-sm); cursor: pointer; transition: transform 60ms steps(2), box-shadow 60ms steps(2); }
.btn:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow); background: var(--surface-hover); }
.btn:active { transform: translate(2px, 2px); box-shadow: var(--shadow-press); }
.btn-primary { background: var(--grass); color: var(--on-grass); }
.btn-primary:hover { background: var(--grass-hover); }
.btn-lg { min-height: 52px; padding: 12px 22px; font-size: 17px; }
.btn .sub { font: 500 13px/1 var(--font-mono); opacity: 0.8; }
@media (prefers-reduced-motion: reduce) { .btn, .feat, .tile { transition: none !important; } .btn:hover { transform: none; } html { scroll-behavior: auto; } }

/* Header */
.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: var(--chrome); border-bottom: 3px solid var(--edge); }
.top .wrap { display: flex; align-items: center; gap: 24px; min-height: 64px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-weight: 700; font-size: 20px; }
.brand img { width: 32px; height: 32px; }
.nav { display: flex; gap: 4px; margin-inline: auto; flex-wrap: wrap; }
.nav a { color: var(--ink-muted); text-decoration: none; font-weight: 500; padding: 8px 10px; }
.nav a:hover { color: var(--ink); background: var(--surface); }
@media (max-width: 760px) { .nav { display: none; } .top .btn { margin-inline-start: auto; } }

/* Hero */
.hero { padding-block: 64px 80px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: center; }
.hero-copy { display: grid; gap: 22px; min-width: 0; }
.hero h1 { font-size: clamp(38px, 5.2vw, 60px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.02; }
.hero .cta { display: flex; flex-wrap: wrap; gap: 14px; }
.fine { font-size: 14px; color: var(--ink-muted); }
.fine code { font-size: 13px; }
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; } }

/* The app window, drawn at 1120 x 700 and scaled to its box */
.shot { position: relative; overflow: hidden; width: 100%; height: 400px; }
.win { position: absolute; left: 0; top: 0; width: 1120px; height: 700px; transform-origin: 0 0; transform: scale(0.5);
  background: var(--bg); color: var(--ink); font-size: 15px; line-height: 20px;
  display: grid; grid-template-rows: 48px 1fr; grid-template-columns: 64px minmax(0, 1fr) 300px; }
.tb { grid-column: 1 / -1; background: var(--chrome); border-bottom: 3px solid var(--edge); display: flex; align-items: center; gap: 12px; padding: 0 12px 0 16px; }
.tb img { width: 28px; height: 28px; }
.tb-name { font-weight: 700; font-size: 17px; }
.tb-mid { flex: 1; }
.tb-user { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: 14px; padding-inline-end: 12px; }
.tb-user svg { width: 24px; height: 24px; border: 2px solid var(--edge); }
.tb-ctl { display: inline-flex; }
.tb-ctl span { width: 40px; height: 36px; display: grid; place-items: center; color: var(--ink-muted); }
.hb { background: var(--chrome); border-right: 3px solid var(--edge); display: flex; flex-direction: column; gap: 4px; padding: 8px 6px; }
.slot { position: relative; width: 48px; height: 48px; display: grid; place-items: center; color: var(--ink-muted); border: 2px solid transparent; }
.slot i { position: absolute; right: 4px; bottom: 2px; font: 600 10px/1 var(--font-sans); font-style: normal; color: var(--ink-disabled); }
.slot.sel { background: var(--surface); border-color: var(--ink); color: var(--ink); }
.slot b.dot { position: absolute; top: 5px; right: 5px; width: 8px; height: 8px; background: var(--diamond); border: 2px solid var(--edge); }
.content { padding: 20px 24px; min-width: 0; display: grid; gap: 18px; align-content: start; }
.c-head { display: flex; align-items: center; gap: 12px; }
.c-title { font-size: 26px; font-weight: 600; line-height: 32px; margin-inline-end: auto; }
.seg { display: inline-flex; border: 2px solid var(--edge); background: var(--field); box-shadow: var(--shadow-well); }
.seg b { font-weight: 500; font-size: 14px; padding: 6px 12px; color: var(--ink-muted); }
.seg b.on { background: var(--surface); color: var(--ink); outline: 2px solid var(--ink); outline-offset: -2px; }
.search { display: inline-flex; align-items: center; gap: 8px; min-width: 220px; height: 36px; padding: 0 10px; background: var(--field); border: 2px solid var(--outline); box-shadow: var(--shadow-well); color: var(--ink-muted); font-size: 14px; }
.search kbd { margin-inline-start: auto; font-size: 11px; line-height: 16px; padding: 0 4px; }
.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.tile { background: var(--surface); border: 2px solid var(--edge); box-shadow: var(--shadow); padding: 12px; display: grid; gap: 8px; min-height: 176px; align-content: start; }
.tile.sel { outline: 2px solid var(--ink); outline-offset: 3px; }
.tile.new { background: transparent; border-style: dashed; box-shadow: none; color: var(--ink-muted); place-items: center; align-content: center; }
.emb { width: 64px; height: 64px; display: grid; place-items: center; border: 2px solid var(--edge); box-shadow: var(--shadow-sm); }
.emb svg, .emb-lg svg { display: block; }
.tile .name { font-weight: 600; font-size: 15px; line-height: 20px; }
.chips { display: flex; flex-wrap: wrap; gap: 4px; }
.chip { font: 500 11px/14px var(--font-mono); padding: 2px 5px; background: var(--field); border: 1px solid var(--line); color: var(--ink-muted); }
.tag { display: inline-flex; align-items: center; gap: 5px; font: 600 12px/16px var(--font-sans); }
.tag .ic { width: 14px; height: 14px; stroke-width: 2.5; }
.tag-grass { color: var(--grass-text); } .tag-gold { color: var(--gold-text); } .tag-diamond { color: var(--diamond-text); } .tag-red { color: var(--redstone-text); }
.insp { background: var(--chrome); border-left: 3px solid var(--edge); padding: 20px; display: grid; gap: 16px; align-content: start; min-width: 0; }
.emb-lg { width: 96px; height: 96px; display: grid; place-items: center; border: 2px solid var(--edge); box-shadow: var(--shadow); }
.insp .name { font-size: 18px; font-weight: 600; line-height: 24px; }
.play { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 48px; background: var(--grass); color: var(--on-grass); border: 2px solid var(--edge); box-shadow: var(--shadow); font-weight: 600; font-size: 17px; }
.play .ic { width: 22px; height: 22px; }
.stat { display: grid; gap: 2px; }
.stat b { font-size: 24px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 28px; }
.stat span { font-size: 13px; color: var(--ink-muted); }
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.itabs { display: flex; gap: 2px; border-bottom: 2px solid var(--line); }
.itabs b { font-weight: 500; font-size: 14px; padding: 6px 10px; color: var(--ink-muted); margin-bottom: -2px; }
.itabs b.on { color: var(--ink); border-bottom: 2px solid var(--ink); }
.ilist { display: grid; gap: 6px; font-size: 14px; }
.ilist div { display: flex; justify-content: space-between; gap: 8px; }
.ilist span:last-child { color: var(--ink-muted); font-family: var(--font-mono); font-size: 13px; }

/* Facts */
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; }
.fact { padding: 20px; display: grid; gap: 6px; align-content: start; }
.fact b { font-size: 40px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.fact b small { font-size: 20px; font-weight: 600; margin-inline-start: 4px; }
.fact span { font-size: 14px; color: var(--ink-muted); line-height: 1.4; }
.fact span code { font-size: 12px; color: var(--ink); }

/* Features */
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 20px; }
.feat { padding: 22px; display: grid; gap: 12px; align-content: start; transition: transform 60ms steps(2), box-shadow 60ms steps(2); }
.feat:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-lift); }
.feat .well { width: 44px; height: 44px; display: grid; place-items: center; background: var(--field); border: 2px solid var(--edge); box-shadow: var(--shadow-well); color: var(--grass-text); }
.feat p { color: var(--ink-muted); font-size: 15px; }
.feat .ex { display: grid; gap: 8px; padding: 12px; background: var(--field); border: 2px solid var(--redstone); font-size: 14px; }
.feat .ex b { display: flex; align-items: center; gap: 8px; color: var(--redstone-text); font-weight: 600; }
.feat .ex .btn { min-height: 32px; padding: 4px 10px; font-size: 14px; justify-self: start; }

/* Light by design */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
@media (max-width: 880px) { .split { grid-template-columns: 1fr; } }
.layers { display: grid; gap: 0; border: 2px solid var(--edge); box-shadow: var(--shadow); background: var(--surface); }
.layer { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 16px; align-items: start; }
.layer + .layer { border-top: 2px solid var(--edge); }
.layer .well { width: 44px; height: 44px; display: grid; place-items: center; background: var(--field); border: 2px solid var(--edge); box-shadow: var(--shadow-well); color: var(--diamond-text); }
.layer h3 { font-size: 17px; }
.layer p { font-size: 15px; color: var(--ink-muted); margin-top: 4px; }
.tbl-wrap { overflow-x: auto; border: 2px solid var(--edge); box-shadow: var(--shadow); background: var(--surface); }
table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 15px; }
th, td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 13px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); background: var(--chrome); }
tbody tr:last-child td { border-bottom: 0; }
td.yes { color: var(--grass-text); font-weight: 500; }
td.hl { background: var(--field); font-weight: 500; }
th.hl { color: var(--grass-text); }
td .ic { width: 16px; height: 16px; vertical-align: -3px; margin-inline-end: 6px; }

/* Keyboard */
.palette { padding: 0; overflow: hidden; }
.palette .in { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 2px solid var(--edge); background: var(--field); font-size: 17px; }
.palette .in .caret { display: inline-block; width: 2px; height: 20px; background: var(--ink); }
.palette .in .ph { color: var(--ink-muted); }
.palette .grp { padding: 10px 16px 4px; }
.palette .row { display: flex; align-items: center; gap: 12px; padding: 10px 16px; }
.palette .row.on { background: var(--surface-hover); outline: 2px solid var(--ink); outline-offset: -2px; }
.palette .row .k { margin-inline-start: auto; display: inline-flex; gap: 4px; }
.palette .row .emb { width: 28px; height: 28px; box-shadow: none; }
.keys { width: 100%; min-width: 0; }
.keys td:first-child { white-space: nowrap; width: 1%; }
.keys td:first-child kbd + kbd { margin-inline-start: 4px; }

/* Platforms */
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.plat { padding: 22px; display: grid; gap: 10px; align-content: start; }
.plat h3 { display: flex; align-items: center; gap: 10px; }
.plat h3 .ic { color: var(--gold-text); width: 22px; height: 22px; }
.plat ul { margin: 0; padding-inline-start: 18px; color: var(--ink-muted); font-size: 15px; display: grid; gap: 6px; }
.plat li::marker { color: var(--grass-text); }

/* Open source */
.crates { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.crate { padding: 12px 14px; background: var(--surface); border: 2px solid var(--edge); box-shadow: var(--shadow-sm); display: grid; gap: 4px; }
.crate code { font-size: 13px; font-weight: 500; color: var(--ink); }
.crate span { font-size: 14px; color: var(--ink-muted); }
pre { margin: 0; padding: 16px 18px; background: var(--field); border: 2px solid var(--outline); box-shadow: var(--shadow-well); font: 500 14px/1.6 var(--font-mono); color: var(--ink); overflow-x: auto; }
pre .c { color: var(--ink-muted); }
.road { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.road li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 15px; }
.road .ic { width: 18px; height: 18px; margin-top: 3px; }
.road .done .ic { color: var(--grass-text); }
.road .next .ic { color: var(--gold-text); }

/* Download */
.dl { display: grid; grid-template-columns: 128px 1fr; gap: 32px; padding: 32px; align-items: center; }
.dl img { width: 128px; height: 128px; }
.dl-body { display: grid; gap: 14px; min-width: 0; }
.dl-body .cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.dl-body .mono { color: var(--ink-muted); font-size: 13px; word-break: break-all; }
@media (max-width: 640px) { .dl { grid-template-columns: 1fr; } }

/* Footer */
.foot { padding-block: 32px; border-top: 3px solid var(--edge); background: var(--chrome); font-size: 14px; color: var(--ink-muted); }
.foot .wrap { display: grid; gap: 12px; }
.foot nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.foot a { color: var(--ink-muted); }

/* Strip of short claims, lists of what works */
.strip { display: flex; flex-wrap: wrap; gap: 12px 36px; justify-content: center; font-weight: 500; font-size: 16px; }
.strip span { display: inline-flex; align-items: center; gap: 8px; }
.strip .ic { color: var(--grass-text); }
.note { margin-top: 28px; max-width: 70ch; color: var(--ink-muted); font-size: 16px; }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.state { padding: 22px; display: grid; gap: 14px; align-content: start; }
.state h3 { display: flex; align-items: center; gap: 10px; }
.state h3 .ic { width: 20px; height: 20px; }
.state.ok h3 .ic { color: var(--grass-text); } .state.later h3 .ic { color: var(--gold-text); }
.state ul { margin: 0; padding-inline-start: 18px; display: grid; gap: 8px; font-size: 15px; color: var(--ink-muted); }
.state li::marker { color: var(--line); }
.two { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.letter { font-size: 17px; line-height: 1.6; }

/* Document pages */
.doc { max-width: 760px; display: grid; gap: 40px; }
.doc h1 { font-size: clamp(34px, 4.5vw, 48px); font-weight: 700; letter-spacing: -0.02em; }
.doc section { display: grid; gap: 14px; }
.doc section h2 { font-size: 26px; }
.doc p, .doc li { font-size: 16px; line-height: 1.6; }
.doc ol, .doc ul { margin: 0; padding-inline-start: 22px; display: grid; gap: 10px; }
.doc li::marker { color: var(--grass-text); font-weight: 600; }
.doc .never li::marker { color: var(--redstone-text); }
dl.facts-list { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 10px 20px; padding: 20px; }
dl.facts-list dt { font-size: 13px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); padding-top: 3px; }
dl.facts-list dd { margin: 0; min-width: 0; }
@media (max-width: 520px) { dl.facts-list { grid-template-columns: 1fr; gap: 2px 0; } dl.facts-list dd { margin-bottom: 10px; } }
.ask { padding: 20px 22px; display: grid; gap: 10px; }
.ask h3 { display: flex; align-items: center; gap: 10px; }
.ask h3 .ic { color: var(--gold-text); width: 22px; height: 22px; }
.ask .where { font-size: 14px; color: var(--ink-muted); }
.code-list { display: grid; gap: 8px; }
.code-list div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 12px; background: var(--field); border: 1px solid var(--line); }
.code-list code { color: var(--ink); font-size: 13px; }
.code-list span { font-size: 14px; color: var(--ink-muted); }
.back { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-muted); text-decoration: none; font-weight: 500; }
.back:hover { color: var(--ink); }

/* v3: hero over a pixel landscape, one feature per row with a real screenshot */
.world { position: relative; overflow: hidden; border-bottom: 3px solid var(--edge); background: var(--sky-top); }
.world canvas { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; display: block; }
.world .wrap { position: relative; display: grid; justify-items: center; text-align: center; gap: 22px; padding-block: 88px 0; }
.world h1 { font-size: clamp(40px, 6vw, 72px); font-weight: 700; letter-spacing: -0.02em; line-height: 1; max-width: 14ch; color: var(--sky-ink); }
.world .lede { color: var(--sky-ink); font-size: 20px; max-width: 40ch; }
.world .cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.world .btn:not(.btn-primary) { background: var(--surface); }
.world .fine { color: var(--sky-muted); }
.world .frame { margin-top: 36px; width: min(1040px, 100%); }
.frame { border: 3px solid var(--edge); box-shadow: var(--shadow-float); background: var(--chrome); }
.frame img { width: 100%; height: auto; display: block; }
.world .frame { box-shadow: 8px 8px 0 0 var(--edge); margin-bottom: -3px; }

:root { --sky-top: #141a2e; --sky-ink: #f2ede4; --sky-muted: #c9c2b4; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { --sky-top: #7cc4f0; --sky-ink: #15120f; --sky-muted: #2a3a4a; } }
:root[data-theme="light"] { --sky-top: #7cc4f0; --sky-ink: #15120f; --sky-muted: #2a3a4a; }

.row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: center; }
.row + .row { margin-top: 96px; }
.row.flip { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.row.flip .row-copy { order: 2; }
.row-copy { display: grid; gap: 16px; min-width: 0; }
.row-copy h2 { font-size: clamp(26px, 3vw, 36px); }
.row-copy p { font-size: 17px; line-height: 1.6; color: var(--ink-muted); }
.row-copy .label { color: var(--grass-text); }
@media (max-width: 900px) { .row, .row.flip { grid-template-columns: 1fr; gap: 24px; } .row.flip .row-copy { order: 0; } .row + .row { margin-top: 64px; } }

.smalls { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.small { padding: 20px; display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; }
.small .well { width: 44px; height: 44px; display: grid; place-items: center; background: var(--field); border: 2px solid var(--edge); box-shadow: var(--shadow-well); color: var(--grass-text); }
.small h3 { font-size: 17px; }
.small p { font-size: 15px; color: var(--ink-muted); margin-top: 4px; }
.closer { display: grid; justify-items: center; text-align: center; gap: 16px; }
.closer p { max-width: 56ch; font-size: 17px; color: var(--ink-muted); }

/* v5: the hero is a real in-game screenshot (Minecraft 26.3, Complementary Reimagined), one look in both themes */
.world { --sky-ink: #fbf6ec; --sky-muted: #e6dccb; }
.world::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(20, 16, 12, 0.55), rgba(20, 16, 12, 0.2) 45%, rgba(20, 16, 12, 0.65)); }
.world h1, .world .lede { text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35); }
.world .wrap { padding-block: 112px 0; }
.world .frame { margin-top: 56px; }
.shot-credit { position: absolute; right: max(16px, env(safe-area-inset-right, 0px)); top: 12px; z-index: 1; font: 500 12px/1 var(--font-sans); color: rgba(251, 246, 236, 0.75); }
.world::before { background: linear-gradient(rgba(20, 16, 12, 0.38), rgba(20, 16, 12, 0.05) 40%, rgba(20, 16, 12, 0.5)); }
@media (max-width: 640px) { .shot-credit { display: none; } }

/* Static site */
.brand .wordmark { height: 22px; width: auto; display: block; }
.world { background: #2a2420; }
.world::before { z-index: 1; }
.world .wrap { z-index: 2; }
.world-bg { position: absolute; inset: -24px; background: url("assets/shots/hero.jpg") center 42% / cover no-repeat; filter: blur(7px); transform: scale(1.04); }
.dl-body .muted { max-width: none; }
.foot .heart { width: 14px; height: 12px; vertical-align: -1px; fill: #e5484d; margin-left: 2px; }
.foot .legal { font-size: 13px; }
.top-actions { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.top-actions .narrow { display: none; }
@media (max-width: 640px) { .top-actions .btn:not(.btn-primary) { display: none; } .top-actions .wide { display: none; } .top-actions .narrow { display: inline; } }
.foot .legal strong { color: var(--ink); font-weight: 600; }
