/* Dark reading ink, quiet paper surfaces. Strong edges belong to game states. */
:root { --paper:#f3efe4; --ink:#203b2c; --muted:#455b47; --line:#bcc7b2; --blue:#174b72; --green:#28543c; --surface:#fffdf7; --edge:#819077; --gold:#f3d17b; --paper-lift:inset 0 1px 0 #ffffffb3,0 2px 0 #c2cbb64d,0 5px 12px #34462c0b; }
body { color:var(--ink); background:var(--paper); }
h1,h2,h3 { color:var(--ink); }
.masthead { border-bottom:1px solid #d1d8c8; background:var(--surface); }
.button,select,input,textarea { color:var(--ink); background:var(--surface); border-color:var(--edge); }
.button { border-width:1px; box-shadow:none; font-weight:600; }
.button:hover { background:#e6eddf; border-color:#244d35; }
.button.primary { color:#fffef7; background:#28543c; border-color:#28543c; box-shadow:none; }
.button.primary:hover { background:#123322; }
.plain,.subtitle,.board-caption,.status,.play-instruction>span,.boost-intro,footer { color:#344a39; }
button:disabled { opacity:1; background:#e3e5de; color:#586153; border-color:#969e91; box-shadow:none; }
input::placeholder,textarea::placeholder { color:#586153; opacity:1; }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #9b4500; outline-offset:3px; }
.menu-toggle,.game-heading .play-tools>summary { background:var(--surface); color:#183d29; border:1px solid #819077; }
.game-heading .play-tools>summary:hover { background:#e3ebdc; }
.play-tools>div { background:var(--surface); border:1px solid #a2b195; box-shadow:0 6px 24px #17332218; }
body.in-puzzle-journey .game-heading { border-bottom:1px solid #b9c6ad; }
#top-path .top-stop>span { background:#fffefa; border-color:#607454; color:#24442c; }
#top-path .top-stop.current>span { background:#f3d17b; color:#1b3021; outline:1px solid #987322; font-weight:700; }
#top-path .top-stop.finished>span { background:#214b34; color:#fff; border-color:#214b34; }
.daily-edition { background:linear-gradient(125deg,#244b39,#355d43); border:1px solid #34553d; box-shadow:none; }
.daily-edition h1,.daily-edition .edition-title p { color:#fffdf1; }
.daily-edition .eyebrow,.edition-heading>span,.edition-reward { color:#fff6d5; }
.daily-edition .begin-journey { background:linear-gradient(100deg,#f9e4ad,#f3d17b); color:#142f21; border:1px solid #f7e5b5; box-shadow:none; }
.daily-edition .edition-reward a { color:#ffe28b; text-decoration:underline; text-underline-offset:3px; }
.daily-stop { background:linear-gradient(135deg,#fffef9,#f4f6eb); border:1px solid #adbba0; box-shadow:var(--paper-lift); }
.daily-stops .up-next .daily-stop { border-color:#829971; box-shadow:inset 3px 0 #55764b,var(--paper-lift); }
.daily-stops .collected .daily-stop { background:#eaf0df; border-color:#a8ba97; }
.daily-stop:hover { background:#f0f4e8; transform:none; }
.stop-copy strong,.stop-copy small,.stop-number,.daily-discover small { color:#203d28; }
.stop-game-icon { border:0; background:#e2eccf; color:#33542d; }
.stop-cross .stop-game-icon { background:#dee9ef; color:#264e64; }
.stop-scramble .stop-game-icon { background:#f3deca; color:#754725; }
.stop-sudoku .stop-game-icon { background:#f4e7b7; color:#624b18; }
.stop-maze .stop-game-icon { background:#dfebd9; color:#355936; }
.daily-discover { border-bottom:1px solid #88957c; }
.resume-banner,.compact-resume { background:#ebf0df; border:1px solid #b8c7a6; }
#mobile-navigation { background:#fffdf7; border-top:1px solid #cbd5c0; box-shadow:0 -3px 14px #22392108; }
#mobile-navigation a { color:#334d32; flex:1; max-width:180px; }
#mobile-navigation { gap:10px; }
#mobile-navigation a[aria-current] { background:#e4ecd8; color:#234b35; box-shadow:inset 0 -2px #55764b; }
#site-drawer { background:#faf7ee; border:1px solid #afbea0; }
#site-drawer nav a { --menu-tint:#edf0e1; --menu-icon:#d9e5bb; --menu-ink:#35512c; background:var(--menu-tint); border-color:transparent; box-shadow:none; }
#site-drawer nav a[href="#today"] { --menu-tint:#fcf1cb; --menu-icon:#f1d781; --menu-ink:#705219; }
#site-drawer nav a[href="#packs"] { --menu-tint:#f8e8da; --menu-icon:#edc7a9; --menu-ink:#774728; }
#site-drawer nav a[href="#passport"] { --menu-tint:#e7efdf; --menu-icon:#c8dcb2; --menu-ink:#35542c; }
#site-drawer nav a[href="#collection"] { --menu-tint:#e5edf2; --menu-icon:#c5dbe7; --menu-ink:#2f566e; }
#site-drawer nav a[href="#help"] { --menu-tint:#eee8f0; --menu-icon:#dcd0e2; --menu-ink:#624870; }
#site-drawer nav .drawer-icon { background:var(--menu-icon); color:var(--menu-ink); border:0; }
#site-drawer nav .drawer-copy,#site-drawer nav .drawer-copy small { color:#203b27; }
#site-drawer nav a[aria-current=page] { background:var(--menu-tint); border-color:var(--menu-ink); }
#site-drawer nav a:hover { border-color:var(--menu-ink); }
#site-drawer nav a[aria-current=page] .drawer-copy,#site-drawer nav a[aria-current=page] small,#site-drawer nav a[aria-current=page] .drawer-arrow { color:#234b35; }
#site-drawer #close-menu { background:var(--surface); color:#193d27; border:1px solid #819077; }
.library-card,.pack-card,.mission-card,.badge-keep { background:linear-gradient(135deg,#fffef9,#f4f6eb); border:1px solid #adbba0; box-shadow:var(--paper-lift); }
.library-card h2,.pack-card h2,.library-detail,.library-kind,.library-action,.library-count,.pack-card strong,.pack-card .pack-scene>span { color:#203b27; }
.library-type,.pack-families a { border:1px solid #a5b696; background:var(--surface); color:#23472c; }
.library-type.selected,.pack-families a.selected { background:#234b35; border-color:#163421; color:#fff; }
.library-type.selected span { color:#fff; }
.library-pace { background:#f7edcc; color:#51390a; border:0; }
.pack-card .pack-scene { border-right:1px solid #d5deca; }
.pack-card .pack-scene>span { background:#fffdf5; border:0; }
.pack-quickstart,.pack-intro,.passport-focus { border:1px solid #c6cfac; box-shadow:none; }
.passport-cover { background:linear-gradient(130deg,#244b39,#355d43); border:1px solid #34553d; }
.passport-cover h1,.passport-cover .passport-compact-identity>span { color:#fffef2; }
.passport-cover .eyebrow,.passport-cover-stats,.passport-cover-stats a { color:#ffe7a2; }
.passport-focus { background:linear-gradient(110deg,#fffdf7,#faf0d2); }
.passport-focus p,.focus-heading>span { color:#3c421f; }
.passport-cover progress,.focus-meter progress,.pack-card progress { border:1px solid #667454; height:8px; }
.focus-meter progress::-webkit-progress-value,.pack-card progress::-webkit-progress-value { background:#244e35; }
.badge-keep.collected,.mission-card.ready { background:#ffe99c; border-color:#795510; }
.badge-keep:not(.collected) { border-style:dashed; }
.badge-keep span,.mission-card p,.mission-top { color:#3b5136; }
.game-heading #use-boost,.boost-dialog .boost-owned { background:linear-gradient(120deg,#f9e8b8,#f3d17b); color:#3b2b09; border:1px solid #a58235; box-shadow:none; }
.boost-dialog,.feedback-dialog,.email-dialog { background:var(--surface); color:#203b2c; border:1px solid #a5b696; }
.boost-dialog>p,.boost-dialog .gentle-help p,.boost-choices small,.boost-dialog .boost-actions .plain,.rewarded-help-preview small { color:#334a32; }
.gentle-help { border-color:#7d8c70; }
.email-entry { background:linear-gradient(110deg,#e9efdc,#faf0d2); border:1px solid #b7c7a4; }
.email-entry small,.email-dialog p { color:#30482c; }
.journey-complete .completion-label { color:#2f522d; }
.journey-complete .win-reward { background:#fff9e8; border:1px solid #d2c38e; box-shadow:none; }
.win-reward .win-mission { border-color:#8c834c; }
.journey-complete .win-mission .button { background:var(--surface); color:#294625; border:1px solid #819077; }
.journey-complete .next-puzzle-card { border:1px solid #28543c; }
.completion-emblem { background:linear-gradient(130deg,#ffe79e,#e9b73b); color:#27452a; box-shadow:0 0 0 8px #e6c76d60; }

/* Playing states must differ by outline, weight or marking as well as hue. */
.search-grid,.sudoku-grid,.cross-grid { outline:0; background:#fffdf7; box-shadow:0 2px 0 #bbc7ac,0 6px 12px #34462c12; }
.search-grid { background:linear-gradient(145deg,#fffef9,#eaf0dc); border-color:#6f865f; }
.search-cell { color:#173321; font-weight:650; }
body[data-view=search] .word-list li,body[data-view=search] .word-list li.bank-extra { background:#fffefa; border:1px solid #6b8057; color:#233e25; }
body[data-view=search] .word-list li.found { background:#244e35; color:#fff; border-color:#163522; text-decoration:line-through; }
.search-cell.found { background:#245638; color:#fff; }
.search-cell.selected { background:#f3c64e; color:#172f24; box-shadow:inset 0 0 0 2px #745014; }
.search-cell.hint { background:#ffe08a; color:#173321; box-shadow:inset 0 0 0 2px #795413; }
.sudoku-grid { border-color:#173421; }
.sudoku-cell { background:linear-gradient(145deg,#fffefa,#f3f5e9); border-color:#859079; color:#174b72; }
.sudoku-cell.given { color:#17281d; }
.sudoku-cell.related:not(.selected) { background:#e2e9d7; }
.sudoku-cell.selected { background:#f9d56b; box-shadow:inset 0 0 0 3px #57400f; }
.sudoku-cell.wrong { color:#9b2121; text-decoration:underline; text-decoration-style:wavy; }
.sudoku-cell:nth-child(3n),.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54) { border-color:#253e28; }
.number-pad button,.cross-keyboard button,.maze-pad button { background:linear-gradient(#fffef9,#e9efdf); border:1px solid #8b9c7d; color:#1a3824; box-shadow:inset 0 1px 0 #fff,0 2px 0 #bdc9ae; }
.cross-keyboard [data-key],.number-pad #erase { background:#f9dfa0; border-color:#8a6b28; color:#3d2e0b; }
.cross-grid { background:linear-gradient(145deg,#36533f,#243d2d); }
.cross-cell { background:linear-gradient(145deg,#fffefa,#f0f4ef); }
.cross-cell.block { background:transparent; }
.cross-cell input,.cross-cell small { color:#14281b; }
.cross-cell.active-word { background:#ffe49b; box-shadow:inset 0 0 0 1px #9b7520; }
.cross-cell.selected { background:#234f37; box-shadow:inset 0 0 0 2px #0b2014; }
.cross-cell.selected input,.cross-cell.selected small { color:#fff; }
.cross-cell.wrong input { color:#9b2121; text-decoration:underline wavy; }
.cross-cell.selected.wrong input { color:#fff; }
body[data-view=cross] .current-clue { background:linear-gradient(115deg,#fff3d5,#f1dfa6); color:#24351e; border:0; box-shadow:inset 3px 0 #aa8735,inset 0 1px 0 #fff9e6; }
.scramble-wrap { background:linear-gradient(145deg,#fffaf0 0%,#f7e9d4 50%,#efd7bd 100%); border:1px solid #b49b78; box-shadow:inset 0 1px 0 #fff,0 3px 0 #d5c3a64d,0 7px 16px #674b2210; }
.scramble-letters button { background:linear-gradient(#fffefa,#f5eddc); color:#263720; border:1px solid #9b805c; box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7b594; }
.scramble-letters button:disabled { background:#dedbcf; color:#5a5f53; border-color:#979983; box-shadow:none; }
.maze-viewport { background:linear-gradient(145deg,#fffdf2,#e2ebd2); border:1px solid #83946f; box-shadow:inset 0 1px 0 #fff,0 2px 0 #bdc9ae,0 6px 12px #34462c12; }
.maze-board { background:linear-gradient(145deg,#fffef6,#e8efd9); }
.maze-cell.visited { background:#f6d67a; }
.maze-cell.player:after { background:#1d4d30; box-shadow:0 0 0 3px #fff,0 0 0 5px #193b24; }
.maze-cell.exit:before { background:#fffefa; border:3px solid #234d31; }
.maze-cell.hint { background:#bfdaa6; box-shadow:inset 0 0 0 2px #42652e; }
.sudoku-tools [aria-pressed=true] { background:#234b35; color:#fff; border-color:#163421; }
@media(prefers-contrast:more) {
 :root { --edge:#2c442b; --line:#2c442b; }
 .daily-stop,.library-card,.pack-card,.badge-keep,#site-drawer nav a { border-color:#304d2e; }
}
.share-invitation { margin:20px 0 0; padding-top:16px; border-top:1px solid #7a8b6a; }
.share-invitation .button { width:100%; }
.share-status { font-size:17px; text-align:left; color:#30482c; }
.share-status:empty { display:none; }
.share-invitation input { width:100%; font-size:17px; padding:12px; }
footer { flex-wrap:wrap; }
.learn-links { display:flex; flex-wrap:wrap; gap:10px 20px; width:100%; }
.learn-links a { font-size:17px; min-height:44px; display:inline-flex; align-items:center; }
