:root{--paper:#f4f8f1;--surface:#fff;--ink:#1e3a2c;--ink-soft:#55735f;--leaf:#4e9f6b;--leaf-bright:#7bc96f;--leaf-deep:#2f6b4a;--sun:#ffc84a;--sun-deep:#d9a536;--coral:#f2704e;--coral-deep:#c85433;--alert:#c2452f;--sky:#6fb9de;--night:#14281f;--night-2:#1e3a2b;--moon:#eaf3ea;--moon-soft:#a3c0ae;--r-ctl:999px;--r-panel:32px;--r-card:24px;--r-media:18px;--r-chip:12px;--font-round:ui-rounded, "SF Pro Rounded", "PingFang SC", system-ui, sans-serif;--font-body:-apple-system, "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;font-size:17px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.screen{max-width:560px;min-height:100dvh;padding:calc(var(--safe-top) + 18px) 20px calc(var(--safe-bottom) + 24px);flex-direction:column;margin:0 auto;display:flex}.screen--center{text-align:center;justify-content:center;align-items:center;gap:18px}.screen__title{font-family:var(--font-round);margin:0;font-size:32px;line-height:1.1}.screen__sub{color:var(--ink-soft);max-width:24em;margin:0;font-size:15px;line-height:1.6}.stack{flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:8px;display:flex}.problems{text-align:left;color:var(--alert);margin:0;padding-left:18px;font-size:13px;line-height:1.6}.topbar{justify-content:space-between;align-items:center;min-height:44px;margin-bottom:18px;display:flex}.brand{font-family:var(--font-round);letter-spacing:-.01em;align-items:center;gap:8px;font-size:21px;font-weight:700;display:flex}.daychip{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--surface);height:36px;color:var(--ink);font-family:var(--font-round);box-shadow:0 2px 0 var(--ink);align-items:center;gap:6px;padding:0 13px;font-size:13px;font-weight:700;display:inline-flex}.banner,.onboarding{background:var(--surface);border:2px solid var(--ink);border-radius:var(--r-card);box-shadow:0 3px 0 var(--ink);margin-bottom:16px;padding:16px}.onboarding{background:#fff6dc;justify-content:space-between;align-items:center;gap:14px;display:flex}.onboarding strong,.banner strong{font-family:var(--font-round);font-size:16px}.onboarding p,.banner p{color:var(--ink-soft);margin:4px 0 0;font-size:13px;line-height:1.6}.onboarding .btn{flex:none;width:auto;padding:0 16px}.inlink{font:inherit;color:var(--ink);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.banner__actions{gap:10px;margin-top:12px;display:flex}.banner__actions .btn{flex:1;width:auto;padding:0 14px}.segtabs{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--surface);box-shadow:0 3px 0 var(--ink);gap:4px;margin-bottom:16px;padding:4px;display:flex}.seg-tab{border-radius:var(--r-ctl);min-height:44px;color:var(--ink-soft);font-family:var(--font-round);background:0 0;border:0;flex:1;font-size:15px;font-weight:700}.seg-tab.is-on{background:var(--sun);color:var(--ink)}.today__summary{color:var(--ink-soft);margin:0 0 16px;font-size:14px}.today__head{margin-bottom:18px}.today__head h1{font-family:var(--font-round);letter-spacing:-.02em;margin:0;font-size:34px;line-height:1.05}.today__head p{color:var(--ink-soft);margin:6px 0 0;font-size:14px}.tasks{flex-direction:column;gap:12px;display:flex}.task{-webkit-appearance:none;appearance:none;border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);width:100%;color:var(--ink);text-align:left;box-shadow:0 3px 0 var(--ink);align-items:center;gap:14px;padding:13px 15px;transition:transform .12s,box-shadow .12s;display:flex}.task:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.task--locked{cursor:default}.task--locked .task__title{color:var(--ink-soft)}.task--locked .task__icon{background:#dce6dd}.task__icon{width:52px;height:52px;color:var(--ink);background:var(--paper);border-radius:16px;flex:none;place-items:center;display:grid}.task__icon--sky{background:var(--sky)}.task__icon--leaf{background:var(--leaf-bright)}.task__icon--coral{background:var(--coral)}.task__body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.task__title{font-family:var(--font-round);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;line-height:1.2;overflow:hidden}.task__meta{color:var(--ink-soft);font-size:13px}.task__trailing{flex:none;align-items:center;display:flex}.task__lock{color:var(--ink-soft);opacity:.6}.pips{gap:5px;display:inline-flex}.pips i{border-radius:var(--r-ctl);border:2px solid var(--ink);background:var(--paper);width:9px;height:9px;display:block}.pips i.is-on{background:var(--leaf-bright)}.today__foot{margin-top:auto;padding-top:22px}.growth{justify-content:flex-start;align-items:center;gap:12px;margin-bottom:14px;display:flex}.growth__leaves{gap:10px;display:flex}.leaf path{fill:var(--paper);stroke:var(--ink);stroke-width:3px}.leaf--on path{fill:var(--leaf-bright)}.growth__label{color:var(--ink-soft);font-size:12px}.screen>.listen-setup{flex:1}.listen-setup{flex-direction:column;min-height:0;display:flex}.listen-setup__body{flex-direction:column;flex:1;min-height:0;display:flex}.listen-setup__caption{color:var(--ink-soft);margin:0 0 10px;font-size:14px}.listen-materials{flex-direction:column;gap:10px;min-height:0;display:flex;overflow-y:auto}.listen-row{-webkit-appearance:none;appearance:none;border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);width:100%;min-height:66px;color:var(--ink);box-shadow:0 3px 0 var(--ink);font:inherit;text-align:left;align-items:center;gap:12px;padding:9px 12px;transition:transform .12s,box-shadow .12s;display:flex}.listen-row:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.listen-row:disabled{opacity:.65}.listen-row__thumb{border:2px solid var(--ink);background:var(--night-2);object-fit:cover;border-radius:10px;flex:none;width:66px;height:44px}.listen-row__title{min-width:0;color:var(--ink);font-family:var(--font-round);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:700;line-height:1.25;overflow:hidden}.listen-row__duration{color:var(--ink-soft);font-family:var(--font-round);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.listen-rounds{margin-top:18px}.listen-rounds__question{font-family:var(--font-round);margin:0 0 8px;font-size:15px;font-weight:700}.listen-rounds__control{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--paper);gap:3px;padding:3px;display:flex}.listen-rounds__control button{border-radius:var(--r-ctl);min-height:42px;color:var(--ink-soft);font-family:var(--font-round);background:0 0;border:0;flex:1;font-size:14px;font-weight:700}.listen-rounds__control button.is-on{background:var(--sun);color:var(--ink)}.listen-rounds__total{color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:center;margin:8px 0 0;font-size:13px}.listen-setup__foot{margin-top:auto;padding-top:22px}.listen-growth{justify-content:center;align-items:center;gap:10px;margin-bottom:14px;display:flex}.btn{border-radius:var(--r-ctl);background:var(--sun);width:100%;min-height:60px;color:var(--ink);font-family:var(--font-round);box-shadow:0 4px 0 var(--sun-deep);border:0;font-size:20px;font-weight:700;transition:transform .12s,box-shadow .12s}.btn:active:not(:disabled){box-shadow:0 0 0 var(--sun-deep);transform:translateY(4px)}.btn:disabled{opacity:.55;box-shadow:none}.btn--secondary{background:var(--surface);border:2px solid var(--ink);min-height:48px;box-shadow:0 3px 0 var(--ink);font-size:16px}.btn--secondary:active:not(:disabled){box-shadow:0 0 0 var(--ink)}.btn--ghost{min-height:44px;box-shadow:none;color:var(--ink-soft);background:0 0;font-size:15px;font-weight:500}.ghostbtn{color:var(--ink-soft);background:0 0;border:0;padding:8px;font-size:15px}.ghostbtn:disabled{opacity:.4;cursor:default}.listening{max-width:560px;min-height:100dvh;padding:calc(var(--safe-top) + 12px) 18px calc(var(--safe-bottom) + 20px);background:var(--night);color:var(--moon);flex-direction:column;margin:0 auto;display:flex;position:relative}.listening--center{text-align:center;justify-content:center;align-items:center;gap:16px}.listening--center>p{color:var(--moon-soft);margin:0}.listening__top{min-height:44px}.listening__stage{width:100%;min-height:0;color:var(--moon);text-align:center;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.listening__label{color:var(--moon-soft);font-size:13px}.listening__title{max-width:30ch;color:var(--moon);font-family:var(--font-round);font-size:24px;font-weight:700;line-height:1.25}.listening__position{color:var(--moon-soft);font-variant-numeric:tabular-nums;font-size:13px}.listening__toggle{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--sun);width:72px;height:72px;color:var(--ink);box-shadow:0 4px 0 var(--sun-deep);place-items:center;margin-top:8px;display:grid}.listening__toggle svg{width:30px;height:30px}.listening__error{color:#ffd2c6;font-size:14px}.listening__error-actions{flex-direction:column;gap:8px;width:100%;display:flex}.listening__error-actions .btn--secondary{background:var(--surface)}.listening__error-actions .btn--ghost{color:var(--moon-soft)}.listening-audio{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.listening--finished{background:var(--night)}.listening-finish{border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);width:min(100%,360px);color:var(--ink);box-shadow:0 5px 0 var(--ink);flex-direction:column;align-items:center;gap:12px;padding:28px 22px 20px;display:flex}.listening-finish h1{font-family:var(--font-round);margin:0;font-size:34px;line-height:1.1}.listening-finish p{color:var(--ink-soft);margin:-4px 0 6px;font-size:15px}.listening-finish .btn{width:100%}.listen-portrait{flex-direction:column;flex:1;min-height:0;display:flex}.listen-card{width:100%;min-height:0;color:var(--moon);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:0 4px 12px;display:flex}.listen-card__main{width:100%;color:inherit;text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:14px;padding:0;display:flex}.listen-card__art{aspect-ratio:16/10;border:2px solid var(--moon-soft);border-radius:var(--r-card);background:var(--night-2);width:min(100%,340px);position:relative;overflow:hidden;box-shadow:0 5px #0d1d15}.listen-card__art img{object-fit:cover;width:100%;height:100%;display:block}.listen-card__badge,.listen-landscape__badge{border:2px solid var(--ink);background:var(--moon);width:36px;height:36px;color:var(--night);border-radius:50%;place-items:center;display:grid;position:absolute;top:9px;right:9px}.listen-card__title{max-width:20ch;font-family:var(--font-round);font-size:24px;font-weight:700;line-height:1.2}.listen-card__position{color:var(--moon-soft);font-variant-numeric:tabular-nums;margin-top:-7px;font-size:13px}.listen-card__toggle{border:2px solid var(--ink);background:var(--sun);width:76px;height:76px;color:var(--ink);box-shadow:0 4px 0 var(--sun-deep);border-radius:50%;place-items:center;display:grid}.listen-card__toggle svg{width:30px;height:30px}.listen-portrait__timeline{width:100%;padding:0 2px}.listen-portrait__timeline input{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:40px;margin:0}.listen-portrait__timeline input::-webkit-slider-runnable-track{border-radius:var(--r-ctl);background:#eaf3ea3d;height:5px}.listen-portrait__timeline input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:2px solid var(--ink);background:var(--sun);width:18px;height:18px;box-shadow:0 2px 0 var(--sun-deep);border-radius:50%;margin-top:-6.5px}.listen-portrait__timeline input::-moz-range-track{border-radius:var(--r-ctl);background:#eaf3ea3d;height:5px}.listen-portrait__timeline input::-moz-range-thumb{border:2px solid var(--ink);background:var(--sun);border-radius:50%;width:16px;height:16px}.listen-portrait__times{color:var(--moon-soft);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.listen-portrait__transport{justify-content:center;align-items:center;gap:20px;width:100%;display:flex}.listen-portrait__transport>.iconbtn{width:54px;height:54px}.listen-portrait__transport>.iconbtn:disabled{opacity:.35}.listen-portrait__drawer{z-index:14;width:min(100vw,560px);max-height:72dvh;padding:16px 16px calc(var(--safe-bottom) + 18px);border:2px solid var(--moon-soft);border-radius:var(--r-card) var(--r-card) 0 0;background:var(--night-2);color:var(--moon);border-bottom:0;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:0;left:50%;right:auto;transform:translate(-50%);box-shadow:0 -12px 32px #0a140f73}.listen-portrait__drawer .listen-landscape__items{min-height:0}.listen-portrait__drawer .iconbtn{width:44px;height:44px}.listen-landscape{display:none}.listening__error-card{z-index:12;border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);width:min(340px,100vw - 32px);color:var(--ink);text-align:center;flex-direction:column;gap:10px;padding:22px;display:flex;position:fixed;top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 12px 32px #1e3a2c4d}.listening__error-card h2{font-family:var(--font-round);margin:0;font-size:23px}.listening__error-card p{color:var(--ink-soft);margin:0 0 4px;font-size:14px}.listen-landscape__main{flex-direction:column;flex:1;min-width:0;min-height:0;padding:10px 16px 8px;transition:margin-right .2s;display:flex}.listen-landscape .iconbtn{width:44px;height:44px}.listen-landscape__top{justify-content:space-between;align-items:center;display:flex}.listen-landscape__media{flex:1;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:24px;min-height:0;padding:8px 20px;display:grid}.listen-landscape__art{aspect-ratio:16/9;border-radius:var(--r-media);background:var(--night-2);border:2px solid #0d1d15;width:100%;max-width:300px;position:relative;overflow:hidden;box-shadow:0 7px 20px #00000057}.listen-landscape__art img{object-fit:cover;width:100%;height:100%;display:block}.listen-landscape__copy{flex-direction:column;gap:7px;min-width:0;display:flex}.listen-landscape__title{color:var(--moon);font-family:var(--font-round);font-size:22px;font-weight:700;line-height:1.2}.listen-landscape__position{color:var(--moon-soft);font-variant-numeric:tabular-nums;font-size:13px}.listen-landscape__timeline{padding:0 4px}.listen-landscape__timeline input{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:40px;margin:0}.listen-landscape__timeline input::-webkit-slider-runnable-track{border-radius:var(--r-ctl);background:#eaf3ea3d;height:5px}.listen-landscape__timeline input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:2px solid var(--ink);background:var(--sun);width:18px;height:18px;box-shadow:0 2px 0 var(--sun-deep);border-radius:50%;margin-top:-6.5px}.listen-landscape__timeline input::-moz-range-track{border-radius:var(--r-ctl);background:#eaf3ea3d;height:5px}.listen-landscape__timeline input::-moz-range-thumb{border:2px solid var(--ink);background:var(--sun);border-radius:50%;width:16px;height:16px}.listen-landscape__times{color:var(--moon-soft);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.listen-landscape__transport{justify-content:center;align-items:center;gap:24px;padding:4px 0 2px;display:flex}.listen-landscape__transport .iconbtn:disabled{opacity:.35}.listen-landscape__play{border:2px solid var(--ink);background:var(--sun);width:60px;height:60px;color:var(--ink);box-shadow:0 4px 0 var(--sun-deep);border-radius:50%;place-items:center;display:grid}.listen-landscape__play svg{width:26px;height:26px}.listen-landscape__drawer{border-left:2px solid var(--moon-soft);background:var(--night-2);flex-direction:column;flex:0 0 300px;gap:10px;width:300px;min-height:0;padding:14px;display:flex}.listen-landscape__drawer-head{justify-content:space-between;align-items:center;padding-left:4px;display:flex}.listen-landscape__drawer-head h2{color:var(--moon);font-family:var(--font-round);margin:0;font-size:18px}.listen-landscape__items{flex-direction:column;gap:8px;min-height:0;display:flex;overflow-y:auto}.listen-landscape__item{border-radius:var(--r-chip);width:100%;color:var(--moon);text-align:left;background:0 0;border:2px solid #0000;align-items:center;gap:10px;padding:7px;display:flex}.listen-landscape__item.is-current{border-color:var(--sun);background:#ffc84a1a}.listen-landscape__item img{object-fit:cover;border:2px solid #0d1d15;border-radius:8px;flex:none;width:74px;height:48px}.listen-landscape__item-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.listen-landscape__item-copy span:first-child{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.2;overflow:hidden}.listen-landscape__item-copy span:last-child{color:var(--moon-soft);font-variant-numeric:tabular-nums;font-size:12px}.listen-landscape__eq{color:var(--sun);flex:none}@media (orientation:landscape) and (max-height:560px){.listening--playing{background:var(--night);max-width:none;min-height:100dvh;padding:0}.listen-portrait{display:none}.listen-landscape{background:var(--night);color:var(--moon);display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}}@media (orientation:landscape) and (max-width:720px) and (max-height:560px){.listen-landscape__drawer{flex-basis:260px;width:260px}.listen-landscape__media{grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:14px;padding-inline-start:4px;padding-inline-end:4px}.listen-landscape__title{font-size:18px}}.player{background:var(--night);min-height:100dvh;color:var(--moon);position:relative;overflow:hidden}.player__back{top:calc(var(--safe-top) + 12px);z-index:5;border-radius:var(--r-ctl);width:44px;height:44px;color:var(--moon);background:#14281fa6;border:0;place-items:center;display:grid;position:absolute;left:14px}.player__gear{top:calc(var(--safe-top) + 12px);z-index:7;border:2px solid var(--moon-soft);border-radius:var(--r-ctl);width:44px;height:44px;color:var(--moon);background:#14281fb3;place-items:center;display:none;position:absolute;right:14px}.player-settings{top:calc(var(--safe-top) + 16px);z-index:8;border:2px solid var(--moon-soft);border-radius:var(--r-card);background:var(--night-2);width:min(300px,100vw - 36px);color:var(--moon);flex-direction:column;gap:14px;padding:16px;display:none;position:absolute;right:18px;box-shadow:0 12px 32px #0a140f73}.player-settings h2{font-family:var(--font-round);margin:0;font-size:18px}.player-settings__label{color:var(--moon-soft);margin:0 0 10px;font-size:13px}.player-settings__value{color:var(--sun);font-family:var(--font-round);text-align:center;margin:0 0 8px;font-size:22px;font-weight:700}.player-settings__track{cursor:pointer;touch-action:none;height:40px;margin:0 14px;position:relative}.player-settings__line{border-radius:var(--r-ctl);background:#eaf3ea47;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.player-settings__tick{background:var(--moon-soft);border-radius:2px;width:2px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-settings__dot{border:2px solid var(--ink);background:var(--sun);width:26px;height:26px;box-shadow:0 3px 0 var(--sun-deep);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-settings__speeds{justify-content:space-between;margin:5px 6px 0;display:flex}.player-settings__speeds button{min-width:36px;min-height:44px;color:var(--moon-soft);background:0 0;border:0;font-size:12px}.player-settings__speeds button.is-on{color:var(--sun);font-weight:700}.player-settings__switchrow{justify-content:space-between;align-items:center;gap:14px;display:flex}.player-settings__switchrow>span{font-size:14px}.player-settings__switch{border:2px solid var(--moon-soft);border-radius:var(--r-ctl);background:0 0;flex:none;width:52px;height:44px;position:relative}.player-settings__switch i{background:var(--moon-soft);border-radius:50%;width:32px;height:32px;transition:transform .15s,background .15s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.player-settings__switch.is-on{border-color:var(--ink);background:var(--sun)}.player-settings__switch.is-on i{background:var(--ink);transform:translate(14px,-50%)}.player-settings__done{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--sun);min-height:44px;color:var(--ink);box-shadow:0 3px 0 var(--sun-deep);font-weight:700}.player__stage{justify-content:center;align-items:center;min-height:100dvh;display:flex}.player__video{background:#0d1d15;width:100%;max-height:100dvh;display:block}.player__video--empty{min-height:240px;color:var(--moon-soft);place-items:center;font-size:14px;display:grid}.player__toggle{z-index:4;border-radius:var(--r-ctl);background:var(--sun);width:72px;height:72px;color:var(--ink);opacity:0;pointer-events:none;border:0;place-items:center;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.9);box-shadow:0 0 0 10px #ffc84a1a}.player__toggle.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.player__foot{z-index:3;padding:12px 20px calc(var(--safe-bottom) + 20px);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.player__seek{left:20px;right:20px;bottom:calc(var(--safe-bottom) + 96px);z-index:4;border-radius:var(--r-ctl);opacity:0;pointer-events:none;background:#a3c0ae40;height:4px;transition:opacity .18s;position:absolute}.player__seek:before{content:"";position:absolute;top:-14px;bottom:-14px;left:0;right:0}@media (hover:hover) and (pointer:fine){.player:hover .player__seek,.player__seek.is-scrubbing{opacity:1;pointer-events:auto;cursor:ew-resize}}.player__seek-fill{border-radius:var(--r-ctl);background:var(--sun);width:0;height:100%;position:relative}.player__seek-fill:after{content:"";background:var(--sun);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;right:-5px;transform:translateY(-50%);box-shadow:0 0 0 2px #14281f59}.player .pips i{border-color:var(--moon-soft);background:0 0}.player .pips i.is-on{background:var(--sun);border-color:var(--sun)}.player__title{color:var(--moon-soft);font-size:13px}.player__sheet{z-index:6;padding:24px 20px calc(var(--safe-bottom) + 24px);background:var(--surface);color:var(--ink);border-radius:var(--r-panel) var(--r-panel) 0 0;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -18px 40px #00000059}.player__sheet h2{font-family:var(--font-round);margin:0;font-size:26px}.player__sheet p{color:var(--ink-soft);text-align:center;margin:0;font-size:14px}.player__sheet .btn{width:100%;min-height:56px}.iconbtn{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--surface);width:40px;height:40px;color:var(--ink);box-shadow:0 2px 0 var(--ink);place-items:center;display:grid}.wave{align-items:center;gap:5px;height:34px;display:flex}.wave i{border-radius:var(--r-ctl);background:var(--coral);width:5px;animation:.9s ease-in-out infinite wave;display:block}@keyframes wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1.2)}}.notice{border:2px solid var(--ink);color:var(--ink-soft);background:#fff6dc;border-radius:16px;margin:0 0 16px;padding:10px 14px;font-size:14px}.notice--error{color:var(--alert);background:#fdebe6}.faces{justify-content:center;gap:22px;margin:18px 0 6px;display:flex}.face{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--surface);width:46px;height:46px;box-shadow:0 2px 0 var(--ink);place-items:center;display:grid}.face.is-on{background:var(--sun)}.parent__hero{margin:8px 0 22px}.parent__label{color:var(--ink-soft);margin:0 0 4px;font-size:13px}.parent__hero h1{font-family:var(--font-round);margin:0;font-size:30px;line-height:1.1}.parent__meta{color:var(--ink-soft);margin:6px 0 0;font-size:14px}.parent__card{border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);box-shadow:0 3px 0 var(--ink);margin-bottom:16px;padding:20px}.parent__card--muted{background:#edf3ea}.parent__card h2{font-family:var(--font-round);margin:0 0 8px;font-size:18px}.parent__card p{color:var(--ink-soft);margin:0 0 14px;font-size:14px;line-height:1.6}.parent__status{color:var(--leaf-deep);margin:10px 0 0;font-size:13px}@media (orientation:landscape) and (max-height:560px){.player__gear{display:grid}.player-settings{display:flex}.player__stage{min-height:100dvh}.player__video{object-fit:contain}.player__foot{left:50%;right:auto;bottom:calc(var(--safe-bottom) + 10px);border-radius:var(--r-ctl);background:#14281f8c;flex-direction:row;gap:12px;padding:7px 14px;transform:translate(-50%)}.player__seek{left:15%;right:15%;bottom:calc(var(--safe-bottom) + 64px)}.player__seek.is-enabled{opacity:1;pointer-events:auto}.player__title{display:none}.player__sheet{border-radius:28px;width:min(344px,82vw);padding:18px 22px 20px;bottom:50%;left:50%;right:auto;transform:translate(-50%,50%);box-shadow:0 26px 54px #00000080}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.dub{max-width:560px;min-height:100dvh;padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 16px);background:var(--night);color:var(--moon);flex-direction:column;gap:14px;margin:0 auto;display:flex;position:relative}.dub__top{justify-content:space-between;align-items:center;display:flex}.dub__queue{align-items:center;gap:8px;display:flex}.dub__queue i{border:2px solid var(--moon-soft);background:0 0;border-radius:50%;width:10px;height:10px}.dub__queue i.is-past{background:var(--moon-soft);border-color:var(--moon-soft)}.dub__queue i.is-on{background:var(--sun);border-color:var(--sun);transform:scale(1.25)}.iconbtn--night{border-color:var(--moon-soft);color:var(--moon);box-shadow:none;background:0 0}.dub__stage{border-radius:var(--r-media);flex:1;place-items:center;min-height:240px;display:grid;position:relative;overflow:hidden}.dub__video{border-radius:var(--r-media);background:#0d1d15;width:100%;max-height:52dvh;display:block}.dub__video--empty{min-height:200px;color:var(--moon-soft);place-items:center;font-size:14px;display:grid}.dub__scrim{border-radius:var(--r-media);background:#1e3a2ba8;position:absolute;top:0;bottom:0;left:0;right:0}.dub__sun{z-index:3;border-radius:var(--r-ctl);background:var(--sun);width:72px;height:72px;color:var(--ink);box-shadow:0 5px 0 var(--sun-deep);border:0;place-items:center;transition:transform .12s,box-shadow .12s;display:grid;position:absolute}.dub__sun:active:not(:disabled){box-shadow:0 1px 0 var(--sun-deep);transform:translateY(4px)}.dub__sun:disabled{opacity:.5}.dub__sun--pause{color:var(--moon);box-shadow:none;background:#14281f8c}.dub__cue{z-index:4;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:9%;left:0;right:0}.dub__mic{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--coral);color:#fff;width:96px;height:96px;box-shadow:0 6px 0 var(--coral-deep);place-items:center;animation:.22s cubic-bezier(.2,.9,.3,1) sticker-pop,1.8s ease-in-out .22s infinite breathe;display:grid}.dub__mic svg{width:38px;height:38px}.dub__mic:active:not(:disabled){box-shadow:0 2px 0 var(--coral-deep);animation:none;transform:translateY(4px)}.dub__mic:disabled{opacity:.5;animation:none}.dub__mic--recording{box-shadow:none;border-color:var(--coral);color:var(--coral);background:0 0;animation:none}.dub__mic--recording svg{width:34px;height:34px}@keyframes sticker-pop{0%{transform:scale(.7)}to{transform:scale(1)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.dub__stop{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--sun);min-height:60px;color:var(--ink);font-family:var(--font-round);box-shadow:0 4px 0 var(--sun-deep);font-size:22px;font-weight:700;transition:transform .12s,box-shadow .12s}.dub__stop:active{box-shadow:0 1px 0 var(--sun-deep);transform:translateY(3px)}.dub__reredirect{border:2px solid var(--moon-soft);border-radius:var(--r-ctl);min-height:44px;color:var(--moon);background:0 0;align-self:center;padding:0 18px;font-size:15px}.dub__reredirect:disabled{opacity:.4}.dub__error{border:2px solid var(--alert);color:#ffd2c6;border-radius:16px;margin:0;padding:10px 14px;font-size:14px}.dub__failed{z-index:5;border-radius:var(--r-card);background:var(--surface);color:var(--ink);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;top:auto;bottom:16px;left:16px;right:16px}.dub__failed h2{font-family:var(--font-round);margin:0;font-size:22px}.dub__failed p{color:var(--ink-soft);margin:0;font-size:14px}.dub__failed .btn{width:100%;min-height:52px}.dub__mom{border-radius:var(--r-panel);background:var(--night-2);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.dub__caption{color:var(--moon-soft);justify-content:space-between;gap:12px;margin:0;font-size:13px;display:flex}.dub__target{font-family:var(--font-round);color:var(--moon);margin:0;font-size:15px;line-height:1.4}.dub__target-alt{color:var(--moon-soft);margin:0;font-size:15px;line-height:1.4}.dub__target-alt span{letter-spacing:.02em;font-size:12px;display:block}.dub__hint{color:var(--moon-soft);margin:0;font-size:13px;line-height:1.5}.dub__momrow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.faces--night{gap:12px;margin:0}.faces--night .face{background:var(--night);border-color:var(--moon-soft);box-shadow:0 2px 0 var(--moon-soft)}.dub__ghosts{flex-wrap:wrap;gap:14px;display:flex}.ghostbtn--night{color:var(--moon-soft);padding:6px 4px}.dub__foot{width:100%;min-height:52px}.dub__audio{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.install__lede{margin:10px 0 18px}.install__lede h1{font-family:var(--font-round);margin:0;font-size:30px;line-height:1.1}.install__lede p{color:var(--ink-soft);margin:8px 0 0;font-size:15px;line-height:1.6}.install__card{border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);box-shadow:0 3px 0 var(--ink);margin-bottom:16px;padding:16px}.install__card h2{font-family:var(--font-round);margin:0 0 6px;font-size:20px}.install__card p{color:var(--ink-soft);margin:0 0 12px;font-size:14px;line-height:1.6}.install__status{font-weight:700;color:var(--leaf-deep)!important;margin:10px 0 0!important}.install__steps{counter-reset:step;flex-direction:column;gap:14px;margin:0 0 18px;padding:0;list-style:none;display:flex}.step{border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);box-shadow:0 3px 0 var(--ink);grid-template-columns:32px 1fr;gap:12px;padding:16px;display:grid}.step__num{background:var(--leaf);color:#fff;width:30px;height:30px;font-family:var(--font-round);border-radius:50%;place-items:center;font-size:16px;font-weight:700;display:grid}.step__body h3{font-family:var(--font-round);margin:2px 0 6px;font-size:18px;line-height:1.3}.step__body p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.6}.step__art{border:2px solid var(--ink);border-radius:var(--r-media);background:var(--paper);width:100%;max-width:260px;margin-top:12px;padding:8px}.art__caption{font-family:var(--font-body);fill:var(--ink-soft);font-size:11px}.art__label{font-family:var(--font-round);fill:var(--ink);font-size:15px;font-weight:700}.install__note{border:2px solid var(--ink);border-radius:var(--r-card);background:#fff6dc;margin-bottom:16px;padding:14px 16px}.install__note strong{margin-bottom:6px;font-size:15px;display:block}.install__note p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.6}.install__foot{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}.install__link{color:var(--leaf-deep);align-items:center;gap:4px;margin-left:6px;font-weight:700;display:inline-flex}.ic-inline{vertical-align:-2px}.screen__promise{color:var(--leaf-deep);margin:0;font-size:15px;font-weight:700}.parent__badge{border:2px solid var(--ink);border-radius:var(--r-ctl);background:var(--sun);color:var(--ink);font-family:var(--font-body);vertical-align:3px;margin-left:8px;padding:3px 10px;font-size:12px;font-weight:700}.parent__card--warn{border-color:var(--alert)}.daygrid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin:12px 0 10px;display:grid}.daygrid__cell{border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--surface);min-height:56px;color:var(--ink);box-shadow:0 2px 0 var(--ink);place-items:center;transition:transform .12s,box-shadow .12s;display:grid;position:relative}.daygrid__cell:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(2px)}.daygrid__cell.is-current{background:var(--sun)}.daygrid__num{font-family:var(--font-round);font-size:19px;font-weight:700}.daygrid__mark{color:var(--leaf-deep);display:grid;position:absolute;bottom:2px;right:4px}.daygrid__now{background:var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;right:5px}.parent__legend{color:var(--ink-soft);gap:16px;margin:0 0 10px;font-size:12px;display:flex}.parent__legend span{align-items:center;gap:6px;display:inline-flex}.dot{border:2px solid var(--ink);border-radius:50%;width:10px;height:10px}.dot--now{background:var(--sun)}.dot--done{background:var(--leaf-bright)}.diagram{grid-template-columns:repeat(2,1fr);gap:10px 14px;margin:12px 0 0;display:grid}.diagram dt{color:var(--ink-soft);font-size:12px}.diagram dd{word-break:break-all;margin:2px 0 0;font-size:15px;font-weight:700}.parent__warn{border:2px solid var(--alert);color:var(--alert);border-radius:16px;margin:12px 0 0;padding:10px 12px;font-size:13px;line-height:1.6}.daychip--test{background:var(--sun)}.screen--done{text-align:center;justify-content:flex-start;gap:16px}.tear{border:2px solid var(--ink);border-radius:var(--r-card);background:var(--surface);box-shadow:0 5px 0 var(--ink);margin-top:14px;padding:0 0 14px;position:relative}.tear:before,.tear:after{content:"";border:2px solid var(--ink);background:var(--surface);z-index:-1;border-radius:8px;height:10px;position:absolute;left:12px;right:12px}.tear:before{opacity:.45;top:-18px}.tear:after{opacity:.7;top:-9px}.tear__band{border-bottom:2px solid var(--ink);background:var(--leaf);color:#fff;font-family:var(--font-round);border-radius:22px 22px 0 0;justify-content:space-between;align-items:center;padding:8px 14px;font-size:14px;font-weight:700;display:flex}.tear__num{letter-spacing:.02em;opacity:.95;font-size:15px}.tear__spiral{justify-content:space-around;margin:10px 14px 12px;display:flex}.tear__spiral i{border:2px solid var(--ink);background:var(--paper);border-radius:6px;width:11px;height:15px}.cal__row{grid-template-columns:repeat(7,1fr);gap:7px;padding:0 12px;display:grid}.cal__row+.cal__row{margin-top:7px}.cal__cell{aspect-ratio:1/1.16;border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--paper);color:var(--ink-soft);font-family:var(--font-round);place-items:center;font-size:15px;font-weight:700;display:grid;position:relative}.cal__cell.is-future{color:#55735f8c;background:0 0;border-color:#1e3a2c38}.cal__cell.is-done,.cal__cell.is-skipped{background:var(--leaf-bright);color:var(--ink);box-shadow:0 2px 0 var(--leaf-deep)}.cal__cell.is-skipped{border-style:dashed}.cal__cell.is-today{z-index:2;background:var(--coral);color:#fff;box-shadow:0 3px 0 var(--coral-deep);animation:.6s cubic-bezier(.2,.9,.3,1) both stamp-in;transform:scale(1.1)}.cal__tick{place-items:center;width:13px;height:13px;display:grid;position:absolute;bottom:1px;right:3px}.cal__cell.is-today .cal__tick{width:15px;height:15px}.cal__tick svg{width:100%;height:100%}.cal__cell.is-today .cal__tick svg path{stroke:#fff;stroke-width:3.4px}.tear__dots{height:26px;color:var(--ink-soft);justify-content:center;align-items:center;gap:10px;margin:4px 12px 2px;display:flex}.tear__dots .dots{font-family:var(--font-round);letter-spacing:.28em;font-size:20px}.tear__dots .count{font-size:12px}.cal__legend{color:var(--ink-soft);justify-content:center;gap:12px;margin-top:12px;font-size:11px;display:flex}.cal__legend span{align-items:center;gap:5px;display:inline-flex}.sw{border:2px solid var(--ink);border-radius:4px;width:12px;height:12px;display:block}.sw--done{background:var(--leaf-bright)}.sw--today{background:var(--coral)}.sw--future{background:0 0;border-color:#1e3a2c38}.done__title{font-family:var(--font-round);margin:-2px 0 0;font-size:44px;font-weight:800;line-height:1}.screen--done .stack{align-self:center;margin-top:auto}@keyframes stamp-in{0%{opacity:0;transform:scale(.55)}55%{opacity:1;transform:scale(1.22)}to{opacity:1;transform:scale(1.1)}}
