:root{color-scheme:dark;--bg: #0d1117;--panel: #161b22;--panel-raised: #1c232d;--border: #2a3341;--text: #eef2f6;--text-dim: #9aa7b6;--accent: #8fd7ff;--accent-strong: #4fb8ea;--danger: #e0765a;--radius: 12px;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.app-root{min-height:100%;display:flex;flex-direction:column}.screen{max-width:560px;margin:0 auto;padding:2rem 1.25rem 3rem;display:flex;flex-direction:column;gap:1rem;flex:1;justify-content:center}.intro-wordmark{display:flex;align-items:center;gap:.65rem;font-size:2.4rem;margin:0;letter-spacing:-.02em}.intro-icon{width:2.4rem;height:2.4rem;display:block}.intro-slogan{margin:0;color:var(--accent);font-weight:600;font-size:1.05rem;letter-spacing:.01em}.intro-tagline{color:var(--text-dim);line-height:1.5}.intro-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.btn{font:inherit;border-radius:999px;padding:.85rem 1.5rem;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);cursor:pointer;transition:transform .08s ease,background .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#08202b;font-weight:600}.btn-ghost{background:transparent}.btn-large{padding:1rem 2rem;font-size:1.05rem;width:100%}.btn-small{padding:.4rem .8rem;font-size:.8rem}.tutorial-steps{color:var(--text-dim);line-height:1.6;padding-left:1.25rem}.tutorial-steps li+li{margin-top:.5rem}.gesture-demo-caption-stage{position:relative;min-height:3rem}.gesture-demo-caption{position:absolute;inset:0;color:var(--text-dim);line-height:1.5;text-align:center;opacity:0}.gesture-demo-caption-spin{animation:gestureDemoCaptionSpin 9s ease-in-out 2 forwards}.gesture-demo-caption-hold{animation:gestureDemoCaptionHold 9s ease-in-out 2 forwards}.gesture-demo-stage{position:relative;width:260px;height:220px;margin:.5rem auto}.gesture-demo-object{position:absolute;left:45px;top:25px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--panel-raised),var(--bg));border:1px solid var(--border);animation:gestureDemoObjectSpin 9s ease-in-out 2 forwards}.gesture-demo-object-mark{position:absolute;top:8px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--border)}.gesture-demo-cut-line{position:absolute;left:85px;top:93px;width:108px;height:4px;border-radius:999px;background:var(--accent);transform-origin:left center;opacity:0;animation:gestureDemoCutLine 9s ease-in-out 2 forwards}.gesture-demo-glow{position:absolute;left:85px;top:95px;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--accent);opacity:0;animation:gestureDemoGlow 9s ease-in-out 2 forwards}.gesture-demo-finger{position:absolute;left:0;top:0;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--text);border:2px solid var(--bg);box-shadow:0 1px 4px #0006;opacity:0;animation:gestureDemoFinger 9s ease-in-out 2 forwards}@keyframes gestureDemoCaptionSpin{0%,36%{opacity:1}44%,to{opacity:0}}@keyframes gestureDemoCaptionHold{0%,36%{opacity:0}44%,to{opacity:1}}@keyframes gestureDemoObjectSpin{0%{transform:rotate(0)}36%{transform:rotate(460deg)}44%,to{transform:rotate(480deg)}}@keyframes gestureDemoFinger{0%,44%{opacity:0;left:85px;top:95px}48%{opacity:1;left:85px;top:95px}67%{opacity:1;left:85px;top:95px}84%{opacity:1;left:185px;top:135px}to{opacity:1;left:185px;top:135px}}@keyframes gestureDemoGlow{0%,48%{opacity:0}53%{opacity:.75}57%{opacity:.35}61%{opacity:.75}64%{opacity:.35}67%,to{opacity:0}}@keyframes gestureDemoCutLine{0%,67%{opacity:0;transform:rotate(21.8deg) scaleX(0)}69%{opacity:1;transform:rotate(21.8deg) scaleX(0)}84%,to{opacity:1;transform:rotate(21.8deg) scaleX(1)}}@media (prefers-reduced-motion: reduce){.gesture-demo-object,.gesture-demo-caption-spin,.gesture-demo-caption-hold,.gesture-demo-finger,.gesture-demo-glow,.gesture-demo-cut-line{animation:none}.gesture-demo-caption-spin{opacity:0}.gesture-demo-caption-hold{opacity:1}.gesture-demo-finger{opacity:1;left:185px;top:135px}.gesture-demo-cut-line{opacity:1;transform:rotate(21.8deg) scaleX(1)}}.gesture-demo-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.walkthrough-skip-btn{align-self:center;margin-top:.1rem}.game-screen{display:flex;flex-direction:column;flex:1;min-height:100%;position:relative}.round-header{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem;background:var(--panel);border-bottom:1px solid var(--border)}.round-header-wordmark{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.05rem}.round-header-icon{width:1.3rem;height:1.3rem;display:block}.round-header-meta{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.82rem;color:var(--text-dim)}.round-header-multiplier{color:var(--accent);font-weight:600}.game-viewport{flex:1;min-height:260px;position:relative;touch-action:none}.game-viewport canvas{display:block;width:100%!important;height:100%!important;touch-action:none}.armed-perimeter-glow{position:absolute;inset:0;pointer-events:none;border:2px solid var(--accent);box-shadow:inset 0 0 32px 2px #8fd7ff80,inset 0 0 10px 1px #8fd7ffbf,0 0 20px 2px #8fd7ff59;opacity:0;transition:opacity .15s ease;z-index:2}.armed-perimeter-glow.is-armed{opacity:1}.game-chrome{display:flex;flex-direction:column;gap:.85rem;padding:.9rem 1rem 1.25rem;background:var(--panel);border-top:1px solid var(--border)}.density-legend{display:flex;flex-direction:column;gap:.25rem}.density-legend-bar{height:10px;border-radius:999px}.density-legend-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--text-dim)}.cut-placement-hint{font-size:.82rem;color:var(--text-dim);margin:0}.cut-controls-curve-group{display:flex;flex-direction:column;gap:.6rem;padding-top:.35rem;border-top:1px dashed var(--border)}.cut-slider-row{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--text-dim)}.cut-slider-row input[type=range]{width:100%;accent-color:var(--accent-strong)}.cut-controls{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.cut-controls.is-expanded{grid-template-rows:1fr}.cut-controls-inner{display:flex;flex-direction:column;gap:.6rem;overflow:hidden;min-height:0}.cut-controls.is-expanded .cut-controls-inner{padding-top:.35rem}.cut-controls-bar{display:flex;align-items:center;gap:.5rem}.cut-controls-reset{flex:0 0 auto}.cut-controls-submit{flex:1;width:auto;padding:.75rem 1.1rem}.cut-controls-expand-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);cursor:pointer;padding:0}.cut-controls-expand-chevron{display:block;width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s ease}.cut-controls-expand-toggle[aria-expanded=true] .cut-controls-expand-chevron{transform:rotate(225deg)}.daily-results-screen,.already-completed-screen{position:absolute;inset:0;background:#0d1117f0;display:flex;flex-direction:column;gap:.85rem;padding:1.5rem 1.25rem;overflow-y:auto;z-index:5}.result-panel{background:var(--panel);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;padding:.9rem 1rem 1.25rem;max-height:48vh;overflow-y:auto}.result-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:sticky;top:-.9rem;margin:-.9rem -1rem 0;padding:.9rem 1rem .5rem;background:var(--panel);z-index:1}.result-panel-header h2{margin:0}.result-panel-header .btn{flex:0 0 auto}.result-split-row{display:flex;gap:1rem}.result-split-cell{flex:1;background:var(--panel-raised);border-radius:var(--radius);padding:.85rem;text-align:center}.result-split-value{font-size:1.6rem;font-weight:700}.result-split-caption{color:var(--text-dim);font-size:.78rem}.result-feedback{font-size:1rem}.result-stats{display:flex;flex-direction:column;gap:.3rem;color:var(--text-dim);font-size:.9rem}.result-reference{color:var(--text-dim);font-size:.82rem}.daily-results-score{font-size:2.4rem;font-weight:700}.daily-results-max{font-size:1.2rem;color:var(--text-dim);font-weight:400}.daily-results-label{color:var(--accent);font-weight:600}.daily-results-rounds{display:flex;flex-direction:column;gap:.35rem}.daily-results-round-row{display:flex;justify-content:space-between;gap:.75rem;font-size:.9rem;color:var(--text-dim)}.daily-results-bar{font-family:monospace;letter-spacing:-1px;color:var(--accent)}.share-text{background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;font-size:.8rem;white-space:pre-wrap;color:var(--text-dim)}.daily-results-actions{display:flex;flex-direction:column;gap:.6rem}.debug-panel{position:absolute;top:3.5rem;right:.75rem;width:240px;background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;font-size:.78rem;color:var(--text-dim);display:flex;flex-direction:column;gap:.4rem;z-index:10}.debug-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--text)}.debug-toggle-btn{position:fixed;bottom:.5rem;right:.5rem;z-index:20;font-size:.7rem;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);opacity:.6}@media (min-width: 860px){.game-screen{display:grid;grid-template-columns:1fr 340px;grid-template-rows:auto 1fr}.round-header{grid-column:1 / -1}.game-viewport{min-height:100%}.game-chrome{border-top:none;border-left:1px solid var(--border);overflow-y:auto}.cut-controls{display:block;grid-template-rows:none;transition:none}.cut-controls-inner{display:flex;flex-direction:column;gap:.6rem;padding-top:0;overflow:visible}.cut-controls-bar{flex-direction:column;align-items:stretch;gap:.6rem}.cut-controls-submit{padding:1rem 2rem;font-size:1.05rem}.cut-controls-expand-toggle{display:none}.result-panel{border-top:none;border-left:1px solid var(--border);max-height:none;overflow-y:auto}}
