.scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;shape-rendering:crispEdges;image-rendering:pixelated}.lamp-glow{opacity:0;transition:opacity 1.2s ease}.lamp--on .lamp-glow{opacity:.13}.lamp .lamp-bulb{fill:#8a7460;transition:fill 1.2s ease}.lamp--on .lamp-bulb{fill:#ffd98a}.scene--animated .lamp--on .lamp-glow{animation:flicker 4s steps(2,jump-none) infinite}@keyframes flicker{0%,78%,to{opacity:.13}80%,84%{opacity:.09}82%{opacity:.15}}.scene--animated .steam{animation:steam-rise 3s steps(3) infinite}@keyframes steam-rise{0%{transform:translateY(0);opacity:1}to{transform:translateY(-7px);opacity:0}}.scene--animated .rain{animation:rain-fall .9s steps(6) infinite}@keyframes rain-fall{0%{transform:translateY(-9px)}to{transform:translateY(24px)}}.scene--animated .snow{animation:snow-fall 5s steps(14) infinite}@keyframes snow-fall{0%{transform:translateY(-12px)}to{transform:translate(3px,30px)}}.scene--animated .clouds{animation:cloud-drift var(--cloud-dur, 28s) steps(28,jump-none) infinite alternate}@keyframes cloud-drift{0%{transform:translate(-4px)}to{transform:translate(6px)}}.scene--animated .lightning{animation:lightning-flash 9s steps(1) infinite}@keyframes lightning-flash{0%,91%,94%,to{opacity:0}92%{opacity:.75}93%{opacity:.25}}.scene--animated .cat-tail{transform-origin:92.5px 95.7px;animation:tail-swish 5s steps(2,jump-none) infinite}@keyframes tail-swish{0%,60%,to{transform:rotate(0)}70%,90%{transform:rotate(-14deg)}}.scene--animated .candle-flame{animation:candle var(--candle-dur, 1.6s) steps(2,jump-none) infinite}.scene--animated .sway{animation:sway var(--sway-dur, 5s) ease-in-out infinite alternate}@keyframes sway{0%{transform:translate(0)}to{transform:translate(var(--sway-x, .2px))}}.scene--animated .petals{animation:petal-drift 6s steps(12) infinite}@keyframes petal-drift{0%{transform:translate(-6px,-8px)}to{transform:translate(8px,26px)}}.scene--animated .leaves{animation:leaf-fall 5s steps(10) infinite}@keyframes leaf-fall{0%{transform:translate(4px,-8px)}to{transform:translate(-6px,26px)}}.scene--animated .firefly{animation:firefly-blink 3.2s steps(2,jump-none) infinite}@keyframes firefly-blink{0%,to{opacity:0}45%,60%{opacity:.95}}.scene--animated .twinkle{animation:twinkle 4s steps(2,jump-none) infinite}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.55}}.scene--animated .birds{animation:bird-glide 40s linear infinite}@keyframes bird-glide{0%{transform:translate(-14px)}to{transform:translate(60px)}}.scene--animated .aurora{animation:aurora-breathe 7s ease-in-out infinite alternate}@keyframes aurora-breathe{0%{transform:translate(-3px);opacity:.75}to{transform:translate(3px);opacity:1}}.scene--animated .fire-flames{transform-origin:158.5px 81px;animation:fire-dance .7s steps(2,jump-none) infinite}@keyframes fire-dance{0%,to{transform:scaleY(1)}50%{transform:scaleY(.88) scaleX(1.05)}}.scene--animated .fire-glow{animation:flicker 3s steps(2,jump-none) infinite}@keyframes candle{0%,to{opacity:1}50%{opacity:.7}}@media(prefers-reduced-motion:reduce){.scene--animated .lamp--on .lamp-glow,.scene--animated .steam,.scene--animated .rain,.scene--animated .cat-tail,.scene--animated .candle-flame,.scene--animated .fire-flames,.scene--animated .fire-glow,.scene--animated .snow,.scene--animated .clouds,.scene--animated .lightning,.scene--animated .sway,.scene--animated .twinkle,.scene--animated .birds,.scene--animated .petals,.scene--animated .leaves,.scene--animated .firefly,.scene--animated .aurora{animation:none}}.timer-card{background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 28px;text-align:center;min-width:240px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.timer-card:active{cursor:grabbing}.timer-card--minimal{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;min-width:0;padding:8px 16px}.timer-card--minimal .timer-clock{text-shadow:0 4px 18px rgba(15,10,20,.85),0 1px 4px rgba(15,10,20,.9);font-size:clamp(52px,12vw,80px)}.timer-card--minimal .timer-mode{text-shadow:0 2px 8px rgba(15,10,20,.8)}.timer-card--minimal .timer-controls{opacity:0;transition:opacity .25s ease}.timer-card--minimal:hover .timer-controls,.timer-card--minimal:focus-within .timer-controls{opacity:1}.timer-card--bar{display:flex;align-items:center;gap:14px;padding:10px 18px;border-radius:999px;min-width:0}.timer-card--bar .timer-clock{font-size:26px;margin:0}.timer-card--bar .timer-mode{font-size:12px}.timer-card--bar .timer-controls{margin-top:0;gap:4px}.timer-card--bar .btn-primary{padding:6px 16px;font-size:13px}.timer-card--bar .btn-quiet{padding:6px 8px;font-size:13px}.timer-mode{font-size:13px;color:var(--muted);letter-spacing:.08em}.timer-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lamp);margin-right:4px}.timer-card--shortBreak .timer-dot,.timer-card--longBreak .timer-dot{background:var(--dusty-rose)}.timer-clock{font-family:var(--font-pixel);font-size:clamp(44px,10vw,64px);color:var(--lamp);line-height:1.2;margin:4px 0}.timer-card--shortBreak .timer-clock,.timer-card--longBreak .timer-clock{color:var(--dusty-rose)}.timer-hint{color:var(--muted);font-size:14px;margin-bottom:6px}.timer-controls{display:flex;gap:10px;justify-content:center;margin-top:10px}.btn-primary{background:var(--ember);color:#2b1c14;font-weight:700;padding:8px 22px;border-radius:999px;font-size:15px;transition:transform .15s ease,filter .15s ease}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-quiet{color:var(--muted);font-size:14px;padding:8px 10px;border-radius:999px}.btn-quiet:hover{color:var(--cream);background:#ffffff0f}.sound-panel{display:flex;flex-direction:column;gap:12px}.sound-row{display:flex;align-items:center;gap:12px;justify-content:space-between}.sound-label{font-size:14px;min-width:96px}.sound-row input[type=range]{flex:1;accent-color:var(--ember);max-width:160px}.sound-row--select select{flex:1;max-width:160px;background:var(--surface-raised);color:var(--cream);border:1px solid transparent;border-radius:6px;padding:5px 8px;font-size:13px;font-family:inherit}.sound-row--select select:focus{outline:none;border-color:var(--ember)}.sound-mute{align-self:flex-start;padding-left:0}.sound-note a{color:var(--muted)}.sound-note{font-size:11px;color:var(--muted);margin:0}.task-panel{display:flex;flex-direction:column;gap:10px;max-height:40vh}.task-add{display:flex;gap:8px}.task-add input{flex:1;background:var(--surface-raised);border:1px solid transparent;border-radius:8px;color:var(--cream);padding:8px 12px;font-size:14px}.task-add input:focus{outline:none;border-color:var(--ember)}.task-add input::placeholder{color:var(--muted)}.task-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.task{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:14px}.task--current{background:#ffb45e1a}.task--current .task-title{color:var(--lamp);font-weight:700}.task--done .task-title{color:var(--muted);text-decoration:line-through}.task-check{color:var(--muted);font-size:15px;padding:2px 4px}.task-check:hover{color:var(--lamp)}.task-title{flex:1;text-align:left;padding:2px 4px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-title:hover{background:#ffffff0d}.pomo-dots{font-size:11px;letter-spacing:1px}.task-x{color:var(--muted);opacity:0;padding:2px 6px;font-size:16px}.task:hover .task-x{opacity:1}.task-x:hover{color:var(--dusty-rose)}.task-empty{color:var(--muted);font-size:13px;padding:8px;font-style:italic}.settings-panel{display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}.setting-minutes{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}.setting-row input[type=number]{width:56px;background:var(--surface-raised);border:1px solid transparent;border-radius:6px;color:var(--cream);padding:5px 8px;font-size:14px;text-align:center}.setting-row input[type=number]:focus{outline:none;border-color:var(--ember)}.setting-row--toggle input{accent-color:var(--ember);width:18px;height:18px}.theme-picker{display:flex;gap:6px}.theme-chip{font-size:12px;padding:5px 10px;border-radius:999px;background:var(--surface-raised);color:var(--muted)}.theme-chip--active{background:var(--ember);color:#2b1c14;font-weight:700}.export-btn{align-self:flex-start;padding-left:0;font-size:13px}.donate-link{align-self:flex-start;font-size:13px;color:var(--lamp);text-decoration:none;padding:4px 0}.donate-link:hover{text-decoration:underline}.stats-view{display:flex;flex-direction:column;gap:12px;min-width:240px}.stats-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.stats-title{font-family:var(--font-pixel);font-size:13px}.stats-streak{font-size:13px;color:var(--muted)}.stats-chart{display:flex;gap:6px;align-items:flex-end}.stats-col{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.stats-bar-track{display:flex;align-items:flex-end;width:100%;justify-content:center}.stats-bar{width:70%;max-width:22px;background:var(--lamp);border-radius:4px 4px 0 0;transition:height .3s ease}.stats-col:hover .stats-bar{background:var(--ember)}.stats-bar--empty{background:color-mix(in srgb,var(--muted) 35%,transparent)}.stats-day{font-size:11px;color:var(--muted)}.stats-day--today{color:var(--cream);font-weight:700}.stats-tip{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);background:var(--surface-raised);color:var(--cream);font-size:11px;padding:3px 8px;border-radius:6px;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none;z-index:4}.stats-totals{font-size:13px;color:var(--cream)}.stats-empty{font-size:12px;color:var(--muted);font-style:italic}.city-panel{display:flex;flex-direction:column;gap:10px}.city-title{margin:0;font-family:var(--font-pixel);font-size:12px}.city-search{background:var(--surface-raised);border:1px solid transparent;border-radius:8px;color:var(--cream);padding:8px 12px;font-size:14px}.city-search:focus{outline:none;border-color:var(--ember)}.city-search::placeholder{color:var(--muted)}.city-rows{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}.city-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;font-size:14px;text-align:left}.city-row:hover,.city-row--picked{background:#ffb45e1a}.city-row--picked .city-row-name{color:var(--lamp)}.city-row-country{color:var(--muted);font-size:12px}.city-row-weather{color:var(--muted);font-size:13px;white-space:nowrap}.city-preview{background:var(--surface-raised);border-radius:8px;padding:10px 12px;font-size:13px}.city-preview p{margin:0 0 8px}.city-go{font-size:13px;padding:6px 16px}.city-clear{align-self:flex-start;padding-left:0;font-size:13px}.city-empty{color:var(--muted);font-size:13px;font-style:italic;padding:6px 8px;margin:0}.city-note{margin:0;font-size:11px;color:var(--muted)}.city-note a{color:var(--muted)}.app{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 18px}.brand{font-family:var(--font-pixel);font-size:15px;margin:0;color:var(--cream);text-shadow:0 2px 8px rgba(15,10,20,.6)}.topbar-actions{align-items:center}.weather-chip{font-size:13px;font-weight:600;color:var(--cream);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:6px 14px;box-shadow:var(--shadow);white-space:nowrap;margin-right:4px}.weather-chip:hover{background:var(--surface-raised)}@media(max-width:560px){.weather-chip{max-width:44vw;overflow:hidden;text-overflow:ellipsis}}.toast{position:absolute;z-index:5;bottom:76px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;box-shadow:var(--shadow);padding:8px 10px 8px 18px;font-size:14px;white-space:nowrap}.toast-yes{font-size:13px;padding:5px 14px}.topbar-actions{display:flex;gap:6px}.icon-btn{font-size:17px;padding:6px 9px;border-radius:8px;filter:grayscale(.3)}.icon-btn:hover,.icon-btn--active{background:color-mix(in srgb,var(--surface) 80%,transparent);filter:none}.popover{position:absolute;z-index:3;top:54px;right:16px;width:min(300px,calc(100vw - 32px));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.center{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:12px;min-height:0}.bottombar{position:relative;z-index:2;padding:10px 18px 16px;display:flex;flex-direction:column;gap:8px}.current-task{font-size:14px;color:var(--cream);text-shadow:0 2px 8px rgba(15,10,20,.6)}.current-task strong{color:var(--lamp)}.tasks-toggle{align-self:flex-start;color:var(--muted);font-size:14px;padding:6px 10px;border-radius:8px}.tasks-toggle:hover{color:var(--cream);background:color-mix(in srgb,var(--surface) 80%,transparent)}.tasks-sheet{background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;max-width:440px}@media(max-width:480px){.tasks-sheet{max-width:none}.timer-card{min-width:0;width:100%;max-width:320px}}.site-links{display:flex;gap:8px;align-self:flex-end;font-size:12px;opacity:.55;transition:opacity .2s}.site-links:hover{opacity:.95}.site-links a{color:var(--cream);text-decoration:none}.site-links a:hover{text-decoration:underline}:root{--bg-night: #2b2233;--bg-day: #4a3b52;--surface: #3a2e42;--surface-raised: #453750;--lamp: #ffb45e;--ember: #e8875b;--dusty-rose: #c98b8b;--cream: #f2e3c9;--muted: #9c8aa5;--shadow: 0 8px 24px rgba(15, 10, 20, .45);--radius: 10px;--font-pixel: "Silkscreen", monospace;--font-body: "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-night);color:var(--cream);font-family:var(--font-body);overflow:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}
