@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-r32jotim.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2)format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-ext-500-normal-CTEe1bJa.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-500-normal-CAxz3nsc.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2)format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-ext-600-normal-BsaQcF38.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-600-normal-DMks36a2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2)format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0e131b;--bg-raise:#141a24;--line:#ece4d614;--line-strong:#ece4d629;--text:#efe8dc;--text-dim:#8e96a3;--text-faint:#5d6573;--accent:#ee8a70;--accent-ink:#1b1210;--good:#8cc7a6;--ok:#e3c071;--bad:#e07a6d;--serif:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--sans:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--header-h:72px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background-image:radial-gradient(1200px 700px at 50% 42%,#131a25 0%,#0000 70%);font-size:15px}#root,.app{min-height:100dvh}button{font:inherit;color:inherit}a{color:inherit}.dim{color:var(--text-faint)}.mono{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.icon{flex:none;display:block}.site-header{height:var(--header-h);border-bottom:1px solid var(--line);align-items:center;gap:40px;padding:0 clamp(16px,5vw,88px);display:flex}.logo{font-family:var(--serif);letter-spacing:-.02em;white-space:nowrap;margin-right:auto;font-size:28px;font-weight:500;text-decoration:none}.logo span{color:#8fa6d4}.site-nav{gap:2px;height:100%;display:flex}.site-nav a{color:var(--text-dim);align-items:center;padding:0 14px;text-decoration:none;transition:color .2s;display:flex;position:relative}.site-nav a:hover,.site-nav a.is-active{color:var(--text)}.site-nav a.is-active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.site-tools{align-items:center;gap:22px;display:flex}.account-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 2px;transition:color .2s;display:flex}.account-btn:hover,.account-btn.is-signed-in{color:var(--text)}.avatar{border:1px solid var(--line-strong);width:26px;height:26px;font-family:var(--serif);color:var(--text);background:#2a3242;border-radius:50%;place-items:center;font-size:14px;font-weight:600;display:grid}.menu-btn,.mobile-nav{display:none}.streak{color:var(--text);align-items:center;gap:7px;display:flex}.streak .flame{color:var(--text-faint)}.streak .flame.is-lit{color:var(--accent)}.streak-num{font-variant-numeric:tabular-nums}.icon-btn{color:var(--text-dim);cursor:pointer;transition:color .2s, transform .4s var(--ease-out);background:0 0;border:0;border-radius:8px;margin:-6px;padding:6px}.icon-btn:hover{color:var(--text);transform:rotate(30deg)}.btn{cursor:pointer;height:54px;font-family:var(--serif);letter-spacing:-.01em;transition:transform .16s var(--ease-out), background-color .2s, opacity .2s, border-color .2s;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:14px;padding:0 34px;font-size:21px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.07)}.btn-primary:disabled{opacity:.55;cursor:default;transform:none}.btn-ghost{border-color:var(--line-strong);color:var(--text);background:0 0;font-size:18px}.btn-ghost:hover{border-color:#ece4d659}.btn-danger{color:#fff;background:#b9574b}.btn-sm{height:34px;font-size:14px;font-family:var(--sans);border-radius:8px;padding:0 14px}.btn .icon{transition:transform .2s var(--ease-out)}.btn:hover .icon{transform:translate(3px)}.link-btn{color:var(--text-dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.play{height:calc(100dvh - var(--header-h));grid-template-rows:auto minmax(0,1fr) auto auto;justify-items:center;min-height:560px;padding:clamp(14px,3vh,34px) 16px clamp(12px,2.4vh,26px);display:grid;position:relative}.play-flag{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;margin:0;font-size:12px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.play.is-flagged{padding-top:40px}.eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--text-dim);margin:0;padding-left:.42em;font-size:13px}.ratio-target{text-align:center}.ratio-numbers{font-family:var(--serif);letter-spacing:-.03em;font-variant-numeric:lining-nums tabular-nums;animation:rise .6s var(--ease-out) both;justify-content:center;align-items:baseline;gap:.28em;margin:clamp(2px,1vh,10px) 0 0;font-size:clamp(52px,9.2vh,88px);font-weight:600;line-height:1;display:flex}.ratio-slash{color:var(--text-faint);font-weight:300;transform:translateY(-.04em)}.stage{width:100%;height:100%;min-height:0;animation:stage-in .55s var(--ease-out) both;justify-content:center;padding:clamp(4px,1vh,10px) 0;display:flex}.stage-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:min(100%,900px);height:100%;overflow:visible}.stage-svg.is-aiming{cursor:grab}.stage-svg.is-dragging{cursor:grabbing}.stage-orbit{fill:none;stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.grain{mix-blend-mode:overlay;pointer-events:none}.shape-edge{fill:none;stroke-width:2.4px;stroke-linejoin:round;opacity:.9}.divider-line{stroke:#f4eee4;stroke-width:2.6px;stroke-linecap:round;transition:stroke-width .15s}.is-dragging .divider-line{stroke-width:3.2px}.divider-line.pulse{animation:line-pulse .42s var(--ease-out)}.divider-guide{stroke:#f4eee4;stroke-opacity:.22;stroke-width:1.4px;stroke-dasharray:3 5;stroke-linecap:round}.ideal-line{stroke:#f4eee4;stroke-width:1.6px;stroke-dasharray:.012 .012;stroke-opacity:.75;animation:.5s .55s both fade-in}.divider-handle{cursor:grab;outline:none}.rotate-knob{cursor:grab}.knob-hit{fill:#0000}.knob-ring{fill:var(--bg);stroke:#f4eee4;stroke-opacity:.55;stroke-width:1.5px;transition:stroke-opacity .2s, transform .2s var(--ease-spring);transform-box:fill-box;transform-origin:50%}.knob-glyph{fill:none;stroke:#f4eee4;stroke-opacity:.8;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.rotate-knob:hover .knob-ring{stroke-opacity:1;transform:scale(1.12)}.stage-svg.is-rotate,.stage-svg.is-rotate .rotate-knob{cursor:grabbing}.stage-svg.is-rotate .knob-ring{stroke-opacity:1}.angle-readout{font-family:var(--sans);fill:#f4eee4;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0a0d1399;stroke-width:5px;font-variant-numeric:tabular-nums;pointer-events:none;font-size:15px}.handle-hit{fill:#0000}.handle-visual{transition:transform .2s var(--ease-spring)}.handle-ring{fill:#f4eee4;stroke:#0e131b59;stroke-width:1px;filter:drop-shadow(0 3px 8px #00000059)}.handle-grip{stroke:#1a212c;stroke-width:1.7px;stroke-linecap:round;fill:none}.stage-svg.is-aiming:hover .handle-visual{transform:scale(1.06)}.divider-handle.is-dragging .handle-visual{transform:scale(1.14)}.divider-handle:focus-visible .handle-ring{stroke:var(--accent);stroke-width:3px}.divider-handle.is-locked .handle-visual{transition:transform .3s var(--ease-out);transform:scale(0)}.split-label{font-family:var(--serif);letter-spacing:-.02em;fill:#fbf7f0;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0a0d1373;stroke-width:6px;stroke-linejoin:round;font-variant-numeric:tabular-nums;animation:label-in .5s var(--ease-out) both;font-size:36px;font-weight:600}.sparks circle{fill:#fff6e8;transform-box:fill-box;transform-origin:50%;animation:spark .95s var(--ease-out) both}.stage.shake{animation:.46s cubic-bezier(.36,.07,.19,.97) both shake}.stage.pop .stage-svg{animation:pop .5s var(--ease-spring) 50ms both}.action-zone{justify-content:center;width:100%;height:156px;display:flex}.aim-actions{flex-direction:column;align-items:center;gap:16px;display:flex}.btn-lock{min-width:340px}.aim-actions.is-locking .btn-lock{opacity:.5}.hint{color:var(--text-dim);text-align:center;margin:0;font-size:15px}.result{flex-direction:column;align-items:center;gap:9px;display:flex}.reaction{font-family:var(--serif);letter-spacing:.16em;text-transform:uppercase;animation:reaction-in .55s var(--ease-spring) .55s both;margin:0;padding-left:.16em;font-size:30px;font-weight:600;line-height:1}.tone-perfect .reaction,.tone-great .reaction{color:#fff3dc;text-shadow:0 0 22px #ffd6a059}.tone-good .reaction{color:var(--good)}.tone-ok .reaction{color:var(--ok)}.tone-meh .reaction{color:#e6a067}.tone-bad .reaction{color:var(--bad)}.result-line{font-variant-numeric:tabular-nums;animation:rise .45s var(--ease-out) .75s both;align-items:center;gap:18px;margin:0;font-size:16px;display:flex}.result-item{align-items:baseline;gap:6px;display:inline-flex}.result-key{color:var(--text-faint);letter-spacing:.16em;text-transform:uppercase;margin-right:4px;font-size:12px}.result-sep{background:var(--line-strong);width:1px;height:16px}.result-head{align-items:center;gap:22px;display:flex}.result-head-sep{background:var(--line-strong);width:1px;height:34px;animation:.4s .6s both fade-in}.result-points{font-family:var(--serif);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;animation:reaction-in .55s var(--ease-spring) .6s both;align-items:baseline;margin:0;font-size:46px;font-weight:600;line-height:1;display:flex}.result-plus{color:var(--text-dim);align-self:center;margin-right:2px;font-size:.6em;font-weight:500}.result-pts{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-left:8px;font-size:13px;font-weight:500}.tone-perfect .result-points,.tone-great .result-points{color:#fff3dc;text-shadow:0 0 22px #ffd6a04d}.result-rank{letter-spacing:.04em;color:var(--text-faint);min-height:1.2em;animation:rise .45s var(--ease-out) .95s both;margin:0;font-size:13px}.result-rank.is-ready{color:var(--text-dim)}.result-next{min-width:260px;height:46px;animation:rise .45s var(--ease-out) 1.05s both;margin-top:4px}.up-next{width:min(560px,100%)}.rule-label{letter-spacing:.32em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:14px;margin:0 0 10px;font-size:11px;display:flex}.rule-label:before,.rule-label:after{content:"";background:var(--line-strong);flex:1;height:1px}.up-next-list{justify-content:center;gap:clamp(14px,4vw,40px);margin:0;padding:0;list-style:none;display:flex}.up-next-item{flex-direction:column;align-items:center;gap:4px;display:flex}.up-next-item .shape-thumb{box-sizing:content-box;border:1px solid #0000;border-radius:9px;padding:9px;transition:border-color .3s,background-color .3s}.shape-thumb path{fill:none;stroke:currentColor;stroke-width:22px;stroke-linejoin:round;vector-effect:none}.up-next-item.is-todo{color:var(--text-faint)}.up-next-item.is-done{color:var(--text-dim)}.up-next-item.is-current{color:var(--accent)}.up-next-item.is-current .shape-thumb{border-color:color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 7%, transparent)}.up-next-score{color:var(--text-faint);font-variant-numeric:tabular-nums;min-height:1em;font-size:11px}.tone-perfect,.tone-great{--tone:var(--good)}.up-next-score.tone-perfect,.up-next-score.tone-great,.results-err.tone-perfect,.results-err.tone-great{color:var(--good)}.up-next-score.tone-good,.results-err.tone-good{color:#9db6e0}.up-next-score.tone-ok,.results-err.tone-ok{color:var(--ok)}.up-next-score.tone-meh,.results-err.tone-meh{color:#e6a067}.up-next-score.tone-bad,.results-err.tone-bad{color:var(--bad)}.results,.archive{max-width:620px;margin:0 auto;padding:clamp(28px,6vh,64px) 16px 64px}.results-head{text-align:center;margin-bottom:34px}.results-title{font-family:var(--serif);letter-spacing:-.02em;margin:12px 0 0;font-size:clamp(36px,6vw,52px);font-weight:500}.results-title span{color:var(--text-faint)}.results-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.results-row{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;animation:rise .45s var(--ease-out) both;grid-template-columns:22px 26px 1fr auto 64px 48px;align-items:center;gap:16px;padding:15px 4px;display:grid}.results-row .shape-thumb{color:var(--text-dim)}.results-idx{color:var(--text-faint);font-size:13px}.results-name{font-size:16px}.results-err{font-size:14px}.results-rank{text-align:right;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.results-day-rank{text-align:right;color:var(--text-dim);min-height:1.3em;margin:0 4px;font-size:14px}.results-score{text-align:right;font-family:var(--serif);font-size:19px;font-weight:600}.results-total{justify-content:space-between;align-items:baseline;padding:26px 4px 6px;display:flex}.results-total-num{font-family:var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:46px;font-weight:600}.results-total-num .dim{font-size:22px;font-weight:400}.results-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:22px 0 0;display:grid}.results-stats div{text-align:center;padding:16px 4px}.results-stats div+div{border-left:1px solid var(--line)}.results-stats dt{letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);font-size:11px}.results-stats dd{font-family:var(--serif);margin:6px 0 0;font-size:26px;font-weight:500}.results-stats dd.mono{font-family:var(--sans);letter-spacing:.02em;font-size:22px}.results-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin:32px 0 18px;display:flex}.archive{max-width:920px}.archive-head h1{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 8px;font-size:44px;font-weight:500}.archive-head .hint{text-align:left;margin-bottom:30px}.archive-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}.archive-day{text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;background:0 0;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:4px 8px;width:100%;padding:16px 16px 15px;transition:background-color .2s;display:grid}.archive-day:hover{background:#ece4d609}.archive-num{font-family:var(--serif);font-size:20px;font-weight:500}.archive-date{color:var(--text-dim);grid-column:1;font-size:13px}.archive-score{color:var(--accent);font-variant-numeric:tabular-nums;grid-area:1/2/3;align-self:center;font-size:13px}.archive-score.is-done{color:var(--text);font-family:var(--serif);font-size:18px}.sheet-backdrop{padding:calc(var(--header-h) + 8px) clamp(16px, 5vw, 88px) 16px;z-index:20;background:#06080c99;justify-content:flex-end;align-items:flex-start;animation:.2s both fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-raise);border:1px solid var(--line-strong);width:min(380px,100%);animation:rise .3s var(--ease-out) both;border-radius:14px;padding:20px 22px;box-shadow:0 24px 60px #00000073}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sheet-head h2{font-family:var(--serif);margin:0;font-size:24px;font-weight:500}.setting{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;padding:13px 0;display:flex}.sheet-section{padding-top:16px}.sheet-section h3{letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin:0 0 6px;font-size:12px;font-weight:500}.sheet-section p{color:var(--text-dim);margin:0 0 8px;font-size:14px;line-height:1.55}.sheet-section em{color:var(--text);font-style:normal}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.switch{appearance:none;cursor:pointer;background:#2a313d;border-radius:99px;width:40px;height:23px;margin:0;transition:background-color .2s;position:relative}.switch:after{content:"";background:var(--text);width:17px;height:17px;transition:transform .22s var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(17px)}.gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:18px;padding:24px;display:grid}.gallery figure{text-align:center;margin:0;font-size:13px}.gallery svg{aspect-ratio:1;width:100%}.gallery path{fill:#34445e;stroke:#8fa6d4;stroke-width:3px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}@keyframes stage-in{0%{opacity:0;transform:scale(.97)}}@keyframes line-pulse{0%{stroke-width:2.6px}40%{stroke-width:7px;stroke:#fff}to{stroke-width:2.6px}}@keyframes label-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes reaction-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes spark{0%{opacity:0;transform:translate(0)scale(.4)}15%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1)}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.split-label{transform-box:fill-box;transform-origin:50%}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}@media (height<=760px) and (width>=700px){:root{--header-h:60px}.logo{font-size:24px}.action-zone{height:162px}.btn{height:48px}.result-next{height:42px}}@media (width<=699px){:root{--header-h:56px}body{font-size:14px}.site-header{gap:10px;padding:0 16px}.logo{font-size:21px}.site-nav{gap:0}.site-nav a{padding:0 9px;font-size:14px}.site-nav a.is-active:after{left:6px;right:6px}.site-tools{gap:14px}.streak-label{display:none}.eyebrow{letter-spacing:.34em;font-size:11px}.ratio-numbers{font-size:clamp(48px,8vh,64px)}.play{min-height:520px;padding-top:14px}.stage{padding:6px 0}.action-zone{height:160px}.btn{height:50px;font-size:19px}.btn-lock{width:min(100%,320px);min-width:0}.hint{font-size:13px}.reaction{font-size:22px}.result-line{gap:10px;font-size:14px}.result-key{letter-spacing:.1em;margin-right:0;font-size:10px}.result-head{gap:14px}.result-head-sep{height:28px}.result-points{font-size:34px}.result-pts{margin-left:6px;font-size:11px}.result-next{min-width:220px;height:46px}.up-next-item .shape-thumb{width:24px;height:24px;padding:6px}.rule-label{margin-bottom:6px}.results-row{grid-template-columns:14px 22px 1fr auto 46px 34px;gap:8px}.results-err{font-size:13px}.results-name{font-size:15px}.results-total-num{font-size:38px}.results-stats dd{font-size:21px}.results-stats dd.mono{font-size:17px}.archive-head h1{font-size:34px}.archive-grid{grid-template-columns:repeat(2,1fr)}.sheet-backdrop{padding:calc(var(--header-h) + 8px) 12px 12px}}@media (width<=360px){.logo span{display:none}}.packs,.collection{max-width:980px;margin:0 auto;padding:clamp(28px,6vh,56px) 16px 64px}.page-head h1{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 8px;font-size:44px;font-weight:500}.page-head .hint{text-align:left}.page-head em{color:var(--text);font-style:normal}.pack-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin:30px 0 0;padding:0;list-style:none;display:grid}.pack-card{border:1px solid var(--line-strong);transition:border-color .25s, transform .25s var(--ease-out), background-color .25s;border-radius:14px;gap:8px;padding:22px 22px 18px;text-decoration:none;display:grid;position:relative;overflow:hidden}.pack-card:before{content:"";background:linear-gradient(var(--pack-a), var(--pack-b));opacity:.85;width:3px;position:absolute;top:0;bottom:0;left:0}.pack-card:hover{background:#ece4d606;border-color:#ece4d652;transform:translateY(-2px)}.pack-name{font-family:var(--serif);letter-spacing:-.01em;font-size:28px;font-weight:500}.pack-blurb{color:var(--text-dim);font-size:14px}.pack-shapes{flex-wrap:wrap;gap:10px;margin:10px 0 6px;display:flex}.pack-shapes .shape-thumb.is-a{color:var(--pack-a)}.pack-shapes .shape-thumb.is-b{color:var(--pack-b)}.pack-foot{color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:13px;display:flex}.pack-perfect{color:#f1d38c}.collection-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.collection-count{color:var(--text-dim)}.collection-count strong{color:var(--text);font-family:var(--serif);margin-right:2px;font-size:22px;font-weight:600}.collection-meter{background:var(--line);border-radius:3px;height:3px;margin-top:12px;overflow:hidden}.collection-meter span{background:linear-gradient(90deg, #f1d38c, var(--accent));height:100%;transition:width .6s var(--ease-out);border-radius:3px;display:block}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;margin:28px 0 0;padding:0;list-style:none;display:grid}.collection-item{border:1px solid var(--line);text-align:center;border-radius:12px;justify-items:center;gap:4px;padding:16px 10px 12px;display:grid}.collection-item svg{width:72px;height:72px;margin-bottom:6px}.collection-item path{fill:none;stroke:var(--text-faint);stroke-width:9px;stroke-dasharray:18 14;opacity:.55}.collection-item.is-owned{background:#f1d38c09;border-color:#f1d38c59}.collection-item.is-owned path{fill:#c99a5b;stroke:#f6dfa8;stroke-width:6px;stroke-dasharray:none;opacity:1;filter:drop-shadow(0 0 10px #f1d38c2e)}.collection-name{color:var(--text-faint);font-size:14px}.collection-item.is-owned .collection-name{color:#f6e6c2}.collection-meta{color:var(--text-faint);font-size:11px;line-height:1.35}.collection-empty{margin-top:40px}.segmented{border:1px solid var(--line-strong);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.segmented button{cursor:pointer;color:var(--text-dim);background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:13px;transition:background-color .2s,color .2s}.segmented button[aria-selected=true]{color:var(--text);background:#252c39}.collect-badge{color:#f1d38c}.collect-badge.is-owned{color:var(--text-dim)}.results-star,.results-row.is-perfect .shape-thumb{color:#f1d38c}.sheet-note{color:var(--text-dim);margin:6px 0 12px;font-size:13px;line-height:1.5}.auth-form{gap:14px;padding-top:6px;display:grid}.auth-form .segmented{justify-self:start}.field{color:var(--text-dim);gap:6px;font-size:13px;display:grid}.field input{border:1px solid var(--line-strong);background:var(--bg);height:44px;color:var(--text);font:inherit;border-radius:9px;padding:0 12px;font-size:16px;transition:border-color .2s}.field input:focus{border-color:var(--accent);outline:none}.form-error{color:var(--bad);margin:0;font-size:14px}.form-ok{color:var(--good)}.account-email{color:var(--text);word-break:break-all;margin:4px 0 2px;font-size:16px}.auth-form .link-btn{justify-self:center;font-size:13px}.btn-block{width:100%;height:48px;font-size:18px}.account-stats{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;margin:8px 0 18px;display:grid}.account-stats div{text-align:center;padding:12px}.account-stats div+div{border-left:1px solid var(--line)}.account-stats dt{letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);font-size:11px}.account-stats dd{font-family:var(--serif);margin:4px 0 0;font-size:24px}.up-next-list:has(>:nth-child(6)){gap:clamp(6px,2vw,22px)}@media (width<=1099px){.site-nav{display:none}.menu-btn{display:block}.account-label{display:none}.site-header{position:relative}.mobile-nav{z-index:15;background:var(--bg-raise);border-bottom:1px solid var(--line-strong);animation:rise .2s var(--ease-out) both;padding:6px 16px 12px;display:grid;position:absolute;top:100%;left:0;right:0}.mobile-nav a{color:var(--text-dim);border-bottom:1px solid var(--line);padding:13px 4px;font-size:16px;text-decoration:none}.mobile-nav a:last-child{border-bottom:0}.mobile-nav a.is-active{color:var(--text)}}@media (width<=699px){.pack-grid{grid-template-columns:1fr}.page-head h1{font-size:34px}.collection-grid{grid-template-columns:repeat(3,1fr);gap:8px}.collection-item svg{width:56px;height:56px}.collection-name{font-size:12px}.collection-meta{font-size:10px}.up-next-list:has(>:nth-child(6)) .shape-thumb{width:20px;height:20px;padding:5px}}.ambient{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-shape{aspect-ratio:1;opacity:var(--o);will-change:transform;animation:linear infinite alternate ambient-drift;position:absolute;translate:-50% -50%}.ambient-shape path{fill:none;stroke:#efe8dc;stroke-width:1.4px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.ambient-dot{width:var(--size);height:var(--size);opacity:.08;background:#efe8dc;border-radius:50%;animation:ease-in-out infinite alternate ambient-twinkle,ease-in-out infinite alternate ambient-float;position:absolute}@keyframes ambient-drift{0%{transform:translate(0, 0) rotate(var(--r0))}to{transform:translate(var(--dx), var(--dy)) rotate(calc(var(--r0) + var(--r1)))}}@keyframes ambient-twinkle{0%{opacity:.04}to{opacity:.22}}@keyframes ambient-float{to{transform:translate(var(--dx), var(--dy))}}.sheet{max-height:calc(100dvh - var(--header-h) - 24px);overflow-y:auto}.palette-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.palette-option{border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--text-dim);background:0 0;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;transition:border-color .2s,color .2s,background-color .2s;display:flex}.palette-option:hover{border-color:var(--line-strong);color:var(--text)}.palette-option.is-selected{border-color:var(--accent);color:var(--text);background:color-mix(in srgb, var(--accent) 8%, transparent)}.swatch{flex:none;display:flex}.swatch svg{width:20px;height:20px;box-shadow:0 0 0 1.5px var(--bg-raise);border-radius:50%}@media (width<=699px){.ambient-shape:nth-child(n+6),.ambient-dot:nth-child(3n){display:none}}.site-footer{color:var(--text-faint);flex-wrap:wrap;justify-content:center;gap:10px;padding:28px 16px 36px;font-size:13px;display:flex}.site-footer a{color:var(--text-dim);text-decoration:none}.site-footer a:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}.results .site-footer{padding-bottom:0}.prose{max-width:680px;color:var(--text-dim);margin:0 auto;padding:clamp(28px,6vh,56px) 16px 24px;font-size:16px;line-height:1.65}.prose h1{font-family:var(--serif);letter-spacing:-.02em;color:var(--text);margin:0 0 6px;font-size:44px;font-weight:500;line-height:1.15}.prose h2{font-family:var(--serif);color:var(--text);margin:36px 0 8px;font-size:24px;font-weight:500}.prose h3{letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:20px 0 4px;font-size:13px;font-weight:600}.prose p{margin:0 0 12px}.prose ul,.prose ol{margin:0 0 12px;padding-left:22px}.prose li{margin:6px 0}.prose strong,.prose em{color:var(--text);font-style:normal;font-weight:600}.prose a{color:var(--text);text-underline-offset:3px}.prose .lead{color:var(--text);margin-bottom:8px;font-size:19px}.prose-summary{border:1px solid var(--line-strong);background:#ece4d606;border-radius:12px;margin:22px 0 26px;padding:16px 18px}.prose-summary p{margin:0}.prose-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:520px;margin:6px 0 14px}.prose-table th,.prose-table td{border-bottom:1px solid var(--line);text-align:center;padding:8px 10px}.prose-table th:first-child,.prose-table td:first-child{text-align:left;color:var(--text-faint);font-weight:500}.prose-table td{color:var(--text);font-family:var(--serif);font-size:18px}.prose-sign{color:var(--text-faint);margin-top:36px}.sheet-note a{color:var(--text)}@media (width<=699px){.prose h1{font-size:34px}.prose{font-size:15px}.prose-table th,.prose-table td{padding:7px 4px}}.waiting{color:var(--text);align-items:center;gap:10px;display:flex}.waiting-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-in-out infinite waiting-pulse}@keyframes waiting-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@media (width<=699px){.stage{padding:2px 0}.up-next-score{display:none}.rule-label{margin-bottom:4px}.up-next-item .shape-thumb{padding:5px}.action-zone{height:148px}.result{gap:7px}.aim-actions{gap:10px}}@media (width<=699px) and (height<=720px){.ratio-numbers{font-size:44px}.hint{font-size:12px}.play{padding-top:10px;padding-bottom:8px}}.stage{position:relative}.tutorial{pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;animation:.4s .3s both fade-in;display:flex;position:absolute;inset:0}.tutorial-finger{width:0;height:0;animation:2.8s ease-in-out infinite finger-slide;position:absolute;top:50%;left:50%}.tutorial-finger.is-multi{animation-name:finger-slide-multi;animation-duration:3.6s}.tutorial-dot{background:#fff6e847;border:2px solid #fff6e8e6;border-radius:50%;width:30px;height:30px;animation:2.8s ease-in-out infinite finger-press;position:absolute;top:-15px;left:-15px;box-shadow:0 0 0 6px #fff6e814}.tutorial-finger.is-multi .tutorial-dot{animation-duration:3.6s}.tutorial-card{pointer-events:auto;border:1px solid var(--line-strong);text-align:center;background:#10151eeb;border-radius:12px;max-width:min(340px,92%);margin-bottom:4%;padding:14px 16px 12px;font-size:14px;line-height:1.45;box-shadow:0 12px 40px #0006}.tutorial-card p{color:var(--text-dim);margin:0 0 6px}.tutorial-card strong,.tutorial-card em{color:var(--text);font-style:normal;font-weight:600}.tutorial-card .btn{margin-top:4px}@keyframes finger-slide{0%,12%{transform:translate(0)}40%{transform:translate(-60px)}70%{transform:translate(46px)}88%,to{transform:translate(0)}}@keyframes finger-slide-multi{0%,10%{transform:translate(-40px)}35%{transform:translate(-80px)}50%{transform:translate(-40px)}60%{transform:translate(40px)}85%{transform:translate(80px)}to{transform:translate(40px)}}@keyframes finger-press{0%,8%{opacity:0;transform:scale(1.25)}14%{opacity:1;transform:scale(1)}82%{opacity:1;transform:scale(1)}92%,to{opacity:0;transform:scale(1.25)}}.practice-numbers{color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:center;gap:22px;margin:0;font-size:14px;display:flex}.practice-numbers strong{color:var(--text);font-family:var(--serif);margin-right:4px;font-size:20px;font-weight:600}.ratio-numbers.is-three{font-size:clamp(40px,7.4vh,72px)}.split-label.is-small{font-size:28px}.stats{max-width:760px;margin:0 auto;padding:clamp(28px,6vh,56px) 16px 24px}.stat-tiles{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:0;margin:24px 0 0;display:grid}.stat-tiles.is-compact{grid-template-columns:repeat(4,1fr);margin-top:8px}.stat-tile{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 16px}.stat-tile dt{letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);font-size:11px}.stat-tile dd{font-family:var(--serif);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:30px;font-weight:500}.stats-section{margin-top:36px}.stats-section h2{font-family:var(--serif);margin:0 0 12px;font-size:22px;font-weight:500}.stats-section .hint{text-align:left;margin-top:8px}.stats-section .hint strong{color:var(--text)}.stats-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.chart{margin:0;position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-axis{fill:var(--text-faint);font-size:11px;font-family:var(--sans)}.chart-bar{fill:#8fa6d4;opacity:.85;transition:opacity .15s}.chart-bar.is-hover{opacity:1}.chart-miss{fill:var(--text-faint);opacity:.5}.chart-tip{background:var(--bg-raise);border:1px solid var(--line-strong);color:var(--text-dim);white-space:nowrap;pointer-events:none;border-radius:8px;align-items:baseline;gap:8px;padding:6px 10px;font-size:13px;display:flex;position:absolute;top:-8px;transform:translate(-50%,-100%)}.chart-tip strong{color:var(--text);font-family:var(--serif);font-size:16px}.tier-bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tier-bars li{grid-template-columns:96px 1fr 36px;align-items:center;gap:12px;font-size:14px;display:grid}.tier-name{color:var(--text-dim)}.tier-track{background:#ece4d60d;border-radius:4px;height:10px;overflow:hidden}.tier-fill{opacity:.85;background:#8fa6d4;border-radius:4px;min-width:2px;height:100%;display:block}.tier-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.shape-list{margin:0;padding:0;list-style:none}.shape-list li{border-bottom:1px solid var(--line);grid-template-columns:24px 1fr;align-items:center;column-gap:12px;padding:8px 0;font-size:15px;display:grid}.shape-list li .dim{grid-column:2;font-size:12px}.shape-list .shape-thumb{color:var(--text-dim);grid-row:span 2}@media (width<=699px){.stat-tiles,.stat-tiles.is-compact{grid-template-columns:repeat(2,1fr)}.stat-tile dd{font-size:24px}.stats-columns{grid-template-columns:1fr}.tier-bars li{grid-template-columns:82px 1fr 30px}}.streak-link{color:inherit;border-radius:8px;margin:-4px -6px;padding:4px 6px;text-decoration:none;transition:background-color .2s}.streak-link:hover{background:#ece4d60d}.weekly-card{margin-top:26px}.weekly-card .pack-card{grid-template-columns:1fr auto;align-items:center}.weekly-card .pack-card:before{background:linear-gradient(#7d9bd6,#8cc7a6,#ea8a70)}.weekly-tag{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-size:11px}.weekly-glyph{grid-area:1/2/span 4;width:74px;height:74px}.ratio-part{align-items:baseline;gap:.28em;display:inline-flex}@media (width>=700px) and (height<=900px){:root{--header-h:56px}.logo{font-size:23px}.play{min-height:0;padding:12px 16px 10px}.play.is-flagged{padding-top:30px}.play-flag{font-size:11px;top:8px}.eyebrow{font-size:11px}.ratio-numbers{margin-top:2px;font-size:clamp(40px,7.4vh,72px)}.stage{padding:4px 0}.action-zone{height:142px}.aim-actions{gap:8px}.hint{font-size:13px}.btn{height:46px;font-size:19px}.result{gap:6px}.reaction{font-size:24px}.result-points{font-size:36px}.result-line{font-size:14px}.result-next{height:40px;margin-top:2px}.up-next-score{display:none}.rule-label{margin-bottom:4px}.up-next-item .shape-thumb{width:24px;height:24px;padding:6px}}.stage-svg{max-height:700px}
