*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}:root{color-scheme:dark;--bg: #08090c;--card: #101319;--line: #1d222c;--text: #eceff4;--dim: #8b93a3;--go: #4ade80;--ember: #ff8a3d;--shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 8px 24px rgba(0, 0, 0, .4)}body{background:radial-gradient(120% 80% at 50% -10%,#131926 0%,transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;min-height:100dvh}main{max-width:460px;margin:0 auto;padding:8px calc(18px + env(safe-area-inset-right)) 56px calc(18px + env(safe-area-inset-left))}header{display:flex;align-items:baseline;justify-content:space-between;padding:20px 2px 16px}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.022em}.date{color:var(--dim);font-size:.85rem;font-variant-numeric:tabular-nums}.center,.gate{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:82dvh;gap:14px;text-align:center}.sub{color:var(--dim);font-size:.95rem}.gate-mark{width:54px;height:54px;border-radius:17px;margin-bottom:6px;background:linear-gradient(160deg,var(--go),#16794a);box-shadow:0 10px 30px #4ade8038}.gate form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:300px;margin-top:8px}input,button{font:inherit;font-size:1rem;border-radius:13px;border:1px solid var(--line);padding:14px 16px;background:var(--card);color:var(--text)}input:focus-visible,button:focus-visible{outline:2px solid var(--go);outline-offset:2px}button{cursor:pointer;font-weight:600;letter-spacing:-.01em;transition:transform .14s cubic-bezier(.2,.8,.3,1),opacity .14s,background .14s}button:active:not(:disabled){transform:scale(.972)}button:disabled{opacity:.45;cursor:default}.gate button,.actions button.go{background:linear-gradient(180deg,#2ea55f,#1f7d47);border-color:#2f9d5d;box-shadow:0 6px 18px #23865447}.hero{background:linear-gradient(180deg,#141926,#0f131b);border:1px solid var(--line);border-radius:20px;padding:18px 18px 16px;box-shadow:var(--shadow);transition:box-shadow .4s}.hero.celebrate{box-shadow:0 0 0 1px #ff8a3d80,0 10px 40px #ff8a3d40}.hero-top{display:flex;align-items:center;justify-content:space-between}.level{display:flex;flex-direction:column;gap:1px}.level-label{color:var(--dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600}.level-num{font-size:2.4rem;font-weight:700;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.flame-wrap{display:flex;align-items:center;gap:7px}.flame{filter:drop-shadow(0 0 calc(4px + var(--heat) * 10px) rgba(255,138,61,calc(.35 + var(--heat) * .5)))}.flame-outer{fill:color-mix(in oklab,#ff5e2b,#ffd166 calc(var(--heat) * 55%));transform-origin:12px 30px;animation:flicker 2.6s ease-in-out infinite}.flame-inner{fill:#fff2cc;opacity:calc(.55 + var(--heat) * .45);transform-origin:12px 30px;animation:flicker 1.7s ease-in-out infinite reverse}.flame-count{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}@keyframes flicker{0%,to{transform:scale(1) translateY(0)}40%{transform:scale(1.06,.96) translateY(-.5px)}70%{transform:scale(.97,1.04) translateY(.5px)}}.xp{margin-top:16px}.xp-bar{position:relative;height:9px;border-radius:99px;background:#1b2130;overflow:hidden}.xp-fill,.xp-shine{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;border-radius:99px}.xp-fill{background:linear-gradient(90deg,#34d399,#86efac);transition:transform .75s cubic-bezier(.2,.8,.2,1)}.xp-shine{background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);mix-blend-mode:overlay;animation:sweep 3.4s ease-in-out infinite;transition:transform .75s cubic-bezier(.2,.8,.2,1)}@keyframes sweep{0%,65%{opacity:0}80%{opacity:.9}to{opacity:0}}.xp-meta{display:flex;justify-content:space-between;margin-top:8px;color:var(--dim);font-size:.8rem;font-variant-numeric:tabular-nums}.track{position:relative;height:54px;margin:22px 6px 6px}.track-line{position:absolute;top:38px;left:0;right:0;height:3px;border-radius:99px;background:#1b2130}.track-done{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:99px;background:linear-gradient(90deg,#2b6b48,var(--go));transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.pip{position:absolute;top:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:99px;background:#2a3243;transform:translateY(-50%);transition:background .4s,box-shadow .4s}.pip.done{background:var(--go);box-shadow:0 0 8px #4ade808c}.pip.skipped{background:#4a5261}.pip.doing{background:#fff;box-shadow:0 0 10px #fff9}.track-runner{position:absolute;top:0;transform:translate(-50%);transition:left .7s cubic-bezier(.2,.8,.2,1)}.runner{display:block}.runner .head{fill:var(--text)}.runner path{stroke:var(--text);stroke-width:3.2;stroke-linecap:round;fill:none}.runner.idle .runner-body{animation:breathe 3.2s ease-in-out infinite;transform-origin:20px 40px}.runner.running .leg-front,.runner.running .arm-back{animation:stride .5s ease-in-out infinite alternate;transform-origin:19px 28px}.runner.running .leg-back,.runner.running .arm-front{animation:stride .5s ease-in-out infinite alternate-reverse;transform-origin:19px 28px}.runner.running .runner-body{animation:bob .5s ease-in-out infinite alternate}.runner.done .head,.runner.done path{stroke:var(--go);fill:none}.runner.done .head{fill:var(--go)}.runner.done .runner-body{animation:cheer 1.4s cubic-bezier(.3,.9,.4,1) infinite;transform-origin:20px 40px}@keyframes breathe{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-.6px) scaleY(1.012)}}@keyframes stride{0%{transform:rotate(-24deg)}to{transform:rotate(26deg)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-1.6px)}}@keyframes cheer{0%,to{transform:translateY(0)}35%{transform:translateY(-5px)}60%{transform:translateY(0)}}.tasks{list-style:none;padding:0;display:flex;flex-direction:column;gap:9px;margin-top:14px}.task{border:1px solid var(--line);border-radius:17px;background:var(--card);overflow:hidden;box-shadow:0 1px #ffffff08 inset;transition:border-color .3s,background .3s,opacity .3s}.task.current{border-color:#4ade808c;background:linear-gradient(180deg,#102018,#0e1a15);box-shadow:0 0 0 1px #4ade8029,0 10px 28px #00000073}.task.done,.task.skipped{opacity:.42}.task.done .name,.task.skipped .name{text-decoration:line-through;text-decoration-color:#eceff459}.task-main{display:flex;flex-direction:column;gap:5px;align-items:stretch;text-align:left;width:100%;background:none;border:none;border-radius:0;padding:15px 16px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.name{font-weight:650;letter-spacing:-.012em}.task.current .name{font-size:1.12rem}.desc{color:var(--dim);font-size:.875rem;line-height:1.45}.meta{color:#6c7486;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.task.done .meta:after{content:" ✓";color:var(--go)}.pill{flex:none;min-width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;background:#1c2230;color:var(--dim)}.pill.f6,.pill.f7{background:#ff8a3d29;color:#ffb37a}.pill.f8,.pill.f9{background:#f851492e;color:#ff9b96}.actions{display:flex;gap:8px;padding:0 12px 12px}.actions button{flex:1;padding:12px}.actions .skip{background:#1a1f2a;border-color:#242b38;box-shadow:none}.energy{padding:2px 14px 14px;display:flex;flex-direction:column;gap:12px}.energy label{display:flex;flex-direction:column;gap:9px}.energy-row{display:flex;justify-content:space-between;color:var(--dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.energy-row strong{color:var(--text);font-size:1.05rem;font-variant-numeric:tabular-nums}.energy input[type=range]{width:100%;padding:0;accent-color:var(--go);background:none;border:none}.error{color:#ff6b63;padding:10px 4px;font-size:.9rem}.empty{color:var(--dim);font-size:1rem}.empty.pad{padding:32px 4px;text-align:center}.finished{color:var(--go);font-size:1rem;font-weight:600;text-align:center;padding:22px 4px}.levelup{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:20;background:radial-gradient(50% 40% at 50% 50%,rgba(255,138,61,.16),transparent 70%);animation:fade 2.6s ease-out forwards}.levelup-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:26px 40px;border-radius:26px;background:#141822db;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,138,61,.45);box-shadow:0 20px 60px #0009;animation:pop .6s cubic-bezier(.2,1.3,.4,1)}.levelup-num{font-size:3.4rem;font-weight:700;line-height:1;letter-spacing:-.04em;background:linear-gradient(180deg,#ffd9a8,var(--ember));-webkit-background-clip:text;background-clip:text;color:transparent}.levelup-label{color:var(--ember);font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700}@keyframes pop{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fade{0%,76%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
