:root{--color-bg: #f3f2f2;--color-surface: #eae9e9;--color-text: #201e1d;--color-accent: #ec3013;--color-divider: color-mix(in srgb, #201e1d 40%, transparent);--color-neutral-100: #f8f4f4;--color-neutral-200: #eae7e7;--color-neutral-300: #d7d3d3;--color-neutral-400: #bab6b6;--color-neutral-500: #9b9797;--color-neutral-600: #7d7979;--color-neutral-700: #605d5d;--color-neutral-800: #444141;--color-neutral-900: #2d2b2b;--color-accent-100: #fff2ef;--color-accent-200: #ffe0d9;--color-accent-700: #ae1800;--color-accent-800: #7c1405;--color-ok: oklch(.58 .15 150);--color-ok-100: oklch(.955 .035 150);--color-ok-800: oklch(.36 .1 150);--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--radius: 0px;--safe-top: max(8px, env(safe-area-inset-top));--safe-bottom: max(8px, env(safe-area-inset-bottom));--vvh: 100dvh;--vvtop: 0px;--s: 1}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}#app{position:fixed;left:0;top:var(--vvtop);width:100%;height:var(--vvh);overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus{outline:none}.sheet{height:100%;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 12px);overflow:hidden}.sheet h1{font:800 34px/1.05 var(--font-body);letter-spacing:-.02em;margin:0 0 12px}.sheet h2{font:800 22px/1.1 var(--font-body);margin:0 0 10px}".lead { font: 400 14px/1.55 var(--font-body); margin: 0 0 8px; }
.lead.small{font-size:12px;margin:8px 0 0}.muted{color:var(--color-neutral-600)}.rule{height:2px;background:var(--color-text);margin:14px 0;flex:none}.startList{list-style:none;margin:0;padding:0;flex:none}.startList li{font:400 13px/1.45 var(--font-body);padding:7px 0 7px 18px;position:relative;border-bottom:1px solid var(--color-divider)}.startList li:before{content:"—";position:absolute;left:0;color:var(--color-accent)}.btn-play{flex:none;height:52px;width:100%;background:var(--color-accent);color:var(--color-bg);font:800 17px/1 var(--font-body);text-align:left;padding:0 16px;display:flex;align-items:center}.btn-play:active{background:var(--color-accent-700)}.btn-line{flex:none;height:44px;width:100%;border:2px solid var(--color-text);font:800 15px/1 var(--font-body);display:flex;align-items:center;padding:0 14px}.btn-line:active{background:var(--color-surface)}.btn-line+.btn-line{margin-top:var(--space-2)}.btn-line.reset{border-color:var(--color-neutral-500);color:var(--color-neutral-700)}.btn-line.reset.armed{border-color:var(--color-accent);color:var(--color-accent-700)}.errorBox{border:2px solid var(--color-accent);padding:12px;font:400 13px/1.5 var(--font-body);color:var(--color-accent-700);margin-bottom:14px}.logDump{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--color-text);background:var(--color-neutral-100);padding:8px;font:400 10px/1.35 var(--font-mono);white-space:pre-wrap;word-break:break-all;user-select:text;-webkit-user-select:text}.overview{height:100%;display:flex;flex-direction:column;padding-top:var(--safe-top);position:relative}.serviceCorner{flex:none;height:calc(28px * var(--s));display:flex;align-items:center;justify-content:flex-end;padding:0 12px;font:600 calc(11px * var(--s))/1 var(--font-body);color:var(--color-neutral-600);user-select:none;-webkit-user-select:none}.gridViewport{flex:1;min-height:0;position:relative;overflow:hidden}.gridScroll{position:absolute;inset:0;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.gridScroll::-webkit-scrollbar{display:none}.gridCanvas{position:relative}.snapPoint{position:absolute;top:0;width:1px;height:1px;scroll-snap-align:start}.snapPoint.snapEnd{scroll-snap-align:end}.edgeFade{position:absolute;top:0;bottom:0;right:0;width:calc(34px * var(--s));pointer-events:none;background:linear-gradient(to right,transparent,var(--color-bg))}.spine{position:absolute;right:0;top:50%;transform:translateY(-50%);width:calc(22px * var(--s));height:calc(104px * var(--s));border:2px solid var(--color-text);background:var(--color-bg);display:flex;align-items:center;justify-content:center;font:600 calc(10px * var(--s))/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;writing-mode:vertical-rl}.tile{position:absolute;display:flex;align-items:center;white-space:nowrap;overflow:hidden}.tile-filled{background:var(--color-surface);padding-left:calc(3px * var(--s));font:500 calc(12px * var(--s))/1 var(--font-body);color:var(--color-text)}.tile-empty{border:2px solid var(--color-neutral-400);padding-left:calc(1px * var(--s));font:500 calc(12px * var(--s))/1 var(--font-body);color:var(--color-neutral-600)}.tapZone{position:absolute;background:transparent}@keyframes justChanged{0%,to{box-shadow:0 0 0 2px transparent}20%,60%{box-shadow:0 0 0 2px var(--color-accent)}}.justChanged{animation:justChanged .9s ease-in-out 1 both}.themePlate{position:absolute;border:2px solid var(--color-text);padding:calc(6px * var(--s)) calc(8px * var(--s)) calc(8px * var(--s));background:transparent;transition:background .2s}.themePlate.hot{background:var(--color-accent-100)}.themeKicker{font:600 calc(8px * var(--s))/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-600);margin-bottom:calc(5px * var(--s))}.themeWord{font:800 calc(15px * var(--s))/1 var(--font-body);color:var(--color-text);text-transform:uppercase}.panel{position:absolute;left:0;right:0;bottom:0;background:var(--color-bg);border-top:2px solid var(--color-text);padding:14px 16px calc(var(--safe-bottom) + 14px);animation:panelUp .26s ease-out both}@keyframes panelUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.input{height:100%;display:flex;flex-direction:column;padding-top:var(--safe-top);animation:inputIn .18s ease-out both}@keyframes inputIn{0%{opacity:.4;transform:scale(.97)}to{opacity:1;transform:none}}.serviceRow{flex:none;height:calc(44px * var(--s));display:flex;align-items:center;justify-content:space-between;padding:0 12px}.serviceRow .close{width:calc(44px * var(--s));height:calc(44px * var(--s));margin-left:calc(-12px * var(--s));display:flex;align-items:center;justify-content:center;font:400 calc(22px * var(--s))/1 var(--font-body)}.serviceRow .count{font:500 calc(13px * var(--s))/1 var(--font-body);color:var(--color-neutral-600)}.serviceRight{display:flex;align-items:baseline;gap:calc(10px * var(--s))}.coins{font:600 calc(13px * var(--s))/1 var(--font-body);color:var(--color-text);white-space:nowrap}.overview .coins{font-size:calc(11px * var(--s))}.treeZone{flex:1;min-height:0;position:relative;overflow:hidden}.tree{position:absolute;left:0;top:0;width:100%}.treeTile{position:absolute;display:flex;align-items:center;padding-left:calc(8px * var(--s));white-space:nowrap;overflow:hidden;font:500 calc(13px * var(--s))/1 var(--font-body)}.treeTile.filled{background:var(--color-surface);color:var(--color-text)}.treeTile.empty{border:2px solid var(--color-text);color:var(--color-neutral-700);padding-left:calc(6px * var(--s))}.treeTile.focus{border:2px solid var(--color-accent);background:var(--color-accent-100);color:var(--color-accent-700);font-weight:600;padding-left:calc(6px * var(--s))}.treeTap{position:absolute;background:transparent}.parentCaption{position:absolute;font:600 calc(8px * var(--s))/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-600)}.treeTheme{position:absolute;border:2px solid var(--color-text);padding:calc(5px * var(--s)) calc(8px * var(--s)) calc(7px * var(--s))}.treeTheme .themeWord{font-size:calc(14px * var(--s))}.strip{flex:none;position:relative;height:calc(48px * var(--s));border-top:2px solid var(--color-text);display:flex;align-items:center;justify-content:space-between;padding:0 4px}.stripArrow{height:calc(44px * var(--s));flex:none;display:flex;align-items:center;justify-content:center;font:400 calc(20px * var(--s))/1 var(--font-body);color:var(--color-neutral-600)}.cells{display:flex}.cell{display:flex;align-items:center;justify-content:center;font:600 calc(18px * var(--s))/1 var(--font-body);border:2px solid var(--color-neutral-500);color:var(--color-text)}.cell.filled{border-color:var(--color-text)}.cell.fixed{border-color:var(--color-text);background:var(--color-surface);color:var(--color-neutral-800)}.cell.active{border-color:var(--color-accent);background:var(--color-accent-100)}.cell.ok{border-color:var(--color-ok);background:var(--color-ok-100);color:var(--color-ok-800)}.cell.bad{border-color:var(--color-accent);background:var(--color-accent-200);color:var(--color-accent-800)}@keyframes stripShake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(5px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}80%{transform:translate(-2px)}}.cells.shake{animation:stripShake .3s ease-in-out 1 both}@keyframes okFade{0%,55%{opacity:1}to{opacity:.35}}.cells.okfade{animation:okFade .4s ease-out 1 both}.realInput{position:absolute;top:0;bottom:0;width:auto;opacity:0;font-size:max(16px,calc(16px * var(--s)));border:0;background:transparent;color:transparent;caret-color:transparent}.note{flex:none;height:calc(22px * var(--s));display:flex;align-items:center;padding:0 calc(12px * var(--s));border-top:2px solid var(--color-divider);font:400 calc(11px * var(--s))/1 var(--font-body);color:var(--color-neutral-600);margin-bottom:var(--safe-bottom)}.note.latin{font-weight:500;color:var(--color-accent-700)}.rejectedList{position:absolute;left:0;right:0;bottom:100%;background:var(--color-bg);border-top:2px solid var(--color-text);border-bottom:2px solid var(--color-divider);padding:calc(8px * var(--s)) calc(12px * var(--s)) calc(10px * var(--s));display:flex;flex-direction:column;gap:calc(5px * var(--s));max-height:40vh;overflow:auto}.rejectedList .kicker{font:600 calc(9px * var(--s))/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-600)}.rejectedList .word{font:400 calc(13px * var(--s))/1.35 var(--font-body);color:var(--color-neutral-600);text-decoration:line-through}.listHead{flex:none;font:600 9px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-600);margin:16px 0 6px}.levelList{flex:1;min-height:64px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-top:2px solid var(--color-text);margin-bottom:var(--space-3)}.levelRow{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 2px;text-align:left;border-bottom:1px solid var(--color-divider)}.levelRow:active{background:var(--color-surface)}.levelName{font:500 14px/1.2 var(--font-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.levelMark{flex:none;font:400 11px/1 var(--font-body);color:var(--color-neutral-600)}.levelRow.done .levelName{color:var(--color-neutral-600)}.levelRow.done .levelMark{color:var(--color-accent-700)}.counter{display:flex;align-items:center;gap:calc(6px * var(--s))}.segs{display:flex;align-items:flex-end;gap:calc(2px * var(--s))}.seg{width:calc(4px * var(--s));height:calc(4px * var(--s));background:var(--color-neutral-400)}.seg.on{background:var(--color-text)}.seg.notch{height:calc(9px * var(--s))}.seg.notch.on{background:var(--color-accent)}.hintBtn{width:calc(30px * var(--s));height:calc(30px * var(--s));border:2px solid var(--color-text);display:flex;align-items:center;justify-content:center;font:800 calc(15px * var(--s))/1 var(--font-body)}.hintBtn:active{background:var(--color-surface)}.scrim{position:absolute;inset:0;background:color-mix(in srgb,var(--color-text) 30%,transparent)}.panel.hints,.panel.ad,.panel.stuck{max-height:80%;overflow:auto}.panelHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.panelHead h2{margin:0 0 8px}.panel .small{font-size:12px}.hintRow{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);text-align:left;padding:8px 2px;border-bottom:1px solid var(--color-divider)}.hintRow:active{background:var(--color-surface)}.hintText{display:flex;flex-direction:column;gap:3px}.hintTitle{font:700 15px/1.1 var(--font-body)}.hintNote{font:400 11px/1.25 var(--font-body);color:var(--color-neutral-600)}.hintPrice{flex:none;font:700 14px/1 var(--font-body);white-space:nowrap}.hintRow.poor .hintPrice{color:var(--color-accent)}.hintRow.off{opacity:.45}.hintRow.off .hintPrice{color:var(--color-neutral-600)}.boughtLinks{border:2px solid var(--color-text);padding:8px 10px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.boughtLink{font:500 13px/1.35 var(--font-body)}.panel.ad h2,.panel.stuck h2{margin:0 0 10px}.adBar{height:6px;background:var(--color-neutral-300);overflow:hidden}.adBar i{display:block;height:100%;background:var(--color-accent);animation:adFill 2.2s linear both}@keyframes adFill{0%{width:0}to{width:100%}}.winPay{font:700 15px/1.2 var(--font-body);margin-bottom:2px}.winStars{font:400 18px/1 var(--font-body);color:var(--color-accent);margin-bottom:10px}.ribbonHead{flex:none;display:flex;align-items:baseline;justify-content:space-between;font:700 14px/1 var(--font-body);margin:14px 0 6px}.levelRow{height:44px;min-height:44px}.levelNum{flex:none;width:28px;font:500 14px/1 var(--font-body);text-align:right}.levelStars{flex:none;margin-left:12px;font:400 13px/1 var(--font-body);color:var(--color-accent);letter-spacing:.06em}.levelRow.locked .levelStars{color:var(--color-neutral-500)}.levelRow.locked{color:var(--color-neutral-600)}.levelMark{margin-left:auto}.levelRow.goal{background:var(--color-accent-100);box-shadow:inset 0 0 0 2px var(--color-accent)}.levelRest{height:44px;display:flex;align-items:center;padding:0 2px;font:400 11px/1 var(--font-body);color:var(--color-neutral-600)}.serviceCorner{justify-content:space-between}.homeBtn{width:calc(44px * var(--s));height:calc(28px * var(--s));margin-left:-8px;display:flex;align-items:center;font:400 calc(22px * var(--s))/1 var(--font-body);color:var(--color-neutral-700)}
