:root{--accent:#ed9565;--ink:#233b40;--soft:#eef3ec}*{box-sizing:border-box}body{margin:0;background:#f7f5ee;color:var(--ink);font:500 15px 'DM Sans',sans-serif}button,select{font:600 14px 'DM Sans',sans-serif}button{cursor:pointer;border:0;border-radius:12px;background:var(--ink);color:white;padding:12px 17px;transition:transform .15s,background .15s}button:hover{transform:translateY(-2px);background:#365759}button:focus-visible,select:focus-visible{outline:3px solid #e77343;outline-offset:3px}button.secondary{background:#e7eee7;color:var(--ink)}#app{max-width:1160px;max-height:1000px;margin:auto;padding:22px 28px}header{display:flex;justify-content:space-between;align-items:center;gap:10px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#63817b}h1{font:600 clamp(25px,3.1vw,39px) 'Fredoka',sans-serif;margin:5px 0}header p{margin:0;color:#6d807e;font-size:14px}#mute{background:#e6eee7;color:var(--ink);font-size:22px;padding:8px 16px}nav{margin:20px 0 14px;display:flex;gap:15px;align-items:center;font-size:12px}nav label{display:flex;gap:8px;align-items:center}select{border:1px solid #d6dfd6;color:var(--ink);border-radius:8px;background:white;padding:7px}#progress{margin-left:auto;font-size:12px;color:#698078}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.world-wrap{position:relative;min-width:0;border-radius:25px;overflow:hidden;background:#dae8e1;box-shadow:inset 0 0 0 1px #cbdcd2}#world{height:470px;touch-action:none;outline:none}canvas{display:block;width:100%;height:100%}#world-badge{position:absolute;bottom:18px;left:22px;font-size:10px;letter-spacing:2px;color:#54736b;pointer-events:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#e7eee7}aside{background:white;border:1px solid #e4e7dd;border-radius:22px;padding:22px;display:flex;flex-direction:column}aside h2{font:500 23px 'Fredoka';margin:8px 0 16px}.tools{display:flex;gap:6px;flex-wrap:wrap}.tools button{font-size:12px;padding:9px 12px;background:#eaf0e8;color:var(--ink)}.lesson{font-size:12px;line-height:1.6;border-top:1px solid #e9ece2;margin:17px 0 0;padding-top:14px;color:#6b7f7b}#feedback{font-size:13px;min-height:35px;margin:14px 0;line-height:1.5}footer{display:flex;align-items:center;gap:14px;margin-top:12px;font-size:11px;color:#6d807e}footer button{margin-left:auto;background:transparent;color:#506f69;padding:8px;font-size:11px}#win{position:absolute;inset:0;background:#f6f8efec;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}#win[hidden]{display:none}.big-star{color:#d99635;font-size:70px}#win h2{font:600 32px 'Fredoka';margin:0}#stars{font-size:25px;letter-spacing:5px;color:#c0862f;margin:6px}#win button{min-width:170px}dialog{border:0;border-radius:24px;max-width:460px;padding:28px;color:var(--ink);line-height:1.7}dialog::backdrop{background:#17382d80}.reference{display:grid;gap:4px;align-self:center}.ref-cell{height:38px;border-radius:5px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;border:2px solid #ddd9cd}.ref-cell span{display:block}.switches{display:flex;gap:7px;flex-wrap:wrap}.switches button{min-width:48px;background:#e8eee7;color:#58736a}.switches button.on{background:var(--accent);color:#152f2d}.gate{padding:9px 10px;border-radius:9px;background:#eff3eb;margin:5px 0;font-size:12px;display:flex;justify-content:space-between;gap:10px}.gate.ok{background:#e0f1e3}.gate b{color:#263f3a}.dpad{display:grid;grid-template-columns:45px 45px 45px;gap:5px;justify-content:center}.dpad button{padding:11px}.track-clue{font-size:11px;line-height:1.8;background:#f2eee2;padding:10px;border-radius:10px}.swatch-note{font-size:11px;color:#78867b;margin-top:10px}.off{color:#889a92}.ontext{color:#39854f}@media(max-width:720px){#app{padding:13px 12px}header p{font-size:12px}.eyebrow{font-size:8px}.play-layout{grid-template-columns:1fr;gap:10px}#world{height:330px}aside{padding:15px}aside h2{font-size:20px;margin:4px 0 9px}nav{margin:14px 0 10px;gap:8px;flex-wrap:wrap}nav label{font-size:10px}select{font-size:12px}#progress{font-size:10px}#clues .reference{max-width:240px}.ref-cell{height:26px}#feedback{margin:9px 0;min-height:20px}.lesson{margin-top:9px;padding-top:9px;font-size:11px}footer{font-size:9px}.gate{padding:6px;margin:3px 0}h1{font-size:27px}.world-wrap{border-radius:18px}}@media(max-height:650px) and (min-width:721px){#world{height:360px}#app{padding-top:10px}nav{margin-top:10px}}

@media(max-width:720px){body[data-mode=code] #world{height:220px}body[data-mode=code] .gate{font-size:10px;line-height:1.15;padding:5px 8px}body[data-mode=code] aside h2{font-size:18px}}

@media(max-width:720px){body[data-mode=track] #world{height:290px}body[data-mode=track] .track-clue{font-size:10px;line-height:1.65}}

.cargo{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}.cargo button{font-size:11px;padding:9px 3px;min-width:0}.cargo button.on{background:#a9d9be}.peg-controls{display:flex;gap:6px}.peg-controls button{flex:1}.digit-controls{display:flex;gap:5px;margin:10px 0}.digit-controls button{flex:1;padding:10px 4px}.cage-list{font-size:11px;line-height:1.5;max-height:115px;overflow:auto}.target-num{font:600 35px 'Fredoka';color:var(--accent)}@media(max-width:720px){#world{height:300px}h1{font-size:25px}.lesson{line-height:1.4}.cargo button{padding:8px 3px}aside{padding:12px}.track-clue{line-height:1.55}}

.cell-controls{display:grid;gap:3px;margin-top:9px}.cell-controls button{font-size:11px;padding:8px 2px;border-radius:6px;background:#e8eee7;color:#233b40}.cell-controls button.active{background:#f3d87a}.cell-controls button.fixed{font-weight:800}.digit-controls{margin:7px 0}.cage-list{max-height:70px}.digit-controls button{padding:8px 3px}@media(max-width:720px){body[data-mode=cages] #world{height:230px}.cell-controls button{padding:6px 2px}.cage-list{font-size:10px}}

.factor-controls{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.factor-controls button{flex:1;font-size:11px;padding:8px 4px;white-space:nowrap}.factor-controls button:disabled{opacity:.35;cursor:default;transform:none}.number-controls{display:grid;gap:3px}.number-controls button{background:#fae4c2;color:#594527;padding:5px 2px;font-size:11px;border-radius:6px}.number-controls button.removed{background:#e7ece7;color:#89978c}.number-controls button.active{outline:2px solid #be925b}@media(max-width:720px){body[data-mode=prime] #world{height:240px}.number-controls button{padding:4px 2px}.factor-controls button{font-size:10px}}

@media(max-width:400px){body[data-mode=prime] #world{height:200px}body[data-mode=prime] .lesson{font-size:10px}body[data-mode=prime] #feedback{font-size:12px}}

.clock-controls{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}.clock-controls button{padding:10px 5px;background:#e5eef5;color:#365b78}.clock-readout{display:flex;flex-direction:column;margin:9px 0;gap:3px}.clock-readout b{font:600 29px 'Fredoka';color:#43789c}.clock-readout span{font-size:11px;color:#607d8f}#check-time{width:100%;padding:10px;margin-top:3px}@media(max-width:400px){body[data-mode=clock] #world{height:260px}}

@media(max-width:720px){body[data-mode=clock] .clock-controls{grid-template-columns:repeat(4,1fr)}body[data-mode=clock] .clock-controls button{padding:9px 3px;font-size:11px}body[data-mode=clock] .clock-readout{margin:6px 0}body[data-mode=clock] .clock-readout b{font-size:25px}body[data-mode=clock] .lesson{font-size:10px}body[data-mode=clock] #feedback{font-size:12px}}@media(max-width:400px){body[data-mode=clock] #world{height:220px}}
body{background:#faf4e8}.shift-readout{display:flex;flex-direction:column;gap:4px;margin:7px 0}.shift-readout b{font:600 28px 'Fredoka';color:#9e6243}.shift-readout span{font-size:11px}.job-list{display:grid;gap:4px}.job-list button{display:flex;justify-content:space-between;gap:4px;padding:9px;background:#f5e9d5;color:#614b35;font-size:11px}.job-list button.active{background:#efcfa3}.job-list button span{font-weight:500}.action-row{display:flex;gap:4px;margin:9px 0}.action-row button{flex:1;padding:10px 3px;font-size:11px}button:disabled{opacity:.45;cursor:default;transform:none}@media(max-width:720px){body[data-mode=bakery] #world{height:230px}.job-list button{padding:7px}body[data-mode=bakery] .lesson{font-size:10px}body[data-mode=bakery] #feedback{font-size:12px}}@media(max-width:350px){body[data-mode=bakery] #world{height:190px}}

.trail-card{background:#eef2dd;border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:6px}.trail-card span{font-size:11px;color:#73866d}.trail-card b{font:600 24px 'Fredoka';color:#397b6d}.direction-buttons{display:flex;gap:6px;margin:12px 0}.direction-buttons button{flex:1;padding:12px 5px;font-size:23px}.vocab{font-size:11px;line-height:1.6}.vocab summary{cursor:pointer;font-weight:700}.vocab p{margin:5px 0}@media(max-width:720px){body[data-mode=spanish] #world{height:290px}.trail-card{padding:10px}.trail-card b{font-size:21px}.direction-buttons{margin:9px 0}.direction-buttons button{padding:8px 4px}body[data-mode=spanish] .lesson{font-size:10px}}@media(max-width:350px){body[data-mode=spanish] #world{height:230px}}

.lantern-detail{font-size:18px;font-weight:650;min-height:38px;color:#8a693c;margin:8px 0}.lantern-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:7px 0 12px}.lantern-slots button{display:flex;align-items:center;gap:8px;background:#f3e5c7;color:#664e2c;padding:10px 8px;font-size:14px}.lantern-slots button span{font-size:10px;color:#948261}.lantern-slots button.active{background:#efd07a}.lantern-slots b{font-weight:600}@media(max-width:720px){body[data-mode=chinese] #world{height:270px}.lantern-slots button{padding:8px;font-size:13px}body[data-mode=chinese] .lesson{font-size:10px}}@media(max-width:350px){body[data-mode=chinese] #world{height:210px}.lantern-slots button{font-size:12px;padding:7px 4px}}

.domino-status{display:flex;flex-direction:column;gap:7px;font-size:13px;margin:9px 0}.domino-status span{font-size:11px;color:#6d8290}.domino-hand{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:8px 0}.domino-hand button{background:#f3ead7;color:#3f566f;padding:10px 3px;font-size:14px}.domino-hand button.active{background:#f1ce78}.domino-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:9px 0}.domino-actions button{padding:10px 4px;font-size:12px}@media(max-width:720px){body[data-mode=domino] #world{height:260px}.domino-hand button{padding:7px 3px}body[data-mode=domino] .lesson{font-size:10px}}@media(max-width:350px){body[data-mode=domino] #world{height:200px}}

.domino-hand{max-height:125px;overflow:auto}body[data-mode=domino] #feedback{font-size:12px}

@media(max-width:720px){body[data-mode=domino] #world{height:220px}}@media(max-width:350px){body[data-mode=domino] #world{height:160px}}
