@property --mode{syntax:"<color>";inherits:true;initial-value:#ff8e7f}@property --bg{syntax:"<color>";inherits:true;initial-value:#1c1930}@property --bg2{syntax:"<color>";inherits:true;initial-value:#2d2144}@property --text{syntax:"<color>";inherits:true;initial-value:#f5eeff}:root{--bg:#1c1930;--bg2:#2d2144;--blob1:#ff9a8b;--blob2:#8b6cf0;--blob3:#f6c177;--text:#f5eeff;--on-accent:#1c1930;--focus:#ff8e7f;--short:#7dd3c0;--long:#a5b4fc;--mode:var(--focus);--muted:color-mix(in oklab, var(--text) 62%, transparent);--faint:color-mix(in oklab, var(--text) 14%, transparent);--surface:color-mix(in oklab, var(--bg) 55%, transparent);--surface-strong:color-mix(in oklab, var(--bg) 88%, var(--text) 4%);--border:color-mix(in oklab, var(--text) 12%, transparent);--radius:18px;--font:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);transition:--mode .9s var(--ease), --bg .9s var(--ease), --bg2 .9s var(--ease), --text .6s var(--ease)}:root[data-mode=short]{--mode:var(--short)}:root[data-mode=long]{--mode:var(--long)}@media (prefers-reduced-motion:reduce){:root{transition:none}}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}html{touch-action:manipulation}@supports (-webkit-touch-callout:none){input,textarea,select{font-size:max(16px,1em)!important}}[hidden]{display:none!important}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0}:focus-visible{outline:2px solid var(--mode);outline-offset:3px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.bg{z-index:-1;background:radial-gradient(120% 90% at 50% 0%, var(--bg2), var(--bg) 70%);position:fixed;inset:0;overflow:hidden}.blob{aspect-ratio:1;filter:blur(80px);opacity:.32;will-change:transform;border-radius:50%;width:55vmax;position:absolute}[data-scheme=light] .blob{opacity:.55}.b1{background:var(--blob1);top:-20vmax;left:-15vmax}.b2{background:var(--blob2);bottom:-25vmax;right:-15vmax}.b3{background:var(--blob3);opacity:.18;width:35vmax;top:30%;left:40%}.grain{opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.app{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.topbar{justify-content:space-between;align-items:center;width:100%;max-width:1180px;margin:0 auto;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:600;display:flex}.brand-dot{background:var(--mode);width:12px;height:12px;box-shadow:0 0 16px var(--mode);border-radius:50%}.topbar-actions{gap:10px;display:flex}#tasks-toggle[aria-pressed=true]{color:var(--text)}.stage{flex:1;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:40px;width:100%;max-width:1180px;margin:0 auto;padding:24px 0;display:grid}.timer-col{flex-direction:column;align-items:center;gap:clamp(20px,4vh,36px);display:flex}@media (width>=1000px){.stage.with-tasks{grid-template-columns:minmax(0,1fr) minmax(340px,400px);align-items:center}}.modes{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;padding:5px;display:flex;position:relative}.modes button{z-index:1;color:var(--muted);white-space:nowrap;border-radius:999px;padding:9px 16px;font-size:.92rem;font-weight:500;transition:color .3s;position:relative}.modes button[aria-selected=true]{color:var(--on-accent)}.mode-pill{background:var(--mode);width:0;box-shadow:0 6px 20px color-mix(in oklab, var(--mode) 40%, transparent);border-radius:999px;position:absolute;top:5px;bottom:5px;left:0}.dial{aspect-ratio:1;place-items:center;width:min(78vw,46vh,360px);display:grid;position:relative}.ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ring-track{stroke:var(--faint);stroke-width:6px}.ring-progress{stroke:var(--mode);stroke-width:8px;filter:drop-shadow(0 0 10px color-mix(in oklab, var(--mode) 55%, transparent))}.ring-head{fill:var(--text);stroke:var(--mode);stroke-width:4px}.dial-center{text-align:center;position:relative}.time{letter-spacing:-.02em;font-variant-numeric:tabular-nums;justify-content:center;font-size:clamp(3.2rem,min(17vw,10vh),5.4rem);font-weight:300;line-height:1;display:flex}.time .ch{text-align:center;width:.6em;display:inline-block}.time .colon{width:.3em;transform:translateY(-.06em)}.sub{color:var(--muted);margin-top:10px;font-size:.95rem}.burst{pointer-events:none;position:absolute;inset:0}.burst i{background:var(--mode);border-radius:50%;width:8px;height:8px;margin:-4px;position:absolute;top:50%;left:50%}.controls{align-items:center;gap:22px;display:flex}.icon-btn{width:48px;height:48px;color:var(--muted);background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:50%;place-items:center;transition:color .2s,background .2s;display:grid}.icon-btn:hover{color:var(--text);background:color-mix(in oklab, var(--surface) 70%, var(--text) 8%)}.icon-btn svg{width:22px;height:22px}.primary{letter-spacing:.06em;text-transform:uppercase;min-width:164px;color:var(--on-accent);background:var(--mode);box-shadow:0 10px 30px color-mix(in oklab, var(--mode) 40%, transparent), inset 0 1px 0 #ffffff40;border-radius:999px;padding:18px 36px;font-size:1.15rem;font-weight:600}.primary-label{display:inline-block}.cycle{gap:10px;min-height:10px;display:flex}.cycle span{background:var(--faint);border-radius:50%;width:10px;height:10px;transition:background .4s}.cycle span.done{background:var(--mode)}.scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:#00000059;position:fixed;inset:0}.drawer{z-index:11;background:var(--surface-strong);border-left:1px solid var(--border);flex-direction:column;width:min(420px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-20px 0 60px #00000040}.drawer[hidden],.scrim[hidden]{display:none}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.drawer-head h2{margin:0;font-size:1.2rem;font-weight:600}.drawer-body{flex:1;padding:8px 20px 32px;overflow-y:auto}.section{border-bottom:1px solid var(--border);padding:18px 0}.section:last-child{border-bottom:0}.section h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-size:.78rem;font-weight:600}.row{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.row label,.row .label{font-size:.96rem}.row small{color:var(--muted);font-size:.8rem;display:block}.durations{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px;display:grid}.durations label{color:var(--muted);flex-direction:column;gap:6px;font-size:.8rem;display:flex}input[type=number],select{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;padding:10px 12px}.row input[type=number]{width:84px}.row select{flex:1;width:auto;max-width:160px}input[type=range]{max-width:180px;accent-color:var(--mode);flex:1}.switch{cursor:pointer;flex:none;width:46px;height:26px;position:relative}.switch input{opacity:0;cursor:pointer;appearance:none;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch span{background:var(--faint);pointer-events:none;border-radius:999px;transition:background .25s;position:absolute;inset:0}.switch span:after{content:"";background:var(--text);width:20px;height:20px;transition:transform .3s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--mode)}.switch input:checked+span:after{background:var(--on-accent);transform:translate(20px)}.switch input:focus-visible+span{outline:2px solid var(--mode);outline-offset:3px}.themes{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin-bottom:8px;display:grid}.theme-swatch{background:var(--surface);text-align:left;border:2px solid #0000;border-radius:14px;flex-direction:column;gap:8px;padding:8px;font-size:.85rem;display:flex}.theme-swatch[aria-pressed=true]{border-color:var(--mode)}.theme-swatch .preview{border-radius:9px;align-items:flex-end;gap:4px;height:44px;padding:6px;display:flex}.theme-swatch .preview i{border-radius:50%;width:12px;height:12px}.presets{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.btn.preset[aria-pressed=true]{border-color:var(--mode);color:var(--text);background:color-mix(in oklab, var(--mode) 16%, transparent)}.mode-colors{grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 10px;display:grid}.color-pick{color:var(--muted);flex-direction:column;align-items:flex-start;gap:6px;font-size:.8rem;display:flex}.color-pick input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;width:100%;height:34px;padding:0}.btn{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:12px;padding:9px 16px;font-size:.9rem}.btn:hover{background:color-mix(in oklab, var(--surface) 70%, var(--text) 8%)}.btn.danger{color:#ef6b6b;border-color:oklab(68.847% .151358 .0621648/.4)}.btn.solid{color:var(--on-accent);background:var(--mode);border-color:#0000;font-weight:600}.btn.solid:hover{background:color-mix(in oklab, var(--mode) 88%, var(--text))}.btn.danger.solid{color:#fff;background:#e05555}.link-btn{color:var(--muted);text-underline-offset:3px;padding:4px 0;font-size:.85rem;text-decoration:underline}.link-btn:hover{color:var(--text)}.interrupt{margin-top:-8px;position:relative}.interrupt[hidden]{display:none}.interrupt-btn{color:var(--muted);border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:inline-flex}.interrupt-btn:hover{color:var(--text)}.interrupt-btn svg{width:15px;height:15px}.interrupt-count{min-width:20px;height:20px;color:var(--on-accent);background:var(--mode);border-radius:999px;place-items:center;padding:0 5px;font-size:.75rem;font-weight:600;display:inline-grid}.interrupt-kinds{grid-template-columns:1fr 1fr;gap:8px;display:grid}.interrupt-kinds .btn{white-space:normal;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.interrupt-kinds small{color:var(--muted);font-size:.75rem}.tasks-panel{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:22px;width:100%;max-width:520px;padding:18px}.tasks-panel[hidden]{display:none}.tasks-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.tasks-head h2{margin:0;font-size:1.1rem;font-weight:600}.tasks-meta{color:var(--muted);font-size:.85rem}.task-add,.task-editor{gap:8px;display:flex}.task-add{margin-bottom:8px}.task-add input[name=title],.task-editor input[name=title],.interrupt-dialog input{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex:1;min-width:0;padding:10px 12px}.est{border:1px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:2px;padding-left:8px;font-size:.85rem;display:flex}.est input[type=number]{text-align:center;background:0 0;border:0;width:44px;padding:10px 4px}.tasks-empty{color:var(--muted);margin:14px 4px 6px;font-size:.88rem}.tasks-empty[hidden]{display:none}.task-list{max-height:min(46vh,440px);margin:0;padding:0;list-style:none;overflow-y:auto}.task{border:1px solid #0000;border-radius:14px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;padding:8px 8px 8px 10px;transition:background .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.task:hover{background:color-mix(in oklab, var(--text) 5%, transparent)}.task.active{border-color:color-mix(in oklab, var(--mode) 60%, transparent);background:color-mix(in oklab, var(--mode) 12%, transparent)}.task-check{border:2px solid var(--muted);color:#0000;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;transition:background .2s,border-color .2s,color .2s;display:grid}.task-check svg{stroke-width:3px;width:14px;height:14px}.task-check:hover{border-color:var(--mode)}.task.done .task-check{background:var(--mode);border-color:var(--mode);color:var(--on-accent)}.task-main{text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:2px 0;display:flex}.task-title{overflow-wrap:anywhere;max-width:100%;transition:color .2s}.task.done .task-title{color:var(--muted);text-decoration:line-through}.task.done .task-main{cursor:default}.task-sub{align-items:center;gap:8px;display:flex}.task-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.task-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--on-accent);background:var(--mode);border-radius:999px;padding:2px 7px;font-size:.62rem;font-weight:600;display:none}.task.active .task-badge{display:inline-block}.task-actions{opacity:0;transition:opacity .2s;display:flex}.task:hover .task-actions,.task:focus-within .task-actions{opacity:1}@media (hover:none){.task-actions{opacity:1}}.icon-sm{width:32px;height:32px;color:var(--muted);border-radius:10px;place-items:center;display:grid}.icon-sm:hover{color:var(--text);background:color-mix(in oklab, var(--text) 8%, transparent)}.icon-sm svg{width:17px;height:17px}.task.editing>:not(.task-editor){display:none}.task-editor{flex-wrap:wrap;flex:100%}.task-editor input[name=title]{flex:180px}.tasks-foot{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:.85rem;display:flex}.tasks-foot:empty{display:none}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface-strong);border:1px solid var(--border);border-radius:22px;width:min(400px,100%);padding:22px;box-shadow:0 30px 80px #00000059}.dialog h2{margin:0 0 8px;font-size:1.15rem;font-weight:600}.dialog p{color:var(--muted);margin:0 0 20px;line-height:1.5}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.hint{color:var(--muted);margin:4px 0 0;font-size:.8rem}@media (width<=420px){.modes button{padding:8px 11px;font-size:.84rem}.controls{gap:14px}.primary{min-width:140px;padding:16px 28px}}@media (hover:none),(pointer:coarse),(width<=480px){.kbd-only{display:none!important}}.dialog.shortcuts{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.shortcuts-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.shortcuts-head h2{margin:0}.shortcuts-body section+section{margin-top:14px}.shortcuts-body h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.75rem;font-weight:600}.shortcuts-body dl{grid-template-columns:7.5rem 1fr;align-items:center;gap:8px 16px;margin:0;display:grid}.shortcuts-body dt{flex-wrap:wrap;gap:4px;display:flex}.shortcuts-body dd{margin:0}kbd{min-width:28px;height:26px;font:500 .8rem var(--font);color:var(--text);background:color-mix(in oklab, var(--text) 8%, transparent);border:1px solid var(--border);border-bottom-width:2px;border-radius:7px;place-items:center;padding:0 7px;display:inline-grid}.palette-backdrop{place-items:start center;padding-top:min(14vh,120px)}.dialog.palette{flex-direction:column;width:min(560px,100%);max-height:min(520px,100dvh - 32px);padding:0;display:flex;overflow:hidden}.pal-search{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 18px;display:flex}.pal-search svg{fill:none;width:20px;height:20px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;flex:none}.pal-search input{min-width:0;font:400 1.05rem var(--font);color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:4px 0}.pal-search input::placeholder{color:var(--muted)}.pal-list{overscroll-behavior:contain;flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}.pal-option{cursor:pointer;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:6px 12px;display:flex}.pal-option[aria-selected=true]{background:color-mix(in oklab, var(--mode) 18%, transparent)}.pal-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pal-title mark{color:var(--mode);background:0 0;font-weight:600}.pal-meta{color:var(--muted);flex:none;align-items:center;gap:4px;display:flex}.pal-meta kbd{min-width:22px;height:22px;padding:0 5px;font-size:.72rem}.pal-meta small{text-align:right;min-width:5.5rem;margin-left:6px;font-size:.75rem}.pal-current svg{fill:none;width:18px;height:18px;stroke:var(--mode);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;display:block}.pal-empty{color:var(--muted);text-align:center;padding:18px 12px}.pal-foot{border-top:1px solid var(--border);color:var(--muted);gap:16px;padding:10px 18px;font-size:.78rem;display:flex}.pal-foot kbd{min-width:20px;height:20px;margin-right:3px;padding:0 4px;font-size:.7rem}@media (hover:none),(pointer:coarse),(width<=480px){.pal-foot,.pal-meta kbd{display:none}.pal-meta small{min-width:0}}.toast{z-index:30;left:50%;bottom:max(20px, env(safe-area-inset-bottom));background:var(--surface-strong);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px 10px 10px 16px;font-size:.92rem;display:flex;position:fixed;translate:-50%;box-shadow:0 16px 40px #0000004d}.toast-action{color:var(--on-accent);background:var(--mode);border-radius:9px;padding:6px 12px;font-weight:600}.toast-close{width:28px;height:28px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.toast-close:hover{color:var(--text)}.toast-close svg{width:16px;height:16px}.dialog-backdrop.light{-webkit-backdrop-filter:none;backdrop-filter:none;background:#00000040}.interrupt-dialog p{margin-bottom:14px}.interrupt-dialog input{width:100%;margin-bottom:10px}.notes{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.notes[hidden]{display:none}.notes h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.75rem;font-weight:600}.notes-list{margin:0;padding:0;list-style:none}.note{grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:8px 4px;display:grid}.note+.note{border-top:1px dashed var(--border)}.note-text{overflow-wrap:anywhere}.note-meta{color:var(--muted);grid-row:2;font-size:.75rem}.note-actions{grid-area:1/2/span 2;gap:6px;display:flex}.btn.small{border-radius:9px;padding:5px 10px;font-size:.8rem}.streak-chip{height:48px;color:var(--muted);background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;align-items:center;gap:4px;padding:0 14px;font-weight:600;display:inline-flex}.streak-chip span[aria-hidden]{filter:grayscale();opacity:.6;transition:filter .4s,opacity .4s}.streak-chip.lit{color:var(--text)}.streak-chip.lit span[aria-hidden]{filter:none;opacity:1}.mode-count{background:color-mix(in oklab, var(--text) 12%, transparent);vertical-align:1px;border-radius:999px;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:.7rem;font-weight:600;display:inline-grid}.modes button[aria-selected=true] .mode-count{background:color-mix(in oklab, var(--on-accent) 18%, transparent)}.mode-count[hidden]{display:none}.goal{color:var(--muted);align-items:center;gap:10px;margin-top:-10px;font-size:.8rem;display:flex}.goal-bar{background:var(--faint);border-radius:999px;width:96px;height:4px;overflow:hidden}.goal-fill{border-radius:inherit;background:var(--mode);width:0;height:100%;transition:width .8s var(--ease);display:block}.dialog.stats{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.tiles{grid-template-columns:repeat(2,1fr);gap:10px;margin:8px 0 20px;display:grid}.tile{background:color-mix(in oklab, var(--text) 5%, transparent);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.tile-label{color:var(--muted);font-size:.75rem}.tile-value{font-size:1.25rem;font-weight:600}.tile-sub{color:var(--muted);font-size:.8rem}.stats-h{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:.75rem;font-weight:600}.stats-note{margin:14px 0 0;font-size:.82rem}.recent{margin-top:20px}.recent ul{margin:0;padding:0;list-style:none}.recent li{border-top:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:40px;padding:2px 0 2px 2px;font-size:.9rem;display:grid}.recent-when{font-variant-numeric:tabular-nums;white-space:nowrap}.recent-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);overflow:hidden}.recent li.abandoned .recent-when{color:var(--muted)}.recent-empty{color:var(--muted);margin:0;font-size:.85rem}.chart{padding-top:18px;position:relative}.chart-max{color:var(--muted);font-size:.7rem;position:absolute;top:0;left:0}.bars{border-top:1px dashed var(--border);grid-template-columns:repeat(7,1fr);gap:2px;height:150px;display:grid}.bar{border-radius:8px;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 0 22px;display:flex;position:relative}.bar:hover,.bar:focus-visible{background:color-mix(in oklab, var(--text) 5%, transparent)}.bar-fill{background:var(--mode);transform-origin:bottom;opacity:.55;border-radius:4px 4px 0 0;width:min(28px,70%)}.bar.today .bar-fill{opacity:1}.bar:after{content:"";background:var(--border);height:1px;position:absolute;bottom:22px;left:0;right:0}.bar-day{color:var(--muted);font-size:.72rem;position:absolute;bottom:2px}.bar.today .bar-day{color:var(--text);font-weight:600}.bar-value{margin-bottom:4px;font-size:.72rem;font-weight:600}.chart-tip{z-index:2;white-space:nowrap;pointer-events:none;background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.8rem;position:absolute;top:-6px;translate:-50% -100%;box-shadow:0 8px 24px #00000040}.chart-tip[hidden]{display:none}@media (width<=420px){.tile-value{font-size:1.05rem}.streak-chip{height:44px;padding:0 11px}.topbar-actions{gap:8px}}.topbar,.modes,.cycle,.goal,.tasks-panel{transition:opacity .5s var(--ease), visibility .5s}body.focus-mode .topbar,body.focus-mode .modes,body.focus-mode .cycle,body.focus-mode .goal,body.focus-mode .tasks-panel{opacity:0;visibility:hidden;pointer-events:none}body.focus-mode .tasks-panel{display:none}body.focus-mode .stage.with-tasks{grid-template-columns:minmax(0,1fr)}.dial{transition:width .7s var(--ease)}body.focus-mode .dial{width:min(84vw,56vh,440px)}.focus-exit{z-index:5;top:max(16px, env(safe-area-inset-top));color:var(--muted);background:var(--surface);border:1px solid var(--border);opacity:.35;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;transition:opacity .3s;display:inline-flex;position:fixed;right:16px}.focus-exit:hover,.focus-exit:focus-visible{opacity:1}.focus-exit[hidden]{display:none}.focus-exit kbd{min-width:22px;height:20px;font-size:.72rem}@media (hover:none){.focus-exit kbd{display:none}.focus-exit{opacity:.7}}.data-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}svg.gh{fill:currentColor;stroke:none;flex:none;width:15px;height:15px}.app-foot{color:var(--muted);opacity:.8;transition:opacity .5s var(--ease), visibility .5s;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;padding:8px 0 4px;font-size:.8rem;display:flex}.app-foot a{color:inherit;border-radius:6px;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.app-foot a:hover{color:var(--text)}.app-foot a:hover span{text-underline-offset:3px;text-decoration:underline}body.focus-mode .app-foot{opacity:0;visibility:hidden}.about p{color:var(--muted);margin:0 0 10px;font-size:.9rem}.about strong{color:var(--text)}.about-links{gap:16px;display:flex}.about-links a{color:var(--text);text-underline-offset:3px;align-items:center;gap:6px;display:inline-flex}.tasks-head{align-items:center}.tasks-head-end{align-items:center;gap:4px;display:flex}.menu-anchor{position:relative}.menu{z-index:8;background:var(--surface-strong);border:1px solid var(--border);border-radius:14px;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 40px #0000004d}.menu button{text-align:left;border-radius:9px;padding:9px 12px;font-size:.9rem}.menu button:hover,.menu button:focus-visible{background:color-mix(in oklab, var(--text) 8%, transparent);outline:none}.dialog.import{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.dialog.import p{margin-bottom:12px}.dialog.import textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:12px;padding:10px 12px;font:.9rem/1.5 ui-monospace,SF Mono,Menlo,Consolas,monospace}.syntax{color:var(--muted);margin:8px 0 4px;font-size:.85rem}.syntax summary{cursor:pointer}.syntax pre{background:color-mix(in oklab, var(--text) 6%, transparent);color:var(--text);white-space:pre-wrap;border-radius:10px;margin:8px 0;padding:10px 12px;font-size:.85rem}.syntax p{margin:0 0 4px!important}.syntax code{background:color-mix(in oklab, var(--text) 8%, transparent);color:var(--text);border-radius:5px;padding:1px 5px}.import-preview{min-height:24px;color:var(--muted);margin:10px 0 16px;font-size:.88rem}.import-preview ul{margin:0;padding:0;list-style:none}.import-preview li{color:var(--text);border-bottom:1px dashed var(--border);justify-content:space-between;gap:12px;padding:5px 2px;display:flex}.import-preview li.done{color:var(--muted)}.import-preview li span{color:var(--muted);white-space:nowrap}.import-preview .more{font-size:.8rem;margin:6px 0 0!important}#log-range{flex:none;width:auto}.face-layer{position:absolute;inset:0}.face-layer>svg{stroke:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dial{container-type:inline-size}.tomato .tb-light{stop-color:color-mix(in oklab, var(--mode) 70%, white)}.tomato .tb-mid{stop-color:var(--mode)}.tomato .tb-dark{stop-color:color-mix(in oklab, var(--mode) 65%, black)}.tomato-wobble{transform-box:fill-box;transform-origin:50% 60%}.tomato-shadow{fill:#0000002e}.tomato-tremble{transform-box:fill-box;transform-origin:50% 60%}.tomato[data-urgent] .tomato-tremble{animation:.18s linear infinite tomato-tremble}@keyframes tomato-tremble{25%{transform:rotate(-.8deg)}75%{transform:rotate(.8deg)}}.tomato-ring path{fill:none;stroke:var(--text);stroke-width:3px;stroke-linecap:round;opacity:0}.tomato-body{filter:drop-shadow(0 10px 24px color-mix(in oklab, var(--mode) 40%, transparent))}.tomato-shine{fill:#fff;opacity:.22}.tomato .tick{stroke:color-mix(in oklab, var(--on-accent) 55%, transparent);stroke-width:1px}.tomato .tick.major{stroke:var(--on-accent);stroke-width:2px}.tomato .tick-label{fill:var(--on-accent);font:600 9px var(--font);text-anchor:middle;dominant-baseline:central;opacity:.8}.tomato-pointer{fill:var(--text)}.tomato-leaves{fill:#6bbf7a;transition:transform .6s var(--ease)}.tomato-stem{fill:none;stroke:#4f9a5d;stroke-width:5px;stroke-linecap:round}.dial[data-face=tomato] .dial-center{color:var(--on-accent);margin-top:13%}.dial[data-face=tomato] .time{font-size:12cqw;font-weight:500}.dial[data-face=tomato] .sub{max-width:40cqw;color:color-mix(in oklab, var(--on-accent) 80%, transparent);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:3.6cqw;overflow:hidden}.tama .ts-light{stop-color:color-mix(in oklab, var(--mode) 65%, white)}.tama .ts-dark{stop-color:color-mix(in oklab, var(--mode) 80%, black)}.tama-shake{transform-box:fill-box;transform-origin:50% 90%}.tama-shell{filter:drop-shadow(0 12px 28px color-mix(in oklab, var(--mode) 35%, transparent))}.tama-bezel{fill:color-mix(in oklab, var(--mode) 55%, black);opacity:.35}.tama-screen{fill:#b9c7a5}.tama-pet{fill:#28331f}.tama-btn{fill:color-mix(in oklab, var(--mode) 60%, black);opacity:.45}.dial[data-face=tamagotchi] .dial-center{position:absolute;top:50.5%;left:0;right:0}.dial[data-face=tamagotchi] .time{letter-spacing:0;color:#28331f;font-family:VT323,ui-monospace,monospace;font-size:12.5cqw;font-weight:400}.dial[data-face=tamagotchi] .sub{margin-top:11cqw;max-width:52cqw;color:color-mix(in oklab, var(--on-accent) 85%, transparent);text-overflow:ellipsis;white-space:nowrap;margin-inline:auto;font-size:3.4cqw;overflow:hidden}.dial[data-face=tamagotchi]{aspect-ratio:1}.sub-h{color:var(--muted);margin:4px 0 8px;font-size:.85rem}.faces{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.face-option{background:var(--surface);border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-size:.82rem;display:flex}.face-option svg{width:44px;height:44px;color:var(--text)}.face-option[aria-pressed=true]{border-color:var(--mode)}.bg canvas.scene{opacity:0;width:100%;height:100%;transition:opacity 1.2s var(--ease);position:absolute;inset:0}.bg[data-scene-ready] canvas.scene{opacity:1}.bg:not([data-background=blobs]) .blob{display:none}.bg-options{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.quote{text-align:center;max-width:min(460px,100%);color:var(--muted);margin:0;padding:0 8px}.quote blockquote{text-wrap:balance;margin:0;font-size:.9rem;font-style:italic;line-height:1.5}.quote figcaption{opacity:.85;margin-top:4px;font-size:.78rem}.custom-quotes textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:12px;padding:10px 12px}.quote-options{margin:0 0 6px}.dial[data-face=hourglass] .dial-center,.dial[data-face=plant] .dial-center,.dial[data-face=potion] .dial-center,.dial[data-face=robot] .dial-center,.dial[data-face=tetris] .dial-center,.dial[data-face=blob] .dial-center,.dial[data-face=spaceship] .dial-center,.dial[data-face=hamster] .dial-center{position:absolute;top:78%;left:0;right:0}.dial[data-face=hourglass] .time,.dial[data-face=plant] .time,.dial[data-face=potion] .time,.dial[data-face=robot] .time,.dial[data-face=tetris] .time,.dial[data-face=blob] .time,.dial[data-face=spaceship] .time,.dial[data-face=hamster] .time{font-size:11cqw}.dial[data-face=hourglass] .sub,.dial[data-face=plant] .sub,.dial[data-face=potion] .sub,.dial[data-face=robot] .sub,.dial[data-face=tetris] .sub,.dial[data-face=blob] .sub,.dial[data-face=spaceship] .sub,.dial[data-face=hamster] .sub{margin-top:2px;text-overflow:ellipsis;white-space:nowrap;max-width:70cqw;margin-inline:auto;font-size:3.6cqw;overflow:hidden}.hg-flip{transform-box:fill-box;transform-origin:50%}.hg-glass{fill:color-mix(in oklab, var(--text) 6%, transparent);stroke:color-mix(in oklab, var(--text) 45%, transparent);stroke-width:2.5px}.hg-top-sand,.hg-bottom-sand{fill:var(--mode)}.hg-stream,.hg-grains{stroke:var(--mode);stroke-linecap:round;opacity:0;transition:opacity .4s}.hg-stream{stroke-width:1.6px}.hg-grains{stroke-width:2.6px;stroke-dasharray:.5 4.5}.hourglass.running .hg-stream{opacity:.75}.hourglass.running .hg-grains{opacity:1;animation:.45s linear infinite hg-fall}@keyframes hg-fall{to{stroke-dashoffset:-10px}}.hg-splash circle{fill:var(--mode);opacity:0}.hourglass.running .hg-splash circle{animation:.7s ease-out infinite hg-splash-l}.hourglass.running .hg-splash circle:nth-child(2){animation-name:hg-splash-r;animation-delay:-.25s}.hourglass.running .hg-splash circle:nth-child(3){animation-duration:.9s;animation-delay:-.5s}@keyframes hg-splash-l{0%{opacity:1;transform:translate(0)}45%{transform:translate(-4px,-4px)}to{opacity:0;transform:translate(-7px,1px)}}@keyframes hg-splash-r{0%{opacity:1;transform:translate(0)}45%{transform:translate(4px,-5px)}to{opacity:0;transform:translate(7px,1px)}}.hg-shine{fill:none;stroke:#fff;stroke-opacity:.25;stroke-width:3px;stroke-linecap:round}.hg-plate{fill:color-mix(in oklab, var(--mode) 45%, #6b4a2e)}.hg-post{fill:color-mix(in oklab, var(--mode) 30%, #6b4a2e)}.pl-stem{fill:none;stroke:#5fae6e;stroke-width:4px;stroke-linecap:round}.pl-leaf{fill:#6bbf7a}.pl-bud circle{fill:#7fcf8c}.pl-petal{fill:color-mix(in oklab, var(--mode) 75%, white)}.pl-center{fill:#f6c945}.pl-sway{transform-box:fill-box;transform-origin:50% 100%;animation:5s ease-in-out infinite pl-sway}@keyframes pl-sway{50%{transform:rotate(2deg)}}.pl-rustle{transform-box:fill-box;transform-origin:50% 100%}.pl-pot{transform-box:fill-box;transform-origin:bottom}.pl-can,.pl-drops circle{opacity:0}.pl-can{transform-box:fill-box;transform-origin:30% 70%}.pl-can-body{fill:color-mix(in oklab, var(--text) 45%, var(--bg))}.pl-can-spout,.pl-can-handle{fill:none;stroke:color-mix(in oklab, var(--text) 45%, var(--bg));stroke-width:4px;stroke-linecap:round}.pl-drops circle{fill:#6fb7e6}.pl-falling{fill:color-mix(in oklab, var(--mode) 75%, white);opacity:0;transform-box:fill-box;transform-origin:50%}.plant:not([data-mode=focus]) .pl-falling{animation:9s ease-in 2s infinite pl-fall}@keyframes pl-fall{0%{opacity:0;transform:translate(0)rotate(0)}4%{opacity:1}15%{transform:translate(12px,28px)rotate(40deg)}28%{transform:translate(-4px,58px)rotate(-20deg)}40%{opacity:.9;transform:translate(10px,86px)rotate(60deg)}45%,to{opacity:0;transform:translate(10px,88px)rotate(60deg)}}.pl-pot-body{fill:var(--mode)}.pl-rim{fill:color-mix(in oklab, var(--mode) 80%, black)}.pl-soil{fill:#5b4030}.pl-eye{fill:var(--on-accent);transform-box:fill-box;transform-origin:50%;animation:5s infinite pl-blink}@keyframes pl-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.pl-smile{fill:none;stroke:var(--on-accent);stroke-width:2.4px;stroke-linecap:round}.pl-cheek{fill:#ff9aa2;opacity:.55}.hh-case{fill:#c9c7bd;filter:drop-shadow(0 12px 26px #0000004d)}.hh-bezel{fill:#5c5f6a}.hh-led{fill:#e0455c;opacity:.35;transition:opacity .3s}.handheld.running .hh-led{opacity:1}.hh-scanlines{fill-opacity:.07;pointer-events:none}#hh-scan rect,.hh-chomper path{fill:#0f380f}.hh-chomp-open{visibility:hidden}.handheld.running .hh-chomp-open{animation:.5s step-end infinite hh-chomp-open}.handheld.running .hh-chomp-shut{animation:.5s step-end infinite hh-chomp-shut}@keyframes hh-chomp-open{0%{visibility:visible}50%,to{visibility:hidden}}@keyframes hh-chomp-shut{0%{visibility:hidden}50%,to{visibility:visible}}.hh-a,.hh-b,.hh-dpad{transform-box:fill-box;transform-origin:50%}.handheld .hh-screen{fill:#9bbc0f}.hh-mode{letter-spacing:1px;fill:#0f380f;text-anchor:middle;font:400 9px VT323,ui-monospace,monospace}.hh-block{fill:#0f380f;opacity:.15}.hh-block.on{opacity:1}.hh-brand{font:italic 700 8px var(--font);letter-spacing:1px;fill:#3b3d8f}.hh-dpad{fill:#2d2d2d}.hh-btn{fill:var(--mode)}.hh-pill{fill:#8e8c85}.hh-grill{fill:none;stroke:#8e8c85;stroke-width:2.5px;stroke-linecap:round}.dial[data-face=handheld] .dial-center{position:absolute;top:22%;left:0;right:0}.dial[data-face=handheld] .time{letter-spacing:0;color:#0f380f;font-family:VT323,ui-monospace,monospace;font-size:13.5cqw;font-weight:400}.dial[data-face=handheld] .sub{display:none}.po-body{transform-box:fill-box;transform-origin:bottom}.po-glass{fill:color-mix(in oklab, var(--text) 6%, transparent)}.po-outline{fill:none;stroke:color-mix(in oklab, var(--text) 50%, transparent);stroke-width:3px}.po-liquid{transition:transform .6s var(--ease)}.po-wave path{fill:var(--mode)}.po-wave{animation:3s linear infinite po-wave}@keyframes po-wave{to{transform:translate(-40px)}}.po-bubble{fill:#fff;opacity:0}.potion.running .po-bubble{animation:2.6s ease-in infinite po-bubble}@keyframes po-bubble{0%{opacity:0;transform:translateY(40px)}30%{opacity:.6}to{opacity:0;transform:translateY(-6px)}}.po-shine{fill:none;stroke:#fff;stroke-opacity:.3;stroke-width:4px;stroke-linecap:round}.po-cork{fill:#b08a5a}.po-cork-pop{transform-box:fill-box;transform-origin:50%}.po-glow-in{stop-color:var(--mode);stop-opacity:.45}.po-glow-out{stop-color:var(--mode);stop-opacity:0}.po-aura,.po-sparkles{transition:opacity .6s var(--ease)}.po-sparkle{fill:color-mix(in oklab, var(--mode) 50%, white);opacity:0;transform-box:fill-box;transform-origin:50%}.potion.running .po-sparkle{animation:3.5s ease-in-out infinite po-sparkle}@keyframes po-sparkle{0%,60%,to{opacity:0;transform:scale(.3)rotate(0)}75%{opacity:.9;transform:scale(1)rotate(45deg)}}.po-steam circle{fill:color-mix(in oklab, var(--text) 40%, transparent)}.po-steam{opacity:0}@media (prefers-reduced-motion:reduce){.pl-sway,.pl-eye,.po-wave,.potion.running .po-bubble,.potion.running .po-sparkle,.pl-falling,.tomato[data-urgent] .tomato-tremble,.hourglass.running .hg-grains{animation:none}.pl-falling,.hourglass.running .hg-splash circle{display:none}}.faces{grid-template-columns:repeat(4,1fr)}@media (width<=420px){.faces{grid-template-columns:repeat(3,1fr)}}.side-col{flex-direction:column;align-items:center;gap:18px;width:100%;max-width:520px;display:flex}.side-col:not(:has(>:not([hidden]))){display:none}body.focus-mode .side-col{order:-1}body.focus-mode .side-col:has(>.quote[hidden]){display:none}body.focus-mode .quote,body.focus-mode .stage.with-tasks .quote{text-align:center;opacity:.85;align-self:center;max-width:min(460px,100%)}body.focus-mode .stage{gap:18px}@media (width>=1000px){.stage.with-tasks .side-col{align-self:center}.stage.with-tasks .quote{text-align:left;align-self:stretch;max-width:none;padding:0 6px}}.dial .sub{-webkit-line-clamp:2;line-clamp:2;text-wrap:balance;-webkit-box-orient:vertical;max-width:70cqw;margin-inline:auto;line-height:1.3;display:-webkit-box;overflow:hidden}.dial[data-face=tomato] .sub,.dial[data-face=tamagotchi] .sub,.dial[data-face=hourglass] .sub,.dial[data-face=plant] .sub,.dial[data-face=potion] .sub,.dial[data-face=robot] .sub,.dial[data-face=tetris] .sub,.dial[data-face=blob] .sub,.dial[data-face=spaceship] .sub,.dial[data-face=hamster] .sub{-webkit-line-clamp:2;line-clamp:2;white-space:normal;text-wrap:balance;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box}.dial[data-face=handheld] .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.85rem;display:block;position:absolute;top:calc(78cqw + 6px);left:0;right:0;overflow:hidden}.rb-bot{transform-box:fill-box;transform-origin:bottom}.rb-head,.rb-body{fill:color-mix(in oklab, var(--text) 78%, var(--bg))}.rb-ear,.rb-arm,.rb-foot,.rb-neck{fill:color-mix(in oklab, var(--text) 55%, var(--bg))}.rb-antenna{stroke:color-mix(in oklab, var(--text) 55%, var(--bg));stroke-width:3px}.rb-antenna-g{transform-box:fill-box;transform-origin:50% 100%}.rb-bob{animation:2.6s ease-in-out infinite rb-bob}.robot[data-state=charging] .rb-bob{animation-duration:4.5s}@keyframes rb-bob{50%{transform:translateY(-2px)}}.rb-arm{transform-box:fill-box;transform-origin:50% 12%;transition:transform .4s}.robot[data-state=working] .rb-arm{animation:.9s ease-in-out infinite rb-tap}.robot[data-state=working] .rb-arm-r{animation-delay:-.45s}@keyframes rb-tap{50%{transform:rotate(-7deg)}}.robot[data-state=happy] .rb-arm-l{animation:.5s ease-in-out infinite alternate rb-wave-l}.robot[data-state=happy] .rb-arm-r{animation:.5s ease-in-out infinite alternate rb-wave-r}@keyframes rb-wave-l{0%{transform:rotate(145deg)}to{transform:rotate(170deg)}}@keyframes rb-wave-r{0%{transform:rotate(-145deg)}to{transform:rotate(-170deg)}}.rb-zs{display:none}.robot[data-state=charging] .rb-zs{display:inline}.rb-z{fill:var(--muted);font:700 14px var(--font);opacity:0;animation:3s ease-out infinite rb-z}.rb-z+.rb-z{animation-delay:1.5s}@keyframes rb-z{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(6px,-12px)}}.rb-bulb{fill:var(--mode);transform-box:fill-box;transform-origin:50%}.robot[data-state=working] .rb-bulb{animation:1.4s ease-in-out infinite rb-pulse}@keyframes rb-pulse{50%{opacity:.4}}.rb-screen{fill:#1d2230}.rb-eye{fill:#7ee0ff;transform-box:fill-box;transform-origin:50%}.robot[data-state=working] .rb-eyes{animation:3s ease-in-out infinite rb-scan}@keyframes rb-scan{25%{transform:translate(-7px)}75%{transform:translate(7px)}}.robot[data-state=idle] .rb-eye,.robot[data-state=working] .rb-eye{animation:4s infinite pl-blink}.robot[data-state=happy] .rb-mouth{fill:#7ee0ff}.robot[data-state=happy] .rb-bulb{animation:.4s ease-in-out infinite rb-pulse}.rb-happy,.rb-sleep,.rb-mouth{fill:none;stroke:#7ee0ff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.rb-happy,.rb-sleep,.rb-bolt,.robot[data-state=happy] .rb-eyes,.robot[data-state=charging] .rb-eyes{display:none}.robot[data-state=happy] .rb-happy,.robot[data-state=charging] .rb-sleep,.robot[data-state=charging] .rb-bolt{display:inline}.rb-bolt path{fill:#f6c945}.robot[data-state=charging] .rb-bolt{animation:1.8s ease-in-out infinite rb-pulse}.rb-battery,.rb-battery-tip{fill:#1d2230}.rb-cell{fill:var(--mode);opacity:.18}.rb-cell.on{opacity:1}.rb-cell.blink{animation:1.2s ease-in-out infinite rb-cell}@keyframes rb-cell{50%{opacity:.35}}.tt-bg{fill:color-mix(in oklab, var(--bg) 70%, black);stroke:color-mix(in oklab, var(--text) 25%, transparent);stroke-width:2px}.tt-piece rect{stroke:#ffffff59;stroke-width:1px}.tt-c0 rect{fill:var(--mode)}.tt-c1 rect{fill:var(--blob1)}.tt-c2 rect{fill:var(--blob2)}.tt-c3 rect{fill:var(--blob3)}.tt-ghost rect{fill:none;stroke:color-mix(in oklab, var(--text) 35%, transparent);stroke-width:1px;stroke-dasharray:2 2}.tt-falling .tt-shift{animation:3.2s step-end infinite tt-shuffle}@keyframes tt-shuffle{35%,60%{transform:translateX(var(--dx))}0%,30%,65%,to{transform:none}}.tt-box{fill:color-mix(in oklab, var(--bg) 70%, black);stroke:color-mix(in oklab, var(--text) 25%, transparent);stroke-width:1.5px}.tt-label,.tt-lines{fill:color-mix(in oklab, var(--text) 70%, transparent);text-anchor:middle;font-family:VT323,ui-monospace,monospace}.tt-label{letter-spacing:1px;font-size:9px}.tt-lines{fill:var(--text);font-size:20px}.tt-banner{fill:var(--text);stroke:color-mix(in oklab, var(--bg) 70%, black);stroke-width:4px;paint-order:stroke;letter-spacing:2px;text-anchor:middle;dominant-baseline:central;opacity:0;transform-box:fill-box;transform-origin:50%;font:400 26px VT323,ui-monospace,monospace}.bl-shadow{fill:#0000002e}.bl-jiggle{transform-box:fill-box;transform-origin:bottom}.blobpet[data-state=working] .bl-jiggle{animation:2.4s ease-in-out infinite bl-jiggle}.blobpet[data-state=idle] .bl-jiggle{animation:5s ease-in-out infinite bl-jiggle}@keyframes bl-jiggle{0%,to{transform:scale(1)}30%{transform:scale(1.04,.96)}60%{transform:scale(.97,1.03)}}.blobpet[data-mode=short] .bl-jiggle{transform:scale(1.14,.8)}.blobpet[data-mode=long] .bl-jiggle{transform:scale(1.2,.74)}.blobpet[data-mode=short] .bl-jiggle{animation:9s ease-in-out infinite bl-stretch}@keyframes bl-stretch{0%,to{transform:scale(1.14,.8)}15%,45%{transform:scale(1.1,.84)}30%,58%{transform:scale(1.14,.8)}70%,76%{transform:scale(.92,1.08)}84%{transform:scale(1.18,.77)}}.blobpet[data-mode=short] .bl-yawn{animation:9s ease-in-out infinite bl-yawn}.blobpet[data-mode=short] .bl-mouth{animation:9s ease-in-out infinite bl-no-yawn}@keyframes bl-yawn{0%,64%,82%,to{opacity:0}70%,76%{opacity:1}}@keyframes bl-no-yawn{0%,64%,82%,to{opacity:1}70%,76%{opacity:0}}.blobpet[data-mode=long] .bl-jiggle{animation:5s ease-in-out infinite bl-snooze}@keyframes bl-snooze{0%,to{transform:scale(1.2,.74)}50%{transform:scale(1.16,.78)}}.bl-zs{display:none}.blobpet[data-mode=long] .bl-zs{display:inline}.bl-z{fill:var(--muted);font:700 14px var(--font);opacity:0;animation:3.6s ease-out infinite rb-z}.bl-z:nth-child(2){animation-delay:1.2s}.bl-z:nth-child(3){animation-delay:2.4s}.bl-body{fill:color-mix(in oklab, var(--mode) 45%, var(--bg))}.bl-fill{fill:var(--mode);transition:y .6s var(--ease)}.bl-shine{fill:#fff;opacity:.35}.bl-eyes{transform-box:fill-box;transform-origin:50%;animation:4.5s infinite pl-blink}.bl-eyes ellipse{fill:#1d2230}.bl-yawn{fill:#1d2230;opacity:0}.bl-bubbles circle{fill:#fff;opacity:0}.blobpet[data-state=working] .bl-bubbles circle{animation:2.8s ease-in infinite bl-bubble}.blobpet[data-state=working] .bl-bubbles circle:nth-child(2){animation-delay:.9s}.blobpet[data-state=working] .bl-bubbles circle:nth-child(3){animation-delay:1.8s}@keyframes bl-bubble{0%{opacity:0;transform:translate(0)}20%{opacity:.45}50%{transform:translate(3px,-22px)}to{opacity:0;transform:translate(-2px,-44px)}}.bl-glint{fill:#fff}.bl-closed,.bl-mouth{fill:none;stroke:#1d2230;stroke-width:3px;stroke-linecap:round}.bl-closed,.blobpet[data-state=relaxed] .bl-eyes,.blobpet[data-state=relaxed] .bl-glint{display:none}.blobpet[data-state=relaxed] .bl-closed{display:inline}.bl-cheek{fill:#ff9aa2;opacity:.5}.ss-star{fill:var(--text);opacity:.5;animation:3s ease-in-out infinite ss-twinkle}@keyframes ss-twinkle{50%{opacity:.1}}.ss-orbit{fill:none;stroke:var(--text);stroke-opacity:.15;stroke-width:1.5px;stroke-dasharray:3 5}.ss-trail{fill:none;stroke:var(--mode);stroke-width:3px;stroke-linecap:round;opacity:.8}.ss-globe{fill:var(--mode);filter:drop-shadow(0 0 18px color-mix(in oklab, var(--mode) 50%, transparent))}.ss-band{fill:none;stroke:#ffffff2e;stroke-width:5px;stroke-linecap:round}.ss-ring{fill:none;stroke:color-mix(in oklab, var(--text) 55%, transparent);stroke-width:3px}.ss-hull{fill:var(--text)}.ss-window{fill:var(--mode)}.ss-flame{fill:#f6a445;opacity:0}.spaceship.running .ss-flame{opacity:1;animation:.24s ease-in-out infinite alternate ss-flicker}.ss-flame,.ss-boost{transform-box:fill-box;transform-origin:100%}@keyframes ss-flicker{0%{opacity:.75;transform:scaleX(.7)scaleY(.85)}to{opacity:1;transform:scaleX(1.15)}}.spaceship.running .ss-bob{animation:1.8s ease-in-out infinite ss-bob}@keyframes ss-bob{50%{transform:translateY(1.5px)}}.ss-spots ellipse{fill:#00000024}.ss-spots{animation:26s linear infinite ss-spin}@keyframes ss-spin{to{transform:translate(-56px)}}.ss-shade{fill:#0003}.ss-comet{opacity:0;animation:13s ease-in 4s infinite ss-comet}@keyframes ss-comet{0%{opacity:0;transform:translate(10px,14px)}2%{opacity:.9}9%{opacity:0;transform:translate(130px,52px)}to{opacity:0;transform:translate(130px,52px)}}.ss-comet-tail{fill:none;stroke:var(--text);stroke-width:1.4px;stroke-linecap:round;stroke-opacity:.45}.ss-comet-head{fill:var(--text)}.hw-stand{fill:none;stroke:color-mix(in oklab, var(--text) 45%, transparent);stroke-width:5px;stroke-linecap:round}.hw-rim{fill:color-mix(in oklab, var(--text) 5%, transparent);stroke:color-mix(in oklab, var(--text) 30%, transparent);stroke-width:7px}.hw-progress{fill:none;stroke:var(--mode);stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .4s linear}.hw-spokes line{stroke:color-mix(in oklab, var(--text) 22%, transparent);stroke-width:2px}.hw-spokes{transform-box:fill-box;transform-origin:50%}.hamster[data-state=running] .hw-spokes{animation:1.6s linear infinite hw-spin}@keyframes hw-spin{to{transform:rotate(360deg)}}.hw-rungs{fill:none;stroke:color-mix(in oklab, var(--text) 16%, transparent);stroke-width:4px;stroke-dasharray:2 11}.hamster[data-sprint] .hw-spokes{animation-duration:.9s}.hw-hub{fill:color-mix(in oklab, var(--text) 45%, transparent)}.hw-body{fill:#e0b584}.hw-belly{fill:#f6e3c8}.hw-ear{fill:#e8a6a0}.hw-cheek{fill:#ff9aa2;opacity:.45}.hw-tail{fill:#c9955f}.hw-eye{fill:#1d2230;transform-box:fill-box;transform-origin:50%;animation:4s infinite pl-blink}.hw-nose{fill:#e87b86;transform-box:fill-box;transform-origin:50%}.hw-whiskers{fill:none;stroke:color-mix(in oklab, var(--text) 50%, transparent);stroke-width:.8px;stroke-linecap:round}.hw-shut{fill:none;stroke:#1d2230;stroke-width:1.8px;stroke-linecap:round;display:none}.hw-leg{fill:#c9955f}.hw-gait{transform-box:fill-box;transform-origin:50% 100%}.hamster[data-state=running] .hw-gait{animation:.35s ease-in-out infinite hw-gallop}@keyframes hw-gallop{0%,to{transform:translateY(0)rotate(4deg)}50%{transform:translateY(-3px)rotate(7deg)}}.hamster[data-state=running] .hw-leg{animation:.35s ease-in-out infinite alternate hw-step}.hamster[data-state=running] .hw-leg-b{animation-direction:alternate-reverse}.hamster[data-state=running] .hw-leg-front{animation-delay:-.12s}@keyframes hw-step{0%{transform:translate(-3px)}to{transform:translate(4px,-1px)}}.hamster[data-sprint] .hw-gait,.hamster[data-sprint] .hw-leg{animation-duration:.22s}.hw-dust circle{fill:color-mix(in oklab, var(--text) 40%, transparent);opacity:0}.hamster[data-state=running] .hw-dust circle{animation:.7s ease-out infinite hw-dust}.hamster[data-state=running] .hw-dust circle+circle{animation-delay:-.35s}@keyframes hw-dust{0%{opacity:.6;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(-12px,-4px)scale(1.3)}}.hw-dust circle{transform-box:fill-box;transform-origin:50%}.hamster[data-state=idle] .hw-nose{animation:1.8s ease-in-out infinite hw-sniff}@keyframes hw-sniff{0%,40%,to{transform:scale(1)}10%,30%{transform:scale(1.35)}20%{transform:scale(.9)}}.hamster[data-state=idle] .hw-gait,.hw-napper .hw-gait{animation:3s ease-in-out infinite hw-breathe}@keyframes hw-breathe{50%{transform:scale(1.03,.96)}}.hw-napper,.hamster[data-state=napping] .hw-runner{display:none}.hamster[data-state=napping] .hw-napper{display:inline}.hw-napper .hw-eye,.hw-napper .hw-leg,.hw-napper .hw-whiskers{display:none}.hw-napper .hw-shut{display:inline}.hw-napper .hw-gait{animation-duration:4s}.hw-z{fill:var(--muted);font:700 13px var(--font);opacity:0;animation:3s ease-out infinite rb-z}.hw-z+.hw-z{animation-delay:1.5s}@media (prefers-reduced-motion:reduce){.robot .rb-bulb,.robot .rb-eyes,.robot .rb-eye,.robot .rb-bolt,.robot .rb-bob,.robot .rb-arm,.robot .rb-z,.robot .rb-cell,.bl-jiggle,.bl-eyes,.bl-bubbles circle,.bl-yawn,.bl-mouth,.bl-z,.ss-star,.ss-flame,.ss-bob,.ss-spots,.ss-comet,.tt-falling .tt-shift,.hh-chomper path,.hw-spokes,.hw-leg,.hw-gait,.hw-eye,.hw-nose,.hw-dust circle,.hw-z{animation:none!important}.rb-z,.bl-z,.hw-z{opacity:1}}.fullscreen-btn{z-index:5;right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));width:40px;height:40px;color:var(--muted);background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:.55;border-radius:12px;place-items:center;transition:opacity .25s,color .25s;display:grid;position:fixed}.fullscreen-btn:hover,.fullscreen-btn:focus-visible{opacity:1;color:var(--text)}.fullscreen-btn svg{width:18px;height:18px}.app{padding-bottom:max(64px, env(safe-area-inset-bottom))}@media (width<=600px){.fullscreen-btn{margin:0 auto max(16px, env(safe-area-inset-bottom));position:static}.app{padding-bottom:8px}}
