/* LITTLE WORKS / MICRO GAME SYSTEM — retro, smoothed
   Original sprites, system sans type (overrides at end of file). No remote assets. */
:root{
 --paper:#e4dac2;--ink:#202937;--muted:#555b58;--line:#a99f89;
 --green:#202937;--lime:#a7ce79;--peach:#f29b62;--lavender:#b7a5db;
 --blue:#83c5b4;--white:#f2e9d5;--screen:#1b2433;--panel:#293545;
 --screen-ink:#f2e9d5;--radius:0;--shadow:5px 5px 0 #b1a68e;
 --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-synthesis:none;color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 var(--font);border-top:7px solid var(--ink)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;color:inherit;border:0;background:none}
button:disabled{opacity:.4;cursor:default}
a{color:inherit;text-decoration:none}
button,a,input{touch-action:manipulation}
button:focus-visible,a:focus-visible{outline:3px solid #bc4b28;outline-offset:4px}
.hero a:focus-visible,.board-stage button:focus-visible{outline-color:var(--lime)}
button svg,a svg{flex-shrink:0}
svg{display:block}
h1,h2,h3,p{margin:0}
button:disabled:hover{transform:none}
.wrap{max-width:1260px;margin:0 auto;padding:0 40px}
.skip-link{position:fixed;left:10px;top:-100px;z-index:1200;padding:12px;background:var(--lime);font-weight:bold}
.skip-link:focus{top:12px}
.site-header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink)}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand-wordmark{display:block;width:220px}
.brand-wordmark>.pixel-text{width:100%;height:auto;max-height:25px}
.brand small{font-size:11px;letter-spacing:1.1px;display:block;font-weight:bold;margin-top:9px;line-height:1.2}
.brand-symbol{width:36px;height:36px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.brand-symbol i{background:var(--ink)}
.brand-symbol i:last-child{background:#bd5c3d}
.nav{display:flex;align-items:center;gap:24px;font-size:11px;font-weight:bold}
.nav a{padding:10px 0}
.nav a:hover{color:#a74427}
.power-label{display:flex;align-items:center;gap:7px;font-size:10px}
.power-label i,.status-led{display:inline-block;width:7px;height:7px;background:#617a42}
.icon-button{width:39px;height:39px;display:inline-flex;align-items:center;justify-content:center;background:var(--white);border:2px solid var(--ink);box-shadow:2px 2px 0 #b1a68e}
.icon-button:hover{background:var(--lime)}
.icon-button.active{background:var(--lime)}
.pixel-text{color:inherit;overflow:visible}
/* Home computer title screen */
.hero{margin:28px 0 37px;border:3px solid var(--ink);background:var(--screen);color:var(--screen-ink);box-shadow:6px 6px 0 #b1a68e;position:relative}
.screen-status{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#2a3748;border-bottom:2px solid #101b29;padding:9px 20px;font-size:10px;font-weight:bold;letter-spacing:1px;color:#d6ddcd}
.screen-status>span:first-child{display:flex;align-items:center;gap:8px}
.status-led{background:var(--lime);width:6px;height:6px}
.hero-main{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;padding:35px 39px 31px;align-items:center}
.eyebrow{display:flex;align-items:center;gap:8px;letter-spacing:1.5px;font-size:10px;font-weight:bold;text-transform:uppercase}
.hero .eyebrow{color:var(--peach);font-size:10px;letter-spacing:1.4px}
.hero h1{margin:25px 0 23px;display:flex;flex-direction:column;gap:15px;max-width:424px}
.hero-line{width:100%;height:auto}
.accent-line{color:var(--lime)}
.hero-description{font-size:13px;line-height:1.85;color:#c5cfcf}
.start-button{display:inline-flex;align-items:center;justify-content:space-between;gap:19px;font-size:12px;font-weight:bold;background:var(--lime);color:var(--ink);border:2px solid #d9e5bd;box-shadow:4px 4px 0 #0f1724;padding:11px 13px;margin-top:25px}
.start-button:hover{background:#c0db9d}
.start-button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #0f1724}
.keycap{font-size:11px;letter-spacing:1px;border:1px solid #566b40;padding:2px 5px;margin-left:9px}
.hero-reassurance{font-size:11px;color:#b7c4c6;margin-top:18px;letter-spacing:.3px}
.daily-feature{display:block;align-self:center;border:2px solid #556276;background:#202d3d;box-shadow:4px 4px 0 #111c2b;min-width:0;position:relative}
.daily-feature:hover{border-color:var(--lime)}
.daily-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:bold;padding:10px 13px;letter-spacing:.7px;border-bottom:2px solid #556276;background:#2b3a4c}
.daily-top .tag{color:var(--lime)}
.daily-art{width:100%;background:var(--screen);padding:0 8px}
.daily-art svg{width:100%;height:auto;max-height:215px}
.daily-bottom{padding:13px;display:flex;align-items:center;justify-content:space-between;border-top:2px solid #556276;gap:9px}
.daily-bottom h2{font-size:17px;letter-spacing:.5px;text-transform:uppercase;font-weight:bold}
.daily-bottom p{font-size:11px;color:#bac5c6;margin-top:3px}
.round-go{background:var(--peach);border:2px solid var(--peach);color:var(--screen);width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;box-shadow:2px 2px 0 #111c2b}
.screen-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #425062;color:#aebec3;padding:10px 20px;letter-spacing:1px;font-size:10px}
.screen-bottom>span:last-child{color:var(--lime);font-weight:bold}
.cursor{display:inline-block;width:7px;height:10px;margin-left:7px;vertical-align:-1px;background:var(--lime)}
/* Physical cartridge shelf */
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;gap:14px}
.section-head h2{font-size:16px;letter-spacing:1px;font-weight:bold;display:flex;align-items:center;gap:12px}
.section-number{font-size:12px;padding:2px 6px;background:var(--ink);color:var(--white);letter-spacing:0}
.section-head .note{font-size:10px;font-weight:bold;letter-spacing:.5px}
.game-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.game-card{border:2px solid var(--ink);background:var(--white);box-shadow:4px 4px 0 #b1a68e;display:flex;flex-direction:column;width:100%;padding:0;position:relative;transition:transform .1s,box-shadow .1s}
.game-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.game-card:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #b1a68e}
.cartridge-label{height:29px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--ink);background:var(--cartridge);font-size:10px;letter-spacing:1.2px;font-weight:bold;padding:4px 11px}
.card-art{width:100%;background:var(--screen);border-bottom:2px solid var(--ink);padding:3px}
.card-art svg{width:100%;height:auto}
.card-body{padding:16px 15px 0;display:flex;flex-direction:column;flex:1}
.card-type{font-size:11px;letter-spacing:.8px;font-weight:bold;color:var(--muted);text-transform:uppercase}
.card-body h3{font-size:19px;font-weight:bold;letter-spacing:-.6px;text-transform:uppercase;margin:5px 0 9px;line-height:1.3}
.card-body p{font-size:11px;line-height:1.7;flex:1;color:#535851;min-height:57px}
.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:17px;border-top:2px solid var(--ink);padding:11px 0 12px;font-size:10px;font-weight:bold;gap:6px}
.card-bottom span{display:flex;align-items:center;gap:6px}
.card-bottom .count{font-size:11px;color:var(--muted);white-space:nowrap}
.progress-strip{margin-top:31px;border:2px solid #a99f89;background:#dbd0b7;padding:19px 21px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.progress-intro{display:flex;align-items:center;gap:13px}
.progress-icon{width:41px;height:41px;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--white)}
.progress-intro h3{font-size:12px;font-weight:bold;letter-spacing:1px}
.progress-intro p{font-size:10px;color:var(--muted);margin-top:5px;max-width:380px}
.progress-numbers{display:flex;gap:30px}
.progress-number{text-align:left;min-width:50px}
.progress-number strong{display:block;font-size:25px;font-weight:bold;line-height:1.1;letter-spacing:1px}
.progress-number strong small{font-size:12px;letter-spacing:0;color:var(--muted)}
.progress-number>span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-top:5px;white-space:nowrap}
.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0 26px;margin-top:26px;border-top:2px solid var(--ink);font-size:11px;color:var(--muted)}
.footer-name{display:flex;align-items:center;gap:11px}
.footer .foot-brand{font-weight:bold;color:var(--ink);letter-spacing:1px;font-size:11px}
.stripe-mark{display:flex;gap:3px;transform:skew(-15deg);margin-left:3px}
.stripe-mark i{display:block;width:8px;height:30px;background:#bd5c3d}
.stripe-mark i:nth-child(2){background:#c89c4c}.stripe-mark i:nth-child(3){background:#718955}
.footer button{font:inherit;text-decoration:underline;text-underline-offset:4px;padding:7px}
.footer-links{display:flex;align-items:center;gap:12px}
/* Shared keyboard-like controls */
.btn{color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:10px 14px;border:2px solid var(--ink);font-size:11px;font-weight:bold;background:var(--white);box-shadow:2px 2px 0 #b1a68e;white-space:normal}
.btn:hover{background:var(--lime)}
.btn:active{box-shadow:none;transform:translate(1px,1px)}
.btn.primary{background:var(--lime);color:var(--ink)}
.btn.primary:hover{background:#bed994}
.btn.lime{background:var(--lime)}
.btn.small{min-height:36px;font-size:10px;padding:7px 10px}
.btn.text{border:0;box-shadow:none;background:none;padding-left:0;padding-right:0;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.btn.text:hover{color:var(--ink)}
.btn.wide{width:100%}
/* Game cabinet */
.play-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0;gap:10px}
.breadcrumbs{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}
.breadcrumbs a{display:flex;align-items:center;gap:7px;font-weight:bold}
.breadcrumbs a:hover{color:var(--ink)}
.game-tabs{display:flex;align-items:center;gap:7px}
.game-tab{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--white);border:2px solid var(--ink);box-shadow:2px 2px 0 #b1a68e}
.game-tab.active{background:var(--game-accent,var(--lime));box-shadow:none;transform:translate(1px,1px)}
.play-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:4px 0 24px}
.play-heading>.eyebrow{font-size:11px}
.play-heading h1{margin:13px 0 11px;max-width:465px;width:min(465px,60vw)}
.play-heading h1 svg{height:30px;width:auto;max-width:100%}
.play-heading p{font-size:12px;color:var(--muted);margin-top:5px}
.level-badge{display:flex;align-items:center;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:bold;border:2px solid var(--ink);padding:8px 12px;background:var(--game-accent,var(--lime));white-space:nowrap;box-shadow:3px 3px 0 #b1a68e}
.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 294px;gap:25px;align-items:start}
.game-panel{border:3px solid var(--ink);background:var(--screen);position:relative;box-shadow:5px 5px 0 #b1a68e}
.game-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:2px solid #536071;gap:8px;min-height:65px;background:#2a3748;color:var(--white)}
.live-stat{display:flex;align-items:baseline;gap:7px;font-size:10px;color:#c9d2d1;flex-wrap:wrap}
.live-stat strong{font-size:18px;font-weight:bold;color:var(--game-accent,var(--lime))}
.live-stat>span{font-size:10px}
.tool-buttons{display:flex;gap:7px;flex-shrink:0}
.tool-buttons button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #728091;background:#354458;box-shadow:2px 2px 0 #111c2b;color:var(--white)}
.tool-buttons button:hover{background:#4a5e73}
.tool-buttons button:disabled{background:#273444}
.board-stage{padding:29px 30px;min-height:400px;display:flex;flex-direction:column;justify-content:center;background:var(--stage-bg,var(--screen));position:relative;color:var(--white)}
.board-shell{max-width:434px;width:100%;margin:0 auto;position:relative;isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:none}
.board-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));position:relative;width:100%;gap:var(--gap,5px)}
.cell{padding:0;aspect-ratio:1;min-width:0;border:0;display:flex;align-items:center;justify-content:center;position:relative;touch-action:none;overflow:hidden}
.board-foot{min-height:59px;border-top:2px solid #536071;display:flex;align-items:center;justify-content:center;padding:12px 16px;gap:12px;flex-wrap:wrap;background:#253244;color:#d0d8d1}
.board-message{font-size:11px;line-height:1.65;display:flex;align-items:center;justify-content:center;gap:9px;text-align:center}
.board-message svg{flex-shrink:0;color:var(--game-accent)}
.sidebar{min-width:0}
.side-card{border:2px solid var(--ink);padding:20px;background:var(--white);box-shadow:3px 3px 0 #b1a68e;margin-bottom:20px}
.side-card h2{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.8px;font-weight:bold;margin-bottom:16px}
.instruction{display:flex;gap:10px;font-size:11px;line-height:1.75;margin:14px 0;color:#3f4c50}
.instruction .num{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;font-size:11px;line-height:1;background:var(--ink);color:var(--white);font-weight:bold;margin-top:2px}
.side-tip{border-top:1px dashed #a99f89;padding-top:13px;margin-top:17px;font-size:10px;line-height:1.8;color:var(--muted)}
.side-tip b{font-weight:bold;color:var(--ink);letter-spacing:.7px}
.levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.level-button{min-height:42px;background:#e9dfc8;border:1px solid var(--ink);box-shadow:2px 2px 0 #b1a68e;font-size:12px;font-weight:bold;display:flex;flex-direction:column;align-items:center;justify-content:center}
.level-button:hover{background:var(--game-accent)}
.level-button.current{background:var(--ink);color:var(--white);box-shadow:inset 0 -3px var(--game-accent)}
.level-button.done:not(.current){background:#d3dfb7}
.mini-stars{font-size:9px;letter-spacing:1px;line-height:1.2;color:#69512d}
.current .mini-stars{color:var(--lime)}
.levels-note{font-size:10px;color:var(--muted);margin-top:12px;line-height:1.65}
.mini-link{font-size:11px;display:flex;align-items:center;gap:6px;margin-top:14px;color:var(--muted)}
.post-play{margin-top:17px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);gap:10px}
.post-play .btn{font-size:10px}
.legend-chip{font-size:11px;text-transform:uppercase;font-weight:bold;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:var(--white)}
/* Dispatch — fixed 5px gaps are part of route-coordinate calculation. */
.dispatch-board{--gap:5px}
.dispatch-cell{background:#293545;overflow:visible;z-index:2;box-shadow:inset 0 0 0 1px #354458}
.dispatch-cell.blocked{background:#2c3e39;box-shadow:inset 0 0 0 1px #415547}
.dispatch-cell:not(.blocked):hover{box-shadow:inset 0 0 0 2px #7e99a5}
.dispatch-cell svg{width:76%;height:76%;position:relative;z-index:5}
.dispatch-cell.active-endpoint{box-shadow:inset 0 0 0 2px var(--route-color)}
.dispatch-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible}
.dispatch-lines polyline{stroke-linecap:square;stroke-linejoin:miter}
.dispatch-board .dispatch-cell::after{content:'';position:absolute;left:47%;top:47%;width:6%;height:6%;background:#556575;z-index:1}
.dispatch-board .dispatch-cell.endpoint::after,.dispatch-board .dispatch-cell.blocked::after{display:none}
.dispatch-board .dispatch-cell.endpoint{background:#334252}
.route-endpoints-overlay{position:absolute;inset:0;pointer-events:none;z-index:4;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px}
.route-endpoints-overlay>div{aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative}
.route-endpoints-overlay svg{width:76%;height:76%}
.route-endpoints-overlay .endpoint-letter{position:absolute;top:1px;right:5px;font-weight:bold;font-size:12px;text-shadow:1px 1px #121b2a}
.route-key{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #667181;padding:5px 9px;font-size:11px;color:var(--white);background:#293748}
.route-key.selected{outline:1px solid var(--route-color);border-color:var(--route-color)}
.route-dot{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--route-color);color:var(--ink);font-size:11px;font-weight:bold}
.route-key .check{color:var(--route-color)}
/* Shelf — chunky interlocking blocks */
.shelf-board{--gap:3px;padding:7px;border:7px solid #ae815a;border-top-color:#edc38d;border-bottom-width:13px;background:#5a493e;box-shadow:0 5px 0 #0d1625}
.shelf-cell{background:#273342;box-shadow:inset 0 0 0 1px #43505b}
.shelf-cell:hover{box-shadow:inset 0 0 0 2px #cda475}
.shelf-cell.occupied{background:var(--piece-color);box-shadow:inset 3px 3px 0 #ffffff45,inset -3px -3px 0 #17253340}
.piece-number{font-size:13px;font-weight:bold;color:#172533;opacity:1}
.shelf-cell.hint-cell{outline:3px dashed #edcc6c;outline-offset:-5px}
.shelf-cell.preview-valid{background:#83c5b4;box-shadow:inset 0 0 0 3px #d7f2ba}
.shelf-cell.preview-invalid{background:#a15b5b;box-shadow:inset 0 0 0 3px #efb4a0}
.inventory-label{margin-top:23px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#cfdbd5;gap:10px}
.inventory-label .btn{min-height:35px;padding:6px 10px;font-size:10px;box-shadow:2px 2px 0 #111b2a;flex-shrink:0}
.inventory{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-width:434px;width:100%;margin:0 auto}
.piece-choice{border:2px solid #4c6072;background:#273545;min-height:70px;padding:9px 6px;position:relative;display:flex;align-items:center;justify-content:center;touch-action:none}
.piece-choice.selected{border:2px solid var(--lime);box-shadow:0 3px 0 #a7ce7944}
.piece-choice.placed{opacity:.4;background:#25353a;cursor:default}
.piece-choice svg{width:100%;height:46px}
.piece-choice .item-label{position:absolute;top:1px;left:3px;font-size:11px;font-weight:bold;color:#e6e2ca}
.rotate-note{font-size:11px;color:var(--muted);border:1px solid var(--muted);padding:0 3px}
/* Pipe control panel */
.flow-board{--gap:2px;background:#162733;border:7px solid #556c77;border-top-color:#879d9e;border-left-color:#879d9e;overflow:hidden;box-shadow:0 5px 0 #0d1625}
.flow-cell{background:#2c424b}
.flow-cell:hover{background:#385560}
.flow-cell svg{width:100%;height:100%}
.flow-cell.hinted{outline:3px solid #edcc6c;outline-offset:-4px}
/* Cargo loading bays */
.cargo-shell{max-width:560px;width:100%;margin:0 auto}
.cargo-floor{position:relative;display:grid;grid-template-columns:repeat(var(--bays),minmax(0,1fr));gap:10px;align-items:end;margin:15px 0 5px;user-select:none}
.cargo-bay{padding:10px 6px 0;position:relative;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;border:2px solid #405260;touch-action:manipulation;background:#23313e;transition:transform .1s,border .1s}
.cargo-bay.selected{border-color:var(--lime);background:#304337;transform:translateY(-7px)}
.cargo-bay.hint-target{border-color:#edcc6c;box-shadow:0 0 0 2px #edcc6c}
.cargo-bay.legal-target{border-color:#8dad75}
.crate{height:var(--crate-height,52px);background:var(--crate-color);display:flex;align-items:center;justify-content:center;border:1px solid #172533;box-shadow:inset 0 -4px 0 #17253333,inset 0 3px 0 #ffffff55;position:relative;color:#172533;font-size:17px;font-weight:bold}
.crate::before,.crate::after{content:'';position:absolute;top:0;bottom:0;width:4px;background:#f2e9d570}
.crate::before{left:10%}.crate::after{right:10%}
.crate.empty{background:transparent;border:1px dashed #4a5a67;box-shadow:none}
.crate.empty::before,.crate.empty::after{display:none}
.cargo-pallet{height:10px;background:#be9a6b;border-top:3px solid #f2ce95;margin:4px -4px 0;box-shadow:0 3px 0 #705a44}
.bay-number{font-size:10px;font-weight:bold;letter-spacing:.5px;text-align:center;line-height:30px;margin:0 -6px -2px;color:#c8d0c9;background:var(--stage-bg)}
.cargo-help{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:24px;font-size:10px;color:#c8d0c9;flex-wrap:wrap}
.cargo-color{display:flex;align-items:center;gap:5px}
.cargo-color i{width:19px;height:19px;display:flex;align-items:center;justify-content:center;color:var(--ink);font-style:normal;font-size:10px;font-weight:bold}
/* System dialogs */
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);max-width:min(90vw,520px);padding:13px 20px;background:var(--ink);color:var(--white);border:2px solid var(--lime);font-size:12px;box-shadow:4px 4px 0 #111b2a;opacity:0;pointer-events:none;transition:opacity .12s,transform .12s;z-index:1100;text-align:center}
.toast.visible{opacity:1;transform:translate(-50%,0)}
.modal-backdrop{position:fixed;inset:0;background:#131d2bd9;z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px}
.modal{max-width:450px;width:100%;background:var(--paper);border:3px solid var(--ink);outline:2px solid var(--paper);padding:32px;text-align:center;position:relative;box-shadow:8px 8px 0 #101825;max-height:90dvh;overflow:auto}
.modal .close{position:absolute;right:11px;top:11px;width:31px;height:31px;box-shadow:none}
.modal-illustration{width:65px;height:65px;margin:14px auto 22px;border:2px solid var(--ink);background:var(--lime);box-shadow:4px 4px 0 var(--ink);display:flex;align-items:center;justify-content:center}
.modal h2{font:700 28px/1.25 var(--font);letter-spacing:-.7px;margin-bottom:12px}
.modal p{font-size:12px;line-height:1.8;color:var(--muted)}
.modal-stars{display:flex;justify-content:center;gap:12px;margin:20px 0;color:#956124}
.modal-stats{display:flex;justify-content:center;gap:48px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:15px 0;margin:20px 0}
.modal-stats strong{font-size:24px;display:block;font-weight:bold}
.modal-stats span{font-size:10px;color:var(--muted);text-transform:uppercase}
.modal-actions{display:flex;flex-direction:column;gap:10px}
.modal p.small{font-size:10px;margin-top:15px}
.modal.privacy{text-align:left;max-width:500px}
.modal.privacy h2{font-size:25px;margin:22px 0 16px}
.modal.privacy p{margin:12px 0}
.modal.privacy h3{font-size:13px;margin:20px 0 5px}
.modal.privacy .btn{margin-top:12px}
.modal textarea{border-radius:0!important}
.complete-inline{background:var(--lime);border:2px solid var(--ink);padding:13px 16px;display:flex;align-items:center;justify-content:space-between;margin-top:17px;font-size:12px;font-weight:bold;gap:12px;box-shadow:3px 3px 0 #b1a68e}
.new-best{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:1px;background:var(--lime);padding:4px 8px;margin-top:12px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.mobile-only{display:none}.progress-summary{font-size:11px;color:var(--muted)}
/* Tablets */
@media(max-width:1100px){
 .wrap{padding:0 28px}.nav{gap:15px}.brand-wordmark{width:200px}.hero-main{gap:32px;padding:31px}.hero h1{max-width:365px}.hero-reassurance{font-size:10px}
 .game-cards{gap:14px}.card-body{padding:14px 12px 0}.card-body h3{font-size:17px}.card-body p{font-size:10px;min-height:52px}.card-bottom{font-size:11px}.card-bottom .count{font-size:10px}
 .play-layout{grid-template-columns:minmax(0,1fr) 260px;gap:21px}.side-card{padding:17px}.game-toolbar{padding:12px 15px}.board-stage{padding:26px 24px}.progress-numbers{gap:23px}
}
@media(max-width:850px){
 .wrap{padding:0 24px}.site-header{min-height:88px}.brand-wordmark{width:180px}.brand-symbol{width:30px;height:30px}.brand small{font-size:10px}.nav{gap:16px}.nav>a{font-size:10px}.power-label{display:none}
 .hero-main{gap:23px;padding:28px 24px}.hero h1{max-width:310px;margin:20px 0;gap:13px}.hero-description{font-size:12px}.hero .eyebrow{font-size:10px}.start-button{font-size:10px;gap:12px;margin-top:20px}.keycap{font-size:10px;margin-left:2px}.hero-reassurance{font-size:9px}.daily-top{font-size:10px;padding:9px}.daily-bottom{padding:10px}.daily-bottom h2{font-size:14px}.daily-bottom p{font-size:9px}.round-go{width:30px;height:30px}
 .game-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card-art{padding:0 18px}.card-art svg{max-height:180px}.card-body{padding:17px 17px 0}.card-body h3{font-size:20px}.card-body p{font-size:12px;min-height:42px}.card-type{font-size:10px}.card-bottom{font-size:11px}.card-bottom .count{font-size:10px}
 .progress-strip{padding:18px;gap:16px}.progress-icon{display:none}.progress-intro p{max-width:290px}.progress-numbers{gap:23px}.progress-number strong{font-size:22px}
 .footer-links>span{display:none}.play-layout{grid-template-columns:minmax(0,1fr) 225px;gap:18px}.instruction{font-size:10px;gap:8px}.side-tip{font-size:11px}.side-card{padding:15px}.side-card h2{font-size:11px;gap:7px}.side-card .btn{font-size:11px}.board-stage{padding:24px 18px;min-height:330px}.live-stat{font-size:11px;gap:5px}.live-stat strong{font-size:16px}.live-stat>span{font-size:11px;margin-left:0!important}.tool-buttons{gap:5px}.tool-buttons button{width:31px;height:33px}.game-toolbar{padding:12px}.play-heading h1 svg{height:26px}.play-heading p{font-size:11px}.level-badge{font-size:11px}.inventory{gap:5px}.piece-choice{min-height:58px;padding:7px 4px}.piece-choice svg{height:38px}.inventory-label{font-size:11px}.cargo-floor{gap:6px}.cargo-bay{padding:9px 3px 0}.crate{height:43px;font-size:13px}.bay-number{margin-left:-3px;margin-right:-3px;font-size:10px}.cargo-help{gap:8px;font-size:11px}.cargo-pallet{margin-left:-2px;margin-right:-2px}
}
/* Phones: real touch targets, no desktop-only clipping or hover dependencies. */
@media(max-width:650px){
 body{border-top-width:5px}.wrap{padding:0 17px}.site-header{min-height:79px;gap:14px}.brand{gap:10px}.brand-wordmark{width:173px}.brand-symbol{width:28px;height:28px;gap:3px}.brand small{font-size:9px;letter-spacing:1px;margin-top:7px}.nav{gap:0}.nav>a{display:none}.icon-button{width:36px;height:36px}
 .hero{margin-top:22px;margin-bottom:31px;box-shadow:4px 4px 0 #b1a68e}.screen-status{font-size:10px;letter-spacing:.2px;padding:9px 11px}.screen-status>span:last-child{font-size:9px;letter-spacing:0}.hero-main{display:flex;flex-direction:column;align-items:stretch;gap:26px;padding:24px 21px}.hero-copy{width:100%}.hero .eyebrow{font-size:11px;letter-spacing:1px}.hero h1{width:100%;max-width:340px;margin:23px 0 21px;gap:13px}.hero-description{font-size:12px;line-height:1.8}.start-button{font-size:11px;padding:10px 11px;margin-top:21px;min-height:44px}.keycap{margin-left:10px}.hero-reassurance{font-size:10px;margin-top:16px;letter-spacing:0}.daily-feature{width:100%;align-self:stretch}.daily-art{padding:0 17px}.daily-art svg{max-height:165px}.daily-top{font-size:11px;padding:9px 11px}.daily-bottom{padding:11px}.daily-bottom h2{font-size:16px}.daily-bottom p{font-size:10px}.round-go{width:32px;height:32px}.screen-bottom{padding:9px 12px;font-size:10px;letter-spacing:.6px}
 .section-head{gap:9px;align-items:flex-start;margin-bottom:14px}.section-head h2{font-size:13px;letter-spacing:.5px;gap:8px}.section-number{font-size:10px}.section-head .note{font-size:9px;letter-spacing:0;max-width:74px;text-align:right;line-height:1.5;padding-top:1px}
 .game-cards{gap:15px 12px}.game-card{box-shadow:3px 3px 0 #b1a68e}.cartridge-label{height:26px;padding:4px 8px;font-size:11px;letter-spacing:.6px}.card-art{padding:3px 0}.card-body{padding:12px 10px 0}.card-type{font-size:9px;letter-spacing:.2px}.card-body h3{font-size:16px;letter-spacing:-.65px;line-height:1.3;margin:6px 0 8px}.card-body p{font-size:10px;line-height:1.7;min-height:68px}.card-bottom{font-size:11px;margin-top:11px;padding:10px 0;gap:3px}.card-bottom span{gap:3px}.card-bottom .count{font-size:9px}.card-bottom svg{width:12px}
 .progress-strip{margin-top:25px;flex-direction:column;align-items:stretch;padding:17px;gap:17px}.progress-icon{display:flex;width:34px;height:34px}.progress-intro{gap:10px}.progress-intro h3{font-size:10px;letter-spacing:.8px}.progress-intro p{font-size:11px;margin-top:5px}.progress-numbers{justify-content:space-between;border-top:1px dashed #a99f89;padding-top:16px;gap:15px}.progress-number strong{font-size:25px}.progress-number>span{font-size:10px;letter-spacing:.4px}
 .footer{margin-top:24px;padding:20px 0 24px;font-size:10px;align-items:flex-start;gap:8px}.footer-links{gap:0;flex-wrap:wrap;justify-content:flex-end;max-width:140px}.footer-links button{padding:5px}.stripe-mark i{height:25px;width:6px}.footer .foot-brand{font-size:10px}.footer-name{gap:8px}
 .play-nav{padding:17px 0}.breadcrumbs{font-size:11px;gap:6px}.breadcrumbs a{gap:5px}.game-tabs{gap:5px}.game-tab{width:32px;height:32px}.game-tab svg{width:15px;height:15px}
 .play-heading{align-items:flex-start;margin:3px 0 19px;gap:8px;flex-wrap:wrap}.play-heading>div{flex:1;min-width:0}.play-heading .eyebrow{font-size:11px;letter-spacing:1px}.play-heading h1{width:100%;max-width:340px;margin:13px 0 10px}.play-heading h1 svg{height:auto;width:100%;max-width:340px;max-height:26px;object-fit:contain;object-position:left}.play-heading p{font-size:11px;line-height:1.65;max-width:330px}.level-badge{font-size:10px;padding:6px 8px;margin-top:29px;gap:5px;letter-spacing:0;box-shadow:2px 2px 0 #b1a68e;max-width:110px;white-space:normal;text-align:center}
 .play-layout{display:flex;flex-direction:column;gap:23px}.game-main{width:100%}.game-panel{border-width:2px;box-shadow:4px 4px 0 #b1a68e}.board-stage{padding:24px 14px;min-height:0}.board-shell{max-width:420px}.game-toolbar{padding:11px 10px;min-height:62px;gap:6px}.live-stat{font-size:11px;gap:5px;max-width:65%;line-height:1.4}.live-stat strong{font-size:16px}.live-stat>span{font-size:11px}.tool-buttons{gap:5px}.tool-buttons button{width:33px;height:35px}.tool-buttons button svg{width:16px}.board-foot{min-height:55px;padding:10px;gap:7px}.board-message{font-size:10px;gap:7px}.route-key{font-size:11px;gap:5px;padding:5px 7px;min-height:35px}.route-dot{width:18px;height:18px;font-size:10px}
 .sidebar{display:grid;grid-template-columns:1fr 1fr;gap:13px;width:100%;align-items:start}.side-card{margin:0;padding:14px 12px;box-shadow:2px 2px 0 #b1a68e}.side-card h2{font-size:10px;gap:6px;letter-spacing:.2px;margin-bottom:12px}.side-card h2 svg{width:14px;height:14px}.instruction{font-size:10px;gap:7px;line-height:1.7;margin:10px 0}.instruction .num{min-width:16px;height:16px;font-size:11px;margin-top:2px}.side-tip{font-size:11px;line-height:1.7;margin-top:12px;padding-top:11px}.levels{gap:5px}.level-button{min-height:35px;font-size:10px;box-shadow:1px 1px 0 #b1a68e}.levels-note{font-size:11px;line-height:1.6;margin-top:11px}.mini-stars{font-size:8px;letter-spacing:0}.side-card .btn{font-size:11px;min-height:39px;padding:7px 6px;gap:5px}.side-card .btn svg{width:12px;flex-shrink:0}
 .post-play{font-size:11px;margin-top:15px;gap:9px}.post-play .btn{font-size:11px}.route-endpoints-overlay .endpoint-letter{font-size:10px;top:1px;right:3px}.dispatch-cell svg,.route-endpoints-overlay svg{width:76%;height:76%}
 .shelf-board{border-width:6px;border-bottom-width:11px;padding:5px}.piece-number{font-size:11px}.inventory{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.piece-choice{min-height:58px;padding:8px 3px}.piece-choice svg{height:36px}.inventory-label{margin-top:20px;margin-bottom:11px;font-size:11px;line-height:1.5;gap:9px}.inventory-label .btn{font-size:11px;min-height:34px;padding:6px 8px}.rotate-note{font-size:10px}.flow-board{border-width:6px}
 .cargo-floor{gap:5px;margin:9px 0 0}.cargo-bay{padding:8px 3px 0;gap:4px}.crate{height:47px;font-size:14px}.cargo-pallet{margin:4px -2px 0;height:9px}.bay-number{font-size:10px;margin:0 -3px -2px;line-height:28px}.cargo-help{font-size:11px;gap:9px;margin-top:21px}.cargo-color i{width:17px;height:17px}.cargo-floor.many-bays{gap:4px}.many-bays .cargo-bay{padding-left:2px;padding-right:2px}.many-bays .crate{height:40px;font-size:12px}.many-bays .crate::before,.many-bays .crate::after{width:3px}.many-bays .crate::before{left:8%}.many-bays .crate::after{right:8%}.many-bays .bay-number{font-size:9px;margin:0 -2px -2px}
 .modal{padding:28px 22px}.modal h2{font-size:26px}.modal p{font-size:11px}.modal.privacy h2{font-size:22px}.complete-inline{padding:10px;font-size:10px;gap:10px}.complete-inline .btn{font-size:11px;flex-shrink:0}.mobile-only{display:initial}
}
@media(max-width:370px){
 .wrap{padding:0 12px}.brand-wordmark{width:156px}.brand small{font-size:8px}.hero-main{padding:22px 17px}.screen-status>span:last-child{font-size:8px}.screen-status{font-size:9px}.hero .eyebrow{font-size:10px}.hero-reassurance{font-size:9px}.daily-art svg{max-height:142px}.section-head h2{font-size:12px}.section-head .note{font-size:8px;max-width:66px}.card-body{padding-left:9px;padding-right:9px}.card-body h3{font-size:14px}.card-body p{font-size:11px;min-height:62px}.card-type{font-size:8px}.card-bottom .count{font-size:8px}.card-bottom{font-size:10px}.sidebar{grid-template-columns:1fr}.levels{grid-template-columns:repeat(6,minmax(0,1fr))}.board-stage{padding:19px 10px}.inventory{gap:4px}.piece-choice{min-height:51px}.piece-choice svg{height:30px}.play-heading h1 svg{max-height:22px}.level-badge{font-size:9px;padding:5px}.cargo-floor.many-bays{gap:3px}.many-bays .crate{font-size:10px}.many-bays .bay-number{font-size:8px}.tool-buttons button{width:30px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.game-card:hover{transform:none}}

/* EXPANSION 01 — four new cartridges, same original microcomputer shell. */
.expansion-section{margin-bottom:35px}.expansion-note{display:inline-block;background:var(--ink);color:var(--lime);padding:3px 7px;font-size:11px;letter-spacing:.8px}
.machine-label{display:flex;justify-content:space-between;gap:10px;color:#aebfc5;font-size:11px;letter-spacing:.7px;margin:0 0 14px;font-weight:bold}
.extra-shell{max-width:420px}.controls-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.control-note{font-size:11px;line-height:1.8;color:#aebfc5}
.direction-pad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,40px);gap:5px}
.dir{background:#35475a;border:2px solid #728795;color:var(--white);font-size:24px;font-family:var(--font);line-height:1;box-shadow:2px 2px 0 #0e1725;padding:0;touch-action:manipulation}
.dir:hover:not(:disabled){background:#4d6474}.dir:active:not(:disabled){transform:translate(1px,1px)}.dir-0{grid-area:1/2}.dir-3{grid-area:2/1}.dir-2{grid-area:2/2}.dir-1{grid-area:2/3}
.extra-hint{outline:3px dashed #f0d674!important;outline-offset:-5px!important}
/* CRATE CREW / tiled warehouse and a hard-hat sprite */
.crew-board{gap:3px;padding:6px;background:#101b29;border:4px solid #586575;box-shadow:0 5px 0 #101b29}
.crew-cell{background:#2e3f4a;box-shadow:inset 0 0 0 1px #46545c;touch-action:manipulation}
.crew-cell:not(.wall):not(:disabled):hover{background:#425763}.crew-cell.wall{opacity:1;background:#566372;box-shadow:inset 0 4px #778494,inset 0 -5px #344252;position:relative}
.crew-cell.wall:after{content:'';width:2px;height:47%;background:#384857;position:absolute;left:48%;top:8%}
.crew-cell.storage-pad{background:repeating-linear-gradient(135deg,#334a40 0,#334a40 5px,#425848 5px,#425848 8px);box-shadow:inset 0 0 0 2px #809967}.target-cross{color:#c7dba2;font-size:26px}
.crew-cell svg{width:100%;height:100%}.crew-cell:disabled:not(.wall){opacity:1}
/* DOCK ESCAPE / top-down sliding vehicles */
.dock-board{position:relative;aspect-ratio:1;border:5px solid #687580;background:#172735;box-shadow:0 5px 0 #0f1928;touch-action:none;overflow:visible}
.dock-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);position:absolute;inset:0}.dock-square{background:#2a3b48;border:1px solid #40515d;padding:0}
.yard-vehicle{position:absolute;border:3px solid #111c29;background:var(--vehicle);box-shadow:inset 3px 3px 0 #ffffff50,inset -3px -3px 0 #17253344;cursor:grab;touch-action:none;user-select:none;display:flex;align-items:center;justify-content:center;color:#172533;padding:0}
.yard-vehicle.selected{outline:3px solid #f1ebd3;outline-offset:-3px;z-index:3}.yard-vehicle:disabled{opacity:1}.yard-vehicle:active{cursor:grabbing}.vehicle-letter{font-weight:bold;font-size:18px;position:relative;z-index:1;background:var(--vehicle);padding:0 2px}
.vehicle-window{position:absolute;background:#263c4e;border:2px solid #455a65}.h .vehicle-window{right:7%;top:15%;width:13%;height:70%}.v .vehicle-window{left:15%;top:7%;height:13%;width:70%}
.vehicle-slats{position:absolute;opacity:.2}.h .vehicle-slats{left:10%;top:10%;width:56%;height:80%;background:repeating-linear-gradient(90deg,transparent 0,transparent 8px,#172533 8px,#172533 10px)}.v .vehicle-slats{left:10%;top:31%;width:80%;height:59%;background:repeating-linear-gradient(0deg,transparent 0,transparent 8px,#172533 8px,#172533 10px)}
.yard-exit{position:absolute;right:-15px;top:calc(100%/3);height:calc(100%/6);width:17px;display:flex;align-items:center;justify-content:center;background:#a7ce79;color:#1b2433;font-size:13px;z-index:4;border:1px solid #1b2433;pointer-events:none}
/* PARCEL SLIDE / printed labels on thick parcel tiles */
.parcel-board{padding:7px;gap:5px;background:#121d2d;border:7px solid #796c9a;border-top-color:#b7a5db;border-bottom-width:12px;box-shadow:0 5px 0 #101b29}
.parcel-tile{background:#b7a5db;color:#202937;box-shadow:inset 3px 3px #e6dcf5,inset -4px -4px #72668d;flex-direction:column;touch-action:manipulation}
.parcel-tile.in-place{background:#c4d1a5;box-shadow:inset 3px 3px #e8edd1,inset -4px -4px #79876c}.parcel-tile:hover:not(:disabled){filter:brightness(1.12)}.parcel-tile:disabled{opacity:1}
.parcel-number{font-size:clamp(23px,4vw,38px);font-weight:bold;line-height:1.25;margin-top:4px;letter-spacing:-1px}.slot-label{font-size:11px;position:absolute;top:5px;left:6px;opacity:.6}.barcode{width:48%;height:9px;opacity:.55;background:repeating-linear-gradient(90deg,#202937 0,#202937 2px,transparent 2px,transparent 4px,#202937 4px,#202937 5px,transparent 5px,transparent 8px);margin-top:5px}
.parcel-tile.empty-slot{background:#253344;box-shadow:inset 3px 3px #192332;color:#607080;cursor:default}.empty-cross{font-size:28px}.slide-key{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#b5c2c9;margin-top:17px}
/* LOAD BALANCE / manifests, loading weights and stackable freight */
.balance-shell{width:100%;max-width:570px;margin:0 auto}.truck-bays{display:grid;grid-template-columns:repeat(var(--trucks),minmax(0,1fr));gap:10px;align-items:start}.weight-truck{border:2px solid #506270;background:#263644;min-width:0}.weight-truck.on-target{border-color:#a7ce79}.load-destination{display:flex;flex-direction:column;align-items:center;width:100%;padding:10px 7px 8px;color:#e8e5cf;background:#2d3e4e}.load-destination:disabled{opacity:1;cursor:default}.load-destination:hover:not(:disabled){background:#3d5360}
.truck-name{font-size:10px;font-weight:bold;letter-spacing:.5px}.load-destination svg{width:100%;max-width:95px;height:auto;margin:7px 0 2px}.weight-readout{font-size:14px;white-space:nowrap}.weight-readout strong{font-size:23px;color:#edcc6c}.weight-readout small{font-size:10px;margin-left:3px}.load-gauge{display:block;width:100%;height:8px;background:#162332;border:1px solid #647784;margin-top:8px}.load-gauge i{display:block;height:100%;background:#edcc6c}.on-target .load-gauge i{background:#a7ce79}.load-command{font-size:10px;margin-top:8px;font-weight:bold}.loaded-crates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:7px;gap:5px;min-height:65px}.empty-truck-label{font-size:10px;grid-column:1/-1;text-align:center;align-self:center;color:#7c909b}.weight-crate{background:var(--crate);border:2px solid #192332;box-shadow:inset 2px 2px #fff8,inset -3px -3px #1b243355;min-height:54px;padding:13px 3px 6px;position:relative;color:#172533;min-width:0;text-align:center;touch-action:manipulation}.weight-crate.selected{outline:3px solid #f6efcf;outline-offset:1px;z-index:1}.weight-crate:disabled{opacity:1}.crate-id{font-size:10px;position:absolute;top:3px;left:5px;opacity:.65}.weight-crate strong{font-size:22px;font-weight:bold;white-space:nowrap}.weight-crate small{font-size:10px;margin-left:2px}.loaded-crates .weight-crate{min-height:43px;padding:11px 0 4px}.loaded-crates .weight-crate strong{font-size:17px}.loaded-crates .weight-crate small{font-size:9px}.loading-label{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:22px 0 12px;font-size:11px;letter-spacing:.4px}.unload-button{border:1px solid #718494;padding:8px 9px;min-height:34px;background:#354759;color:#e7e5d1;font-size:11px}.loading-pad{padding:12px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;background:#152434;border:2px dashed #5b7080;min-height:82px}.pad-clear{grid-column:1/-1;align-self:center;text-align:center;font-size:10px;color:#a7ce79}.selected-weight{font-size:11px;text-align:center;margin-top:15px;color:#cbd5ce}
@media(max-width:1050px){.truck-bays{gap:7px}.loading-pad{gap:7px;padding:9px}.loaded-crates{padding:5px;gap:4px}.weight-readout{font-size:11px}.weight-readout strong{font-size:20px}.load-destination{padding:9px 4px}.truck-name{font-size:11px}.loaded-crates .weight-crate strong{font-size:14px}.loaded-crates .weight-crate small{font-size:8px}}
@media(max-width:850px){.truck-bays{grid-template-columns:repeat(2,minmax(0,1fr))}.load-destination svg{max-width:70px}.load-destination{display:grid;grid-template-columns:1fr 1fr;gap:0 6px}.truck-name,.load-gauge,.load-command{grid-column:1/-1}.weight-readout{text-align:center}.loaded-crates{grid-template-columns:repeat(3,minmax(0,1fr));min-height:45px}.loading-pad{grid-template-columns:repeat(4,minmax(0,1fr))}.machine-label{font-size:10px}.play-nav{gap:12px;flex-wrap:wrap}.game-tabs{margin-left:auto}.control-note{font-size:10px}.direction-pad{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px)}}
@media(max-width:650px){.play-nav{display:flex;flex-direction:column;align-items:stretch;gap:12px}.game-tabs{margin-left:0;display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.game-tab{width:100%;height:36px}.game-tab svg{height:17px;width:17px}.extra-shell{max-width:400px}.machine-label{font-size:10px;margin-bottom:12px;letter-spacing:.2px}.direction-pad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px)}.crew-board{border-width:3px;padding:4px;gap:2px}.controls-row{margin-top:17px}.control-note{font-size:10px}.dock-shell{padding-right:8px}.dock-board{border-width:4px}.vehicle-letter{font-size:16px}.yard-vehicle{border-width:2px}.yard-exit{right:-13px;width:14px;font-size:10px}.parcel-board{border-width:5px;border-bottom-width:10px;gap:4px;padding:5px}.parcel-number{font-size:27px}.slot-label{font-size:10px;top:3px;left:5px}.barcode{height:7px;margin-top:3px}.slide-key{font-size:10px}.truck-bays{gap:10px}.load-destination{padding:8px 7px}.weight-readout{font-size:14px}.weight-readout strong{font-size:22px}.truck-name{font-size:10px}.loaded-crates{gap:5px;padding:6px}.loaded-crates .weight-crate strong{font-size:17px}.loaded-crates .weight-crate small{font-size:9px}.loading-pad{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:11px}.weight-crate{min-height:55px}.expansion-section{margin-bottom:29px}}
@media(prefers-reduced-motion:reduce){.dir:active{transform:none}}

/* EXPANSION 02 / CLASSICS. CRT-era restraint, readable modern controls. */
.classics-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}
.classics-cards .card-body{padding-left:12px;padding-right:12px}
.classics-cards .card-body h3{font-size:17px;line-height:1.25;min-height:43px}
.classics-cards .card-body p{font-size:10px;min-height:57px}
.classics-cards .card-type{font-size:10px}
.classics-cards .card-bottom{font-size:11px}
.classics-cards .card-bottom .count{font-size:10px}
.select-section{margin-bottom:34px}
.game-tabs{flex-wrap:wrap;gap:5px;justify-content:flex-end}
.game-tab{width:32px;height:32px}
.play-nav{gap:15px}
.classic-shell{width:100%;max-width:490px;margin:0 auto}
.classic-caption{font-size:11px;letter-spacing:.6px;text-align:center;color:#c1ccc9;margin-top:15px;line-height:1.7}
.retro-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 11px;background:#344353;color:#f2e9d5;border:2px solid #637381;box-shadow:2px 2px 0 #101923;font-size:10px;line-height:1.4;letter-spacing:.3px;text-align:center;font-weight:bold;cursor:pointer}
.retro-button:hover{background:#44586b;border-color:#a7ce79}
.retro-button.active{background:#a7ce79;color:#1b2433;border-color:#d8e6c4}
.retro-button:disabled{cursor:default;opacity:.45}
.segmented{display:flex;gap:6px}
.classic-hint{outline:3px dashed #edcc6c!important;outline-offset:-3px;z-index:250!important}
.game-notice{border:2px solid #edcc6c;background:#303a41;padding:16px;margin-top:18px;text-align:center;color:#f2e9d5}
.game-notice strong{font-size:15px;letter-spacing:1px;color:#edcc6c}
.game-notice p{font-size:11px;margin:8px 0 12px;line-height:1.7}
.classic-readouts{display:flex;justify-content:space-between;gap:15px;margin:0 0 17px;border-bottom:2px solid #455469;padding-bottom:14px}
.classic-readouts>div{display:flex;flex-direction:column;gap:4px}
.classic-readouts>div:not(:first-child){text-align:right}
.classic-readouts span{font-size:11px;letter-spacing:1.2px;color:#bac8ce}
.classic-readouts strong{font-size:28px;line-height:1;color:#a7ce79;letter-spacing:1px}
.block-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:7px;background:#111c2b;border:3px solid #526272;touch-action:none;user-select:none}
.block-cell{display:block;aspect-ratio:1;background:#2b3a4c;border:1px solid #394b61;padding:0;position:relative;min-width:0}
.block-cell.filled{background:var(--block-color);border:0;box-shadow:inset 3px 3px 0 #ffffff45,inset -3px -3px 0 #17203245}
.block-cell.ghost{background:#a7ce7960;box-shadow:inset 0 0 0 2px #a7ce79}
.block-cell.bad-ghost{background:#df8d8850;box-shadow:inset 0 0 0 2px #e48d9e}
.block-cell:not(.filled):hover{border-color:#a7ce79}
.block-tray-label{margin-top:18px;margin-bottom:10px}
.block-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.block-piece{position:relative;height:103px;display:flex;justify-content:center;align-items:center;background:#263446;border:2px solid #536276;padding:15px 20px;touch-action:none}
.block-piece.selected{border-color:#a7ce79;box-shadow:inset 0 0 0 2px #a7ce7935}
.block-piece svg{height:100%;max-width:100%}
.piece-index{position:absolute;bottom:4px;right:7px;font-size:11px;color:#c5cfce}
.piece-used{font-size:28px;color:#a7ce79}
.target-meter{height:8px;background:#344253;margin-top:20px;border:1px solid #536272}
.target-meter span{height:100%;display:block;background:#a7ce79}
/* A full, conventional Klondike table, not mini card icons. */
[data-game="solitaire"] .board-stage{padding:25px 19px 21px}
.solitaire-shell{width:100%;margin:auto;--card-w:calc((100cqw - 48px)/7);--card-h:clamp(76px,8.6vw,132px);--fan-up:27px;--fan-down:15px}
.sol-toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:21px}
.sol-toolbar>span{color:#a9beb4;font-size:11px;letter-spacing:.3px;text-align:right}
.sol-toolbar .retro-button{background:#26463c;border-color:#5d806a;font-size:11px;padding:6px 9px;min-height:31px}
.sol-toolbar .retro-button.active{background:#a7ce79;color:#182a23}
.sol-top,.sol-tableau{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.sol-top{margin-bottom:31px}
.sol-pile{min-width:0;position:relative;padding-top:17px}
.pile-label{position:absolute;top:0;left:0;width:100%;font-size:10px;text-align:center;letter-spacing:.4px;color:#a8c0b2}
.playing-card,.card-slot{height:var(--card-h);width:100%;border:2px solid #e7ddc7;box-shadow:2px 3px 0 #0a201a;color:#253342;border-radius:3px;position:relative;display:block;min-width:0;padding:0}
.playing-card{background:#f2e9d5;touch-action:none;user-select:none}
.playing-card.red{color:#b34439}
.playing-card.selected{outline:3px solid #edcc6c;outline-offset:1px;z-index:80!important;box-shadow:2px 3px 0 #0a201a,0 0 0 3px #edcc6c}
.card-corner{position:absolute;top:5px;left:5px;font-size:16px;line-height:.95;display:flex;flex-direction:column;align-items:center;gap:3px}
.card-corner b{font-weight:bold}
.card-corner>span{font-size:16px}
.card-corner.bottom{top:auto;left:auto;right:5px;bottom:5px;transform:rotate(180deg)}
.card-suit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Georgia,serif;font-size:36px;line-height:1}
.card-back{background:#34495f;border-color:#e4dcc7;display:flex;align-items:center;justify-content:center;padding:5px}
.card-back-pattern{display:flex;align-items:center;justify-content:center;color:#b7a5db;border:2px solid #b7a5db;width:100%;height:100%;outline:1px solid #718299;outline-offset:-5px;font-size:18px;font-weight:bold;background:repeating-conic-gradient(#34495f 0% 25%,#3c536b 0% 50%) 50% / 8px 8px;letter-spacing:1px}
.small-back .card-back-pattern{color:transparent}
.card-slot{background:#15342b;border:2px dashed #537060;box-shadow:none;color:#829c8b;font-size:26px}
.foundation-slot{font-family:Georgia,serif}
.stock-card:not(.card-back){background:#15342b;border:2px dashed #537060;color:#a8c0b2}
.recycle-mark{font-size:30px}
.waste-history{position:absolute;bottom:-18px;left:0;font-size:10px;color:#c9d4c4;white-space:nowrap}
.tableau-col{position:relative;min-width:0}
.tableau-col>.playing-card{position:absolute;left:0}
.tableau-slot{position:absolute;left:0;top:0}
.legal-destination>.tableau-slot,.foundation-slot.legal-destination{border-color:#a7ce79;background:#2c4d38}
.sol-bottom{margin-top:25px;padding-top:15px;border-top:1px solid #4b6a58;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sol-bottom>span{font-size:11px;color:#c9d5c5;line-height:1.6}
.sol-bottom>.retro-button{font-size:10px;background:#26463c;border-color:#5d806a;min-height:32px;padding:7px}
.solitaire-shell>.retro-button{margin-top:12px}
/* Original numbered Mahjong symbols. Coordinates reflect real cover rules. */
.mah-shell{max-width:650px}
.mah-board{position:relative;width:100%;margin:30px auto 19px;user-select:none}
.mah-tile{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #d7c69b;border-bottom:5px solid #aa925f;background:#f2e9d5;box-shadow:3px 4px 0 #0b1726;padding:3px 4px 2px;border-radius:2px;transition:filter .1s}
.mah-tile svg{width:85%;max-height:75%;min-height:0;flex:1}
.mah-id{font-weight:bold;color:#4c463a;font-size:11px;line-height:1.1;letter-spacing:.8px}
.mah-tile.blocked:disabled{opacity:1;filter:brightness(.73)}
.mah-tile.free:hover{background:#fff9e9;transform:translateY(-2px)}
.mah-tile.selected{border-color:#a7ce79;outline:3px solid #a7ce79;outline-offset:0;background:#e0ebca}
.mah-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}
.mah-controls>span{text-align:right;font-size:10px;color:#bac7c9;line-height:1.8}
/* Sudoku: fixed 3x3 divisions; pencil marks never rely on colour alone. */
.sudoku-shell{max-width:490px}
.difficulty-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:18px}
.difficulty-row .retro-button{font-size:11px;padding:7px 3px;min-height:33px}
.sudoku-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));border:3px solid #a8a5b2;background:#777783;gap:1px;user-select:none}
.sudoku-cell{padding:0;aspect-ratio:1;font-size:clamp(18px,2.2vw,27px);font-weight:bold;background:#e9dfcb;color:#5d4b8a;border:0;position:relative;min-width:0}
.sudoku-cell.given{color:#283342;background:#dcd5c5}
.sudoku-cell.related{background:#cfcec5}
.sudoku-cell.same-value{background:#d4c1e8}
.sudoku-cell.selected{background:#a7ce79;box-shadow:inset 0 0 0 3px #4c7141;z-index:1}
.sudoku-cell.conflict{color:#b32f37;background:#f0b9b6}
.sudoku-cell.box-right{border-right:3px solid #59616c}
.sudoku-cell.box-bottom{border-bottom:3px solid #59616c}
.pencil-marks{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);position:absolute;inset:2px;font-size:10px;font-weight:normal;line-height:1;align-items:center;color:#566478}
.pencil-marks>span{text-align:center}
.number-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin-top:16px}
.number-key{min-height:54px;font-size:23px;color:#e1d4ef;border:2px solid #5c5777;box-shadow:2px 2px 0 #111a27;background:#343849;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:bold;line-height:1.1}
.number-key:hover{background:#4a4565;border-color:#b7a5db}
.number-key small{font-size:10px;color:#a9b4b9;margin-top:5px;font-weight:normal}
.sudoku-tools{display:flex;align-items:center;gap:8px;margin-top:13px;flex-wrap:wrap}
.sudoku-tools>span{font-size:10px;color:#bdc7c7;margin-left:auto}
/* Nonograms: generous clue margins; hard 5-cell dividers. */
.nonogram-shell{max-width:500px}
.nono-board{display:grid;grid-template-columns:var(--clue) repeat(var(--n),minmax(0,1fr));grid-template-rows:var(--clue-height) repeat(var(--n),auto);width:100%;margin:0 auto 20px;user-select:none;touch-action:none}
.nono-corner{font-size:15px;color:#8a9baf;display:flex;align-items:center;justify-content:center;line-height:1.2}
.nono-col-clue{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 0 7px;font-size:13px;line-height:1.1;gap:3px;min-width:0;color:#f2e9d5}
.nono-row-clue{display:flex;justify-content:flex-end;align-items:center;padding-right:9px;gap:6px;font-size:13px;color:#f2e9d5}
.nono-col-clue.satisfied,.nono-row-clue.satisfied{color:#9aba7e}
.nono-cell{background:#344559;border:1px solid #5a697b;aspect-ratio:1;min-width:0;padding:0;font-size:19px;font-weight:bold;line-height:1;display:flex;align-items:center;justify-content:center;color:#a6b6c4;touch-action:none}
.nono-cell.filled{background:#f29b62;box-shadow:inset 2px 2px 0 #ffe7bd4d;position:relative}
.nono-cell.crossed{background:#273748}
.nono-cell.five-left{border-left:3px solid #a4b2bb}
.nono-cell.five-top{border-top:3px solid #a4b2bb}
.nono-board.revealed .nono-cell.filled{background:var(--picture-color)}
.nono-board.revealed .nono-cell:disabled{opacity:1}
.nono-board.revealed .nono-cell:not(.filled){color:transparent;background:#202e3d}
.nono-tools{justify-content:center}
.nono-tools .retro-button{min-width:115px}
.nono-reveal{text-align:center;margin-top:20px;display:flex;flex-direction:column;gap:6px;min-height:40px}
.nono-reveal span{font-size:10px;letter-spacing:1.3px;color:#a6b9c2}
.nono-reveal strong{font-size:14px;letter-spacing:1px;color:#f29b62}
@media(min-width:1200px){[data-game="solitaire"] .play-layout{grid-template-columns:minmax(0,1fr) 255px}}
@media(max-width:1100px){.classics-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.classics-cards .card-body h3{min-height:0}.classics-cards .card-body p{min-height:34px}.solitaire-shell{--card-h:clamp(67px,9vw,105px);--fan-up:23px;--fan-down:13px}.card-corner{font-size:13px;left:3px;top:4px}.card-corner>span{font-size:13px}.card-corner.bottom{right:3px;bottom:4px}.card-suit{font-size:28px}.sol-top,.sol-tableau{gap:6px}}
@media(max-width:850px){.sol-toolbar{flex-wrap:wrap}.sol-toolbar>span{font-size:10px}.sol-top,.sol-tableau{gap:4px}.solitaire-shell{--card-h:70px;--fan-up:22px;--fan-down:12px}.pile-label{font-size:8px;letter-spacing:0}.card-corner{font-size:11px;left:2px;top:3px;gap:2px}.card-corner>span{font-size:11px}.card-corner.bottom{right:2px;bottom:3px}.card-suit{font-size:23px}.playing-card,.card-slot{border-width:1px}.card-back{padding:3px}.card-back-pattern{font-size:12px}.sol-bottom{flex-wrap:wrap}.nono-row-clue,.nono-col-clue{font-size:11px}.nono-row-clue{gap:4px;padding-right:7px}.pencil-marks{font-size:10px}.number-key{font-size:20px;min-height:45px}.sudoku-tools .retro-button{font-size:10px;padding:7px}.sudoku-tools>span{font-size:9px}.classic-readouts strong{font-size:24px}.mah-id{font-size:11px}}
@media(max-width:650px){.classics-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}.classics-cards .card-body{padding:12px 10px 0}.classics-cards .card-body h3{font-size:16px;min-height:41px}.classics-cards .card-body p{font-size:10px;min-height:51px}.classics-cards .card-type{font-size:9px}.classics-cards .card-bottom{font-size:11px}.classics-cards .card-bottom .count{font-size:9px}.classics-cards .game-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.classics-cards .game-card:last-child .cartridge-label{grid-column:1/-1}.classics-cards .game-card:last-child .card-art{align-self:center}.classics-cards .game-card:last-child .card-body{padding-bottom:0;padding-top:8px}.classics-cards .game-card:last-child .card-body h3{min-height:0}.classics-cards .game-card:last-child .card-body p{min-height:0}.game-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:6px;padding:3px 1px 8px;max-width:100%;width:100%;scrollbar-width:thin}.game-tab{min-width:33px;width:33px;height:33px;flex-shrink:0}.block-grid{gap:3px;padding:5px}.block-piece{height:88px;padding:12px 16px}.classic-shell{max-width:430px}.classic-readouts{margin-bottom:14px;padding-bottom:12px}.classic-readouts strong{font-size:27px}.block-tray-label{font-size:10px}.retro-button{font-size:11px}.number-pad{gap:4px}.number-key{min-height:49px;font-size:22px}.pencil-marks{font-size:11px}.sudoku-cell{font-size:23px}.sudoku-tools{gap:7px}.sudoku-tools>span{font-size:9px}.difficulty-row{gap:5px}.difficulty-row .retro-button{font-size:10px}.nono-col-clue,.nono-row-clue{font-size:12px}.nono-col-clue{gap:2px}.nono-cell{font-size:17px}.nono-cell.five-left{border-left-width:2px}.nono-cell.five-top{border-top-width:2px}.nono-board{--clue:63px!important}.mah-board{margin-top:25px}.mah-tile{padding:2px;border-width:1px;border-bottom-width:4px;box-shadow:2px 3px 0 #0b1726}.mah-id{font-size:11px}.mah-tile svg{width:95%}.mah-controls .retro-button{font-size:11px}.mah-controls>span{font-size:9px}[data-game="solitaire"] .board-stage{padding:20px 10px}.solitaire-shell{--card-h:clamp(59px,18vw,94px);--fan-up:23px;--fan-down:12px}.sol-top,.sol-tableau{gap:4px}.sol-toolbar{margin-bottom:19px;flex-wrap:nowrap;gap:4px}.sol-toolbar>span{max-width:102px;font-size:9px}.sol-toolbar .retro-button{font-size:10px;padding:5px 7px;min-height:31px}.sol-toolbar .segmented{gap:4px}.pile-label{font-size:8px}.sol-top{margin-bottom:29px}.card-corner{font-size:12px;left:2px;top:3px;gap:2px}.card-corner>span{font-size:12px}.card-corner.bottom{display:none}.card-suit{top:65%;font-size:24px}.card-back-pattern{font-size:12px;outline-offset:-4px;border-width:1px}.card-slot{font-size:24px}.sol-bottom{margin-top:22px;gap:9px}.sol-bottom>span{font-size:10px}.sol-bottom>.retro-button{font-size:9px;min-height:32px}.solitaire-shell .classic-caption{font-size:10px}}
@media(max-width:370px){.classics-cards .card-body h3{font-size:14px;min-height:37px}.classics-cards .card-body p{font-size:11px}.classics-cards .card-bottom{font-size:10px}.classics-cards .card-bottom .count{font-size:8px}.classic-readouts strong{font-size:23px}.classic-readouts span{font-size:10px}.block-piece{height:80px;padding:12px}.sudoku-cell{font-size:20px}.sudoku-tools>span{width:100%;text-align:center;margin:5px 0 0}.nono-board{--clue:56px!important}.nono-col-clue,.nono-row-clue{font-size:10px}.nono-row-clue{gap:4px}.nono-cell{font-size:15px}.nono-reveal strong{font-size:12px}.number-key{font-size:19px;min-height:43px}.pencil-marks{font-size:9px}.card-corner,.card-corner>span{font-size:10px}.card-suit{font-size:21px}.solitaire-shell{--fan-up:21px}.mah-id{font-size:9px}.retro-button{padding:7px 8px}}

/* Arcade Cabinet v4 */
.arcade-shell{width:min(100%,760px);margin:auto;color:#f2e9d5}.arcade-shell .machine-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font:700 10px/1.3 var(--font);letter-spacing:.08em;color:#b9c6c8}.arcade-hint{outline:3px dashed #edcc6c!important;outline-offset:-4px;animation:arcadeBlink .9s steps(2,end) infinite}@keyframes arcadeBlink{50%{outline-color:#f2e9d5}}
.battle-panels{display:grid;grid-template-columns:1fr 1fr;gap:22px}.sea-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;background:#0d2432;padding:6px;border:4px solid #526173;box-shadow:inset 0 0 0 2px #15212c}.sea-cell{aspect-ratio:1;border:0;background:#28566a;color:#f2e9d5;font:900 clamp(12px,2.3vw,24px)/1 var(--font);min-width:0;padding:0;box-shadow:inset 2px 2px 0 #ffffff12,inset -2px -2px 0 #0004}.sea-cell:not(:disabled):hover{background:#32677c}.sea-cell.ship{background:#8b968f;color:#1b2433}.sea-cell.hit{background:#b85234;color:#fff}.sea-cell.miss{background:#214c60;color:#9ec2cc}.sea-cell:disabled{opacity:1}.own-sea{filter:saturate(.8)}
.mine-shell{max-width:560px}.mine-readout{display:flex;justify-content:space-between;background:#101a25;border:4px solid #526173;padding:9px 12px;margin-bottom:10px;color:#a7ce79;font:700 12px var(--font)}.mine-readout strong{font-size:18px;color:#edcc6c}.mine-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:2px;background:#111b25;border:5px solid #66727c;padding:4px}.mine-cell{aspect-ratio:1;border:0;background:#76838a;color:#17222e;font:900 clamp(12px,2.8vw,21px)/1 var(--font);padding:0;box-shadow:inset 3px 3px 0 #aab3b4,inset -3px -3px 0 #3f4c55}.mine-cell.state-1{background:#d5cfbc;box-shadow:inset 0 0 0 1px #928d80}.mine-cell.state-2{background:#7b8790;color:#b83434}.mine-cell.boom{background:#d45b49;color:#fff}.arcade-modes{display:flex;justify-content:center;gap:8px;margin-top:12px}
.connect-shell{max-width:590px}.connect-top{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 8px 5px}.drop-key{border:0;background:transparent;color:#edcc6c;min-height:42px;font:700 13px var(--font)}.drop-key span{display:block;font-size:10px;color:#9fb0b8}.connect-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;background:#3e6f91;border:7px solid #86b6dd;padding:8px;box-shadow:inset 0 0 0 3px #1a4057}.connect-cell{aspect-ratio:1;border:0;background:transparent;padding:2px}.connect-cell i{display:block;width:100%;height:100%;border-radius:50%;background:#172637;box-shadow:inset 3px 3px 0 #0c1721}.connect-cell.p1 i{background:#edcc6c}.connect-cell.p2 i{background:#e48d9e}.connect-cell.winner i{outline:4px solid #f2e9d5;outline-offset:-4px}.connect-key{display:flex;justify-content:center;gap:28px;margin-top:12px;font:700 10px var(--font)}.connect-key i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:7px;vertical-align:-2px}.connect-key .p1{background:#edcc6c}.connect-key .p2{background:#e48d9e}
.mm-shell{max-width:570px}.mm-board{display:grid;gap:4px;background:#111b25;border:5px solid #526173;padding:7px}.mm-row{display:grid;grid-template-columns:30px 1fr 58px;align-items:center;min-height:42px;border-bottom:1px solid #39485a}.mm-row.active{background:#ffffff08}.mm-num{font:700 11px var(--font);color:#8fa0aa}.mm-pegs{display:grid;grid-template-columns:repeat(4,42px);gap:7px}.mm-peg,.mm-color{border:0;border-radius:50%;background:var(--peg);box-shadow:inset 3px 3px 0 #ffffff55,inset -3px -3px 0 #0005}.mm-peg{width:34px;height:34px}.mm-peg.selected{outline:3px solid #f2e9d5;outline-offset:2px}.mm-score{display:grid;grid-template-columns:repeat(2,9px);gap:5px;justify-content:end}.mm-score i{width:8px;height:8px;border:1px solid #71808a;border-radius:50%}.mm-score i.exact{background:#f2e9d5;border-color:#f2e9d5}.mm-score i.near{background:transparent;border:2px solid #edcc6c}.mm-palette{display:flex;justify-content:center;gap:10px;margin:14px 0 10px;flex-wrap:wrap}.mm-color{width:42px;height:42px}.mm-submit{display:block;margin:auto;min-width:180px}
@media(max-width:720px){.battle-panels{grid-template-columns:1fr;gap:16px}.battle-panels section:first-child .sea-grid{max-width:320px}.sea-grid{margin:auto;width:100%}.mm-pegs{grid-template-columns:repeat(4,34px);gap:4px}.mm-peg{width:30px;height:30px}.mm-row{grid-template-columns:25px 1fr 48px}.connect-grid{gap:3px;padding:5px;border-width:5px}.mine-grid{border-width:4px}.mine-cell{box-shadow:inset 2px 2px 0 #aab3b4,inset -2px -2px 0 #3f4c55}}
@media(prefers-reduced-motion:reduce){.arcade-hint{animation:none}}

/* ===== Expansion Pack 2: modern-retro additions ===== */
.next-shell{width:min(100%,720px);margin:auto;padding:clamp(14px,3vw,24px);color:#f3ead9}.next-shell button{font:inherit}.next-hint{outline:3px solid #edcc6c!important;outline-offset:2px}.next-score,.town-top,.spider-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;font-family:var(--font)}.next-score span,.town-top>div{display:flex;flex-direction:column;gap:3px}.next-score strong,.town-top strong{font-size:1.2rem}.next-score span:last-child{text-align:right}
.g2048-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:440px;margin:0 auto;background:#182433;padding:8px;border-radius:14px}.g2048-cell{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;background:#39485a;color:#f3ead9;font-weight:800;font-size:clamp(1.05rem,5vw,2rem);box-shadow:inset 0 1px 0 #ffffff18}.g2048-cell.v2,.g2048-cell.v4{background:#e8dfca;color:#263444}.g2048-cell.v8,.g2048-cell.v16{background:#edcc6c;color:#263444}.g2048-cell.v32,.g2048-cell.v64{background:#f29b62;color:#263444}.g2048-cell.v128,.g2048-cell.v256{background:#83c5b4;color:#20353a}.g2048-cell.v512,.g2048-cell.v1024,.g2048-cell.v2048{background:#b7a5db;color:#263444}.arrow-pad{display:grid;grid-template-columns:repeat(3,52px);gap:7px;justify-content:center;margin-top:18px}.arrow-pad button{height:48px;border:1px solid #ffffff2b;border-radius:10px;background:#314154;color:#f3ead9;font-size:1.25rem}.arrow-pad button:active{transform:translateY(1px)}
.spider-shell{overflow-x:auto}.spider-top{min-width:640px}.spider-cleared{display:flex;gap:5px}.mini-run{display:grid;place-items:center;width:40px;height:30px;border:1px solid #ffffff2b;border-radius:7px;background:#233f39;font:10px var(--font)}.mini-run.done{background:#83c5b4;color:#17342e;font-weight:800}.spider-stock{width:64px;height:52px;border:1px solid #ffffff35;border-radius:9px;background:#f2e9d5;color:#243344;display:flex;flex-direction:column;align-items:center;justify-content:center}.spider-stock small{font-size:10px}.spider-table{display:grid;grid-template-columns:repeat(10,minmax(56px,1fr));gap:5px;align-items:start;min-width:640px;padding-bottom:180px}.spider-col{position:relative;min-height:260px;border:0;background:transparent;padding:0}.spider-card{position:absolute;left:0;right:0;top:calc(var(--i) * 25px);height:58px;border-radius:7px;border:1px solid #1a2934;display:flex;align-items:flex-start;justify-content:space-between;padding:6px;background:#f3ead9;color:#263444;box-shadow:0 2px 4px #0003}.spider-card.down{background:repeating-linear-gradient(45deg,#43685f,#43685f 5px,#31534c 5px,#31534c 10px)}.spider-card.selected{outline:3px solid #edcc6c}.spider-card i{font-style:normal}.empty-col{display:grid;place-items:center;height:58px;border:1px dashed #ffffff35;border-radius:7px;color:#ffffff66;font:11px var(--font)}
.word-theme{text-align:center;font:700 11px var(--font);letter-spacing:.12em;margin-bottom:12px;color:#d9cfee}.wordsearch-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:3px;width:min(100%,500px);margin:auto}.word-cell{aspect-ratio:1;border:0;border-radius:6px;background:#344457;color:#f3ead9;font-weight:800;font-size:clamp(.78rem,3vw,1.05rem)}.word-cell.selected{background:#edcc6c;color:#243344}.word-cell.found{background:#83c5b4;color:#20353a}.word-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.word-list span{padding:6px 9px;border-radius:999px;background:#ffffff0d;border:1px solid #ffffff1f;font:700 10px var(--font)}.word-list span.found{text-decoration:line-through;opacity:.55}
.town-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(100%,480px);margin:auto}.town-lot{aspect-ratio:1;border:1px solid #ffffff20;border-radius:9px;background:#334456;color:#f3ead9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.town-lot:not(:disabled):hover{background:#405268}.town-lot span{font-size:1.5rem}.town-lot small{font:10px var(--font);text-transform:uppercase}.town-lot.house{background:#86b6dd;color:#213347}.town-lot.park{background:#a7ce79;color:#273d2c}.town-lot.shop{background:#edcc6c;color:#493d18}.town-lot.road{background:#68798a}.town-lot.factory{background:#f29b62;color:#4e2d25}.town-next{font-size:1rem!important}.town-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.town-legend span{font:11px var(--font);padding:5px 8px;border:1px solid #ffffff1e;border-radius:999px}
.ladder-goal{display:flex;align-items:center;justify-content:center;gap:16px;margin:6px 0 18px;font:800 clamp(1.2rem,5vw,1.9rem) var(--font)}.ladder-goal span{padding:9px 14px;border-radius:10px;background:#314154}.ladder-chain{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:18px}.ladder-chain span{font:800 1rem var(--font)}.ladder-options{max-width:430px;margin:auto}.ladder-options p{text-align:center;font:11px var(--font);letter-spacing:.15em}.ladder-options>button{width:calc(50% - 5px);margin:4px 2px;padding:12px;border:1px solid #ffffff25;border-radius:9px;background:#34465a;color:#f3ead9;font-weight:800;letter-spacing:.08em}
.scramble-shell{text-align:center}.scramble-clue{display:flex;flex-direction:column;gap:6px;margin:5px auto 20px;max-width:520px}.scramble-clue small{font:11px var(--font);letter-spacing:.14em}.scramble-clue strong{font-size:1.1rem}.scramble-letters{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-bottom:22px}.scramble-letters span{width:46px;height:52px;display:grid;place-items:center;border-radius:9px;background:#f29b62;color:#263444;font:800 1.25rem var(--font);box-shadow:inset 0 1px 0 #fff7}.scramble-form{display:grid;grid-template-columns:1fr auto;gap:8px;max-width:480px;margin:auto;text-align:left}.scramble-form label{grid-column:1/-1;font:11px var(--font);letter-spacing:.13em}.scramble-form input{min-width:0;border:1px solid #ffffff2d;border-radius:9px;background:#f6edda;color:#253445;padding:12px 14px;font-size:16px;font-weight:700;letter-spacing:.08em}.scramble-form button{border-radius:9px}
.groups-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.groups-grid button{min-height:58px;border:1px solid #ffffff23;border-radius:9px;background:#34465a;color:#f3ead9;padding:8px 4px;font:700 clamp(.65rem,2.5vw,.85rem) var(--font)}.groups-grid button.selected{background:#edcc6c;color:#293444}.groups-check{display:block;margin:14px auto 0}.solved-group{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:10px;background:#e48d9e;color:#3c2630;padding:10px;margin-bottom:7px}.solved-group strong{font:800 .85rem var(--font)}.solved-group span{font-size:.8rem;margin-top:3px}
@media(max-width:620px){.next-shell{padding:12px}.groups-grid{grid-template-columns:repeat(2,1fr)}.spider-table,.spider-top{min-width:560px}.spider-card{top:calc(var(--i) * 22px);height:52px}.scramble-form{grid-template-columns:1fr}.scramble-form button{min-height:44px}.wordsearch-grid{gap:2px}.town-lot small{display:none}}
/* Smooth edition: real type instead of pixel lettering, softer corners */
.pixel-text{display:block;font-family:var(--font);font-weight:800;line-height:1;letter-spacing:-.015em;white-space:nowrap}
.brand-wordmark{container-type:inline-size}
.brand-wordmark>.pixel-text{font-size:13.5cqw;max-height:none}
.hero h1{container-type:inline-size}
.hero h1 .hero-line{font-size:14.5cqw;letter-spacing:-.025em}
.play-heading h1 .pixel-text{font-size:clamp(24px,3.4vw,34px);white-space:normal}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}
.hero,.side-card,.daily-feature,.game-card{border-radius:12px;overflow:clip}
.modal,.game-panel{border-radius:12px}
.game-toolbar{border-radius:9px 9px 0 0}
.board-foot{border-radius:0 0 9px 9px}
.btn,.start-button,.retro-button,.icon-button,.game-tab,.level-badge,.level-button,.tool-buttons button,.number-key,.dir,.complete-inline,.toast,.modal-illustration{border-radius:8px}
.round-go{border-radius:50%}
.mah-tile,.playing-card,.card-slot{border-radius:6px}
/* zerocoins.io brand: two-tone wordmark */
.brand-wordmark>.brand-name{font-size:11.5cqw}
.brand-name b{font-weight:inherit;color:#bd5c3d}
.brand-name span{opacity:.55}
