/* A sunlit game table: cream tiles, teal enamel, brass rewards, quiet notes.
   Direction: restraint 6, editoriality 3, playfulness 7, density 4,
   geometric order 8, materiality 7, contrast 6. */
:root{--game-cream:#fff5df;--game-paper:#fbf3e1;--game-teal:#376f6a;--game-deep:#294f4a;--game-edge:#668577;--game-gold:#c39142;--game-shadow:#314f4024;--game-red:#a84937;--game-inset:#d8e1cc}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog,#npc-dialog,#quest-dialog){color:var(--game-deep);font-family:var(--sans)}
:is(#npc-dialog,#quest-dialog) :is(button,summary){min-height:44px;border:1px solid #b9c6ad;border-radius:11px;background:var(--game-cream);color:var(--game-deep);padding:10px 14px;font:600 14px/1.5 var(--sans);cursor:pointer}
:is(#npc-dialog,#quest-dialog) :is(button,summary):hover{background:#fff9e9}
:is(#npc-dialog,#quest-dialog) :is(button,summary):focus-visible,#quest-tracker:focus-visible{outline:3px solid #326a87;outline-offset:3px}
#quest-dialog{max-width:720px;background:var(--game-paper);border:3px solid #e4d6b6}
#quest-dialog .dialog-heading{gap:12px;align-items:start}
#quest-dialog .dialog-heading h2{font:650 25px/1.35 var(--sans)}
.quest-card{margin:14px 0;padding:17px;border:1px solid #c3cbb6;border-radius:12px;background:var(--game-cream)}
.quest-card h3,.quest-card h4{font:650 18px/1.4 var(--sans);margin:4px 0 8px}
.quest-card p{line-height:1.6}
.quest-meta{font-size:12px;color:#576e60;margin:0}
.quest-objectives{padding-left:22px;margin:12px 0}
.quest-objectives li{padding:4px 0;line-height:1.6}
.quest-objectives [data-current=true]{font-weight:650}
.quest-actions,.dialogue-choices{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.npc-tasks{margin:16px 0}
.npc-tasks summary{width:100%}
#npc-quest-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#npc-quest-offers .quest-card{padding:12px;margin:12px 0}
.quest-tracker{position:absolute;left:26px;top:88px;z-index:2;display:grid;gap:4px;max-width:280px;text-align:left;padding:10px 14px;min-height:44px;border:1px solid #c3cbb6;border-radius:12px;background:#fff8e9f2;color:var(--game-deep);font:13px/1.5 var(--sans)}
.quest-tracker span{font-size:12px;font-weight:400}
.quest-puzzle-status{margin:0 26px 16px;padding:10px 13px;background:#e3eee0;border-radius:9px;font-size:13px;line-height:1.6}
#universe[data-clean-screen=true] .quest-tracker,#universe[data-loading=true] .quest-tracker{visibility:hidden;pointer-events:none}
@media(max-width:600px){
 .quest-tracker{left:14px;top:84px;max-width:calc(100% - 112px);padding:8px 11px}
 #npc-quest-offers{grid-template-columns:1fr}
 #quest-dialog .dialog-heading h2{font-size:21px}
 .quest-card{padding:13px}
}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) :is(h1,h2,h3){font-family:var(--sans);font-weight:650;letter-spacing:-.025em}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) button:not(.play-cell):not(.nono-cell):not(.loop-edge):not(.graph-edge):not(.island){min-height:44px;border-radius:11px;border:1px solid #b9c6ad;background:#f9f0db;box-shadow:0 3px 0 #cad0b9;padding:10px 15px;font-weight:600;transition:background .12s,box-shadow .12s}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) button:hover:not(:disabled){background-color:#fff9e9}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) button:active:not(:disabled){box-shadow:inset 0 2px 3px #294f4a30}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) :is(button,input,select,summary):focus-visible{outline:3px solid #326a87;outline-offset:3px;z-index:2}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) button:disabled{opacity:.5;box-shadow:none;cursor:default}
:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) :is(.primary-button,.solid-button){background:var(--game-teal)!important;color:var(--game-cream);border-color:var(--game-deep)!important;box-shadow:0 3px 0 var(--game-deep)!important}
:is(#game,#puzzle-dialog) :is(select,input[type=number]){border:2px solid #b4c4b2;border-radius:9px;background:#fff9e9;color:var(--game-deep);min-height:44px;font:600 15px var(--sans);box-shadow:inset 0 2px 0 #d9d9bf;padding:8px 10px}
:is(#game,#puzzle-dialog) .level-picker>span{font-size:11px;font-weight:600;color:#62735d;letter-spacing:.04em}
#puzzle-dialog{padding:0;background:var(--game-paper);border:3px solid #e4d6b6;border-radius:23px;box-shadow:0 8px 0 #63766c,0 25px 80px #142c3b65;width:min(1050px,calc(100% - 36px))}
#puzzle-dialog::backdrop,#account-dialog::backdrop{background:#193e46a3}
#puzzle-dialog>.dialog-heading{padding:20px 26px;margin:0;background:var(--game-teal);color:var(--game-cream);border-bottom:4px solid #c8b58a;gap:14px}
#puzzle-dialog .dialog-heading h2{font-size:25px;line-height:1.35}
#puzzle-dialog .dialog-tools button{background:#f9edce;color:var(--game-deep);box-shadow:0 3px 0 #244f49;padding:8px 12px}
#puzzle-reward{color:#ffe3a2;font:600 11px var(--sans);letter-spacing:.04em;margin-bottom:5px}
#puzzle-dialog>.puzzle-heading{padding:0 26px;margin:20px 0}
#world-game{padding:0 26px 26px;gap:26px;grid-template-columns:minmax(0,1.65fr) minmax(210px,1fr)}
.park-workbench>h3,#level-title{font-size:20px;color:#365b4d}
#park-task,#game-task{font-size:14px;line-height:1.75;color:#536650;margin:10px 0 20px}
.game-section{padding-top:30px}
#game .game-heading{border-bottom:3px solid #bdcbb5;padding-bottom:20px;margin-bottom:24px}
#game-title{font-size:32px;color:var(--game-teal)}
#game .stage-panel{background:var(--game-paper);border:2px solid #e0d7bb;border-radius:20px;padding:26px;box-shadow:0 5px 0 #d4d8c0}
.park-puzzle-notes,#game .game-sidebar{background:transparent;border:0;border-left:2px solid #d9cda9;border-radius:0;box-shadow:none;padding:8px 0 8px 22px}
:is(#game,#puzzle-dialog) .method-pill{border:0;background:#e0e8d5;color:#3e6559;font-size:11px;line-height:1.6;padding:6px 12px;margin-bottom:12px;border-radius:6px}
:is(#game,#puzzle-dialog) :is(.rule-box,.question-box){border-color:#ddd5b9;padding-top:17px;margin-top:18px}
:is(#game,#puzzle-dialog) :is(.rule-box,.question-box) h3{font-size:13px;color:#856b36}
:is(#game,#puzzle-dialog) :is(.rule-box,.question-box) p{font-size:12px;line-height:1.9;color:#536650}
.move-badge{display:flex;align-items:center;gap:8px;border-radius:12px;background:#e5e8d1;border:1px solid #c5cfb2;padding:8px 12px;font-size:11px;color:#61715b}
.move-badge strong{font:600 24px var(--mono);color:var(--game-teal)}
.puzzle-controls h4{font-weight:650;color:#58715f;font-size:12px;margin-bottom:12px}
.puzzle-stage{--tile:#fff5dd;--tile-shadow:#c4cdb4}
.play-grid{border:6px solid var(--game-edge);padding:5px;border-radius:16px;background:#aabfa6;gap:3px;box-shadow:0 5px 0 #496b5c,0 9px 16px var(--game-shadow)}
.play-cell{border-radius:5px;background:var(--tile);color:var(--game-teal);box-shadow:inset 0 -3px 0 var(--tile-shadow),inset 0 1px 0 #fffdf2;font-weight:650;position:relative}
.play-cell:disabled{opacity:1!important}
.play-cell:hover:not(:disabled){background:#fffbed;box-shadow:inset 0 0 0 2px #5c8d79,inset 0 -3px 0 #b8cdb2}
.play-cell.wall{background:repeating-linear-gradient(135deg,#b7c6ac,#b7c6ac 5px,#c6d3bb 5px,#c6d3bb 9px);box-shadow:inset 0 2px 3px #61785b40;border:1px solid #aaba9f;color:#526957}
.play-cell.block{background:#4e918a!important;color:#fff5dd;box-shadow:inset 0 2px 0 #9dc3ac,inset 0 -4px 0 #316a62}
.play-cell.block-1{background:#6eaba4!important}.play-cell.block-2{background:#427972!important}.play-cell.block-3{background:#6c9d82!important}
.play-cell.star{color:#a77c2f;text-shadow:0 1px #fff9e9}.play-cell.start-cell{color:#ad643e}
.play-cell.preview.legal{background:#bad7be!important;box-shadow:inset 0 0 0 1px #87ae91}.play-cell.preview.illegal{background:#edc3ad!important}
.piece-preview path{stroke:#386d5d;stroke-width:2.5;stroke-dasharray:5 4;stroke-linecap:round}.piece-preview:not(.legal) path{stroke:#ac523f}
.piece-tray{gap:9px}.piece-button{min-height:83px!important;background:#e5e9d5!important;border:1px solid #bdcbb1!important;box-shadow:0 3px 0 #b7c3a4!important;padding:12px 7px 7px!important;font-size:11px!important;border-radius:12px!important}
.piece-button.selected{outline:2px solid #36766b;outline-offset:1px;background:#d1e4cc!important;border-color:#36766b!important}
.piece-color-0{--piece:#4e918a}.piece-color-1{--piece:#6eaba4}.piece-color-2{--piece:#427972}.piece-color-3{--piece:#6c9d82}
.piece-svg{filter:drop-shadow(0 2px 0 #385f5440)}
.game-tools{gap:9px;margin-top:24px}.game-tools button{font-size:12px;color:#496653}
.game-save-status{font-size:11px;line-height:1.7;color:#6d765e;margin-top:12px;min-height:19px}.game-save-status[data-state=error]{color:var(--game-red)}
.stage-help,.keyboard-help p{font-size:12px!important;line-height:1.8;color:#64705c}.keyboard-help{border-top:1px dashed #bcc9ae;margin-top:18px;padding-top:12px}.keyboard-help summary{font-size:11px;color:#61755f;min-height:32px;cursor:pointer}
:is(#park-message,#game-message){font-size:13px;line-height:1.7;color:#4e6a57}.error{color:var(--game-red)!important}
.park-win,.win-panel{border:2px solid #b6c999;border-radius:15px;background:#e6edcf;box-shadow:0 4px 0 #bac8a2;padding:20px}
.park-win.activity-loss{border-color:#d2b69d;background:#f2e5d5;box-shadow:0 4px 0 #c8ae93}
.park-win.activity-loss .oxygen-prize{display:none}
.park-win h3,.win-panel h3{font-size:21px!important;color:#477054}.park-win p,.win-panel p{color:#536a49}
.park-win.activity-loss{border-color:#d1b69f;background:#f0e3d4;box-shadow:0 4px 0 #c8b09c}
.park-win.activity-loss .oxygen-prize{display:none}
.oxygen-prize{background:#b7d5a5;border-color:#d9e8c5;font-family:var(--sans)}
.play-cell.visited{background:#9fc7ae;box-shadow:inset 0 0 0 1px #81ac93;color:#355f52}
.play-cell.crate{background:#deb376;color:#724f2f;box-shadow:inset 0 0 0 3px #bd915d,inset 0 0 0 5px #f1d6a2,inset 0 -5px 0 #ba8956}
.play-cell.crate.at-goal{background:#a8c994;color:#3f6b48;box-shadow:inset 0 0 0 3px #84a772,inset 0 0 0 5px #d4e2b7}
.nonogram-board{padding:10px;border:6px solid var(--game-edge);border-radius:16px;background:#cfdbc4;gap:3px;box-shadow:0 5px 0 #496b5c}
.column-clue,.row-clue{color:#486957;font:600 14px/1.5 var(--mono)}
.row-clue{white-space:nowrap}
.nono-cell{background:#fff6de;border:0;border-radius:4px;box-shadow:inset 0 -2px 0 #d8d9ba;color:#9b7652;font-weight:600}
.nono-cell.filled{background:#467d6e;box-shadow:inset 0 2px 0 #88ad93,inset 0 -3px 0 #2e5b4f}.nono-cell.empty{color:#967c5c;background:#e9e9d0}
.loop-board,.graph-board{border:3px solid #9eb59d;border-radius:18px;background:#e8eed6;box-shadow:0 5px 0 #b0bea0}
.loop-clue{color:#426853;font-family:var(--mono);font-weight:600}.loop-dot{background:#739078;box-shadow:0 1px 0 #fcf9dd}
.loop-edge.on{background:var(--game-teal);box-shadow:0 2px 0 #284f48}.loop-edge:not(.on){background:#b8c8ad}
.graph-line{stroke:#adbfa6;stroke-dasharray:2 2}.graph-line.on{stroke:#548270;stroke-dasharray:none;stroke-width:1.5}
.graph-edge{background:#f8edcc;border:1px solid #b1bd9f;color:#587458;box-shadow:0 2px 0 #b4c29e}.graph-edge.on{background:#e3bc6c;color:#6c512a;border-color:#b68d47}
.graph-edge:disabled{pointer-events:none}
.island{background:#fff4d7;color:#6a5734;border:3px solid #c5b789;box-shadow:0 3px 0 #b3a97b;font-family:var(--mono)}.island.matched{background:#c5dbac;color:#375c45;border-color:#90ae78}
.play-cell.light{background:#dbe4cf;color:#99af91;box-shadow:inset 0 2px 3px #77906955}.play-cell.light.on{background:#f1d28c;color:#94743c;box-shadow:inset 0 2px 0 #fff3b8,inset 0 -4px 0 #c5a660}
.hanoi-pegs{background:#e7eacf;border-bottom:8px solid #b8a273;border-radius:15px;padding:20px 8px 0}.peg{background:transparent!important;box-shadow:none!important;border-color:transparent!important}.peg.selected{background:#d0dfbe!important;border-color:#6e967a!important}
.disk{background:#669b84;border:1px solid #42735f;box-shadow:inset 0 2px 0 #a4c6a2,0 2px 0 #456b58;border-radius:8px;color:#fff8dc;font-family:var(--mono)}
.peg-label{color:#627655;font-size:11px}.river-banks{gap:28px}.bank{background:#dbe6c3;border-color:#bccda3;border-radius:18px 18px 8px 8px;padding:15px}.bank h4{font-size:12px;color:#55704d;margin-bottom:12px}
.cargo{background:#fff1cf!important;box-shadow:0 3px 0 #b0be92!important}.cargo.selected{background:#d3e2b8!important;outline:2px solid #62896b;outline-offset:1px}
.farmer{color:#486f58;font-size:12px}.river-water{background:#bad8d2;color:#639d99;border-radius:12px;border-bottom:4px solid #98beb5;font-family:var(--serif);letter-spacing:.2em}
.jug-card{background:transparent;border:0;box-shadow:none}.jug-vessel{border:4px solid #659386;border-top-width:2px;border-radius:8px 8px 24px 24px;background:#eef2dc;box-shadow:inset 3px 0 0 #fffbdf,0 4px 0 #bdcdb0}.jug-water{background:#96c6bd;border-top:3px solid #c5e1c9}.jug-vessel strong{color:#355f54;text-shadow:0 1px #edf3d9;font-family:var(--mono)}
.jug-card p{font-size:12px;color:#62715d}.target-banner{background:#e6dbb2;border:0;border-radius:9px;color:#806738;font-size:13px;font-weight:600}
.heap-row{border-color:#d4dcbd;background:#e8edd7;border-radius:12px;padding:12px;margin-bottom:9px;gap:10px}.heap-row h4{font-size:12px;color:#637554}.stones i{font-size:0;width:15px;height:19px;border-radius:50% 50% 42% 42%;background:#ddb66b;box-shadow:inset -3px -3px 0 #b78f49,inset 2px 2px 0 #f7d792;display:inline-block;margin:2px}.heap-row strong{font:600 18px var(--mono);color:#67784f}
.code-picks{background:#dce7cf;border:3px solid #aac1a4;border-radius:15px;padding:16px;gap:10px;margin-bottom:16px}.code-picks .field{margin:0;min-width:0}.code-picks .field>span{font-size:10px;color:#5b7456}.code-picks select{font:600 24px var(--mono)!important;background:#fff4d6!important;border-color:#b4bb96!important;text-align:center;min-width:0;width:100%;height:56px}
.guess-table{width:100%;border-collapse:separate;border-spacing:0 7px;margin-top:20px;font-size:13px;table-layout:fixed}.guess-table th{font-size:11px;font-weight:600;color:#698060;border:0;text-align:center;padding:6px}.guess-table th:first-child{width:46%;text-align:left;padding-left:14px}.guess-table td{padding:10px;background:#e8edd7;border-top:1px solid #d6dfc4;border-bottom:3px solid #ccd6b9;text-align:center;color:#45634f}.guess-table td:first-child{text-align:left;border-radius:10px 0 0 10px;padding-left:14px;font:600 17px var(--mono);letter-spacing:.09em}.guess-table td:last-child{border-radius:0 10px 10px 0}.guess-table caption{font-size:11px;text-align:left;color:#718064;padding:10px 0}.feedback-peg{display:inline-grid;place-items:center;min-width:27px;height:27px;border-radius:50%;background:#477b68;color:#fff4d8;font:600 13px var(--mono);box-shadow:inset 0 -3px 0 #295747}.feedback-peg.misplaced{background:#ddbc73;color:#705a2e;box-shadow:inset 0 -3px 0 #b79855}
.cipher-message,.decoded-message{padding:19px;border-radius:12px;border:2px solid #bac9a9;background:#e5ead3;color:#3a6454;font:600 24px/1.6 var(--mono);overflow-wrap:anywhere}.decoded-message{background:#fff1cf;border-color:#dbc99b;color:#927343}.mini-label{color:#69805e;font-size:11px;letter-spacing:.08em}.alphabet{gap:5px;margin-top:18px}.alphabet>div{border:1px solid #c4cfaf;border-radius:7px;overflow:hidden;box-shadow:0 2px 0 #c4cbb2}.alphabet span{background:#f6ecd1;color:#6d7959}.alphabet strong{background:#bcd1b3;color:#3f6554}
.households{gap:12px}.house{background:#e6ead1;border:0;border-bottom:4px solid #c3cba8;border-radius:13px;padding:14px 9px}.house>span{color:#759475;font-size:39px}.house .field>span{font-size:11px}.house input{width:100%;text-align:center;font-family:var(--mono)!important}
.postal-proof{background:#e6ead1;border-radius:18px;color:#50734d}.postal-icon{color:#8ba277}.proof-form{border:1px dashed #b6c7a4;border-radius:13px;background:#e9edd8;padding:17px}.proof-form .field{font-size:12px}.inline-stat{font-size:12px;color:#60744f}

/* The account passport is available from both game entry points. */
.account-entry{white-space:nowrap;pointer-events:auto;opacity:1!important;color:#346859!important;border:1px solid #b8cbb0!important;background:#edf3d9!important;min-height:44px;border-radius:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:650}
.account-entry::before{content:'✧';font-size:18px;margin-right:6px;color:#9a7833}
.account-entry[data-save-state=error]{border-color:#b17b52!important;color:#97533b!important}.account-entry[data-save-state=error]::after{content:' !';font-weight:700}
#account-dialog{width:min(480px,calc(100% - 28px));max-height:90dvh;overflow:auto;padding:25px;background:#fcf2da;border:3px solid #d9cba7;border-radius:22px;box-shadow:0 7px 0 #879b7a,0 24px 80px #183b4855;color:var(--game-deep)}
.account-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.account-heading h2{font-size:23px;line-height:1.35;margin:0}.passport-mark{color:#a78339;font-size:33px}.account-close{margin-left:auto;flex-shrink:0;width:44px;font-size:22px;padding:4px!important}
.account-intro{font-size:14px;line-height:1.8;color:#607453;margin-bottom:16px}.account-status{font-size:12px;line-height:1.8;background:#e7ebd3;border-radius:8px;padding:10px 12px;margin:14px 0;color:#55714e}.account-status[data-state=error]{background:#f1dfc6;color:#98503b}
.account-providers{display:grid;gap:12px;margin:20px 0}.account-provider-x{background:#356c61!important;color:#fff4d8;border-color:#356c61!important;box-shadow:0 3px 0 #28564e!important}.account-provider{font-size:14px}.account-guest{background:transparent!important;border-color:transparent!important;box-shadow:none!important;font-size:12px;color:#617654}
.account-privacy{font-size:11px;line-height:1.9;color:#738066;margin-top:22px;border-top:1px solid #dbd9bc;padding-top:16px}.account-retry{margin:5px 0 12px}.account-logout{margin-top:18px;font-size:12px;color:#746a4d}
.explorer-name{font:600 14px var(--mono);color:#4f775a;overflow-wrap:anywhere;margin:18px 0}.passport-stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:15px 0}.passport-stats>div{padding:10px 0;border-bottom:3px solid #d3cf9c}.passport-stats dt{font-size:11px;color:#778361}.passport-stats dd{font:600 29px var(--mono);margin:8px 0 0;color:#3b7364}.saved-location{font-size:11px;color:#7b8469;margin:15px 0 22px}.account-body h3{font-size:14px}.passport-progress{list-style:none;margin:12px 0;padding:0;max-height:200px;overflow:auto}.passport-progress li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #dedfc4;font-size:12px}.passport-progress strong{white-space:nowrap;color:#83904e}.account-empty{font-size:13px;color:#7b8267;line-height:1.8;margin-top:12px}
@media(max-width:900px){.world-header{gap:12px}.place-heading{display:none}}
@media(max-width:700px){
 #puzzle-dialog{width:calc(100% - 18px);max-height:94dvh;border-radius:18px}
 #puzzle-dialog>.dialog-heading{padding:16px 14px;align-items:flex-start;gap:8px}#puzzle-dialog .dialog-heading h2{font-size:20px}#puzzle-dialog .dialog-tools{gap:5px}#puzzle-dialog .dialog-tools button{padding:7px 9px;min-width:40px}
 #puzzle-dialog>.puzzle-heading{padding:0 14px;margin:16px 0;align-items:center}.puzzle-heading .level-picker{width:calc(100% - 83px)}.puzzle-heading select{font-size:13px!important}
 #world-game{grid-template-columns:1fr;padding:0 14px 22px;gap:23px}.park-puzzle-notes,#game .game-sidebar{padding:20px 0 0;border-left:0;border-top:2px solid #d8ccaa}
 #game-title{font-size:27px}#game .stage-panel{padding:16px}.game-section{padding-top:20px}.game-layout{gap:20px}
 .move-badge{padding:7px;gap:5px}.move-badge strong{font-size:21px}.move-badge span{font-size:10px}.park-workbench>h3,#level-title{font-size:18px}
 .play-grid{border-width:4px;gap:2px;padding:4px;border-radius:12px}.nonogram-board{padding:5px;border-width:4px;gap:2px}.column-clue,.row-clue{font-size:12px}.piece-button{min-height:74px!important}
 .code-picks{padding:12px 9px;gap:7px}.code-picks select{font-size:21px!important;padding:6px!important}.heap-row{padding:9px;gap:7px}.stones{gap:2px}.stones i{width:12px;height:16px;margin:1px}
 .cipher-message,.decoded-message{font-size:20px;padding:14px}.game-tools button{padding:9px 12px!important}.stage-help{font-size:11px!important}
 .site-header{flex-wrap:wrap;gap:12px}.site-header .language-switch{flex-wrap:wrap;margin-left:auto;gap:8px}.site-header .account-entry{max-width:180px}
}
@media(max-width:600px){
 .world-actions .account-entry{position:absolute;left:0;top:60px;max-width:150px;font-size:12px;padding:8px 12px;min-height:42px}
 #account-dialog{padding:20px}.account-heading h2{font-size:21px}.account-intro{font-size:13px}
}
@media(prefers-reduced-motion:reduce){:is(#game,#puzzle-dialog,#account-dialog,#map-dialog) button{transition:none}}

/* Daily activity loop: the same cream tabletop language, with progress and
   personal history kept as one readable column on phones. */
#activity-dialog{width:min(760px,calc(100% - 30px));max-height:92dvh;overflow:auto;padding:24px;background:var(--game-paper);border:3px solid #e4d6b6;border-radius:22px;box-shadow:0 7px 0 #879b7a,0 24px 80px #183b4855;color:var(--game-deep);font-family:var(--sans)}
#activity-dialog::backdrop{background:#193e46a3}
#activity-dialog button{min-height:44px;border-radius:11px;border:1px solid #b9c6ad;background:var(--game-cream);color:var(--game-deep);padding:9px 14px;font:600 14px/1.4 var(--sans);cursor:pointer}
#activity-dialog button:hover:not(:disabled){background:#fff9e9}
#activity-dialog button:disabled{opacity:.55;cursor:default}
#activity-dialog :is(button,summary):focus-visible{outline:3px solid #326a87;outline-offset:3px}
#activity-dialog .primary-button{background:var(--game-teal)!important;color:var(--game-cream);border-color:var(--game-deep)!important;box-shadow:0 3px 0 var(--game-deep)!important}
#activity-dialog .dialog-heading{align-items:start;gap:12px}
#activity-dialog .dialog-heading h2{font:650 25px/1.35 var(--sans);margin:2px 0 0}
#activity-dialog .dialog-heading h2:focus{outline:none}
#activity-dialog .dialog-tools button{padding:7px 10px}
.activity-intro{font-size:14px;line-height:1.75;color:#607453;margin:0 0 12px}
.activity-summary{font-size:12px;line-height:1.7;background:#e7ebd3;border-radius:9px;padding:10px 12px;margin:12px 0;color:#55714e}
.activity-summary[data-state=error],.activity-error{color:#98503b}
.activity-pending{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;padding:10px 12px;border-radius:9px;background:#f1dfc6;color:#8b513b;font-size:12px;line-height:1.6}
.activity-pending[hidden],.activity-puzzle-status[hidden]{display:none!important}
.activity-pending button{margin-left:auto}
.activity-list{display:grid;gap:12px;margin:16px 0 22px}
.activity-group{display:grid;gap:10px}
.activity-group>h3{font:650 15px/1.4 var(--sans);margin:6px 0 0;color:#5c7057}
.activity-pk-group{margin-top:8px;padding-top:14px;border-top:2px solid #d9cda9}
.activity-pk-group>h3{color:#7b6038}
.activity-card{padding:15px;border:1px solid #c3cbb6;border-radius:13px;background:var(--game-cream)}
.activity-card[data-activity-state=completed]{background:#e8efd2;border-color:#aebf96}
.activity-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}
.activity-card h3{font:650 18px/1.4 var(--sans);margin:0 0 4px}
.activity-meta,.activity-note{font-size:12px;line-height:1.65;color:#5e735f;margin:5px 0}
.activity-badge{display:inline-block;flex-shrink:0;border-radius:999px;padding:5px 9px;background:#d9e4cc;color:#47664e;font-size:11px;font-weight:650;white-space:nowrap}
.activity-badge[data-state=closed]{background:#ecded0;color:#8d5840}
.activity-badge[data-state=upcoming]{background:#e5e0c7;color:#7b6a3e}
.activity-progress,.activity-question{font-size:13px;line-height:1.65;margin:8px 0;color:#426454}
.activity-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.activity-detail{margin-top:13px;padding-top:12px;border-top:1px dashed #c7cfb7}
.activity-detail p{font-size:12px;line-height:1.75;margin:7px 0}
.activity-result{background:#e3eee0;border-radius:8px;padding:9px 11px;color:#3f6652}
.activity-error{font-size:12px;line-height:1.7;margin:8px 0}
.npc-activity{margin:16px 0;padding:14px;border:1px solid #c3cbb6;border-radius:13px;background:#f7efda}
.npc-activity>h3{font-size:14px!important;margin:0 0 8px;color:#5f7358}
.npc-activity h4{font:650 13px/1.4 var(--sans);margin:12px 0 6px;color:#6b765a}
.npc-activity .activity-card{padding:0;border:0;background:transparent}
.npc-activity .activity-actions{margin-top:12px}
.activity-tracker{position:absolute;left:26px;top:164px;z-index:2;min-height:42px;padding:9px 13px;border:1px solid #c3cbb6;border-radius:12px;background:#edf3d9f2;color:var(--game-deep);font:650 12px/1.5 var(--sans);text-align:left}
.activity-tracker[data-state=pending]{border-color:#b17b52;color:#97533b;background:#f5e4cdf2}
.activity-tracker:focus-visible{outline:3px solid #326a87;outline-offset:3px}
#universe[data-clean-screen=true] .activity-tracker,#universe[data-loading=true] .activity-tracker{visibility:hidden;pointer-events:none}
.activity-records{margin-top:24px;padding-top:18px;border-top:2px solid #d9cda9}
.activity-records-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}
.activity-records-heading h3{font:650 18px/1.4 var(--sans);margin:0}
#activity-records{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.activity-record{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:10px;background:#f1f1dd;border:1px solid #d8ddc4;font-size:12px;line-height:1.6}
.activity-record>div{display:grid;gap:3px;min-width:0}
.activity-record>div:last-child{justify-items:end;text-align:right}
.activity-record strong{color:#3e6354;overflow-wrap:anywhere}
.activity-record-meta{color:#748163;font-size:11px}
.activity-record-points{white-space:nowrap;color:#846b33}
.activity-record small{color:#925d43;font-size:11px}
#activity-records-status{font-size:12px;line-height:1.7;color:#66775d;margin:8px 0}
#activity-records-status:empty{display:none}
#activity-records-status[data-state=error]{color:#98503b}
#activity-records-more{margin-top:4px}
.activity-puzzle-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 26px 16px;padding:10px 13px;background:#e3eee0;border-radius:9px;font-size:13px;line-height:1.6;color:#3f6652}
.activity-puzzle-status[data-state=error]{background:#f1dfc6;color:#98503b}
.activity-puzzle-status button{margin-left:auto}
@media(max-width:700px){
 #activity-dialog{width:calc(100% - 18px);max-height:94dvh;padding:18px 14px;border-radius:16px}
 #activity-dialog .dialog-heading h2{font-size:21px}
 .activity-card,.activity-record{padding:12px}
 .activity-record{display:grid;gap:6px}
 .activity-record>div:last-child{justify-items:start;text-align:left}
 .activity-puzzle-status{margin:0 14px 14px}
}
@media(max-width:600px){
 .activity-tracker{left:14px;top:154px;max-width:calc(100% - 112px);padding:8px 11px}
 .activity-records-heading{display:grid}
}
