:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-left:env(safe-area-inset-left,0px);color:#3b3b3b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html,body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#cfe8f5;height:100%;margin:0;overflow:hidden}#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;position:fixed;inset:0}.hud-top{padding:calc(10px + var(--safe-top)) calc(12px + var(--safe-right)) 0 calc(12px + var(--safe-left));justify-content:space-between;align-items:center;display:flex}.hud-title{background:#ffffffbf;border-radius:999px;padding:6px 14px;font-size:18px;font-weight:700}.hud-btn{pointer-events:auto;color:#3b3b3b;cursor:pointer;background:#fff;border:none;border-radius:50%;width:56px;height:56px;font-size:28px;line-height:1;box-shadow:0 3px #00000026}.hud-btn:active{transform:translateY(2px);box-shadow:0 1px #00000026}.hud-btn.primary{color:#fff;background:#ffb347}.hud-btn[hidden],.hud-win[hidden]{display:none}.hud-win{pointer-events:auto;background:#ffffff59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.win-card{text-align:center;background:#fff;border-radius:28px;padding:20px 36px 24px;animation:.35s cubic-bezier(.2,1.6,.4,1) pop;box-shadow:0 10px 30px #00000026}.win-card h1{margin:6px 0 16px;font-size:26px}.win-emoji{font-size:40px}.win-actions{justify-content:center;gap:16px;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.6)}}#rotate{z-index:10;background:#cfe8f5;flex-direction:column;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:none;position:fixed;inset:0}#rotate span{font-size:64px}@media (orientation:portrait) and (pointer:coarse){#rotate{display:flex}}.lil-gui.lil-root,.lil-gui.root{top:calc(76px + var(--safe-top))!important}.hud-left{align-items:center;gap:10px;display:flex}.level-select{pointer-events:auto;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);background:#cfe8f5;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.level-select[hidden]{display:none}.ls-title{letter-spacing:1px;color:#fff;text-shadow:0 3px #0000001f;margin:0;font-size:44px}.ls-grid{flex-wrap:wrap;justify-content:center;gap:26px 16px;max-width:720px;display:flex}.ls-level{color:#3b3b3b;cursor:pointer;background:#fff;border:none;border-radius:24px;width:84px;height:84px;font-size:34px;font-weight:800;position:relative;box-shadow:0 4px #00000026}.ls-level:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #00000026}.ls-level:disabled{cursor:default;background:#ffffff80;font-size:28px}.ls-level.done{background:#fff6e0}.ls-tick{color:#fff;background:#5aa83a;border-radius:50%;width:30px;height:30px;font-size:18px;line-height:30px;position:absolute;top:-8px;right:-8px}.perf-overlay{top:calc(var(--safe-top) + 4px);color:#fff;white-space:nowrap;pointer-events:auto;z-index:20;background:#00000073;border:0;border-radius:6px;padding:2px 8px;font:12px/1.4 ui-monospace,monospace;position:fixed;left:50%;transform:translate(-50%)}.bench-report{inset:16px calc(var(--safe-right) + 16px) 16px calc(var(--safe-left) + 16px);pointer-events:auto;z-index:30;background:#fffffff5;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed}.bench-report pre{-webkit-user-select:text;user-select:text;flex:1;margin:0;font:11px/1.35 ui-monospace,monospace;overflow:auto}.bench-actions{justify-content:flex-end;gap:12px;display:flex}.bench-actions button{background:#ffd84d;border:0;border-radius:10px;min-width:96px;min-height:48px;font-size:18px}.carrot-palette{left:calc(12px + var(--safe-left));bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:12px;display:flex;position:fixed}.carrot-palette[hidden]{display:none}.palette-btn{pointer-events:auto;background:var(--mode-color);cursor:pointer;touch-action:none;border:4px solid #ffffffe6;border-radius:50%;width:64px;height:64px;padding:0;transition:transform 80ms;position:relative;box-shadow:0 3px #0000002e}.palette-btn img{pointer-events:none;width:40px;height:40px;margin-top:2px}.palette-btn.selected{border-color:#2b2b2b;transform:scale(1.12)}.palette-ring{pointer-events:none;background:conic-gradient(#2b2b2b calc(var(--left,1) * 360deg), transparent 0);opacity:0;border-radius:50%;position:absolute;inset:-9px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px))}.palette-btn.selected .palette-ring{opacity:1}.palette-count{color:#2b2b2b;pointer-events:none;background:#fff;border-radius:12px;min-width:24px;height:24px;font:700 16px/24px system-ui,sans-serif;position:absolute;top:-8px;right:-8px;box-shadow:0 1px 2px #00000040}.palette-count:empty{display:none}.palette-btn:disabled{opacity:.4;cursor:default}.palette-btn.new{animation:1s ease-in-out infinite palette-pulse}@keyframes palette-pulse{50%{transform:scale(1.18);box-shadow:0 0 0 8px #fff9}}.win-stars{justify-content:center;gap:6px;font-size:48px;line-height:1;display:flex}.win-stars span{color:#00000026}.win-stars span.earned{color:#ffc21a;text-shadow:0 2px #d99a00;animation:.35s ease-out both star-pop}@keyframes star-pop{0%{transform:scale(0)}70%{transform:scale(1.3)}}.ls-stars{color:#ffc21a;text-shadow:0 1px #d99a00;letter-spacing:1px;font-size:18px;position:absolute;bottom:-14px;left:0;right:0}.ls-star-off{color:#0000002e;text-shadow:none}
