/* Zerocoins studio: warm paper, ink and tactile game pieces. Original local artwork. */
:root{--paper:#eee5d3;--white:#fff7e6;--ink:#233943;--muted:#586561;--screen:#233943;--panel:#2d4650;--radius:14px;--shadow:0 8px 24px #293c4310,0 2px 5px #293c430d}
body{background:radial-gradient(ellipse at 0 0,#fbf5e7,transparent 55%),var(--paper);border-top-width:4px}
.site-header{border-bottom:1px solid #23394330}.brand-name b{color:#b56550}.brand-name span{opacity:.6}
.hero{border:1px solid #233943;background:radial-gradient(ellipse at 80% 0,#98c6b41a,transparent 65%),#233943;box-shadow:var(--shadow);border-radius:22px;overflow:hidden}
.screen-status,.screen-bottom{background:transparent;border-color:#fff3da20}.hero h1 .hero-line{letter-spacing:-.045em}.hero h1 .accent-line{color:#a8cebd}
.start-button,.icon-button,.btn,.retro-button,.level-button,.tool-buttons button,.cp-button,.tg-button,.ic-button{box-shadow:0 2px 5px #102c3620;border-radius:10px;transition:background-color .16s ease,box-shadow .16s ease,border-color .16s ease}
.start-button{background:#e6c570;border-color:#e6c570;box-shadow:0 4px 10px #091d2926}.keycap{box-shadow:none;border-radius:5px;background:#fff3da55}
.icon-button,.level-badge,.lang-switch{border-width:1px}.level-badge{box-shadow:none;border-radius:30px;padding:9px 14px}
.game-card{border:1px solid #23394335;border-radius:16px;background:#fff8e9;box-shadow:0 3px 6px #293c4308,0 9px 22px #293c4309;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.game-card:active{transform:none;box-shadow:0 2px 4px #23394312}.game-card .cartridge-label{background:color-mix(in srgb,var(--cartridge) 55%,#fff7e6);border:0;padding:10px 12px;min-height:38px}
.game-card .cartridge-label h3{font-size:14px;letter-spacing:-.02em}.game-card .card-art{border:0;background:#233943;padding:0 8px}.game-illustration{display:block;width:100%;height:auto}.game-card .card-art svg{height:104px}
.game-card .card-body{padding:12px 12px 0;gap:7px}.game-card .card-type{font-size:9px;letter-spacing:.07em;color:#65746c}.game-card .card-body p{color:#4d605b;line-height:1.5}.game-card .card-bottom{border-top:1px solid #2339431c;padding:11px 0}.card-bottom .count{color:#67736b}
.section-head h2{font-size:14px;letter-spacing:.04em}.select-section{margin-bottom:30px}
.daily-feature{border:1px solid #ffffff30;border-radius:16px;box-shadow:0 5px 18px #0d232926}.daily-top,.daily-bottom{border-color:#ffffff1f;background:#ffffff04}.daily-art{padding:0 8px}.round-go{box-shadow:none;border-radius:50%;background:#e7a184;border-color:#e7a184}
.progress-strip{border:1px solid #23394325;background:#fff5df88;border-radius:14px;box-shadow:none}.progress-icon{border:0;border-radius:11px;background:#e2c99555}
.play-heading p{line-height:1.65}.game-panel{border:1px solid #17303b;border-radius:18px;box-shadow:0 8px 25px #1a35431a;overflow:hidden}
.game-toolbar{border-bottom:1px solid #ffffff20;background:#2d4650;border-radius:0}.live-stat strong{color:var(--game-accent,#e6c570)}.tool-buttons button{border:1px solid #ffffff35;background:#ffffff08;min-height:36px}
.play-wrap .board-stage{background-image:radial-gradient(ellipse at 50% 0,#ffffff06,transparent 65%)}.board-foot{border-top:1px solid #ffffff20;background:#1b333d26;border-radius:0}.board-message{line-height:1.6;color:#d9e5dc}
.level-picker,.how-to-play{border:1px solid #23394335;border-radius:13px;box-shadow:0 3px 9px #23394306;background:#fff8e9}.level-button{border:1px solid #23394340;box-shadow:none}.side-tip{border-color:#23394320}.modal{border:1px solid #23394344;border-radius:20px;box-shadow:0 24px 70px #10293640;background:#fff8e9}.modal-backdrop{background:#142c3c88;backdrop-filter:blur(4px)}
/* Shared board objects retain each game's colours and geometry. */
.board-stage :is(.cell,.crew-cell,.shelf-cell,.flow-cell,.parcel-tile,.crate,.block-cell,.block-piece,.word-cell,.town-lot,.groups-grid button,.number-key,.dir){border-radius:8px;box-shadow:inset 0 1px 0 #ffffff1c,0 2px 4px #071d2620}
.board-stage :is(.board-grid,.block-grid,.dock-board,.g2048-grid){border-radius:12px;border-width:2px;box-shadow:0 3px 14px #071d2620}
.board-stage svg{shape-rendering:geometricPrecision}.board-stage svg rect{rx:2px}.board-stage svg path{stroke-linecap:round;stroke-linejoin:round}
.crate{background-image:linear-gradient(140deg,#ffffff18,transparent 70%)}.cargo-bay,.cargo-pallet{border-radius:10px;box-shadow:inset 0 2px 8px #071d2626}.yard-vehicle{border-radius:9px;box-shadow:inset 0 1px 2px #ffffff33,0 3px 8px #071d2633}.vehicle-window{border-radius:4px}
.sudoku-grid{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px #071d2620}.sudoku-cell{border-radius:0;background-image:linear-gradient(140deg,#ffffff08,transparent)}.nono-cell{border-radius:2px}.nono-board{filter:drop-shadow(0 3px 6px #071d261a)}
.connect-shell button,.mine-shell button,.mm-peg{transition:background-color .14s ease,border-color .14s ease}.mm-peg,.mm-color{box-shadow:inset 0 1px 2px #ffffff30,0 3px 8px #071d2630}
/* Paper cards, quiet felt and softly engraved pieces. */
.playing-card,.fc-card,.hearts-card,.ic-card,.spider-card{background-image:linear-gradient(140deg,#ffffff55,transparent 68%);border-radius:7px;box-shadow:0 1px 2px #071d2625,0 3px 7px #071d2618}
.card-back,.ic-back{background-color:#476a6b;background-image:repeating-linear-gradient(45deg,#ffffff05 0 2px,transparent 2px 8px);border-color:#b1c4b8}.card-back-pattern{border:1px solid #c6d8c066;outline:none;border-radius:3px;background:repeating-linear-gradient(-45deg,#ffffff07 0 2px,transparent 2px 7px);color:#e5e9cc}
.spider-card.down{background:repeating-linear-gradient(45deg,#557b70,#557b70 2px,#486c65 2px,#486c65 9px)}.fc-found,.fc-empty,.card-slot,.hearts-placeholder{border-radius:7px;border-color:#a4b8ab66;background-color:#ffffff04}
.ic-shell,.tg-shell,.cp-shell{font-variant-numeric:tabular-nums}.ic-felt{border-radius:14px;background-image:radial-gradient(ellipse at 40% 0,#ffffff06,transparent 65%)}.ic-setup,.ic-opponent,.hearts-scoreboard>div,.tg-result,.cp-result{border-radius:13px}.ic-message,.tg-status,.cp-status{letter-spacing:.005em}
.chess-board{border:3px solid #102d35;border-radius:10px;box-shadow:0 5px 18px #0b232526}.chess-square.light{background-color:#ece2ca}.chess-square.dark{background-color:#79978b}.chess-piece{width:83%;height:83%;display:grid;place-items:center;text-shadow:none!important}.smooth-chess-piece{display:block;width:100%;height:100%}.chess-piece.white{color:#fff5df}.chess-piece.black{color:#263c43}
.bg-board{border-radius:13px;border-color:#9c7854;background:#e7d4ac;box-shadow:0 5px 17px #071d2620}.bg-point.warm::before{background:#b4785c}.bg-point.cool::before{background:#718f83}.bg-checker{background:radial-gradient(circle at 35% 25%,#fff9e8,#e8d2aa);box-shadow:inset 0 0 0 2px #fff8e955,0 2px 3px #172e3b36}.bg-checker.black{background:radial-gradient(circle at 35% 25%,#526c73,#273d47);border-color:#71898b}
.yacht-die,.bg-die{background:linear-gradient(140deg,#fffaee,#efdfbf);border-color:#f4e8cd;box-shadow:0 3px 7px #1026312b;border-radius:12px}.yacht-die.held{background:linear-gradient(140deg,#f1d98e,#e5c46f);border-color:#e5c46f;box-shadow:0 0 0 2px #f8e7b5}.yacht-die b{display:grid;place-items:center;width:44px;height:44px}.yacht-die b svg,.bg-die svg{width:100%;height:100%}.bg-die svg{width:36px;height:36px}.yacht-category{border-radius:10px;background:#304b55;border-color:#ffffff28}.yacht-category.chosen{background:#4e5e59}
/* Outlier: an easier invitation, not an exam sheet. */
.outlier-panel{background:linear-gradient(150deg,#2b414f,#253b47);border:1px solid #ffffff24;border-radius:18px;box-shadow:0 5px 18px #10263115}.outlier-node{border-radius:12px;border-width:1px;background:#ffffff05}.outlier-node.current{box-shadow:0 0 0 2px #e5c46f22}.outlier-prompt{letter-spacing:-.025em;line-height:1.3}.outlier-scope{color:#c4d5d1}
.outlier-starter{border:1px solid #a5c8b53b;border-radius:10px;background:#a5c8b508;padding:10px 13px;font-size:12px;line-height:1.6;color:#d3e3d9}.outlier-starter summary{cursor:pointer;color:#e9d79e;min-height:24px;display:list-item}.outlier-starter p{padding-top:8px}.outlier-starter strong{color:#fff1cf}.outlier-legacy{font-size:12px;line-height:1.6;padding:12px;border-radius:10px;background:#ffffff08}
.outlier-input-row input{border:1px solid #d5dfd0;border-radius:11px;background:#fff7e4;box-shadow:inset 0 2px 3px #142e3710}.outlier-reveal{border-width:1px;border-radius:15px;background:#ffffff04}.outlier-alt{border-color:#ffffff35;border-radius:20px}.outlier-results li{border-radius:10px;background:#ffffff05}
.footer{border-color:#23394330}.analytics-choice{border:1px solid #23394335;box-shadow:0 3px 12px #23394308;border-radius:14px}.analytics-buttons button{border-width:1px}
@media(hover:hover) and (pointer:fine){.game-card:hover{transform:translateY(-3px);border-color:#23394366;box-shadow:0 8px 22px #23394317}.board-stage button:not(:disabled):hover{filter:brightness(1.04)}}
@media(max-width:650px){.hero{border-radius:17px}.game-card{border-radius:13px}.game-card .cartridge-label{padding:8px 9px;min-height:40px}.game-card .cartridge-label h3{font-size:13px}.game-card .card-art svg{height:82px}.game-card .card-body{padding:9px 9px 0;gap:5px}.game-card .card-bottom{padding:8px 0}.game-panel{border-radius:14px}.yacht-die b{width:34px;height:34px}.bg-die svg{width:31px;height:31px}.board-stage :is(.parcel-tile,.block-cell,.word-cell,.town-lot){border-radius:6px}.chess-board{border-width:2px}.chess-piece{width:86%;height:86%}.playing-card,.fc-card,.spider-card{border-radius:5px}.outlier-panel{border-radius:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.game-card:hover{transform:none}}
/* Keep functional selection and placement cues stronger than decorative depth. */
.dispatch-cell.active-endpoint{box-shadow:inset 0 0 0 2px var(--route-color)}
.shelf-cell.preview-valid{box-shadow:inset 0 0 0 3px #d7f2ba}.shelf-cell.preview-invalid{box-shadow:inset 0 0 0 3px #efb4a0}
.cargo-bay.hint-target{box-shadow:0 0 0 2px #edcc6c}.block-piece.selected{box-shadow:inset 0 0 0 2px #a7ce7970}
.chess-square.in-check{background-color:#bc655b}
