:root[data-theme=light]{--bg: #f7f4ec;--fg: #1f1b16;--dim: rgba(31, 27, 22, .45);--faint: rgba(31, 27, 22, .12);--accent: #f4502c;--sage: #7a9181;--shape-fill: #1f1b16;--modal-bg: #f7f4ec;--modal-shade: rgba(31, 27, 22, .4);--review-card: rgba(31, 27, 22, .04)}:root[data-theme=dark]{--bg: #0f1419;--fg: #f7f4ec;--dim: rgba(247, 244, 236, .45);--faint: rgba(247, 244, 236, .14);--accent: #f4502c;--sage: #9ab3a3;--shape-fill: #f7f4ec;--modal-bg: #171c22;--modal-shade: rgba(0, 0, 0, .55);--review-card: rgba(247, 244, 236, .05)}:root{color-scheme:light dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--fg);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum" 1;letter-spacing:.01em}.dim{color:var(--dim)}.app{min-height:100vh;min-height:100dvh;max-width:440px;margin:0 auto;display:flex;flex-direction:column;padding:18px 18px max(18px,env(safe-area-inset-bottom))}.app-loading{background:var(--bg)}.hdr{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.02em;padding-bottom:4px}.hdr-brand{color:var(--fg)}.hdr-date{min-height:1em}.main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}.ftr{display:flex;justify-content:center;align-items:center;gap:10px;font-size:11px;padding-top:12px}.ftr-btn{color:var(--dim);transition:color .15s;letter-spacing:.02em}.ftr-btn:hover{color:var(--fg)}.ftr-sep{opacity:.5}.tagline{text-align:center;font-size:12px;letter-spacing:.02em;margin-top:20px;opacity:.65}.play{display:flex;flex-direction:column;align-items:center;gap:20px}.shape-stage{width:100%;aspect-ratio:1;max-width:360px;position:relative}.shape-layer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transition:opacity .25s ease-out}.shape-layer.shape-fading{opacity:0}.shape-layer.shape-incoming{opacity:1;animation:layer-fade-in .3s ease-out}@keyframes layer-fade-in{0%{opacity:0}to{opacity:1}}.shape-svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.shape-svg.shape-thumb{width:32px;height:32px}.shape-fill{fill:var(--shape-fill)}.shape-draw-in{fill:var(--shape-fill);stroke:var(--shape-fill);stroke-width:2.5;animation:draw-and-fill .5s ease-out forwards;stroke-dasharray:6000;stroke-dashoffset:6000;fill-opacity:0}@keyframes draw-and-fill{0%{stroke-dashoffset:6000;fill-opacity:0}60%{stroke-dashoffset:0;fill-opacity:0}to{stroke-dashoffset:0;fill-opacity:1}}.drag-preview{fill:var(--accent);opacity:.9;animation:preview-breathe 1.1s ease-in-out infinite}@keyframes preview-breathe{0%,to{opacity:.9}50%{opacity:.65}}.tap-dot{fill:var(--accent);animation:pop .22s ease-out}.commit-ring{fill:none;stroke:var(--accent);stroke-width:2;pointer-events:none}.true-center{fill:var(--sage);animation:pop .3s .1s ease-out backwards}.reveal-line{stroke:var(--sage);stroke-width:1.5;stroke-dasharray:3 3;opacity:.7;animation:fade-in .4s .15s ease-out backwards}@keyframes pop{0%{transform:scale(0);transform-origin:center;transform-box:fill-box}to{transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:.7}}.play-progress{display:flex;gap:10px;min-height:12px;align-items:center}.prog-dot{width:7px;height:7px;border-radius:50%;background:var(--faint);transition:background .2s;display:inline-block}.prog-dot.prog-current{background:var(--dim)}.prog-dot.prog-done{background:var(--fg)}.prog-dot.prog-pulse{animation:dot-pulse .6s ease-out}@keyframes dot-pulse{0%{transform:scale(1)}35%{transform:scale(1.8)}to{transform:scale(1)}}.play-hint{font-size:12px;color:var(--dim);letter-spacing:.02em;animation:gentle-pulse 2.4s ease-in-out infinite}@keyframes gentle-pulse{0%,to{opacity:.4}50%{opacity:.75}}.reveal{display:flex;flex-direction:column;gap:14px;animation:rise .4s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.meta{font-size:11px;letter-spacing:.04em}.scores{display:flex;flex-direction:column;gap:10px;padding:4px 0}.score-row{display:flex;align-items:center;gap:12px}.score-thumb{width:32px;height:32px;flex-shrink:0}.score-num{flex:1;font-size:13px;color:var(--fg)}.score-side{display:flex;align-items:center;gap:6px;font-size:11px}.score-symbol{font-size:14px;line-height:1}.divider{height:.5px;background:var(--faint);margin:4px 0}.avg-block{padding:4px 0}.avg-row{display:flex;align-items:baseline;justify-content:space-between}.label{font-size:11px;letter-spacing:.02em;text-transform:lowercase}.big-num{font-size:28px;font-weight:500;letter-spacing:-.02em;color:var(--fg)}.avg-label{text-align:right;font-size:11px;margin-top:2px;letter-spacing:.02em}.bias-row{display:flex;align-items:baseline;justify-content:space-between}.bias{font-size:12px;color:var(--fg);display:inline-flex;align-items:center;gap:4px}.bias-arrow{font-size:14px;line-height:1}.streak-row{font-size:11px;letter-spacing:.02em;text-align:right}.percentile-row{display:flex;align-items:baseline;justify-content:center;gap:8px;font-size:12px;margin-top:6px;padding:10px 0;border-top:.5px solid var(--faint);border-bottom:.5px solid var(--faint);animation:fade-in-slow .5s ease-out}@keyframes fade-in-slow{0%{opacity:0}to{opacity:1}}.percentile-main{color:var(--fg);letter-spacing:.02em}.percentile-sep{opacity:.5}.percentile-count{font-size:11px}.share-btn{margin-top:12px;padding:14px 0;background:var(--fg);color:var(--bg);border-radius:10px;font-family:Inter,-apple-system,system-ui,sans-serif;font-size:13px;letter-spacing:.04em;transition:opacity .15s,transform .1s}.share-btn:hover{opacity:.9}.share-btn:active{transform:scale(.98)}.review-link{margin-top:6px;padding:6px 0;text-align:center;font-size:11px;color:var(--dim);letter-spacing:.02em;transition:color .15s}.review-link:hover{color:var(--fg)}.countdown-block{margin-top:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.countdown-label{font-family:Inter,-apple-system,system-ui,sans-serif;font-size:12px;letter-spacing:.02em}.countdown-digits{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum" 1;font-size:28px;font-weight:500;letter-spacing:.02em;color:var(--fg)}.review{display:flex;flex-direction:column;gap:16px;animation:rise .3s ease-out}.review-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.02em}.back-btn{color:var(--fg);font-size:12px;padding:6px 0;transition:opacity .15s}.back-btn:hover{opacity:.7}.review-title{font-size:11px;letter-spacing:.04em}.review-shapes{display:flex;flex-direction:column;gap:16px}.review-shape{background:var(--review-card);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.review-shape-header{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.02em}.review-score-num{color:var(--fg);font-size:13px;font-weight:500}.review-shape-canvas{width:100%;aspect-ratio:1;max-width:280px;margin:0 auto}.review-shape-canvas svg{width:100%;height:100%;display:block}.review-shape-footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.02em}.review-shape-symbol{font-size:14px;line-height:1}.review-legend{display:flex;justify-content:center;gap:18px;font-size:11px;padding:8px 0;letter-spacing:.02em}.review-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot-tap{background:var(--accent)}.legend-dot-center{background:var(--sage)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-shade);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10;animation:fade .2s ease-out}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--modal-bg);border-radius:14px;padding:24px 22px 20px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:14px;animation:rise .25s ease-out}.modal-title{font-size:12px;letter-spacing:.04em;color:var(--dim)}.modal-body{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--fg)}.modal-body p{margin:0}.modal-close{margin-top:6px;padding:10px;border:.5px solid var(--fg);border-radius:10px;font-size:12px;letter-spacing:.04em;color:var(--fg);transition:background .15s,color .15s}.modal-close:hover{background:var(--fg);color:var(--bg)}
