/* Ctrl Alt Defeat Studio: shared design system for every page on ctrlaltdefeatstudio.com.
   Every color is a token in :root, so a palette is just a different set of token values
   (the local preview server can swap them live; the published site ships one palette).
   System fonts only (no third-party requests, which keeps the privacy policy's "no third parties" line true). */
:root{
  /* Palette: Violet Keycap */
  --bg:#0a0b10;--bg-2:#0e1017;--surface:#12151e;--surface-2:#181c27;--surface-3:#1f2431;
  --line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);
  --text:#f2f4f8;--muted:#a6aec0;--faint:#838ba0;
  --accent:#a597ff;--accent-2:#c9c0ff;--accent-deep:#6f5cf0;--accent-ink:#0d0a24;--accent-rgb:165,151,255;--glow2-rgb:80,120,255;
  --warm:#ffb547;
  --header-bg:rgba(10,11,16,.78);--hover:rgba(255,255,255,.05);--ghost:rgba(255,255,255,.04);--ghost-hover:rgba(255,255,255,.08);--stripe:rgba(255,255,255,.025);
  --shadow:rgba(0,0,0,.5);
  --cap-top:#fdfdff;--cap-bot:#dde0e9;--cap-edge:#9aa0b1;--cap-ink:#1b1e28;
  --cap-dim-top:#262b38;--cap-dim-bot:#1b1f2a;--cap-dim-edge:#11141b;--cap-dim-ink:#6d7589;
  --game-accent:#ffc53d;--game-accent-2:#ffd978;--game-accent-deep:#d99a1a;--game-accent-ink:#2a1700;--game-hero-top:#1c1034;--art-bg:#1a0f2e;
  --scheme:dark;
  /* Fixed */
  --radius:20px;--radius-sm:12px;--maxw:1180px;
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,"Roboto Mono",monospace;
  color-scheme:var(--scheme);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.65 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-2);text-underline-offset:3px}
a:hover{color:var(--text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
h1,h2,h3{line-height:1.12;letter-spacing:-.02em;margin:0;font-weight:750}
p{margin:0 0 1em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
@media(max-width:600px){.wrap{padding:0 18px}}
.skip{position:absolute;left:-9999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:12px}

/* Brand: [Ctrl] [Alt] [Defeat] Studio */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.keys{display:inline-flex;gap:5px}
kbd,.key{display:inline-block;font:700 12px/1 var(--mono);letter-spacing:.01em;color:var(--cap-ink);padding:6px 8px 9px;border-radius:7px;
  background:linear-gradient(var(--cap-top),var(--cap-bot));box-shadow:inset 0 -3px 0 var(--cap-edge),0 2px 6px var(--shadow)}
.key-accent{color:var(--accent-ink);background:linear-gradient(var(--accent-2),var(--accent));box-shadow:inset 0 -3px 0 var(--accent-deep),0 2px 8px rgba(var(--accent-rgb),.45)}
.brand-word{font-weight:750;font-size:17px;letter-spacing:-.01em}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nav-links a{display:block;color:var(--muted);text-decoration:none;font-size:15px;font-weight:550;padding:8px 12px;border-radius:9px}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--text);background:var(--hover)}
.nav-links .nav-cta,.nav-links .nav-cta[aria-current="page"]{color:var(--accent-ink);background:var(--accent);margin-left:6px}
.nav-links .nav-cta:hover{color:var(--accent-ink);background:var(--accent-2)}
.nav-menu{display:none;position:relative}
.nav-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--text);padding:8px 12px;border:1px solid var(--line-2);border-radius:10px}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu summary svg{width:18px;height:18px}
.nav-menu ul{position:absolute;right:0;top:calc(100% + 10px);min-width:220px;list-style:none;margin:0;padding:8px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 20px 50px var(--shadow)}
.nav-menu ul a{display:block;padding:11px 14px;border-radius:9px;color:var(--text);text-decoration:none;font-weight:550}
.nav-menu ul a:hover{background:var(--ghost-hover)}
@media(max-width:860px){.nav-links{display:none}.nav-menu{display:block}}

/* Buttons and chips */
.btn{display:inline-flex;align-items:center;gap:8px;font:650 15px/1 var(--font);text-decoration:none;padding:14px 20px;border-radius:12px;border:1px solid transparent;transition:background .15s,border-color .15s,transform .15s}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:var(--accent-2);color:var(--accent-ink)}
.btn-ghost{background:var(--ghost);border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{background:var(--ghost-hover);color:var(--text)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;gap:7px;font:650 12px/1 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:7px 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--ghost)}
.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}
.chip-warm .dot{background:var(--warm)}
.eyebrow{font:650 13px/1.2 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);margin:0 0 16px}

/* Sections */
section{padding:96px 0}
@media(max-width:700px){section{padding:68px 0}}
.section-head{max-width:720px;margin-bottom:44px}
.section-head h2{font-size:clamp(30px,4.2vw,46px)}
.section-head p{color:var(--muted);font-size:18px;margin:16px 0 0}
.section-head .eyebrow{color:var(--accent-2);font-size:13px;margin:0 0 16px}
.divider{border-top:1px solid var(--line)}
.lede{font-size:clamp(18px,2vw,21px);color:var(--muted);line-height:1.6}

/* Home hero */
.hero{position:relative;padding:110px 0 100px;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  radial-gradient(60% 60% at 78% 30%,rgba(var(--accent-rgb),.22),transparent 70%),
  radial-gradient(40% 50% at 10% 90%,rgba(var(--glow2-rgb),.10),transparent 70%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask-image:radial-gradient(70% 70% at 60% 40%,#000 30%,transparent 80%);mask-image:radial-gradient(70% 70% at 60% 40%,#000 30%,transparent 80%)}
.hero-grid{display:grid;gap:56px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.hero h1{font-size:clamp(40px,6.4vw,76px);font-weight:800;letter-spacing:-.035em}
.hero h1 .hl{background:linear-gradient(92deg,var(--text) 10%,var(--accent-2) 55%,var(--accent) 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{margin:24px 0 34px;max-width:560px}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:40px;color:var(--faint);font-size:14px}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta svg{width:16px;height:16px;color:var(--accent)}
.hero-visual{position:relative;padding-top:196px}
@media(max-width:600px){.hero-visual{padding-top:140px}}

/* The big keycap cluster */
.keycluster{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:16px;max-width:520px;margin:0 auto;transform:perspective(1400px) rotateX(18deg) rotateZ(-8deg);transform-style:preserve-3d}
.cap{position:relative;height:108px;border-radius:18px;display:flex;align-items:center;justify-content:center;font:700 26px/1 var(--mono);color:var(--cap-ink);
  background:linear-gradient(var(--cap-top),var(--cap-bot));box-shadow:inset 0 -9px 0 var(--cap-edge),inset 0 2px 0 rgba(255,255,255,.8),0 18px 30px var(--shadow),0 4px 8px var(--shadow);padding-bottom:9px}
.cap.dim{background:linear-gradient(var(--cap-dim-top),var(--cap-dim-bot));color:var(--cap-dim-ink);box-shadow:inset 0 -9px 0 var(--cap-dim-edge),inset 0 1px 0 rgba(255,255,255,.08),0 18px 30px var(--shadow)}
.cap.accent{color:var(--accent-ink);background:linear-gradient(var(--accent-2),var(--accent));box-shadow:inset 0 -9px 0 var(--accent-deep),inset 0 2px 0 rgba(255,255,255,.6),0 22px 50px rgba(var(--accent-rgb),.5),0 4px 8px var(--shadow)}
.cap.w2{grid-column:span 2}.cap.w3{grid-column:span 3}.cap.w4{grid-column:span 4}.cap.w1{grid-column:span 1}
@media(prefers-reduced-motion:no-preference){.cap.accent{animation:press 4.5s ease-in-out infinite}}
@keyframes press{0%,78%,100%{transform:translateY(0)}84%{transform:translateY(6px);box-shadow:inset 0 -3px 0 var(--accent-deep),inset 0 2px 0 rgba(255,255,255,.6),0 8px 20px rgba(var(--accent-rgb),.45)}}
@media(max-width:600px){.cap{height:76px;font-size:18px;border-radius:14px}.keycluster{gap:11px}}

/* Rusty, Iron Mantle's mascot (markup and behavior come from assets/rusty.js) */
.rusty-stage{position:absolute;z-index:3;display:flex;align-items:flex-end;gap:6px;pointer-events:none}
.hero-visual .rusty-stage{top:0;right:3%}
.rusty-stage.inline{position:relative;justify-content:center;min-height:360px;padding-top:40px}
.rusty{pointer-events:auto;display:block;width:178px;padding:0;margin:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.rusty-stage.inline .rusty{width:210px}
.rusty svg{display:block;width:100%;height:auto;overflow:visible}
@media(max-width:600px){.rusty{width:118px}.rusty-stage.inline .rusty{width:170px}}
.rusty-bubble{pointer-events:auto;position:relative;align-self:flex-start;max-width:230px;margin:6px 0 0;padding:12px 16px;border-radius:16px;background:var(--cap-top);color:var(--cap-ink);font:650 15px/1.35 var(--font);box-shadow:0 12px 30px var(--shadow);opacity:0;transform:translateY(8px) scale(.96);transform-origin:right bottom;transition:opacity .25s,transform .25s}
.rusty-bubble small{display:block;margin-top:4px;font:500 12px/1.2 var(--font);opacity:.6}
.rusty-bubble::after{content:"";position:absolute;right:-7px;bottom:18px;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:3px}
.rusty-stage.inline .rusty-bubble{align-self:center;transform-origin:left bottom}
.rusty-stage.inline .rusty-bubble::after{right:auto;left:-7px}
.rusty-stage.is-talking .rusty-bubble{opacity:1;transform:none}
@media(max-width:600px){.rusty-bubble{max-width:170px;font-size:13px;padding:10px 12px}}
.rusty .r-eyes{transform-box:fill-box;transform-origin:center}
.rusty .r-pupils{transition:transform .12s ease-out}
@media(prefers-reduced-motion:no-preference){
  .rusty .r-body{animation:r-bob 2.6s ease-in-out infinite}
  .rusty .r-eyes{animation:r-blink 4.8s infinite}
  .rusty .r-ridges{animation:r-spin .45s linear infinite}
  .rusty .r-puff{animation:r-puff 2.4s ease-out infinite;opacity:0}
  .rusty .r-puff.b{animation-delay:1.2s}
  .rusty-stage.is-entering .rusty{animation:r-enter 1s cubic-bezier(.2,1.4,.4,1) both}
  .rusty.hop{animation:r-hop .5s ease-out}
}
@keyframes r-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes r-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
@keyframes r-spin{from{transform:translateY(-22px)}to{transform:translateY(0)}}
@keyframes r-puff{0%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:.7}100%{opacity:0;transform:translate(6px,-34px) scale(1.6)}}
@keyframes r-enter{0%{opacity:0;transform:translateY(60px) scale(.8)}60%{opacity:1;transform:translateY(-8px) rotate(-6deg)}80%{transform:translateY(0) rotate(4deg)}100%{transform:none}}
@keyframes r-hop{0%{transform:none}35%{transform:translateY(-14px) rotate(-6deg)}70%{transform:translateY(0) rotate(5deg)}100%{transform:none}}

/* Game cards */
.game-feature{display:grid;grid-template-columns:minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:28px;overflow:hidden}
@media(min-width:960px){.game-feature{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
.game-feature .art{position:relative;min-height:300px;background:var(--art-bg)}
.game-feature .art img{width:100%;height:100%;object-fit:cover}
.game-feature .body{padding:44px 44px 40px;display:flex;flex-direction:column;gap:18px}
@media(max-width:600px){.game-feature .body{padding:28px 22px}}
.game-title{display:flex;align-items:center;gap:16px}
.game-title img{width:68px;height:68px;border-radius:16px;box-shadow:0 8px 24px var(--shadow)}
.game-title h3{font-size:32px}
.game-title p{margin:4px 0 0;color:var(--warm);font-weight:650}
.game-feature .desc{color:var(--muted);margin:0}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.facts div{background:var(--surface-2);padding:14px 16px}
.facts b{display:block;font-size:17px;letter-spacing:-.01em;white-space:nowrap}
.facts span{font-size:13px;color:var(--faint)}
@media(max-width:520px){.facts{grid-template-columns:minmax(0,1fr)}}
.game-grid{display:grid;gap:22px;grid-template-columns:minmax(0,1fr);margin-top:22px}
@media(min-width:760px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.game-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:30px;border-radius:24px;background:var(--surface);border:1px solid var(--line);overflow:hidden;min-height:260px}
.game-card h3{font-size:26px}
.game-card p{color:var(--muted);margin:0}
.game-card .emblem{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:rgba(255,181,71,.10);border:1px solid rgba(255,181,71,.35);color:var(--warm)}
.game-card .emblem svg{width:34px;height:34px}
.game-card.unannounced{background:repeating-linear-gradient(135deg,var(--stripe) 0 12px,transparent 12px 24px),var(--surface)}
.game-card .corner{position:absolute;right:-40px;bottom:-40px;width:220px;height:220px;opacity:.07;color:var(--warm)}

/* Feature / capability grid */
.grid-4{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:680px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.grid-3{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.grid-2{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.tile h3{font-size:19px;margin:18px 0 8px;letter-spacing:-.01em}
.tile p{color:var(--muted);font-size:16px;margin:0}
.icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.28);color:var(--accent-2)}
.icon svg{width:22px;height:22px}
.tile a{font-weight:600}

/* Principles list */
.principles{display:grid;gap:0;border-top:1px solid var(--line)}
.principle{display:grid;grid-template-columns:52px minmax(0,1fr);gap:6px 18px;padding:28px 0;border-bottom:1px solid var(--line)}
.principle .num{grid-row:span 2;padding-top:4px;font:600 14px/1.6 var(--mono);color:var(--accent)}
.principle h3{font-size:22px}
.principle p{color:var(--muted);margin:0}

/* Split layout */
.split{display:grid;gap:48px;grid-template-columns:minmax(0,1fr);align-items:start}
@media(min-width:960px){.split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}

/* CTA band */
.cta{position:relative;border-radius:28px;padding:56px;overflow:hidden;background:
  radial-gradient(80% 120% at 100% 0%,rgba(var(--accent-rgb),.28),transparent 60%),var(--surface);border:1px solid var(--line-2)}
.cta h2{font-size:clamp(28px,3.6vw,40px);max-width:640px}
.cta p{color:var(--muted);max-width:600px;margin:14px 0 26px}
@media(max-width:600px){.cta{padding:32px 22px}}

/* Definition lists (company facts) */
.facts-list{display:grid;grid-template-columns:minmax(0,1fr);margin:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.facts-list div{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 24px;padding:16px 22px;border-bottom:1px solid var(--line)}
.facts-list div:last-child{border-bottom:0}
@media(min-width:600px){.facts-list div{grid-template-columns:190px minmax(0,1fr)}}
.facts-list dt{color:var(--faint);font-size:14px;font-weight:600;padding-top:2px}
.facts-list dd{margin:0;color:var(--text)}

/* Person card */
.person{display:flex;gap:18px;align-items:center;padding:22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.avatar{flex:0 0 64px;height:64px;border-radius:50%;display:grid;place-items:center;font:750 22px/1 var(--font);color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent))}
.person b{display:block;font-size:18px}
.person span{color:var(--muted);font-size:15px}

/* Page hero (inner pages) */
.page-hero{position:relative;padding:88px 0 56px;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(50% 80% at 85% 0%,rgba(var(--accent-rgb),.18),transparent 70%)}
.page-hero h1{font-size:clamp(36px,5.4vw,60px);font-weight:800;letter-spacing:-.03em;max-width:860px}
.page-hero .lede{margin:20px 0 0;max-width:680px}

/* Long-form documents (privacy, terms, support) */
.doc{max-width:820px;margin:0 auto;padding:56px 24px 40px}
.doc h1{font-size:clamp(34px,5vw,48px);font-weight:800;letter-spacing:-.03em;margin:0 0 10px}
.doc h2{font-size:clamp(21px,2.6vw,25px);margin:44px 0 12px;letter-spacing:-.015em}
.doc h3{font-size:18px;margin:24px 0 8px;color:var(--accent-2)}
.doc p,.doc li{color:var(--muted)}
.doc strong{color:var(--text)}
.doc ul,.doc ol{padding-left:22px}
.doc li{margin:5px 0}
.doc .meta{color:var(--faint);font-size:15px;margin:0 0 28px}
.doc .card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 22px;margin:22px 0}
.doc .card p{margin:6px 0}
.doc .toc{columns:2 240px;margin:0 0 10px;padding-left:24px}
.doc .toc li{margin:0 0 6px;break-inside:avoid}
.doc .toc a{color:var(--muted);text-decoration:none}
.doc .toc a:hover{color:var(--text)}
.doc .scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px}
.doc table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.doc th,.doc td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.doc tr:last-child td{border-bottom:0}
.doc th{color:var(--text);background:var(--surface-2);font-weight:650}
.doc td{color:var(--muted)}
.doc details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:10px}
.doc summary{cursor:pointer;font-weight:650;color:var(--text)}
.doc details p{margin:10px 0 0}
.doc .btn{margin:8px 0 4px}
.doc .btn-primary{color:var(--accent-ink)}

/* Footer */
.site-footer{border-top:1px solid var(--line);background:var(--bg-2);padding:64px 0 36px;margin-top:40px;font-size:15px}
.footer-grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){.footer-grid{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}}
.site-footer p{color:var(--faint);margin:14px 0 0;max-width:360px}
.site-footer .fh{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 14px;font-weight:650}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:0 0 10px}
.site-footer ul a{color:var(--muted);text-decoration:none}
.site-footer ul a:hover{color:var(--text)}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:52px;padding-top:24px;border-top:1px solid var(--line);color:var(--faint);font-size:13px}
.legal address{font-style:normal}

/* Game pages: the studio chrome with the game's own warm palette inside <main class="game-page"> */
.game-page{--accent:var(--game-accent);--accent-2:var(--game-accent-2);--accent-deep:var(--game-accent-deep);--accent-ink:var(--game-accent-ink);--accent-rgb:255,197,61}
.game-hero{position:relative;padding:64px 0 72px;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}
.game-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(55% 70% at 78% 45%,rgba(255,140,40,.24),transparent 70%),linear-gradient(180deg,var(--game-hero-top),var(--bg) 88%)}
.game-hero-grid{display:grid;gap:48px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.game-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.crumbs{font-size:14px;color:var(--faint);margin:0 0 26px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--text)}
.game-id{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.game-id img{width:64px;height:64px;border-radius:15px;box-shadow:0 8px 24px var(--shadow)}
.game-hero h1{font-size:clamp(34px,5.2vw,58px);font-weight:800;letter-spacing:-.03em}
.game-hero h1 em{font-style:normal;color:var(--warm)}
.game-hero .lede{margin:22px 0 30px;max-width:580px}
.hero-phone{justify-self:center;width:min(330px,100%);border-radius:40px;border:9px solid #14111c;outline:1px solid var(--line-2);box-shadow:0 30px 80px var(--shadow),0 0 110px rgba(255,140,40,.28)}
.layer{border-left:4px solid var(--c)}
.layer h3{margin-top:0;color:var(--text)}
.gallery{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px}
.gallery img{flex:0 0 auto;width:220px;scroll-snap-align:start;border-radius:22px;border:1px solid var(--line-2)}
.faq{max-width:860px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:650}
.faq details p{color:var(--muted);margin:10px 0 0}
.note{font-size:14px;color:var(--faint)}

/* Very small phones (320-400 px): icon-only menu button, tighter brand */
@media(max-width:400px){
  .menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .nav-menu summary{padding:9px}
  .keys{gap:3px}kbd,.key{padding:5px 6px 8px;font-size:11px}
  .brand{gap:7px}.brand-word{font-size:16px}
}

/* Palettes. Visitors pick one by tapping Rusty (assets/rusty.js); assets/theme.js applies the saved choice
   before the page paints. :root above is the default (Violet Keycap). */
html[data-palette="ember"]{--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--text:#f2f4f8;--muted:#a6aec0;--faint:#838ba0;--warm:#ffb547;--hover:rgba(255,255,255,.05);--ghost:rgba(255,255,255,.04);--ghost-hover:rgba(255,255,255,.08);--stripe:rgba(255,255,255,.025);--shadow:rgba(0,0,0,.5);--cap-top:#fdfdff;--cap-bot:#dde0e9;--cap-edge:#9aa0b1;--cap-ink:#1b1e28;--cap-dim-top:#2b2523;--cap-dim-bot:#201b1a;--cap-dim-edge:#141110;--cap-dim-ink:#7d716c;--game-accent:#ffc53d;--game-accent-2:#ffd978;--game-accent-deep:#d99a1a;--game-accent-ink:#2a1700;--game-hero-top:#1c1034;--art-bg:#1a0f2e;--scheme:dark;--bg:#0c0a0a;--bg-2:#110e0d;--surface:#171313;--surface-2:#1e1918;--surface-3:#26201e;--accent:#ff9d52;--accent-2:#ffc590;--accent-deep:#d9622b;--accent-ink:#2a1204;--accent-rgb:255,157,82;--glow2-rgb:255,80,60;--header-bg:rgba(12,10,10,.8)}
html[data-palette="cyan"]{--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--text:#f2f4f8;--muted:#a6aec0;--faint:#838ba0;--warm:#ffb547;--hover:rgba(255,255,255,.05);--ghost:rgba(255,255,255,.04);--ghost-hover:rgba(255,255,255,.08);--stripe:rgba(255,255,255,.025);--shadow:rgba(0,0,0,.5);--cap-top:#fdfdff;--cap-bot:#dde0e9;--cap-edge:#9aa0b1;--cap-ink:#1b1e28;--cap-dim-top:#262b38;--cap-dim-bot:#1b1f2a;--cap-dim-edge:#11141b;--cap-dim-ink:#6d7589;--game-accent:#ffc53d;--game-accent-2:#ffd978;--game-accent-deep:#d99a1a;--game-accent-ink:#2a1700;--game-hero-top:#1c1034;--art-bg:#1a0f2e;--scheme:dark;--bg:#080b10;--bg-2:#0b0f16;--surface:#10151e;--surface-2:#151c27;--surface-3:#1c2431;--accent:#5fd4ff;--accent-2:#a6e8ff;--accent-deep:#1a9fd0;--accent-ink:#03202b;--accent-rgb:95,212,255;--glow2-rgb:120,90,255;--header-bg:rgba(8,11,16,.8)}
html[data-palette="emerald"]{--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--text:#f2f4f8;--muted:#a6aec0;--faint:#838ba0;--warm:#ffb547;--hover:rgba(255,255,255,.05);--ghost:rgba(255,255,255,.04);--ghost-hover:rgba(255,255,255,.08);--stripe:rgba(255,255,255,.025);--shadow:rgba(0,0,0,.5);--cap-top:#fdfdff;--cap-bot:#dde0e9;--cap-edge:#9aa0b1;--cap-ink:#1b1e28;--cap-dim-top:#222c28;--cap-dim-bot:#18211e;--cap-dim-edge:#0f1513;--cap-dim-ink:#6a7a73;--game-accent:#ffc53d;--game-accent-2:#ffd978;--game-accent-deep:#d99a1a;--game-accent-ink:#2a1700;--game-hero-top:#1c1034;--art-bg:#1a0f2e;--scheme:dark;--bg:#080c0b;--bg-2:#0b110f;--surface:#101815;--surface-2:#151f1b;--surface-3:#1b2823;--accent:#4fe0a0;--accent-2:#a0f2cc;--accent-deep:#1ea86c;--accent-ink:#03231a;--accent-rgb:79,224,160;--glow2-rgb:60,140,255;--header-bg:rgba(8,12,11,.8)}
html[data-palette="crimson"]{--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--text:#f2f4f8;--muted:#a6aec0;--faint:#838ba0;--warm:#ffb547;--hover:rgba(255,255,255,.05);--ghost:rgba(255,255,255,.04);--ghost-hover:rgba(255,255,255,.08);--stripe:rgba(255,255,255,.025);--shadow:rgba(0,0,0,.5);--cap-top:#fdfdff;--cap-bot:#dde0e9;--cap-edge:#9aa0b1;--cap-ink:#1b1e28;--cap-dim-top:#2b2429;--cap-dim-bot:#201a1f;--cap-dim-edge:#141013;--cap-dim-ink:#7c7079;--game-accent:#ffc53d;--game-accent-2:#ffd978;--game-accent-deep:#d99a1a;--game-accent-ink:#2a1700;--game-hero-top:#1c1034;--art-bg:#1a0f2e;--scheme:dark;--bg:#0c090b;--bg-2:#110d10;--surface:#171216;--surface-2:#1e181d;--surface-3:#262026;--accent:#ff6b88;--accent-2:#ffabbd;--accent-deep:#e03a5e;--accent-ink:#2b0610;--accent-rgb:255,107,136;--glow2-rgb:255,150,60;--header-bg:rgba(12,9,11,.8)}
html[data-palette="daylight"]{--bg:#f6f6fa;--bg-2:#eeeef5;--surface:#ffffff;--surface-2:#f4f4f9;--surface-3:#eaeaf2;--line:rgba(18,20,28,.09);--line-2:rgba(18,20,28,.16);--text:#12141c;--muted:#4a5163;--faint:#687086;--warm:#b86e00;--accent:#6b5bf2;--accent-2:#5646e0;--accent-deep:#3f30c4;--accent-ink:#ffffff;--accent-rgb:107,91,242;--glow2-rgb:80,140,255;--header-bg:rgba(246,246,250,.85);--hover:rgba(18,20,28,.05);--ghost:rgba(18,20,28,.03);--ghost-hover:rgba(18,20,28,.07);--stripe:rgba(18,20,28,.035);--shadow:rgba(20,22,40,.16);--cap-top:#ffffff;--cap-bot:#e7e9f0;--cap-edge:#b9bdca;--cap-ink:#1b1e28;--cap-dim-top:#e9ebf1;--cap-dim-bot:#dcdfe8;--cap-dim-edge:#b3b8c6;--cap-dim-ink:#8a91a3;--game-accent:#f0a400;--game-accent-2:#9a6200;--game-accent-deep:#c07f00;--game-accent-ink:#2a1700;--game-hero-top:#fff1dc;--art-bg:#1a0f2e;--scheme:light}

/* Rusty's paint swatches (inside his speech bubble) */
.rusty-swatches{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.rusty-swatches[hidden]{display:none}
.rusty-swatch{all:unset;box-sizing:border-box;width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid rgba(0,0,0,.12);background:linear-gradient(135deg,var(--a) 0 50%,var(--b) 50% 100%);box-shadow:0 2px 6px rgba(0,0,0,.25);transition:transform .15s}
.rusty-swatch:hover{transform:scale(1.12)}
.rusty-swatch:focus-visible{outline:2px solid #1b1e28;outline-offset:2px}
.rusty-swatch[aria-pressed="true"]{border-color:#1b1e28;box-shadow:0 0 0 2px #fff,0 0 0 4px #1b1e28}
.rusty-stage.is-painting .rusty-bubble{max-width:256px}
@media(max-width:600px){.rusty-swatch{width:24px;height:24px}.rusty-swatches{gap:6px}.rusty-stage.is-painting .rusty-bubble{max-width:210px}}
.rusty-bubble [hidden]{display:none}
.copy-btn{font:650 12px/1 var(--font);color:var(--text);background:var(--ghost);border:1px solid var(--line-2);border-radius:8px;padding:6px 9px;margin-left:6px;cursor:pointer;vertical-align:1px}
.copy-btn:hover{background:var(--ghost-hover)}
