:root{color-scheme:light;--bg: #faf5e4;--text: #3a3428;--strong: #1f1a12;--soft: #5a5244;--muted: #857a63;--card: #fffdf6;--card-border: #e6dbbd;--surface: #f4ecd6;--surface-hover: #ece1c3;--line: #d6c8a3;--menu-bg: #fffdf6;--shadow: rgba(90, 70, 30, .18);--overlay-bg: rgba(255, 251, 238, .93);--gold: #e0a830;--gold-text: #9a6a08;--on-gold: #2a2010;--purple: #8a5ad8;--purple-text: #7445c4;--cyan: #0a7f9e;--good: #2f8a3a;--warn: #d0502e;--link: #2f68b8;--plus: #3d74c0;--plus-owned: #2f5f9e;--owned-bg: #ece2ff;--count-bg: #d9ceb0;--count-owned: #7a55d8;--locked-bg: #f1ead8;--locked-text: #b3a888;--star-off: #d9ceb0;--callout: #4a3a14;--callout-bg: rgba(240, 192, 96, .14);--callout-border: rgba(200, 150, 50, .45);--tip-bg: #3a3428;--tip-text: #fff8e2;--tooltip-bg: #fffdf6;--tooltip-text: #3a3428;--tabu-bg: #2a2a2a;--status-bg: #fff3cf;--board-bg: #efe4c4;--board-cell: #fbf6e8;--board-line: #e0d3ae;--board-arrow: #b5a682}:root{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text)}.app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;max-width:1120px;margin:0 auto;padding:14px 18px 24px;display:flex;flex-direction:column;gap:12px}.label{font-size:12px;color:var(--muted)}.muted{color:var(--muted);font-weight:400}[hidden]{display:none!important}.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.topbar .spacer{flex:1}.hud{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px 8px}.current-level{background:var(--card);border:1.5px solid var(--gold);border-radius:10px;padding:6px 12px}.current-level .row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.current-level select{font:inherit;font-size:17px;font-weight:600;background:transparent;color:var(--strong);border:none;padding:0;cursor:pointer}.current-level select option{background:var(--card);font-size:14px}.pill{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--card-border);border-radius:999px;padding:4px 6px 4px 12px;font-size:14px}.pill b{color:var(--strong)}.plus{width:22px;height:22px;padding:0;border-radius:50%;background:var(--plus);border-color:var(--plus);color:#fff;font-weight:700;line-height:1}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:40px;z-index:20;background:var(--menu-bg);border:1px solid var(--card-border);border-radius:10px;padding:6px;min-width:230px;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 24px var(--shadow)}.menu button{text-align:left;border:none;background:transparent;padding:7px 10px}.menu button:hover{background:var(--surface-hover)}.menu-label{font-size:11px;color:var(--muted);padding:6px 10px 2px;border-top:1px solid var(--card-border);margin-top:4px}.menu .setting{display:flex;align-items:center;justify-content:space-between;gap:12px}.switch{flex:none;position:relative;width:34px;height:20px;border-radius:999px;background:var(--count-bg);transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s}[aria-checked=true] .switch{background:#3fa45a}[aria-checked=true] .switch:after{left:16px}.menu-label.first{border-top:none;margin-top:0}.test-tools{display:flex;flex-direction:column;gap:4px}.site-bar{display:none}body.player-build .site-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.site-bar a{color:var(--soft);text-decoration:none;font-weight:600}.site-bar a:hover{color:var(--strong);text-decoration:underline}.site-game{font-size:20px;font-weight:800;color:var(--strong);letter-spacing:.01em}.phone-only,body.test-mode .player-only{display:none}.new-game{align-self:flex-start;width:132px;font-size:13px;font-weight:700;padding:6px 12px;background:var(--gold);border-color:var(--gold);color:var(--on-gold)}body:not(.test-mode) .level-button{cursor:default}body:not(.test-mode) .level-button .caret{display:none}body:not(.test-mode) .test-tools{display:none}body:not(.test-mode) .test-only,body.puzzle-test .test-only{display:none}.quick-reset{align-self:flex-start;width:132px;text-align:left;font-size:13px;padding:5px 12px}.layout{display:grid;grid-template-columns:250px minmax(0,1fr) 250px;gap:14px;align-items:start}.column{display:flex;flex-direction:column;gap:10px;min-width:0}.card{background:var(--card);border:1px solid var(--card-border);border-radius:12px;padding:10px 12px}.tabu-icon{width:36px;height:36px;flex:none;background:var(--tabu-bg);border:2px solid #8a8a8a;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#bbb;font-size:15px;line-height:1}.tabu-icon .face{width:18px;height:13px}.spirit-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#fff3c4;border:2px solid #ffb83c;color:#7a4a10;box-shadow:0 0 8px #ffc85a99}.spirit-icon .face{width:18px;height:13px}.tabu-icon small{font-size:8px;letter-spacing:1px;margin-top:2px}.turn-bar{box-sizing:border-box;width:100%;max-width:var(--board-w, 600px);display:grid;grid-template-columns:1fr auto 1fr;gap:12px;padding:6px 14px 8px;background:var(--card);border:1px solid var(--card-border);border-radius:12px}.turn-bar .label{font-size:11px;line-height:16px}.turn-group{display:flex;flex-direction:column;min-width:0}.turn-row{height:52px;display:flex;align-items:center;gap:10px}.turn-moves{align-items:flex-start}.turn-piece{align-items:center}.turn-next{align-items:flex-end}.turn-action{display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 11px;font-size:14px;font-weight:700;line-height:1.2;color:var(--strong);border:1.5px solid var(--gold);background:var(--status-bg)}.turn-action .price{font-size:11px;color:var(--muted)}.side-action{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;font-size:14px;font-weight:700;color:var(--strong);border:1.5px solid var(--gold);border-radius:12px;background:var(--status-bg)}.side-action .price{font-size:12px;font-weight:400;color:var(--muted)}.side-row{display:flex;gap:6px;align-items:stretch}.side-row .side-action{flex:1}.side-row[hidden]{display:none}.help{flex:none;width:28px;padding:0;align-self:center;height:28px;border-radius:50%;font-size:14px;font-weight:700;color:var(--muted);background:var(--card);border:1px solid var(--card-border)}.help:hover{color:var(--text)}.side-action:disabled{opacity:.7;border-color:var(--card-border);background:var(--card)}.turn-action:disabled{opacity:.7;border-color:var(--line);background:var(--surface)}.turn-action[hidden]{display:none}.big-number{font-size:34px;font-weight:700;color:var(--strong);line-height:1.05}.current-level .rewards{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:3px;font-size:13px}.current-level .rewards .label{font-size:11px}.rewards #rewards{display:flex;flex-wrap:wrap;gap:2px 10px}.center{align-items:center}.board-wrap{position:relative;width:100%;display:flex;justify-content:center}canvas{touch-action:none;display:block;border-radius:12px}.toast{position:absolute;left:50%;top:4px;transform:translate(-50%,-6px);z-index:5;max-width:80%;margin:0;padding:8px 14px;border-radius:10px;background:#1e1a12e0;color:#fff;font-size:15px;font-weight:600;line-height:1.3;text-align:center;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%)}.current-piece{display:flex;justify-content:center}.current-piece .swatch{width:46px;height:46px;border-radius:10px;font-size:22px;line-height:44px;outline:3px solid var(--gold);outline-offset:3px;box-shadow:0 0 14px 4px #f0c06073}.upcoming{display:flex;justify-content:flex-end;align-items:center;gap:8px}.upcoming .swatch:nth-child(1){width:24px;height:24px;opacity:.85}.upcoming .swatch:nth-child(2){width:19px;height:19px;opacity:.7}.upcoming .swatch:nth-child(3){width:15px;height:15px;opacity:.55}.swatch{display:inline-block;width:18px;height:18px;vertical-align:middle;border:1px solid #000;border-radius:4px;font-size:12px;line-height:16px;text-align:center;color:#222}.swatch.spin{animation:spin .3s ease-out}@keyframes spin{0%{transform:rotateY(180deg) scale(.6)}}button.action{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px;font-size:13px}button.action .price{font-size:12px;color:var(--muted)}.tray-help{font-size:11px;margin-top:2px}.tray-head{display:flex;align-items:center;justify-content:space-between}.help.small{width:22px;height:22px;font-size:12px}.help-line+.help-line{margin-top:6px}.tray-items{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 4px;margin-top:12px}.boost{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;font-size:11px;line-height:1.2}.boost-circle{position:relative;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;padding:0;background:var(--surface);border:1px solid var(--line);color:var(--text)}.boost.owned .boost-circle{background:var(--owned-bg);border-color:var(--purple);color:var(--strong)}.boost.locked .boost-circle{background:var(--locked-bg);border-color:var(--card-border);color:var(--locked-text);cursor:default}.boost.locked .boost-circle:disabled{opacity:1}.boost .count{position:absolute;top:-6px;left:-8px;min-width:18px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:600;background:var(--count-bg);color:var(--text)}.boost.owned .count{background:var(--count-owned);color:#fff}.boost .plus{position:absolute;bottom:-6px;right:-8px;width:19px;height:19px;font-size:12px}.boost.owned .plus{background:var(--plus-owned);border-color:var(--plus-owned)}.boost .name{color:var(--text)}.boost .sub{color:var(--muted)}.boost .sub.buy{color:var(--link)}.boost-circle[aria-pressed=true]{outline:3px solid var(--gold);outline-offset:2px}button{font:inherit;padding:4px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}button:disabled{opacity:.4;cursor:default}button.icon{width:36px;height:36px;padding:0;font-size:18px}button.nudge,.boost-circle.nudge{border-color:var(--gold);box-shadow:0 0 10px 2px #f0c060b3;animation:nudge 1.4s ease-in-out infinite}@keyframes nudge{50%{box-shadow:0 0 16px 6px #f0c060d9;transform:scale(1.08)}}.given .sub{color:var(--gold-text);font-weight:700}.difficulty{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.difficulty.easy{background:#2f5d34;color:#b9f0c0}.difficulty.medium{background:#6a5420;color:#ffe2a0}.difficulty.hard{background:#6d2a2a;color:#ffc0c0}.difficulty.bonus{background:#4a2f6d;color:#e2c8ff}.difficulty.tutorial{background:#24506a;color:#bfe6ff}.difficulty.test{background:#5a5a5a;color:#fff}.difficulty:empty{display:none}footer{font-size:12px;color:var(--muted);text-align:center}footer a{color:var(--link)}.overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:30;width:min(400px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--card);border:1px solid var(--card-border);border-radius:16px;box-shadow:0 16px 40px var(--shadow);text-align:center;padding:18px 20px;animation:fade-in .3s ease-out}.overlay .clear-meta{font-size:13px;color:var(--muted);margin-top:-4px}.overlay .score{width:min(240px,100%);font-size:14px;color:var(--soft)}.overlay .score-row{display:flex;justify-content:space-between;padding:1px 0}.overlay .score-row b{color:var(--strong)}.overlay .score-row.total{border-top:1px solid var(--card-border);margin-top:3px;padding-top:4px;font-size:16px;color:var(--strong)}.overlay .new-best{margin-top:2px}.overlay h3.map-found{margin:4px 0 0;font-size:18px;color:var(--strong)}.overlay h2{margin:0;font-size:24px}.overlay .stars{font-size:52px;color:var(--star-off);display:flex;gap:10px;justify-content:center}.overlay .stars .on{color:#ffc93c;display:inline-block;animation:star-pop .35s ease-out backwards}.overlay .star-cell{display:flex;flex-direction:column;align-items:center;min-width:44px}.overlay .star-cell small{font-size:13px;height:18px}.overlay .star-cell small.new{color:var(--cyan);font-weight:700}.overlay .star-cell small.old{color:var(--muted)}.overlay .breakdown{font-size:14px;color:var(--soft);line-height:1.5}.overlay .breakdown b{color:var(--strong)}.overlay .buttons{display:flex;gap:10px;margin-top:4px}.overlay .buttons.stack{flex-direction:column;align-items:stretch}.overlay .buttons .primary{background:var(--gold);color:var(--on-gold);border-color:var(--gold);font-weight:600}.overlay .reward{font-size:14px;color:var(--soft);line-height:1.6}.overlay .reward b{color:var(--cyan)}.overlay .reward .total{font-size:16px;margin-top:2px}.overlay .reward .muted{color:var(--muted);font-size:13px}.overlay .how-to-win{max-width:320px;font-size:14px;line-height:1.45;color:var(--callout);background:var(--callout-bg);border:1px solid var(--callout-border);border-radius:8px;padding:8px 10px;text-align:left}.overlay .how-to-win b{color:var(--gold-text)}.overlay .xp{font-size:13px;color:var(--soft);line-height:1.6}.overlay .xp b{color:var(--purple-text)}.overlay .xp .xp-total{font-size:15px}.overlay .xp .muted{color:var(--muted)}.overlay .challenge.done{color:var(--strong)}.overlay .how-clears-work{list-style:none;margin:0;padding:0;max-width:340px;text-align:left;font-size:14px;line-height:1.5;color:var(--soft)}.overlay .how-clears-work b{color:var(--strong)}.overlay .how-clears-work.on-fire{text-align:center;font-size:15px;color:var(--strong);background:#fff1c9;border:2px solid #e0a830;border-radius:12px;padding:10px 14px;box-shadow:0 0 0 4px #f0b4282e}.overlay .new-feature{max-width:320px;font-size:14px;color:var(--callout);background:#b48cff2e;border:1px solid rgba(180,140,255,.5);border-radius:8px;padding:8px 10px}.overlay .new-feature b{color:var(--purple-text)}@keyframes fade-in{0%{opacity:0}}@keyframes star-pop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.3)}}.tip{position:absolute;z-index:30;cursor:pointer;background:var(--tip-bg);color:var(--tip-text);border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.4;box-shadow:0 6px 20px var(--shadow);display:flex;flex-direction:column;gap:8px;animation:tip-in .25s ease-out}.tip .tip-text{white-space:pre-line}.tip.tooltip{cursor:default;font-size:13px;padding:8px 10px;background:var(--tooltip-bg);color:var(--tooltip-text);border:1px solid var(--line)}.tip-arrow{position:absolute;top:-7px;width:14px;height:14px;margin-left:-7px;background:var(--tip-bg);transform:rotate(45deg)}.tip.tooltip .tip-arrow{background:var(--tooltip-bg);border-left:1px solid var(--line);border-top:1px solid var(--line)}.tip.above .tip-arrow{top:auto;bottom:-7px}.tip.beside .tip-arrow{top:50%;left:0;margin-top:-7px;margin-left:-7px}.tip.tooltip.above .tip-arrow{border:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}@keyframes tip-in{0%{opacity:0;transform:translateY(4px)}}.startup-error{white-space:pre-wrap;background:#6d2a2a;color:#fff;padding:12px;border-radius:8px;max-width:640px;font-size:13px;margin:12px auto}.intro-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000073;animation:fade-in .25s ease-out}.intro-card{width:min(440px,100%);background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:22px 24px 20px;box-shadow:0 16px 40px var(--shadow);display:flex;flex-direction:column;gap:14px;animation:tip-in .3s ease-out}.intro-card h2{margin:0;font-size:22px;text-align:center;color:var(--strong)}.intro-body{display:flex;flex-direction:column;gap:12px;font-size:15px;line-height:1.4}.intro-body b{color:var(--strong)}.intro-lead{margin:0;text-align:center;font-size:16px}.intro-note{margin:0;text-align:center;font-size:13px;color:var(--muted)}.intro-hero{display:flex;justify-content:center}.intro-hero .tabu-icon{width:56px;height:56px;font-size:26px}.intro-hero .tabu-icon .face{width:28px;height:20px}.intro-hero .tabu-icon small{font-size:11px}.intro-row{display:grid;grid-template-columns:128px 1fr;align-items:center;gap:12px}.intro-visual{display:flex;align-items:center;justify-content:center;gap:3px;font-size:24px}.intro-visual .swatch{width:20px;height:20px}.intro-visual .tabu-icon{width:30px;height:30px;font-size:13px}.intro-visual .tabu-icon .face{width:15px;height:11px}.intro-arrow{font-size:14px;color:var(--muted)}.intro-plus{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--plus);color:#fff;font-size:18px;font-weight:700}.intro-dots{display:flex;justify-content:center;gap:6px}.intro-dots span{width:8px;height:8px;border-radius:50%;background:var(--count-bg)}.intro-dots span.on{background:var(--gold)}.intro-card .primary{align-self:center;min-width:160px;padding:10px 20px;font-size:16px;font-weight:600;background:var(--gold);border-color:var(--gold);color:var(--on-gold)}.confirm-card{width:min(340px,100%);gap:16px}.confirm-buttons{display:flex;gap:10px;justify-content:center}.confirm-buttons button{min-width:110px;padding:8px 14px}.intro-card .confirm-buttons .primary{min-width:110px;padding:8px 14px;font-size:15px}.spins-pill{padding:4px 12px;cursor:pointer}.spins-pill:hover{border-color:var(--gold)}.reel-card{position:relative;width:min(420px,100%);align-items:stretch}.reel-close{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;border-radius:50%}.reel-help{margin:0;font-size:14px;line-height:1.45;color:var(--soft);text-align:center}.reels{display:flex;justify-content:center;gap:10px;padding:14px;border-radius:14px;background:#8a4a1a;box-shadow:inset 0 0 0 4px #5a2a08}.reel{width:84px;height:84px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#fbf6e8;box-shadow:inset 0 3px 8px #00000040}.reel.stop{animation:reel-stop .25s ease-out}.reel.win{box-shadow:inset 0 3px 8px #00000026,0 0 0 3px var(--gold),0 0 16px 4px #f0c060b3}@keyframes reel-stop{0%{transform:translateY(-8px)}60%{transform:translateY(3px)}}.reel-symbol{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:26px;font-weight:800;line-height:1;border:1px solid rgba(0,0,0,.35)}.reel-symbol svg{width:34px;height:24px}.sym-tiki{background:#fff3c4;color:#7a4a10;border:2px solid #ffb83c;border-radius:50%;box-shadow:0 0 8px #ffc85ab3}.sym-gem{background:#c9f3ff}.sym-wild{background:#fff;color:#b08a1a}.sym-bonker{background:#b0b0b0;color:#2a2a2a}.sym-stone{background:#6e6a64;color:#f0ede6}.sym-moves{background:#4fbf4f;color:#fff;font-size:22px}.reel-result{min-height:1.5em;text-align:center;font-size:16px;color:var(--soft)}.reel-result.won{color:var(--strong);font-weight:600}.reel-result b{color:var(--gold-text)}.intro-card .reel-spin{align-self:center;min-width:200px}.reel-meter{text-align:center;font-size:12px;color:var(--muted)}.reel-prizes{font-size:13px;color:var(--soft)}.reel-prizes summary{cursor:pointer;text-align:center}.reel-prizes ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.reel-prizes li{display:flex;align-items:center;gap:10px}.prize-faces{display:inline-flex;gap:3px;min-width:96px}.prize-faces .reel-symbol{width:28px;height:28px;font-size:13px;border-radius:6px}.prize-faces .reel-symbol svg{width:16px;height:12px}.prize-faces .sym-moves{font-size:10px}.pill.gained{animation:gained .8s ease-out}@keyframes gained{0%{box-shadow:0 0 #7fe3ffe6;transform:scale(1.08)}to{box-shadow:0 0 0 10px #7fe3ff00}}.builder-title{font-size:22px;margin:0;color:var(--strong)}.back-link{color:var(--link)}.builder-layout{display:grid;grid-template-columns:190px minmax(0,1fr) 230px;gap:14px;align-items:start}.palette{display:grid;grid-template-columns:1fr;gap:4px;margin-top:8px}.tool{display:flex;align-items:center;gap:8px;text-align:left;padding:4px 8px;border-color:transparent;background:transparent}.tool[aria-pressed=true]{border-color:var(--gold);background:var(--status-bg);font-weight:600}.tool .b-cell{width:24px;height:24px}.builder-tip{font-size:12px;color:var(--muted);margin:8px 0 0}.builder-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}#draft-list{width:100%;margin-top:8px;font:inherit;padding:4px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:6px}.builder-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(12,minmax(0,1fr));width:min(100%,560px);aspect-ratio:1;gap:0;padding:8px;border-radius:12px;background:var(--board-bg);-webkit-user-select:none;user-select:none;touch-action:none}.b-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:hidden;background:var(--board-cell);border:1px solid var(--board-line);font-weight:700;font-size:13px;line-height:1;cursor:pointer;color:transparent}.b-cell.piece{border-radius:4px;border-color:#0000004d}.b-cell.spirit{background:#1a1a1a;color:#8a8a8a;border:2px solid #8a8a8a}.b-cell.spirit svg{width:60%;height:auto}.b-cell.spirit small{font-size:7px;letter-spacing:1px}.b-cell.gray{background:#6e6a64;color:#f0ede6;border-color:#4a4743}.builder-form{display:flex;flex-direction:column;gap:10px;font-size:13px}.builder-form label{display:flex;flex-direction:column;gap:3px;color:var(--muted)}.builder-form input,.builder-form textarea{font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 7px}.builder-form .piece-count{flex-direction:row;align-items:center;justify-content:space-between;margin-top:4px}.builder-form .piece-count input{width:56px}.color-toggles{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.color-toggle{width:28px;height:28px;padding:0;border-radius:6px;border:2px solid transparent;opacity:.35}.color-toggle[aria-pressed=true]{opacity:1;border-color:var(--strong)}.primary-action{background:var(--gold);border-color:var(--gold);color:var(--on-gold);font-weight:700}.report ul{margin:6px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px}.menu-link{display:block;padding:7px 10px;border-radius:8px;color:var(--text);text-decoration:none}.menu-link:hover{background:var(--surface-hover)}.saved-note{margin:0;font-size:12px;color:var(--muted);min-height:1.3em}.mine{display:flex;flex-direction:column;gap:6px;border:1px dashed var(--purple)}.mine[hidden]{display:none}.mine .focus-label{font-size:11px;color:var(--muted)}.mine-buttons{display:flex;gap:6px}.mine-buttons button{flex:1;padding:4px 6px;font-size:13px}.new-puzzle{padding:8px 16px;font-size:15px;border-radius:10px}.queue-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:6px;min-height:26px}.queue-chip{width:24px;height:24px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#0009;border:1px solid rgba(0,0,0,.3)}.queue-then{font-size:12px;color:var(--muted);margin-left:4px}.color-toggles.add .color-toggle{opacity:1;width:24px;height:24px;font-weight:700;color:#0000008c}#restart-mine{padding:6px 8px;font-size:14px}.overlay .next-puzzle{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:13px;color:var(--muted);margin-top:6px}.overlay .next-puzzle select{font:inherit;font-size:14px;padding:5px 8px;border-radius:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);min-width:200px}.board-foot{display:flex;align-items:center;justify-content:center;gap:10px;min-height:22px}.board-foot .test{font-size:11px}.report-link{border:none;background:transparent;color:var(--muted);font-size:12px;padding:2px 8px}.report-link:hover{color:var(--text);text-decoration:underline}.note-input{font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px;resize:vertical}body.puzzle-test #test-badge,body.puzzle-test .gems-pill,body.puzzle-test #spins-pill,body.puzzle-test #difficulty,body.puzzle-test #rewards-card,body.puzzle-test #swap-row,body.puzzle-test #undo-row,body.puzzle-test #tray-help,body.puzzle-test footer{display:none!important}#main-game-link{display:none}body.puzzle-test #main-game-link{display:block;font-weight:600}body.puzzle-test #builder-link{display:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.current-level{position:relative}.level-button{white-space:nowrap;font:inherit;font-size:17px;font-weight:600;color:var(--strong);background:transparent;border:none;padding:0;text-align:left}.level-list{position:absolute;top:100%;left:0;z-index:25;margin:4px 0 0;padding:4px;list-style:none;min-width:100%;max-height:min(60vh,420px);overflow-y:auto;background:var(--menu-bg);border:1px solid var(--card-border);border-radius:10px;box-shadow:0 8px 24px var(--shadow)}.level-list li{padding:7px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;font-size:14px}.level-list li:hover{background:var(--surface-hover)}.level-list li[aria-selected=true]{font-weight:700;background:var(--status-bg)}.back-to-builder{display:block;text-align:center;font-weight:600;font-size:14px;color:var(--link);padding:6px 4px;border-radius:8px;border:1px solid var(--line);background:var(--surface);text-decoration:none}.back-to-builder:hover{background:var(--surface-hover)}.journey{position:fixed;top:0;right:0;bottom:0;left:0;z-index:38;background:var(--bg);display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px max(16px,env(safe-area-inset-left,0px)) 24px;overflow-y:auto;animation:fade-in .4s ease-out}.journey.center{justify-content:center;background:#0000008c}.journey-card{width:min(440px,100%);background:var(--card);border:1px solid var(--card-border);border-radius:18px;padding:26px 26px 22px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:0 16px 40px var(--shadow);animation:tip-in .35s ease-out}.journey-card h2{margin:0;font-size:26px;color:var(--strong)}.journey-card p{margin:0;font-size:16px;line-height:1.45}.journey-burst{font-size:44px;animation:star-pop .5s ease-out}.journey .primary{padding:10px 22px;font-size:16px;font-weight:700;background:var(--gold);border-color:var(--gold);color:var(--on-gold)}.journey.saga{justify-content:center;padding:16px;overflow:hidden;background:#00000080}.saga-panel{width:min(460px,100%);height:min(640px,100%);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:#2f8aa3;box-shadow:0 16px 40px var(--shadow);animation:tip-in .3s ease-out}.saga-thumb{position:relative;flex:none;width:min(260px,100%);aspect-ratio:100 / 52;border-radius:14px;overflow:hidden;border:2px solid #b07a10;box-shadow:0 6px 18px var(--shadow),inset 0 0 0 1px #ffffff80;background:#2f8aa3}.saga-thumb svg{display:block;width:100%;height:100%}.saga-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 60%,transparent 55%,rgba(30,20,0,.35))}.map-intro{max-width:320px;font-size:14px;line-height:1.5;color:var(--soft)}.map-intro b{color:var(--strong)}#map-button{font-size:18px}.points-pill{padding-right:12px}body.puzzle-test .points-pill{display:none}#moves-boost.nudge{animation:map-glow 1.6s ease-in-out infinite;border-color:#e0a830}#map-button.glow{animation:map-glow 1.8s ease-in-out infinite}@keyframes map-glow{0%,to{box-shadow:0 0 #f0b42800}50%{box-shadow:0 0 10px 4px #f0b4288c}}.saga-head{position:relative;width:100%;display:flex;align-items:center;justify-content:center;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--card-border)}.saga-head h2{margin:0;font-size:22px;color:var(--strong)}.saga-close{position:absolute;right:16px;top:50%;transform:translateY(-50%)}.saga-scroll{flex:1;min-height:0;width:100%;overflow-y:auto}.saga-svg{width:min(100%,520px);height:auto;display:block;margin:0 auto}.saga-trail{fill:none;stroke:#7a5a2e;stroke-width:1.4;stroke-dasharray:2.2 1.6;stroke-linecap:round;opacity:.8}.saga-zone{font-size:3.4px;font-weight:800;text-anchor:start;fill:#281e0a8c;letter-spacing:.3px}.saga-deco{font-size:7px;text-anchor:middle}.saga-dot circle{fill:#fffaf0;stroke:#7a5a2e;stroke-width:.8}.saga-dot.done,.saga-dot.current{cursor:pointer}.saga-dot.done circle{fill:#ffd24a;stroke:#b07a10}.saga-dot.current circle{fill:#fff;stroke:#e0a830;stroke-width:1.4;animation:saga-glow 1.4s ease-in-out infinite}@keyframes saga-glow{50%{stroke-width:2.4}}.saga-dot.ahead{opacity:.75}.saga-dot.ahead circle{fill:#e2dccb;stroke:#a89f88}.saga-num{font-size:4px;font-weight:800;text-anchor:middle;fill:#3a2a10}.saga-stars{font-size:3px;text-anchor:middle;fill:#b07a10;paint-order:stroke;stroke:#fffc;stroke-width:.6px}.saga-fog-note{font-size:3.2px;font-style:italic;text-anchor:middle;fill:#6b7a78}.coach{position:absolute;z-index:12;width:0;height:0;pointer-events:none;animation:fade-in .3s ease-out;--hand: 34px;--gap: calc(var(--size) / 2 + 4px)}.coach.leaving{opacity:0;transition:opacity .2s}.coach-glow{position:absolute;left:calc(var(--size) / -2 - 4px);top:calc(var(--size) / -2 - 4px);width:calc(var(--size) + 8px);height:calc(var(--size) + 8px);border-radius:10px;box-shadow:0 0 0 2px #f0c060e6,0 0 16px 4px #f0c0608c;animation:coach-glow 1.2s ease-in-out infinite}@keyframes coach-glow{50%{box-shadow:0 0 0 2px #f0c06080,0 0 22px 8px #f0c06059}}.coach-hand{position:absolute;font-size:var(--hand);line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.coach-bubble{position:absolute;width:max-content;max-width:220px;padding:8px 12px;border-radius:12px;background:#2b2418;color:#fff;font-size:15px;font-weight:600;line-height:1.3;text-align:center;box-shadow:0 6px 18px #00000040}.coach-below .coach-hand{top:var(--gap);left:0;transform:translate(-50%);animation:tap-up 1.2s ease-in-out infinite}.coach-below .coach-bubble{top:calc(var(--gap) + var(--hand) + 4px);left:0;transform:translate(-50%)}.coach-above .coach-hand{bottom:var(--gap);left:0;transform:translate(-50%);animation:tap-down 1.2s ease-in-out infinite}.coach-above .coach-bubble{bottom:calc(var(--gap) + var(--hand) + 4px);left:0;transform:translate(-50%)}.coach-right .coach-hand{left:var(--gap);top:0;transform:translateY(-50%);animation:tap-left 1.2s ease-in-out infinite}.coach-right .coach-bubble{left:calc(var(--gap) + var(--hand) + 4px);top:0;transform:translateY(-50%)}.coach-left .coach-hand{right:var(--gap);top:0;transform:translateY(-50%);animation:tap-right 1.2s ease-in-out infinite}.coach-left .coach-bubble{right:calc(var(--gap) + var(--hand) + 4px);top:0;transform:translateY(-50%)}@keyframes tap-up{50%{translate:0 -6px;scale:.92}}@keyframes tap-down{50%{translate:0 6px;scale:.92}}@keyframes tap-left{50%{translate:-6px 0;scale:.92}}@keyframes tap-right{50%{translate:6px 0;scale:.92}}.app input,.app textarea,.app select{-webkit-user-select:text;user-select:text}.saga-teaser rect{fill:#fffaebeb;stroke:#b07a10;stroke-width:.5}.saga-teaser text{font-size:3.6px;text-anchor:middle}.saga-teaser.done{opacity:.55}.saga-teaser.fog{opacity:.35;filter:blur(.25px)}.lab-boards{display:flex;flex-direction:column;gap:2px}.lab-card{display:flex;flex-direction:column;gap:6px}.lab-card .lab-boards button{text-align:left}.lab-back{font-size:13px;color:var(--link);text-decoration:none;padding:4px 2px}body.lab-page #reset-game-quick,body.lab-page #tray{display:none}.play-stats{font-size:12px;color:var(--soft);font-variant-numeric:tabular-nums}.play-stats-final{font-size:14px;color:var(--soft);margin:-2px 0 6px;font-variant-numeric:tabular-nums}.new-best{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--gold, #f2b705);color:#3a2a00;font-size:12px;font-weight:700}@media(max-width:700px){.app{padding:8px 8px 16px;gap:8px}.layout{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.layout>.column{display:contents}.current-level{order:1;grid-column:span 3;padding:6px 8px}.current-level>.label,.current-level .rewards{display:none}.level-button{font-size:15px}.hud{order:2;grid-column:span 3;justify-content:flex-end;flex-wrap:nowrap;gap:4px}.hud .pill{padding:2px 5px 2px 7px;font-size:12px;gap:3px}.hud .icon{width:30px;height:30px;padding:0;font-size:15px}.hud .plus{width:18px;height:18px;font-size:13px}.current-level{min-width:0}.level-button{overflow:hidden;text-overflow:ellipsis;max-width:100%}.turn-bar{order:3;grid-column:1 / -1}.board-wrap{order:4;grid-column:1 / -1}.board-foot{order:5;grid-column:1 / -1}#undo-row,#swap-row,#moves-row{order:6;grid-column:span 2}.side-row .help{display:none}.side-action{flex-direction:column;align-items:center;gap:0;padding:6px 4px;font-size:13px;text-align:center}#tray{order:7;grid-column:1 / -1}.tray-help{display:none}#reset,#reset-game-quick{order:8;grid-column:span 3;width:auto;align-self:auto}#new-game{display:none}.phone-only{display:block}body.test-mode .phone-only.player-only{display:none}#lab-card,#mine{order:9;grid-column:1 / -1}.app>footer{display:none}.site-help{display:none}.site-game{font-size:17px}}
