/* Games as tactile playing surfaces, with a shared notebook margin. */
.lab-main { padding-top:6.5rem; }
.lab-hero { display:grid; grid-template-columns:1fr 1fr; gap:0 3rem; align-items:end; padding-top:2rem; padding-bottom:2.5rem; }
.lab-hero .eyebrow { grid-column:1/-1; margin-bottom:1rem; }
.lab-title { font-size:clamp(3.5rem,6vw,5.5rem); margin:0; font-weight:400; line-height:.95; }
.lab-title .amber { font-style:italic; }
.lab-lede { font-size:1rem; max-width:48ch; }
.lab-wrap { max-width:1380px; padding:0 var(--pad) 4rem; }
.lab-playroom { display:grid; grid-template-columns:220px minmax(0,1fr); border:1px solid var(--line-2); background:#e9e4d9; }
.picker { display:flex; flex-direction:column; gap:0; padding:1rem; margin:0; border:0; border-right:1px solid var(--line-2); align-self:stretch; }
.pick { display:flex; align-items:baseline; gap:1rem; padding:1.2rem .7rem; border:0; border-bottom:1px solid var(--line); border-radius:0; font:1.25rem var(--f-disp); text-align:left; min-height:64px; color:var(--text); transition:background .25s,color .25s; }
.pick-number { font: .75rem var(--f-mono); opacity:.6; }
.pick.active { background:#31382b; color:#f2eedf; border-color:transparent; }
.pick:hover:not(.active) { background:rgba(82,100,69,.07); color:var(--ink); }
.lab-panels { min-width:0; }
.panel { padding:2rem 2.5rem; min-height:670px; }
.panel-head { align-items:center; border-bottom:1px solid var(--line); padding-bottom:1.3rem; margin-bottom:1.5rem; }
.panel-title { font:400 clamp(2rem,3vw,2.8rem)/1 var(--f-disp); }
.panel-sub { font-size:.75rem; margin-top:.6rem; color:var(--muted); }
.game-status { font: .75rem var(--f-mono); white-space:normal; line-height:1.5; max-width:22ch; }
.game-status::before { box-shadow:none; width:6px; height:6px; }.game-status.thinking::before { animation:thought 1.1s ease-in-out infinite; box-shadow:none; }
@keyframes thought { 50% { opacity:.25; transform:scale(.7); } }
.game-intro { font-size:1rem; line-height:1.6; max-width:65ch; margin-bottom:1rem; }
.surface-caption { font:italic 1.15rem var(--f-disp); color:var(--muted); margin:1rem 0; }
.score { display:flex; justify-content:center; gap:2rem; margin:0 auto 1.5rem; }
.sc { min-width:70px; padding:0 .8rem; border-right:1px solid var(--line); }.sc:last-child { border:0; }
.sc-n { font:2rem var(--f-disp); }.sc-l { font-size:.75rem; }
.board-wrap { max-width:370px; margin:0 auto; padding:0; }
.board { gap:8px; border:0; border-radius:2px; padding:12px; background:#30382c; box-shadow:0 3px 0 #1c251b,0 20px 32px -22px #20251c99; }
.cell { border-radius:2px; padding:23%; background:#eee9dc; box-shadow:inset 0 -3px 0 #c8c3b3; min-width:0; }
.cell:hover:enabled { background:#fffaf0; }.cell.win { background:#d9dfca; }
.cell .mark line,.cell .mark circle { stroke-width:7; }
.winline { inset:12px; width:calc(100% - 24px); height:calc(100% - 24px); }
.winline line { filter:none; stroke-width:1.5; }
.game-controls { border-top:1px solid var(--line); padding-top:1.2rem; margin-top:1.8rem; gap:1rem; }
.btn-ghost,.lm-btn { border-radius:2px; min-height:44px; font-size:.875rem; background:transparent; }
.btn-ghost:hover { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.toggle { font-size:.75rem; }.toggle input { min-width:34px; }.game-note,.nim-score { font-size:.75rem; }
.nim-rows { background:#33392d; padding:1.2rem 1.5rem; gap:0; border-radius:2px; min-height:340px; box-shadow:0 3px 0 #22271d; counter-reset:pile; }
.nim-row { min-height:73px; gap:6px; align-items:center; flex-wrap:nowrap; border-bottom:1px solid #ffffff16; padding:.7rem 0; }
.nim-row:last-child { border:0; }.nim-row::before { counter-increment:pile; content:'0' counter(pile); font:.75rem var(--f-mono); color:#adaf9d; width:35px; flex:none; }
.stick { width:44px; height:48px; border-radius:50%; background:#d8dcc2; border:5px solid #b8c39b; box-shadow:inset 0 0 0 1px #7b8960,0 3px 0 #81916a; flex:0 1 44px; min-width:25px; padding:0; }
.stick::before { display:none; }.stick.taking { background:#e49471; border-color:#d3714c; box-shadow:inset 0 0 0 1px #a95134,0 3px 0 #9b4a2d; transform:translateY(-5px); filter:none; }
.nim-row:empty::after { content:'—'; color:#858b77; }.stick:disabled { cursor:default; }
.rps-arena { background:#343a2d; padding:2rem; border-radius:2px; gap:2rem; min-height:240px; }
.rps-mark { width:135px; height:165px; background:#ede8da; border:1px solid #a1aa90; border-radius:5px; transform:rotate(-5deg); box-shadow:0 5px 0 #10180f33; font-size:4rem; }
.rps-mark.ai { transform:rotate(5deg); background:#f0dece; border-color:#ba8065; }
.rps-mark svg { stroke-width:2; }.rps-mark.pop { animation:cardDeal .45s var(--ease); }
@keyframes cardDeal { from { opacity:.2; translate:0 18px; } to { opacity:1; translate:0 0; } }
.rps-cap { color:#d5d8c7; font-size:.75rem; }.rps-vs { color:#a1ac8e; font:italic 2rem var(--f-disp); }
.rps-result { margin:1rem 0; font:1.5rem var(--f-disp); min-height:1.5em; }.rps-result.win { color:var(--accent); }
.rps-btn { width:110px; min-height:90px; border-radius:2px; background:#f4efe4; border-color:#b5b4a3; }
.rps-btn svg { stroke-width:2; }.rps-btn span { font-size:.75rem; }.rps-btn:disabled { opacity:.5; cursor:wait; }
.rps-history { display:flex; justify-content:center; gap:6px; min-height:30px; margin-top:1.2rem; }
.round-chip { padding:5px 8px; border:1px solid var(--line); font:.75rem var(--f-mono); color:var(--muted); }.round-chip.win { background:#dbe1ca; color:#405335; }.round-chip.lose { background:#ead6c8; color:#963d23; }
.chomp-grid { gap:7px; max-width:460px; margin:1.5rem auto 2rem; padding:18px; background:#d8cfba; border:1px solid #afa58f; box-shadow:0 4px 0 #bdb39a; }
.chomp-cell { border-radius:2px; background:#76523c; box-shadow:inset 0 0 0 5px #87644b,inset 0 0 0 6px #64422e,0 3px 0 #4f3423; transition:opacity .3s,transform .3s,background .2s; }
.chomp-cell.poison { background:#8c3a27; box-shadow:inset 0 0 0 5px #b15a3e,inset 0 0 0 6px #7c2b1b,0 3px 0 #5d291c; }
.chomp-cell.poison::after { content:'×'; font:2rem var(--f-sans); color:#fff0de; }
.chomp-cell.hl { background:#b0ba8d; box-shadow:inset 0 0 0 5px #839464; }.chomp-cell.hl.danger { background:#cb7553; }
.chomp-cell.eaten { background:transparent; box-shadow:none; opacity:.08; transform:scale(.8); }
.lm-feature { margin:2rem 0 0; padding:2rem 2.5rem; background:#30382c; color:#ede9dc; border:0; display:grid; grid-template-columns:1fr 1fr; gap:.5rem 3rem; }
.lm-feature-tag { color:#b9c899; font-size:.75rem; grid-column:1; }.lm-feature-title { font-size:3rem; color:#f1eadf; font-weight:400; grid-column:1; margin:.3rem 0; }.lm-feature-title span { color:#e89370; font-style:italic; }
.lm-feature-desc { grid-column:2; grid-row:1/3; color:#c7cbbb; font-size:1rem; margin:0; }.lm-feature-cta { grid-column:2; color:#f1eadf; font-size:.875rem; }
/* The Last Move — a board on the left and the game notebook on the right. */
.lm-main { max-width:1380px; padding:8rem var(--pad) 4rem; }
.lm-intro { display:grid; grid-template-columns:1fr 1fr; gap:1rem 3rem; text-align:left; margin-bottom:2.5rem; align-items:end; }
.lm-intro .eyebrow { grid-column:1/-1; justify-content:flex-start; margin:0; }.lm-title { font-size:clamp(3.5rem,6vw,5.5rem); font-weight:400; margin:0; line-height:.95; }.lm-title .amber { font-style:italic; }
.lm-lede { font-size:1rem; line-height:1.6; margin:0; max-width:47ch; }
.lm-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:2.8rem; }
.lm-stage { min-width:0; background:#e5dfd1; border:1px solid #c7c2b2; padding:1.5rem; }
.board-edition { display:flex; justify-content:space-between; gap:1rem; font:.75rem var(--f-mono); color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:1rem; margin-bottom:1.3rem; }
.lm-legend { justify-content:space-between; gap:1rem; margin-bottom:1rem; }.lm-leg { font-size:.75rem; gap:.5rem; }.lm-leg i { box-shadow:none!important; }
.lm-howto { font-size:.875rem; margin:0 0 1.2rem; }
.lm-board-wrap { --accent:#c1cf9d; --accent-2:#ec906e; --bg-2:#444d3a; --muted:#829073; --line-2:#718064; max-width:none; background:#303a2a; padding:1rem; aspect-ratio:auto; border-radius:3px; box-shadow:0 5px 0 #1f291a,0 18px 25px -20px #172013; }
.lm-board { aspect-ratio:120/96; overflow:visible; }
.lm-link { stroke-width:.3; opacity:.6; }.lm-border { stroke-width:2; opacity:.75; }
.lm-node .nc { stroke-width:.3; fill:#434e38; stroke:#8b9b76; }
.lm-node.empty:hover .nc,.lm-node.empty:focus-visible .nc { fill:#63764a; stroke:#dce8c9; stroke-width:.65; }
.lm-node.you .nc { fill:var(--accent); stroke:#e5eccf; filter:none; }.lm-node.ai .nc { fill:var(--accent-2); stroke:#f5b39a; filter:none; }
.lm-node:focus-visible { outline:none; }.lm-node:focus-visible .nc { stroke:#fff4de; stroke-width:1; }
.lm-node .stone-label { font-family:var(--f-mono); font-size:2.6px; fill:#c0c9b0; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.lm-node.you .stone-label { fill:#344428; }.lm-node.ai .stone-label { fill:#662e1b; }
.lm-node.place .nc { animation:stonePlace .45s var(--ease); }@keyframes stonePlace { from { opacity:0; stroke-width:2; } to { opacity:1; stroke-width:.3; } }
.lm-link.win,.lm-link.win-you { opacity:1; stroke-width:1.8; filter:none; stroke-dasharray:30; animation:linkDraw .65s ease both; }@keyframes linkDraw { from { stroke-dashoffset:30; } to { stroke-dashoffset:0; } }
.lm-turn { text-align:center; color:var(--accent); font:.875rem var(--f-mono); padding:1.5rem 0 0; min-height:3rem; }
.lm-controls { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; gap:1rem; justify-content:space-between; }.lm-note { font-size:.75rem; flex-basis:100%; text-align:center; }
.lm-notebook { padding-top:.3rem; min-width:0; }.notebook-label { font:.75rem var(--f-mono); text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin-bottom:.8rem; }
.lm-notebook h2 { font:400 2.5rem/1 var(--f-disp); color:var(--ink); }
.lm-speak { display:block; text-align:left; font:italic 1.5rem/1.25 var(--f-disp); color:var(--accent-2); padding:0; margin:1.5rem 0; min-height:3.5em; }.lm-speak .caret { display:none; }
.lm-overlay { position:static; inset:auto; visibility:visible; opacity:1; background:#dfd8c8; border:1px solid #bfb5a1; padding:1.2rem; gap:.8rem; backdrop-filter:none; border-radius:2px; }
.lm-verdict { font:2rem/1 var(--f-disp); text-shadow:none; }.lm-verdict-sub { font:.875rem/1.6 var(--f-sans); }
.lm-overlay-btns { flex-direction:column; width:100%; margin:0; }.lm-btn { font-size:.8125rem; padding:.7rem .9rem; }.lm-btn:disabled { opacity:.5; cursor:wait; }
.move-ledger { margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--line); }
#moveLog { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.35rem .8rem; min-height:50px; }
#moveLog li { display:flex; gap:.6rem; align-items:center; font:.75rem var(--f-mono); padding:.4rem 0; border-bottom:1px solid var(--line); }
#moveLog li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); }#moveLog li.ai::before { background:var(--accent-2); }
#moveLog li span:first-child { color:var(--muted); }#moveLog li:last-child { font-weight:500; }
.game-explainer { border-top:1px solid var(--line); margin-top:1.5rem; padding-top:1rem; font-size:.875rem; }.game-explainer summary { cursor:pointer; color:var(--ink); }.game-explainer p { margin-top:.8rem; line-height:1.7; }
@media(max-width:1000px) { .lab-playroom { grid-template-columns:175px minmax(0,1fr); }.picker { padding:.6rem; }.panel { padding:1.5rem; }.lm-layout { grid-template-columns:minmax(0,1fr) 240px; gap:1.5rem; }.lm-stage { padding:1rem; }.lm-leg { font-size:.75rem; } }
@media(max-width:760px) {
 .lab-hero,.lm-intro { grid-template-columns:1fr; gap:1rem; }.lab-title,.lm-title { font-size:3.7rem; }.lab-hero { padding-top:1rem; }
 .lab-playroom { grid-template-columns:1fr; }.picker { flex-direction:row; display:grid; grid-template-columns:1fr 1fr; border-right:0; border-bottom:1px solid var(--line); }.pick { min-height:54px; padding:.7rem; font-size:1.15rem; }.pick-number { font-size:.75rem; }
 .panel { min-height:0; padding:1.4rem; }.panel-head { align-items:flex-start; flex-direction:column; gap:.8rem; }.game-status { max-width:none; }
 .lm-feature { grid-template-columns:1fr; padding:1.5rem; gap:1rem; }.lm-feature-desc,.lm-feature-cta { grid-column:1; grid-row:auto; }
 .lm-layout { grid-template-columns:1fr; }.lm-notebook { display:grid; grid-template-columns:1fr 1fr; column-gap:2rem; }.lm-notebook>.notebook-label,.lm-notebook>h2,.lm-speak,.lm-overlay { grid-column:1/-1; }.lm-speak { min-height:0; }.lm-notebook .lab-back { grid-column:1/-1; }
 .lm-main { padding-top:7rem; }.lm-legend { flex-direction:column; gap:.5rem; }.lm-board-wrap { padding:.7rem; }.lm-stage { padding:1rem; }
}
@media(max-width:440px) {
 .panel { padding:1rem; }.panel-title { font-size:2rem; }.board { gap:5px; padding:8px; }.winline { inset:8px; width:calc(100% - 16px); height:calc(100% - 16px); }
 .nim-rows { padding:.7rem; }.nim-row { gap:4px; }.nim-row::before { width:22px; }.stick { min-width:20px; height:39px; border-width:3px; }
 .rps-arena { gap:1rem; padding:1.5rem .6rem; }.rps-mark { width:95px; height:125px; }.rps-btn { width:80px; min-height:85px; padding:.7rem .4rem; }.rps-buttons { gap:.5rem; }
 .chomp-grid { padding:10px; gap:5px; }.chomp-cell { box-shadow:inset 0 0 0 3px #87644b,0 2px 0 #4f3423; }.chomp-cell.poison::after { font-size:1.4rem; }
 .lm-notebook { display:block; }.lm-note { font-size:.75rem; }.board-edition { font-size:.75rem; }.game-note { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .game-status.thinking::before,.lm-node.place .nc,.lm-link.win,.lm-link.win-you,.rps-mark.pop { animation:none; }.stick.taking { transform:none; } }


/* Lab uses the portfolio’s paper, ink and vermilion palette. */
body.lab-page,body.lm-body {
 --accent:#262620;--accent-2:#b84025;
 background:var(--bg);color:var(--text);color-scheme:light;
}
.lab-page .brand-node,.lm-body .brand-node {background:var(--accent-2);}
.lab-page .foot {background:transparent;border-top:1px solid var(--line);}
.lab-main {padding-top:7.5rem;}
.lab-hero {padding-top:3.2rem;padding-bottom:3.6rem;grid-template-columns:1.1fr 1fr;gap:1.3rem 4rem;}
.lab-hero .eyebrow {font-size:.65rem;letter-spacing:.18em;color:var(--accent-2);}
.lab-hero .eyebrow .dot {width:5px;height:5px;background:var(--accent-2);box-shadow:none;}
.lab-title {font-size:clamp(5rem,9vw,9rem);letter-spacing:-.055em;line-height:.88;}
.lab-title .amber {color:var(--ink);}
.lab-lede {font-size:1.05rem;line-height:1.85;max-width:37ch;margin:0 0 .25rem;}
.lab-wrap {padding-bottom:6rem;}
.lm-feature {position:relative;margin:0 0 3.5rem;padding:2.6rem 3rem;min-height:300px;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;border:1px solid #b8402530;border-radius:12px;background:radial-gradient(ellipse at 95% 20%,#d9cdbb30,transparent 70%),linear-gradient(120deg,#f7f3eb,#e7e0d3);box-shadow:inset 0 1px #ffffff80,0 24px 65px #30291c0d;}
.lm-feature::before {background:linear-gradient(90deg,#b84025,#b8402500);height:1px;inset:0 0 auto;opacity:.65;}
.lm-feature:hover {border-color:#b8402580;transform:translateY(-3px);}
.lm-feature-tag {color:var(--accent-2);font-size:.65rem;letter-spacing:.16em;}
.lm-feature-title {color:var(--ink);font:400 clamp(2.6rem,4vw,4.2rem)/1 var(--f-disp);letter-spacing:-.025em;margin:.3rem 0;}
.lm-feature-title span {color:var(--accent-2);}
.lm-feature-desc {font-size:.9rem;line-height:1.75;max-width:47%;color:var(--text);}
.lm-feature-cta {margin-top:.6rem;color:var(--ink);font-size:.75rem;padding-bottom:.4rem;border-bottom:1px solid #b8402560;}
.feature-board {position:absolute;width:34%;height:85%;right:5%;top:7.5%;filter:drop-shadow(0 12px 12px #30291c22);transform:rotate(-9deg);transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.lm-feature:hover .feature-board {transform:rotate(-3deg) translateY(-3px);}
.feature-path {stroke-dasharray:180;stroke-dashoffset:180;animation:traceConnection 2s .3s ease forwards;}
@keyframes traceConnection {to{stroke-dashoffset:0;}}
.collection-label {display:flex;justify-content:space-between;font:.65rem var(--f-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:1rem;}
.lab-playroom {grid-template-columns:220px minmax(0,1fr);border-radius:12px;background:#f5f1e8;border:1px solid var(--line-2);box-shadow:0 24px 70px #30291c0a;overflow:hidden;}
.picker {padding:1rem;background:#e9e3d8;gap:.4rem;}
.pick {border:1px solid transparent;border-radius:6px;font:400 .9rem/1.5 var(--f-sans);min-height:70px;padding:1rem .8rem;align-items:center;gap:.8rem;}
.pick-number {font-size:.6rem;color:var(--muted);opacity:1;}
.pick.active {background:#ded7c8;border-color:#82756233;color:var(--ink);box-shadow:inset 2px 0 var(--accent-2);}
.pick.active .pick-number {color:var(--accent-2);}
.pick:hover:not(.active) {background:#26262008;}
.panel {padding:2.2rem 2.6rem;min-height:640px;}
.panel-head {padding-bottom:1.5rem;}
.panel-title {font-size:2.65rem;}
.panel-sub {font-size:.65rem;letter-spacing:.03em;color:var(--muted);}
.game-status {font-size:.7rem;}
.game-intro {font-size:.9rem;line-height:1.8;}
.surface-caption {font: .75rem/1.7 var(--f-sans);color:var(--muted);}
.score {background:none;border:0;border-radius:0;gap:1.5rem;}
.sc {background:none;min-width:80px;}.sc-n {font:1.8rem var(--f-disp);}.sc-l {font-size:.6rem;letter-spacing:.13em;}
.board-wrap {max-width:340px;}
.board {padding:13px;gap:8px;background:#d9d1c2;border:1px solid #81756133;border-radius:12px;box-shadow:inset 0 2px 10px #30291c22,0 14px 35px #30291c16;}
.cell {background:linear-gradient(145deg,#fcf9f2,#e9e2d5);border:1px solid #b0a58c66;border-radius:7px;box-shadow:inset 0 1px #ffffffaa,0 3px 0 #bcb19f;padding:23%;transition:background .2s,transform .2s,border-color .2s;}
.cell:hover:enabled {background:#fffdf7;border-color:#b8402570;transform:translateY(-2px);}
.cell.win {background:#ded9c8;}
.btn-ghost,.lm-btn {border:1px solid var(--line-2);border-radius:5px;padding:.7rem 1rem;font-size:.75rem;background:#ffffff20;}
.btn-ghost:hover,.lm-btn:hover {background:#b84025;color:#fff8ee;border-color:#b84025;}
.game-controls {margin-top:1.8rem;padding-top:1.5rem;}
.game-note {color:var(--muted);font-size:.65rem;}
.nim-rows,.rps-arena {background:radial-gradient(ellipse at top,#e6dfd2,#cfc5b3);border:1px solid var(--line-2);border-radius:9px;box-shadow:inset 0 1px #fff8,0 14px 30px #30291c0a;}
.stick {background:radial-gradient(circle at 35% 25%,#faf6e9,#c4bda9);border-color:#a49c85;box-shadow:inset 0 0 0 1px #fff8e788,0 4px 0 #8a816a,0 6px 8px #30291c30;}
.stick.taking {background:#e5a287;border-color:#bb6446;box-shadow:inset 0 0 0 1px #f8e7cb88,0 4px 0 #8e452e;}
.rps-mark {background:linear-gradient(145deg,#faf5ea,#d6cebc);color:#262620;border-color:#b9ae98;box-shadow:0 12px 20px #30291c20;}
.rps-mark.ai {background:linear-gradient(145deg,#f7e5da,#dab298);color:#91371f;border-color:#bd8c72;}
.rps-btn {background:#e9e2d5;border-color:#8d816444;border-radius:7px;}
.rps-btn:hover {background:#fffaf0;border-color:#262620;}
.chomp-grid {background:#d8cfba;border-color:var(--line-2);box-shadow:0 4px 0 #bdb39a,0 18px 30px #30291c16;border-radius:9px;}
.lm-body .lm-stage {background:#f5f1e8;border-color:var(--line-2);border-radius:12px;}
.lm-board-wrap {--accent:#262620;--accent-2:#b84025;--bg-2:#ddd5c5;--muted:#817767;--line-2:#a99e87;background:radial-gradient(ellipse at top,#e9e2d5,#d5cbb8);border:1px solid #9a8e7544;border-radius:8px;box-shadow:inset 0 1px #ffffffaa,0 15px 25px #30291c16;}
.lm-node .nc {fill:#ede8dc;stroke:#a2977e;}.lm-node.you .nc {stroke:#55554a;}.lm-node.ai .nc {stroke:#da7659;}
.lm-node.empty:hover .nc,.lm-node.empty:focus-visible .nc {fill:#fffaf0;stroke:#b84025;}
.lm-node .stone-label {fill:#5d574a;}.lm-node.you .stone-label {fill:#f8f2e7;}.lm-node.ai .stone-label {fill:#fff5eb;}
.lm-body .lm-overlay {background:#e9e2d5;border-color:var(--line-2);border-radius:7px;}
.lm-body .lm-starter select {background:#f8f4ec;color:var(--ink);border-color:var(--line-2);}
.lab-page :focus-visible,.lm-body :focus-visible {outline:2px solid #b84025;outline-offset:5px;}
@media(max-width:1000px){.lab-playroom{grid-template-columns:180px minmax(0,1fr)}.panel{padding:1.7rem}.lm-feature{padding:2rem}.lab-hero{gap:1rem 2rem}}
@media(max-width:760px){.lab-main{padding-top:6rem}.lab-hero{grid-template-columns:1fr;padding-top:2rem;padding-bottom:2rem;gap:1.5rem}.lab-title{font-size:5.7rem}.lab-lede{max-width:40ch;font-size:.95rem}.lm-feature{min-height:0;margin-bottom:2.5rem;padding:1.8rem;gap:.6rem}.lm-feature-desc{max-width:100%}.feature-board{position:relative;inset:auto;width:100%;height:180px;margin-top:.5rem;order:5}.lm-feature-title{font-size:3rem}.lab-playroom{grid-template-columns:1fr}.picker{grid-template-columns:1fr 1fr;padding:.6rem;gap:.3rem}.pick{min-height:56px;font-size:.8rem;padding:.6rem;gap:.6rem}.panel{min-height:0;padding:1.4rem}.panel-head{gap:1rem}.panel-title{font-size:2.3rem}.collection-label{font-size:.6rem}}
@media(max-width:440px){.panel{padding:1rem}.score{gap:.6rem}.sc{min-width:64px}.lab-title{font-size:5rem}.lm-feature{padding:1.5rem}.game-controls{gap:.8rem}.panel-sub{line-height:1.7}.stick{min-width:20px}}
@media(prefers-reduced-motion:reduce){.feature-path{animation:none;stroke-dashoffset:0}.feature-board,.lm-feature,.cell{transition:none}.lm-feature:hover,.lm-feature:hover .feature-board,.cell:hover:enabled{transform:none}}

.nim-row::before,.rps-cap,.rps-vs {color:var(--muted);}
