:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--black:#000;--tile:#1c1c1c;--tile-edge:#282828;--stroke:#3a3a3a;--ink:#f4f4f4;--ink-2:#f4f4f49e;--ink-3:#f4f4f461;--paper:#fbfbfb;--marker:#e5ec7e;--good:#a7d99e;--good-soft:#a7d99e29;--near:#f2851c;--danger:#f02e77;--accent:#fe196b;--select:#6fbdeb;--bg:#141414;--surface:#1f1f1f;--line:#2e2e2e;--lane-bar:#f4f4f429;--lane-active:#e5ec7e;--r-tile:30px;--r-pill:999px;--ease:cubic-bezier(.22, 1, .36, 1);--font:"Inter Tight", system-ui, -apple-system, sans-serif;--dots:"Doto", ui-monospace, monospace}.g-sage{background:radial-gradient(62% 54%,#02030c 0%,#090917 34%,#1d242d 52%,#445453 76%,#769687 100%)}.g-glucose{background:radial-gradient(70% 80% at 10% 0,#281a288c 0%,#281a2800 70%),linear-gradient(160deg,#826a7b 0%,#a06d7a 45%,#b96f76 75%,#c57278 100%)}.g-range{background:radial-gradient(72% 62% at 50% 62%,#1f2029 0%,#2b3038 42%,#4e615d 82%,#6c8780 100%)}.g-vari{background:radial-gradient(52% 44% at 68% 52%,#8a2a62 0%,#af779a 46%,#d488b8 100%)}.g-vitamin{background:radial-gradient(80% 80% at 40% 75%,#081029 0%,#10204f 50%,#213472 100%)}.g-spikes{background:radial-gradient(38% 46% at 74%,#364bc4 0%,#364bc48c 45%,#364bc400 75%),linear-gradient(160deg,#ab4f35 0%,#a6604f 100%)}.g-orange{background:linear-gradient(160deg,#f2851c 0%,#f39a3e 45%,#fbc6a4 100%)}.g-violet{background:linear-gradient(150deg,#8c3af4 0%,#b06ce6 55%,#d484d9 100%)}.g-sky{background:linear-gradient(#6fbdeb 0%,#689ec0 100%)}.g-ink{box-shadow:inset 0 0 0 1px var(--tile-edge);background:linear-gradient(#222 0%,#1a1a1a 100%)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--black)}body{background:var(--black);min-height:100dvh;color:var(--ink);font:400 16px/1.4 var(--font);letter-spacing:-.005em;margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}h1,h2{text-wrap:balance;font-weight:400}.dots{font-family:var(--dots);font-variation-settings:"ROND" 100;letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:800;line-height:.95}.dots small{font-family:var(--font);font-weight:400}.dots-xl{font-size:clamp(3.4rem,17vw,4.6rem)}.dots-l{font-size:2.6rem}.dots-m{font-size:1.7rem}.dots-s{font-size:1.15rem}.tile{border-radius:var(--r-tile);color:#fff;text-align:left;isolation:isolate;position:relative;overflow:hidden}.tile:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff24}button.tile{transition:transform .16s var(--ease)}button.tile:active{transform:scale(.97)}.tile-label{letter-spacing:-.01em;font-size:1.15rem}.tile-unit{color:#ffffffd1;font-size:.95rem}.tile-foot{color:#fffc;font-size:.85rem}.tile-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.ruler{width:100%;height:34px;display:block}.ruler line{stroke:#fff;stroke-width:1.4px}.ruler .ruler-mark{stroke:var(--marker);stroke-width:3px;stroke-linecap:round;opacity:1!important}.dial{flex:none;place-items:center;display:grid;position:relative}.dial>svg{width:100%;height:100%;position:absolute;inset:0}.dial-tick{stroke:#ffffffb3;stroke-width:1.6px;stroke-linecap:round;transition:stroke .3s}.dial-tick.lit{stroke:var(--marker);stroke-width:2.4px}.dial-orbit{fill:none;stroke:#ffffff29;stroke-width:1px}.dial-centre{place-items:center;width:100%;height:100%;display:grid;position:relative}.knob{color:#1c1c1c;background:radial-gradient(circle at 40% 35%,#fff 0%,#f4f6f8 55%,#d9dde2 100%);border-radius:50%;place-items:center;width:64px;height:64px;display:grid;box-shadow:0 10px 24px #00000073,inset 0 -2px 6px #0000001f}.knob-photo{aspect-ratio:1;width:44%;height:auto;overflow:hidden}.knob-photo img{object-fit:cover;filter:grayscale()contrast(1.1);width:100%;height:100%}.pill-btn{border-radius:var(--r-pill);color:#fff;min-width:220px;min-height:56px;transition:transform .16s var(--ease), opacity .16s;background:#282828eb;justify-content:space-between;align-items:center;gap:18px;padding:6px 6px 6px 24px;font-size:1rem;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1a}.pill-btn i{color:#1c1c1c;background:#fff;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.pill-btn.glow{background:radial-gradient(48% 130% at 74% 60%,#f3f0b0 0%,#c8d96a 22%,#548239 52%,#54823900 86%),#1c1c1c;box-shadow:inset 0 0 0 1px #ffffff29}.pill-btn:active{transform:scale(.97)}.pill-btn:disabled{opacity:.5}.toggle{border-radius:var(--r-pill);color:#fff;background:#3c283773;align-items:center;gap:10px;height:40px;padding:0 4px 0 14px;font-size:.9rem;transition:background .2s;display:inline-flex}.toggle i{opacity:.5;width:32px;height:32px;transition:opacity .2s, transform .24s var(--ease);background:#fff;border-radius:50%;transform:translate(-2px)}.toggle.on i{opacity:1;transform:none}.toggle.on{background:#46283c99}.round-btn{width:48px;height:48px;box-shadow:inset 0 0 0 1px var(--tile-edge);color:#fff;transition:transform .14s var(--ease);background:#1c1c1c;border-radius:50%;flex:none;place-items:center;display:grid}.round-btn:active{transform:scale(.92)}.screen-head{padding:max(16px, env(safe-area-inset-top)) 0 18px;align-items:center;gap:16px;display:flex}.screen-head h1{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1.55rem;overflow:hidden}.error{color:var(--danger);text-align:center;margin:12px 0 0}.link{color:#fff;text-underline-offset:4px;padding:10px;font-weight:500;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59}.link.small{padding:6px 0;font-size:.9rem}.muted{color:var(--ink-2);margin:4px 0 0}.big{border-radius:var(--r-pill);color:#111;background:#fff;min-height:52px;padding:0 24px;font-weight:500}.chip,.seg{border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink);transition:background .16s, color .16s, transform .14s var(--ease);flex:none;padding:9px 16px;font-size:.9rem}.chip.on{color:#111;box-shadow:none;background:#fff}.seg.on{color:#fff;box-shadow:none;background:linear-gradient(#6fbdeb 0%,#689ec0 100%)}.chip:active,.seg:active{transform:scale(.95)}.seg:disabled{opacity:.35}.has-tabs .home,.has-tabs .tab-page{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.tabbar{left:50%;bottom:max(14px, env(safe-area-inset-bottom));z-index:4;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(20px)saturate(160%);box-shadow:inset 0 0 0 1px var(--tile-edge), 0 12px 30px #0009;background:#141414d9;gap:6px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}.tabbar button{border-radius:var(--r-pill);color:var(--ink-2);transition:color .2s, padding .26s var(--ease);align-items:center;gap:8px;padding:0;font-size:.9rem;display:flex}.tabbar button i{width:48px;height:48px;box-shadow:inset 0 0 0 1px var(--stroke);border-radius:50%;place-items:center;transition:background .22s,color .22s,box-shadow .22s;display:grid}.tabbar button i svg{width:20px;height:20px}.tabbar button span{display:none}.tabbar button.on{color:#fff;padding-right:18px}.tabbar button.on i{color:#111;box-shadow:none;background:#fff}.tabbar button.on span{white-space:nowrap;display:inline}.home{max-width:520px;padding:max(20px, env(safe-area-inset-top)) 12px 0;margin:0 auto}.home-head{justify-content:space-between;align-items:baseline;padding:12px 8px 20px;display:flex}.brand{font-family:var(--dots);font-variation-settings:"ROND" 100;font-size:1.9rem;font-weight:800}.home-sub{color:var(--ink-2);font-size:.9rem}.bento{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile-hero{flex-direction:column;grid-column:1/-1;align-items:stretch;gap:10px;min-height:380px;padding:24px 22px 20px;display:flex}.tile-hero .tile-core{color:#f6dbe9;flex:1;place-content:center;justify-items:center;gap:10px;display:grid}.tile-hero .tile-foot{text-align:center}.tile-pick,.tile-sample,.tile-status{flex-direction:column;gap:10px;min-height:196px;padding:18px 18px 16px;display:flex}.tile-pick .dial{align-self:center;margin-top:auto}.tile-sample .tile-value{align-items:baseline;gap:6px;margin-top:auto;display:flex}.tile-status{grid-column:1/-1;min-height:0}.status-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.status-list li{color:var(--ink-2);justify-content:space-between;align-items:center;display:flex}.chip-on{letter-spacing:.05em;color:#fff;background:#333;border-radius:12px;padding:6px 12px;font-size:.72rem;font-weight:700}.chip-on.on{background:linear-gradient(160deg,#a7d99e 0%,#b9e08f 55%,#e8f07a 100%)}.reading{max-width:520px;padding:0 12px max(20px, env(safe-area-inset-bottom));flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.reading-card{flex-direction:column;flex:1;align-items:center;gap:18px;padding:24px 18px 26px;display:flex}.reading-card .tile-label{text-align:center;align-self:stretch}.reading-card .dial{margin-top:auto}.reading-pct{align-items:baseline;gap:4px;display:flex}.phase-dots{gap:8px;margin:auto 0 0;padding:0;list-style:none;display:flex}.phase-dots li{width:6px;height:6px;transition:background .3s, width .3s var(--ease);background:#ffffff59;border-radius:3px}.phase-dots li.done{background:#ffffffd9}.phase-dots li.now{background:var(--marker);width:18px}.hint{color:var(--ink-3);text-align:center;margin:14px 0 0;font-size:.85rem}.score-screen{min-height:100dvh;padding-bottom:calc(176px + env(safe-area-inset-bottom))}.top{z-index:2;padding:max(10px, env(safe-area-inset-top)) 12px 12px;background:linear-gradient(#000000f0 70%,#0000);align-items:center;gap:12px;display:flex;position:sticky;top:0}.top h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:1.15rem;overflow:hidden}.top-spacer{flex:none;width:48px}.pill{border-radius:var(--r-pill);color:#fff;flex:none;padding:9px 14px;font-size:.8rem;font-weight:600}.score-loading,.score-error{text-align:center;color:var(--ink-2);padding:48px 24px}.score-error{justify-items:center;gap:16px;display:grid}.view-switch{gap:6px;width:fit-content;margin:2px auto 14px;display:flex}.view-switch button{border-radius:var(--r-pill);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--stroke);padding:10px 18px;font-size:.9rem;transition:background .2s,color .2s}.view-switch button.on{color:#111;box-shadow:none;background:#fff}.pages{gap:12px;padding:0 10px;display:grid}.page{background:var(--paper);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:pan-y pinch-zoom;border-radius:22px;position:relative;overflow:hidden}.page img{width:100%;height:100%;display:block}.page svg{cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.page .now{fill:#b06ce61f;pointer-events:none;mix-blend-mode:multiply}.page .now.playing{fill:#b06ce633}.page .cursor{stroke:#b06ce6;stroke-width:8px;stroke-linecap:round;pointer-events:none}.page .picked{fill:#6fbdeb40;stroke:#3f8fc0;stroke-width:4px;pointer-events:none}.pages-note{text-align:center;color:var(--ink-3);margin:0 12px;font-size:.8rem}.paper{background:var(--paper);touch-action:pan-y pinch-zoom;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:22px;margin:0 10px;padding:10px 0}.paper.tucked{pointer-events:none;width:100vw;height:0;padding:0;position:absolute;top:0;left:-200vw;overflow:hidden}.osmd{width:100%;overflow-x:hidden}.osmd svg{max-width:100%;height:auto;display:block}.osmd .is-note *{transition:fill .12s,stroke .12s}.osmd .is-muted *{fill:#c9c9c9!important;stroke:#c9c9c9!important}.osmd .is-cursor *{fill:#be2e6a!important;stroke:#be2e6a!important}.osmd .is-selected *{fill:#2c83c6!important;stroke:#2c83c6!important}.osmd .is-active *{fill:#fe196b!important;stroke:#fe196b!important}.paper.selecting{cursor:crosshair}.tap-card{left:50%;bottom:calc(184px + env(safe-area-inset-bottom));z-index:3;text-align:center;color:#fff;width:min(300px,100vw - 32px);animation:rise .3s var(--ease);border-radius:26px;justify-items:center;gap:6px;padding:18px 18px 10px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 16px 40px #0000008c}.tap-card span{color:#fffffff2;font-size:.85rem}.tap-card .link{color:#fff;text-decoration-color:#fff9}.tap-actions{gap:22px;display:flex}.tap-tip{color:#ffffffe6;font-size:.72rem;font-style:normal}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)scale(.98)}}.dock{left:50%;bottom:max(12px, env(safe-area-inset-bottom));z-index:2;-webkit-backdrop-filter:blur(20px)saturate(160%);width:min(560px,100% - 20px);box-shadow:inset 0 0 0 1px var(--tile-edge), 0 14px 36px #0009;background:#181818e6;border-radius:30px;gap:12px;padding:14px;display:grid;position:fixed;transform:translate(-50%)}.parts{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.controls{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.controls .seg{justify-self:start}.play{color:#fff;width:70px;height:70px;transition:transform .14s var(--ease), opacity .16s;background:radial-gradient(circle at 34% 28%,#eef7ff 0%,#9fd6dc 22%,#408692 52%,#8fae8a 74%,#c9c983 100%);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1.5px #ffffff80,0 8px 22px #40869273}.play svg{filter:drop-shadow(0 1px 2px #00000059)}.play:active{transform:scale(.93)}.play:disabled{opacity:.35}.speed{width:100%;max-width:150px;color:var(--ink-2);justify-self:end;gap:4px;font-size:.8rem;display:grid}.speed-read{color:#fff;justify-content:flex-end;align-items:baseline;gap:4px;display:flex}.speed input{appearance:none;background:repeating-linear-gradient(90deg,#ffffff73 0 1.5px,#0000 1.5px 7px) 50%/100% 12px no-repeat;width:100%;height:26px;margin:0}.speed input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--marker);border-radius:2px;width:4px;height:26px}.speed input::-moz-range-thumb{background:var(--marker);border:0;border-radius:2px;width:4px;height:26px}.clear{justify-self:center}.sheet{color:#fff;width:100%;max-width:560px;max-height:92dvh;animation:sheet-in .42s var(--ease);background:#141414;border:0;border-radius:32px 32px 0 0;margin:auto auto 0;padding:0;box-shadow:inset 0 1px #ffffff1a}.sheet::backdrop{background:#0009}.sheet-body{padding:10px 20px max(22px, env(safe-area-inset-bottom));gap:4px;display:grid}.sheet-body>.pill-btn{justify-self:center;margin-top:8px}.grabber{background:#3a3a3a;border-radius:3px;width:40px;height:5px;margin:0 auto 14px;display:block}.sheet h2{margin:0 0 6px;font-size:1.4rem}.facts{color:var(--ink-2);gap:6px;margin:12px 0 14px;padding-left:20px;display:grid}.facts ul{padding-left:18px;font-size:.9rem}@keyframes sheet-in{0%{transform:translateY(100%)}}.sing{gap:10px;margin:10px 0 12px;display:grid}.sing-ladder{background:var(--bg);width:100%;height:210px;box-shadow:inset 0 0 0 1px var(--tile-edge);border-radius:22px}.sing.compact .sing-ladder{height:170px}.sing-words{text-align:center;justify-items:center;min-height:4em;display:grid}.sing-words strong{font-size:1.3rem;font-weight:500}.sing-words span{color:var(--ink-2)}.sing[data-tone=good] .sing-words strong{color:var(--good)}.sing[data-tone=near] .sing-words strong{color:var(--near)}.sing[data-tone=far] .sing-words strong{color:var(--accent)}.sing-words .held{color:var(--good);font-size:.8rem}.sing-suggest{color:#fff;animation:lift .3s var(--ease);background:linear-gradient(150deg,#8c3af4 0%,#b06ce6 55%,#d484d9 100%);border-radius:22px;justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 18px;font-size:.92rem;display:flex}@keyframes lift{0%{opacity:0;transform:translateY(8px)}}.sing-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sing-head .tile-label{color:var(--ink-2);font-size:.9rem}.sing-head h2{margin:6px 0 0}.sing-head h2 small{color:var(--ink-2);margin-left:6px;font-size:.85rem}.octave-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tab-page{max-width:520px;margin:0 auto;padding:0 12px}.tuner-card{grid-template-rows:auto 1fr auto auto;gap:8px;min-height:min(56dvh,470px);padding:22px 22px 20px;display:grid}.tuner-core{color:#f6dbe9;place-content:center;justify-items:center;gap:12px;display:grid}.tuner-note{font-size:clamp(4.4rem,26vw,6.4rem);transition:opacity .24s}.tuner[data-state=held] .tuner-note{opacity:.5}.tuner-sub{min-height:1.4em}.tuner-ruler{gap:2px;display:grid}.ruler-ends{color:#fffc;justify-content:space-between;font-size:.75rem;display:flex}.tuner-cents{text-align:center;min-height:1.4em;font-weight:500}.tuner-trail-card{gap:8px;margin-top:10px;padding:16px 16px 12px;display:grid}.tuner-trail-card .tile-label{color:var(--ink-2);font-size:.9rem}.tuner-hz{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.8rem}.tuner-trail{width:100%;height:84px}.tuner-core.tappable{cursor:pointer;transition:transform .16s var(--ease);border-radius:24px}.tuner-core.tappable:active{transform:scale(.97)}.tuner-actions{justify-items:center;gap:10px;margin-top:16px;display:grid}.range-pick{gap:8px;margin-bottom:14px;display:flex}.range-pick button{border-radius:var(--r-pill);color:var(--ink-2);align-items:center;gap:8px;padding:0 12px 0 0;font-size:.9rem;display:flex}.range-pick button i{width:42px;height:42px;box-shadow:inset 0 0 0 1px var(--stroke);border-radius:50%;place-items:center;font-size:.9rem;font-style:normal;transition:background .2s,color .2s;display:grid}.range-pick button.on{color:#fff}.range-pick button.on i{color:#111;box-shadow:none;background:#fff}.ex-grid{grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none;display:grid}.ex-tile{flex-direction:column;gap:10px;width:100%;min-height:172px;padding:16px 16px 14px;display:flex}.ex-tile .tile-label{font-size:1rem;line-height:1.2}.ex-foot{justify-content:space-between;align-items:baseline;gap:6px;margin-top:auto;display:flex}.contour{width:100%;height:48px}.contour rect{fill:#fff}.contour polyline{fill:none;stroke:#fff;stroke-width:1.2px;opacity:.55}.session-row{margin-bottom:12px}.session-row .tile-label{color:var(--ink-2);font-size:.95rem}.session-row .toggle{box-shadow:inset 0 0 0 1px var(--tile-edge);background:#1c1c1c}.session .tab-lede{color:var(--ink-2);margin:0 0 12px;font-size:.92rem}.lane{background:var(--bg);height:min(42dvh,340px);box-shadow:inset 0 0 0 1px var(--tile-edge);border-radius:26px;position:relative;overflow:hidden}.lane.compact{height:min(28dvh,240px)}.lane canvas{width:100%;height:100%;display:block}.lane-msg{color:var(--ink-2);text-align:center;margin:0;font-size:.8rem;position:absolute;bottom:8px;left:12px;right:12px}.lane-words{text-align:center;justify-items:center;gap:6px;min-height:4.4em;margin:12px 0 6px;display:grid}.lane-words strong{font-size:1.15rem;font-weight:500}.lane-words>span:not(.dots){color:var(--ink-2);font-size:.85rem}.lane-words[data-tone=good] strong{color:var(--good)}.lane-words[data-tone=near] strong{color:var(--near)}.lane-words[data-tone=far] strong{color:var(--accent)}.ex-sheet{background:var(--paper);border-radius:22px;max-height:34dvh;margin-bottom:14px;overflow-y:auto}.ex-sheet .is-active *{fill:#fe196b!important;stroke:#fe196b!important}.session-actions{justify-items:center;gap:10px;display:grid}.session-actions .octave-row{width:100%;margin:4px 0 0}@media (width>=760px){.paper,.pages{max-width:1000px;margin-left:auto;margin-right:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){.tabbar,.dock{-webkit-backdrop-filter:none;backdrop-filter:none;background:#181818}}.has-tabs:has(.session) .tabbar{display:none}.has-tabs .tab-page.session{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.session .session-actions{bottom:max(12px, env(safe-area-inset-bottom));z-index:2;padding:10px 0 0;position:sticky}.session .session-actions .octave-row{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(16px);background:#141414d9;padding:8px 10px}.tap-card{background:radial-gradient(70% 60% at 100% 0,#fe196b 0%,#fe196b00 70%),radial-gradient(70% 70% at 0 15%,#f76eb4 0%,#f76eb400 70%),radial-gradient(50% 45% at 0 110%,#fffdf2 0%,#ffe08a 35%,#ffe08a00 75%),#e57ab8}.g-on,.chip-on.on{background:radial-gradient(75% 60% at 0 100%,#f1ec52 0%,#f6f364 22%,#f1ec5200 100%),radial-gradient(48% 38% at 50% 52%,#f3fff2eb 0%,#f3fff200 100%),radial-gradient(60% 60% at 0 0,#c6e7bc 0%,#c6e7bc00 100%),linear-gradient(160deg,#aeddaf 0%,#8dcd81 35%,#72be63 70%,#c3e1bb 100%)}.g-candy,.tap-card{background:radial-gradient(55% 35% at 88% 0,#fe196b 0%,#fe196b00 100%),radial-gradient(60% 42% at 52% 30%,#f74faf 0%,#f74faf00 100%),radial-gradient(72% 38% at 55% 72%,#ffd27d 0%,#ffd27d00 100%),radial-gradient(60% 40% at 12% 100%,#fff 0%,#fff0 100%),linear-gradient(#f6a7d0 0%,#f8b9c6 50%,#fbeedb 100%)}.g-pull,.pill{background:radial-gradient(34% 70% at 16% 112%,#efddeb 0%,#efddeb00 100%),radial-gradient(28% 60% at 46% 108%,#f6d4f7 0%,#f6d4f700 100%),linear-gradient(90deg,#ca95bf 0%,#dd94dd 22%,#f07cdf 42%,#f73a98 62%,#f92176 78%,#f71465 100%)}.g-stopwatch{background:radial-gradient(62% 42% at 0 0,#60deea 0%,#60deea00 100%),radial-gradient(55% 40% at 100% 0,#c9e5b4 0%,#9bc681 35%,#9bc68100 100%),radial-gradient(85% 55% at 25% 32%,#23649c 0%,#23649c00 100%),radial-gradient(60% 40% at 28% 100%,#2d6973d9 0%,#2d697300 100%),#1d1d1f}.g-plus,.g-orange{background:radial-gradient(circle at 50% 48%,#fff5eae6 0%,#f6b57d8c 22%,#f6b57d00 40%),radial-gradient(75% 60% at 100% 0,#feba17 0%,#feba1700 100%),radial-gradient(75% 60% at 0 100%,#e95433 0%,#e9543300 100%),#f28a26}.g-minus,.g-violet,.sing-suggest{background:radial-gradient(circle at 50% 46%,#cda0eb8c 0%,#cda0eb00 34%),radial-gradient(75% 55% at 0 100%,#fdc8ce 0%,#fdc8ce00 100%),radial-gradient(75% 55% at 100% 100%,#dc91e6 0%,#dc91e600 100%),linear-gradient(#973df5 0%,#9a50ee 45%,#b366da 100%)}.g-bloom,.g-sage,.g-glucose,.g-range,.g-vari,.g-vitamin,.g-spikes,.g-sky,.g-on,.g-candy,.g-pull,.g-stopwatch,.g-plus,.g-orange,.g-minus,.g-violet,.tap-card,.sing-suggest,.chip-on.on,.pill,.seg.on,.play,.pill-btn.glow{box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 0 14px 2px #ffffff6b,inset 0 0 44px #ffffff24}.tap-card{box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 0 14px 2px #ffffff6b,inset 0 0 44px #ffffff24,0 16px 40px #0000008c}.play{box-shadow:inset 0 0 0 1.5px #ffffff8c,inset 0 0 14px 2px #ffffff73,0 8px 22px #40869273}.play.is-playing{box-shadow:inset 0 0 0 1.5px #ffffff80,inset 0 0 14px 2px #fff6,0 8px 22px #fc951c66}.g-ink{box-shadow:inset 0 0 0 1px var(--tile-edge), inset 0 0 18px #ffffff0d}.g-candy,.g-pull,.g-on,.chip-on.on,.tap-card{text-shadow:0 1px 6px #781e4659}.chip-on.on{text-shadow:0 1px 4px #285a1473}.chip-on{text-align:center;border-radius:14px;min-width:54px;padding:9px 12px}.tuner-core{color:#e9efec}.tuner-card .toggle{background:#141c1e80}.chip-on{border-radius:15px;place-items:center;min-width:68px;height:46px;font-size:.8rem;display:inline-grid}.status-list{gap:10px}.play{isolation:isolate;background:#000;position:relative;overflow:hidden;box-shadow:0 10px 26px #583cdc61}.play:before,.play:after{content:"";z-index:-1;border-radius:50%;animation:9.6s linear infinite orb-spin;position:absolute;inset:0}.play:before{animation-name:orb-spin,orb-fade-a;box-shadow:inset 0 3.9px 7.8px #fff,inset 0 7.8px 11.7px #af52de,inset 0 23.3px 23.3px #007aff}.play:after{animation-name:orb-spin,orb-fade-b;box-shadow:inset 0 3.9px 7.8px #fff,inset 0 7.8px 3.9px #ff3b30,inset 0 15.6px 23.3px #1a1470}.play.is-playing{background:#000;box-shadow:0 10px 30px #ff3b3059}.play.is-playing:before,.play.is-playing:after{animation-duration:2.4s}.play svg{filter:drop-shadow(0 1px 3px #00000073);position:relative}@keyframes orb-spin{0%{transform:rotate(90deg)}to{transform:rotate(450deg)}}@keyframes orb-fade-a{0%,to{opacity:1}50%{opacity:0}}@keyframes orb-fade-b{0%,to{opacity:0}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.play:before,.play:after{animation:none;transform:rotate(180deg)}.play:after{opacity:0}}.play,.play.is-playing{box-shadow:none}img.brand{width:auto;height:30px;display:block}.chip-on.on{color:#fff;text-shadow:0 1px 4px #46147873;background:radial-gradient(circle at 50% 46%,#cda0eb8c 0%,#cda0eb00 34%),radial-gradient(75% 55% at 0 100%,#fdc8ce 0%,#fdc8ce00 100%),radial-gradient(75% 55% at 100% 100%,#dc91e6 0%,#dc91e600 100%),linear-gradient(#973df5 0%,#9a50ee 45%,#b366da 100%);box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 0 14px 2px #ffffff6b,inset 0 0 44px #ffffff24}.g-bloom{background:radial-gradient(34% 26% at 50% 42%,#440f33 0%,#440f33f0 12%,#440f33d1 24%,#440f33a8 36%,#440f337d 48%,#440f3354 60%,#440f3330 72%,#440f3317 84%,#440f3308 93%,#440f3300 100%),radial-gradient(64% 50% at 50% 44%,#ab275f 0%,#ba2c68f5 18%,#c53273db 32%,#c13270cc 45%,#be346ea3 57%,#bf427870 68%,#c360923d 79%,#c782ac14 89%,#c998bd00 100%),#c998bd}.play.is-playing:before,.play.is-playing:after{animation-timing-function:cubic-bezier(.65,0,.35,1),linear}.lane.reviewing canvas{cursor:grab;touch-action:pan-y}.lane.reviewing canvas:active{cursor:grabbing}.lane-hint{color:var(--ink-2);pointer-events:none;margin:0;font-size:.72rem;position:absolute;top:8px;right:12px}.review-card{animation:lift .32s var(--ease);gap:10px;margin:12px 0 14px;padding:18px 18px 16px;display:grid}.review-card p{color:var(--ink);margin:0;line-height:1.45}.review-card .tile-label{font-size:1.05rem}.review-card[data-tone=good] .tile-label{color:var(--good)}.review-card[data-tone=near] .tile-label{color:var(--near)}.review-card[data-tone=far] .tile-label{color:var(--accent)}.review-score{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.review-chip{border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink-2);margin-left:auto;padding:6px 12px;font-size:.8rem}.review-tip{background:#ffffff0d;border-radius:18px;padding:12px 14px;color:var(--ink)!important}.review-tips{color:var(--ink);gap:6px;margin:0;padding-left:18px;display:grid}.review-hint{font-size:.85rem;color:var(--ink-2)!important}.round-btn.small{width:34px;height:34px;font-size:1.1rem}.play.is-playing:before,.play.is-playing:after{animation-name:orb-spin-surge,orb-fade-a;animation-duration:2.2s,2.2s;animation-timing-function:cubic-bezier(.9,0,.1,1),linear}.play.is-playing:after{animation-name:orb-spin-surge,orb-fade-b}@keyframes orb-spin-surge{0%{transform:rotate(90deg)}to{transform:rotate(810deg)}}@media (prefers-reduced-motion:reduce){.play.is-playing:before,.play.is-playing:after{animation:none}}.session .session-actions{background:linear-gradient(#0000 0%,#000000eb 30%,#000 100%);margin:0 -12px;padding:28px 12px 0}.page .head-halo,.page .head-ink{pointer-events:none;transform-box:fill-box;transform-origin:50%}.page .head-halo{mix-blend-mode:multiply}.page .head-ink{mix-blend-mode:screen}.page .head-now.head-halo{animation:head-bloom .38s var(--ease)}.page .head-now.head-ink{animation:.16s ease-out head-ink}.page .head-cursor{opacity:.6}.page .muted-head{fill:#ffffffb8;pointer-events:none}@keyframes head-ink{0%{opacity:0}}@keyframes head-bloom{0%{opacity:0;transform:scale(.5)}}@media (prefers-reduced-motion:reduce){.page .head-halo,.page .head-ink{animation:none}}.splash{z-index:50;transition:opacity .65s var(--ease), filter .65s var(--ease), transform .65s var(--ease);background:#000;align-content:center;place-items:center;gap:22px;display:grid;position:fixed;inset:0;overflow:hidden}.splash.leaving{opacity:0;filter:blur(10px);pointer-events:none;transform:scale(1.04)}.splash-bg{animation:splash-drift 7s ease-in-out infinite alternate, splash-fade .9s var(--ease) both;border-radius:0;position:absolute;inset:-25%}.splash-bg:after{content:"";background:radial-gradient(60% 50%,#0000 0%,#0000000f 65%,#00000038 100%);position:absolute;inset:0}@keyframes splash-drift{0%{transform:translate(-4%,-3%)scale(1)rotate(-3deg)}to{transform:translate(4%,3%)scale(1.12)rotate(4deg)}}@keyframes splash-fade{0%{opacity:0}}.splash-mark{align-items:center;width:min(74vw,400px);animation:2.2s cubic-bezier(.16,1,.3,1) both mark-settle;display:flex;position:relative}.splash-icon{width:22.76%;height:auto;animation:.9s cubic-bezier(.16,1,.3,1) .25s both icon-whoosh}.splash-text{clip-path:inset(0 100% 0 0);width:72.51%;margin-left:4.73%;animation:.8s cubic-bezier(.65,0,.35,1) .7s both text-wipe;display:block;overflow:hidden}.splash-text img{width:100%;height:auto;display:block}.splash-tag{color:#ffffffeb;animation:tag-up .7s var(--ease) 1.35s both;align-items:baseline;gap:8px;margin:0;font-size:.95rem;display:flex;position:relative}.splash-tag .dots{font-size:1.15rem}@keyframes mark-settle{0%{transform:scale(.92)}to{transform:scale(1)}}@keyframes icon-whoosh{0%{opacity:0;transform:translate(-140%)rotate(-25deg)}60%{opacity:1;transform:translate(6%)rotate(4deg)}to{transform:none}}@keyframes text-wipe{to{clip-path:inset(0)}}@keyframes tag-up{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.splash-bg,.splash-mark,.splash-icon,.splash-text,.splash-tag{clip-path:none;animation:none}}.camera{z-index:20;background:#000;position:fixed;inset:0;overflow:hidden}.camera video{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.camera-shade{pointer-events:none;background:radial-gradient(58% 46% at 50% 47%,#0000 60%,#0000008c 100%);position:absolute;inset:0}.camera-frame{pointer-events:none;width:min(80vw,43.9716dvh);position:absolute;top:47%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.camera-frame path{fill:none;stroke:#ffffffeb;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke .26s var(--ease);stroke-width:4px}.camera.is-good .camera-frame path{stroke:var(--marker);filter:drop-shadow(0 0 6px #e5ec7ecc)}.camera-top{padding:max(14px, env(safe-area-inset-top)) 16px 0;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.camera-title{color:#fff;text-shadow:0 1px 8px #00000080;font-size:1.05rem}.round-btn.glass{-webkit-backdrop-filter:blur(14px);background:#14141480;box-shadow:inset 0 0 0 1px #ffffff2e}.round-btn.ghost{visibility:hidden}.camera-hint{left:50%;bottom:calc(150px + env(safe-area-inset-bottom));border-radius:var(--r-pill);color:#fff;white-space:nowrap;-webkit-backdrop-filter:blur(14px);background:#1414148c;margin:0;padding:9px 16px;font-size:.9rem;transition:color .2s;position:absolute;transform:translate(-50%);box-shadow:inset 0 0 0 1px #ffffff24}.camera.is-good .camera-hint{color:var(--marker)}.camera-bar{padding:0 24px max(30px, env(safe-area-inset-bottom));justify-content:space-around;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.shutter{width:78px;height:78px;transition:transform .14s var(--ease), opacity .16s;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 4px #fff}.shutter i{width:62px;height:62px;transition:transform .14s var(--ease), background .2s;background:#fff;border-radius:50%}.camera.is-good .shutter i{background:radial-gradient(circle at 40% 35%,#fff 0%,#f3f0b0 60%,#e5ec7e 100%)}.shutter:active i{transform:scale(.86)}.shutter:disabled{opacity:.4}.camera-flash{pointer-events:none;background:#fff;animation:.26s ease-out forwards cam-flash;position:absolute;inset:0}@keyframes cam-flash{0%{opacity:.85}to{opacity:0}}.renovation .sheet-body{gap:12px}.renovation-card{align-content:end;gap:10px;min-height:150px;padding:26px 22px 20px;display:grid}.renovation p{margin:0;line-height:1.45}.renovation-actions{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.renovation-actions .pill-btn{min-width:0}.recent{border-radius:var(--r-tile);box-shadow:inset 0 0 0 1px var(--tile-edge), inset 0 1px 0 #ffffff14;background:linear-gradient(#222 0%,#1a1a1a 100%);margin-top:10px;padding:18px 10px 8px 18px}.recent-head{letter-spacing:-.01em;margin:0 0 6px;font-size:1.15rem;font-weight:400}.recent-list{margin:0;padding:0;list-style:none}.recent-item{align-items:center;gap:4px;display:flex}.recent-item+.recent-item{border-top:1px solid var(--line)}.recent-open{text-align:left;min-width:0;color:var(--ink);transition:transform .14s var(--ease);flex:1;align-items:center;gap:14px;padding:10px 0;display:flex}.recent-open:active{transform:scale(.98)}.recent-thumb{background:var(--paper);color:#1a1a1a;border-radius:14px;flex:none;place-items:center;width:54px;height:54px;display:grid;overflow:hidden}.recent-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%}.recent-text{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;overflow:hidden}.recent-when{color:var(--ink-2);font-size:.85rem}.recent-forget{width:40px;height:40px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;transition:background .16s,color .16s;display:grid}.recent-forget:hover,.recent-forget:focus-visible{color:var(--ink);background:#ffffff14}.play{background:#000}.play:before,.play:after{content:none}.orb-face{z-index:-1;animation:orb-in .5s var(--ease);border-radius:50%;position:absolute;inset:0;overflow:hidden}.orb-face svg{filter:none;width:100%;height:100%;display:block}.orb-face .orb-spin,.orb-face .orb-blob{transform-box:view-box;transform-origin:32px 32px}.orb-face .orb-blob{animation:7s ease-in-out infinite alternate orb-drift}.orb-face .orb-b1{animation-duration:8.5s;animation-delay:-2s}.orb-face .orb-b2{animation-name:orb-drift-b;animation-duration:6.2s;animation-delay:-3.5s}.orb-face .orb-b3{animation-name:orb-drift-c;animation-duration:7.6s;animation-delay:-1s}.orb-face .orb-b4{animation-name:orb-drift-b;animation-duration:9s;animation-delay:-5s}.play.is-playing .orb-spin{transform:rotate(var(--spin,0deg))}.play.is-playing .orb-spin:nth-child(2n){transform:rotate(calc(var(--spin,0deg) * -.75))}.play.is-playing .orb-blob{animation-name:orb-surge;animation-duration:1.1s;animation-timing-function:cubic-bezier(.65,0,.35,1)}.play.is-playing .orb-b3,.play.is-playing .orb-b5{animation-name:orb-surge-b;animation-duration:1.4s}.play.is-playing .orb-face{filter:saturate(calc(1 + var(--energy,0) * .5)) brightness(calc(1 + var(--energy,0) * .08))}@keyframes orb-drift{0%{transform:translate(-4px,3px)scale(1)}to{transform:translate(5px,-4px)scale(1.12)}}@keyframes orb-drift-b{0%{transform:translate(5px,4px)rotate(-12deg)}to{transform:translate(-5px,-3px)rotate(14deg)}}@keyframes orb-drift-c{0%{transform:translateY(-6px)scale(1.1)}to{transform:translate(-3px,6px)scale(.94)}}@keyframes orb-surge{0%{transform:translate(-11px,9px)scale(.86)}to{transform:translate(12px,-10px)scale(1.3)}}@keyframes orb-surge-b{0%{transform:translate(12px,10px)rotate(-40deg)scale(1.25)}to{transform:translate(-12px,-9px)rotate(40deg)scale(.88)}}@keyframes orb-pulse{0%{filter:saturate()}to{filter:saturate(1.45)brightness(1.08)}}@keyframes orb-swirl{to{transform:rotate(360deg)}}@keyframes orb-in{0%{opacity:0;transform:scale(.85)}}@media (prefers-reduced-motion:reduce){.orb-face,.orb-face .orb-blob,.play.is-playing .orb-spin{animation:none}}.play>svg{filter:drop-shadow(0 1px 2px #00000059)drop-shadow(0 0 8px #00000040)}.orb-face .orb-b0,.orb-face .orb-b1,.play.is-playing .orb-face .orb-b0,.play.is-playing .orb-face .orb-b1{animation:none}.play.is-playing .orb-face .orb-spin:nth-child(-n+2){transform:none}
