:root{--primary-color:#ffffff;--secondary-color:#a78bfa;--text-color-light:#e2e8f0;--text-color-dark:#1e293b;--bg-glass-light:rgba(255, 255, 255, 0.1);--bg-glass-dark:rgba(0, 0, 0, 0.2);--border-color:rgba(255, 255, 255, 0.2);--shadow-color:rgba(0, 0, 0, 0.1);--track-color:rgba(255, 255, 255, 0.18);--alert-color:#f87171;--urgency-mid-color:#fb923c}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,sans-serif;color:var(--text-color-light);overflow-x:hidden;overflow-y:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#app-bg{position:fixed;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;transition:background-image 1s ease-in-out;z-index:-1;overflow:hidden}#app-bg::after{content:'';position:absolute;inset:-6%;background:inherit;background-size:cover;background-position:center;animation:bg-ken-burns 42s ease-in-out infinite alternate;will-change:transform}@keyframes bg-ken-burns{0%{transform:scale(1) translate(0,0)}50%{transform:scale(1.09) translate(-1.4%,-.8%)}100%{transform:scale(1.14) translate(1.2%,1%)}}#app-particles{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}#scene-fx{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:hidden}.sun-ray{position:absolute;top:-20%;width:140px;height:160%;background:linear-gradient(180deg,rgba(255,244,214,.22),rgba(255,244,214,0) 70%);transform-origin:top center;filter:blur(2px);animation:sun-ray-sway 14s ease-in-out infinite}@keyframes sun-ray-sway{0%,100%{transform:rotate(var(--ray-angle,12deg)) translateX(0);opacity:.7}50%{transform:rotate(calc(var(--ray-angle,12deg) + 3deg)) translateX(2%);opacity:1}}.sky-cloud{position:absolute;background:rgba(255,255,255,.5);border-radius:50%;filter:blur(8px);animation:cloud-drift linear infinite}@keyframes cloud-drift{from{transform:translateX(-15vw)}to{transform:translateX(115vw)}}.water-waves{position:absolute;left:0;right:0;bottom:0;height:42%;background:repeating-linear-gradient(100deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 2px,transparent 2px,transparent 60px);background-size:200% 100%;mix-blend-mode:overlay;animation:water-waves-flow 9s linear infinite}@keyframes water-waves-flow{from{background-position:0 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sky-cloud,.sun-ray,.water-waves{animation:none}#app-bg::after{animation:none;transform:none;inset:0}}@media (max-width:600px){.sun-ray{width:90px}}#app-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,.18) 0,rgba(0,0,0,.32) 55%,rgba(0,0,0,.42) 100%);z-index:-1;transition:background-color .5s,background .5s}.app-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.main-panel{background:var(--bg-glass-light);backdrop-filter:blur(15px);border:1px solid var(--border-color);border-radius:20px;padding:40px;width:100%;max-width:500px;text-align:center;box-shadow:0 25px 50px -12px rgba(0,0,0,.35),0 8px 20px -4px var(--shadow-color),inset 0 1px 0 0 rgba(255,255,255,.15);transition:background .5s,box-shadow .5s}.main-panel h1{font-size:2.5rem;font-weight:600;margin-bottom:12px;letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.25)}.legal-panel{max-width:680px;text-align:left}.legal-title{font-size:1.9rem;font-weight:600;margin-bottom:4px;text-align:left}.legal-updated{font-size:.8rem;opacity:.65;font-weight:300;margin-bottom:26px}.legal-section{margin-bottom:20px}.legal-section h2{font-size:1.05rem;font-weight:600;margin-bottom:8px;color:var(--secondary-color)}.legal-section p{font-size:.9rem;font-weight:300;line-height:1.6;color:var(--text-color-light)}.legal-section a{color:var(--secondary-color)}.legal-back{display:inline-block;margin-top:10px;font-size:.85rem;color:var(--text-color-light);opacity:.75;text-decoration:none;transition:opacity .2s}.legal-back:hover{opacity:1;text-decoration:underline}.task-panel{margin-bottom:14px;text-align:left}.task-panel-header{text-align:center;font-size:1.05rem;font-weight:300;font-style:italic;color:var(--text-color-light);margin-bottom:10px;min-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.92}.task-add-row{display:flex;gap:8px;margin-bottom:10px}.task-add-row input{flex:1;background:rgba(255,255,255,.08);border:1px solid var(--border-color);border-radius:10px;padding:8px 12px;color:var(--text-color-light);font-family:Poppins,sans-serif;font-size:.85rem;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.15);transition:border-color .2s,box-shadow .2s}.task-add-row input:focus{border-color:var(--secondary-color);box-shadow:inset 0 1px 3px rgba(0,0,0,.15),0 0 0 3px rgba(167,139,250,.15)}.task-add-row input::placeholder{color:rgba(226,232,240,.5)}.task-add-row button{width:36px;height:36px;flex-shrink:0;border-radius:10px;border:none;background:var(--secondary-color);color:var(--text-color-dark);font-size:1.2rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 3px 10px rgba(167,139,250,.35);transition:transform .2s,box-shadow .2s}.task-add-row button:hover{transform:scale(1.05);box-shadow:0 4px 14px rgba(167,139,250,.5)}.task-add-row button:active{transform:scale(.95)}.task-progress-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;overflow:hidden;max-height:20px;opacity:1;transition:max-height .25s ease,opacity .2s ease,margin-bottom .25s ease}.task-progress-row.hidden{max-height:0;opacity:0;margin-bottom:0}.task-progress-track{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}.task-progress-fill{height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,var(--secondary-color),#f0abfc);transition:width .45s cubic-bezier(.65, 0, .35, 1)}.task-progress-label{font-size:.72rem;opacity:.7;flex-shrink:0;font-variant-numeric:tabular-nums}.clear-completed-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;padding:0;background:0 0;border:none;color:var(--text-color-light);opacity:.55;cursor:pointer;transition:opacity .2s,color .2s,transform .15s ease}.clear-completed-btn svg{width:15px;height:15px}.clear-completed-btn:hover{opacity:1;color:var(--alert-color)}.clear-completed-btn:active{transform:scale(.92)}.task-list{list-style:none;max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.task-list::-webkit-scrollbar{width:6px}.task-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:3px}.task-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid transparent;cursor:pointer;overflow:hidden;transition:background .2s,border-color .2s,transform .22s ease,opacity .22s ease,max-height .2s ease,padding .2s ease,margin-bottom .2s ease,border-width .2s ease,box-shadow .2s ease}.task-item:hover{background:rgba(255,255,255,.12)}.task-item.active{border-color:var(--secondary-color);background:rgba(167,139,250,.18)}.task-item.completed{opacity:.65}.task-drag-handle{display:flex;flex-direction:column;flex-wrap:wrap;align-content:space-between;width:8px;height:14px;flex-shrink:0;cursor:grab;opacity:.25;transition:opacity .2s;touch-action:none}.task-drag-handle span{width:3px;height:3px;border-radius:50%;background:currentColor}.task-item:hover .task-drag-handle{opacity:.6}.task-drag-handle:hover{opacity:1!important}.task-drag-handle:active{cursor:grabbing}.task-item.dragging{opacity:.4;background:rgba(167,139,250,.15);box-shadow:0 6px 18px rgba(0,0,0,.25)}.task-item.drag-over-top{box-shadow:inset 0 2px 0 var(--secondary-color)}.task-item.drag-over-bottom{box-shadow:inset 0 -2px 0 var(--secondary-color)}@keyframes task-slide-in{0%{opacity:0;transform:translateY(-8px)}100%{opacity:1;transform:translateY(0)}}.task-item.task-item-enter{animation:task-slide-in .3s ease-out}.task-item.task-item-exit{transform:translateX(28px);opacity:0;pointer-events:none}.task-item.task-item-collapse{padding-top:0;padding-bottom:0;margin-bottom:-6px;border-width:0}.task-check{position:relative;width:18px;height:18px;flex-shrink:0;cursor:pointer}.task-check input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.task-check-box{display:block;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--text-color-light);transition:all .2s}.task-check input:checked+.task-check-box{background:var(--secondary-color);border-color:var(--secondary-color);box-shadow:0 0 0 3px rgba(167,139,250,.18);animation:task-check-pop .35s cubic-bezier(.34,1.56,.64,1)}.task-check input:checked+.task-check-box::after{content:'';display:block;width:5px;height:9px;border:solid var(--text-color-dark);border-width:0 2px 2px 0;transform:rotate(45deg);margin:1px auto 0 5px}@keyframes task-check-pop{0%{transform:scale(.8)}50%{transform:scale(1.18)}100%{transform:scale(1)}}.task-check-particle{position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;background:var(--task-particle-color,var(--secondary-color));pointer-events:none;animation:task-particle-burst .55s ease-out forwards}@keyframes task-particle-burst{0%{transform:translate(-50%,-50%) translate(0,0) scale(1);opacity:1}100%{transform:translate(-50%,-50%) translate(var(--task-particle-x),var(--task-particle-y)) scale(0);opacity:0}}.task-text{position:relative;flex:1;font-size:.88rem;font-weight:300;color:var(--text-color-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-text::after{content:'';position:absolute;left:0;top:50%;height:1px;width:0%;background:currentColor;transition:width .35s ease}.task-item.completed .task-text::after{width:100%}.task-pomo-count{font-size:.75rem;opacity:.8;flex-shrink:0}.task-edit-input{flex:1;min-width:0;background:rgba(255,255,255,.1);border:1px solid var(--secondary-color);border-radius:6px;padding:2px 6px;margin:-2px 0;color:var(--text-color-light);font-family:Poppins,sans-serif;font-size:.88rem;font-weight:300;outline:0;box-shadow:0 0 0 3px rgba(167,139,250,.15)}.task-edit-btn{background:0 0;border:none;color:var(--text-color-light);font-size:.85rem;line-height:1;cursor:pointer;opacity:0;flex-shrink:0;padding:2px 4px;transition:opacity .2s,color .2s}.task-item:hover .task-edit-btn{opacity:.7}.task-edit-btn:hover{opacity:1!important;color:var(--secondary-color)}@media (hover:none){.task-edit-btn{opacity:.55}}.task-item.editing .task-check,.task-item.editing .task-delete,.task-item.editing .task-edit-btn,.task-item.editing .task-pomo-count{display:none}.task-delete{background:0 0;border:none;color:var(--text-color-light);font-size:1.1rem;line-height:1;cursor:pointer;opacity:.4;flex-shrink:0;padding:2px 4px;transition:opacity .2s,color .2s}.task-item:hover .task-delete{opacity:.8}.task-delete:hover{opacity:1!important;color:#f87171}.timer-circle{position:relative;width:240px;height:240px;margin:15px auto 20px;filter:drop-shadow(0 10px 24px rgba(0, 0, 0, .25))}.timer-circle svg{width:100%;height:100%;transform:rotate(-90deg)}.timer-circle circle{fill:none;stroke-width:10;cx:130px;cy:130px;r:110px}.timer-circle .track{stroke:var(--track-color);stroke-width:8}.timer-circle .progress{stroke:var(--secondary-color);stroke-linecap:round;fill:none;transition:stroke-dashoffset 1s linear,stroke 1s linear,stroke-width 1s ease}@keyframes ring-draw-in{from{stroke-dashoffset:var(--circumference,691.15)}to{stroke-dashoffset:var(--ring-draw-in-target,0)}}.timer-circle .progress.ring-draw-in{transition:none;animation:ring-draw-in 1.4s cubic-bezier(.65,0,.35,1) both}#timer-display{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.8rem;font-weight:700;z-index:2;text-shadow:0 2px 10px rgba(0,0,0,.45);transition:transform .25s cubic-bezier(.34, 1.56, .64, 1);font-variant-numeric:tabular-nums;letter-spacing:-.01em}#timer-display.timer-type-switch{animation:timer-switch-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes timer-switch-pop{0%{transform:translate(-50%,-50%) scale(1)}40%{transform:translate(-50%,-50%) scale(1.12)}100%{transform:translate(-50%,-50%) scale(1)}}#ring-trail-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}@keyframes circle-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}.timer-circle{animation:circle-breathe 8s ease-in-out infinite}@keyframes ring-heartbeat{0%{filter:drop-shadow(0 0 2px var(--secondary-color-glow, var(--secondary-color)))}15%{filter:drop-shadow(0 0 9px var(--secondary-color-glow, var(--secondary-color)))}35%{filter:drop-shadow(0 0 3px var(--secondary-color-glow, var(--secondary-color)))}100%{filter:drop-shadow(0 0 2px var(--secondary-color-glow, var(--secondary-color)))}}.timer-circle .progress{animation:ring-heartbeat 1s ease-out infinite}@keyframes ring-pulse{0%{filter:drop-shadow(0 0 2px rgba(248, 113, 113, .4))}15%{filter:drop-shadow(0 0 14px rgba(248, 113, 113, .9))}35%{filter:drop-shadow(0 0 4px rgba(248, 113, 113, .5))}100%{filter:drop-shadow(0 0 2px rgba(248, 113, 113, .4))}}.timer-circle.low-time .progress{animation:ring-pulse 1s ease-out infinite}@keyframes ring-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}#ring-spin-group{transform-box:fill-box;transform-origin:center;animation:ring-spin 90s linear infinite}.timer-circle .comet{stroke:#ffffff;stroke-width:4;stroke-linecap:round;stroke-dasharray:16 675.15;opacity:.85;filter:drop-shadow(0 0 6px rgba(255, 255, 255, .85)) drop-shadow(0 0 10px var(--secondary-color));transform-box:fill-box;transform-origin:center;animation:comet-orbit 3.2s linear infinite;pointer-events:none}@keyframes comet-orbit{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.timer-circle{animation:none}#ring-spin-group{animation:none}.timer-circle .comet{animation:none;opacity:0}.timer-circle .progress{animation:none}.stats-chart-bar{transition:none}.timer-circle.low-time .progress{animation:none}.timer-circle .progress.ring-draw-in{animation:none}#timer-display.timer-type-switch{animation:none}.spotify-result-item{animation:none}.spotify-now-playing{animation:none}.spotify-now-playing-art{animation:none}.source-fade-in{animation:none}#settings-button.has-alert::after{animation:none}#music-play-pause-btn.music-btn-error{animation:none}.spotify-search-spinner{animation:none;border-top-color:var(--text-color-light)}}.time-buttons{position:relative;display:inline-flex;flex-wrap:wrap;justify-content:center}.time-buttons button{position:relative;z-index:1;background:0 0;border:1px solid var(--text-color-light);color:var(--text-color-light);padding:10px 20px;margin:5px;border-radius:50px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:.92rem;letter-spacing:.01em;transition:color .3s ease,border-color .3s ease,transform .15s ease}.time-buttons button:hover{border-color:var(--text-color-light);background:rgba(255,255,255,.08);transform:translateY(-1px)}.time-buttons button:active{transform:translateY(0) scale(.97)}.time-buttons button.active{color:var(--text-color-dark);background:0 0}.time-buttons-pill{position:absolute;top:0;left:0;height:40px;width:0;background:var(--text-color-light);box-shadow:0 4px 14px rgba(0,0,0,.2);border-radius:50px;z-index:0;pointer-events:none;opacity:0;transition:transform .4s cubic-bezier(.34, 1.56, .64, 1),width .4s cubic-bezier(.34, 1.56, .64, 1),opacity .25s ease}.time-buttons-pill.visible{opacity:1}.time-buttons-pill.no-transition{transition:none}.custom-duration-row{display:flex;justify-content:center;align-items:center;gap:8px;margin:4px 0 16px}.custom-duration-row input{width:160px;text-align:center;background:0 0;border:1px solid var(--text-color-light);border-radius:50px;padding:9px 14px;color:var(--text-color-light);font-family:Poppins,sans-serif;font-size:.85rem;font-weight:600;outline:0;transition:all .3s ease;-moz-appearance:textfield}.custom-duration-row input:focus{border-color:var(--secondary-color);box-shadow:0 0 0 3px rgba(167,139,250,.15)}.custom-duration-row input::-webkit-inner-spin-button,.custom-duration-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.custom-duration-row input::placeholder{color:rgba(226,232,240,.55);font-weight:400}.custom-duration-row input.active{background:var(--text-color-light);color:var(--text-color-dark);border-color:var(--secondary-color)}.custom-duration-row input.active::placeholder{color:var(--text-color-dark)}.custom-duration-row button{background:0 0;border:1px solid var(--text-color-light);color:var(--text-color-light);padding:10px 20px;border-radius:50px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:.85rem;transition:all .3s ease,transform .15s ease}.custom-duration-row button:hover{background:var(--text-color-light);color:var(--text-color-dark);transform:translateY(-1px)}.custom-duration-row button:active{transform:translateY(0) scale(.96)}.session-dots{display:flex;justify-content:center;gap:10px;margin:6px 0 20px}.session-dots .dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.25);transition:background .3s}.session-dots .dot.filled{background:var(--secondary-color);transform:scale(1.2);animation:dot-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes dot-pop{0%{transform:scale(.7)}55%{transform:scale(1.4)}100%{transform:scale(1.2)}}.session-dots{position:relative}.confetti-piece{position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:1px;pointer-events:none;opacity:0;animation:confetti-fly .9s ease-out forwards}@keyframes confetti-fly{0%{transform:translate(-50%,-50%) translate(0,0) rotate(0) scale(1);opacity:1}100%{transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.4);opacity:0}}.focus-stats-inline{text-align:center;font-size:.78rem;font-weight:300;color:var(--text-color-light);opacity:.8;margin:0 0 14px}.focus-stats-inline strong{font-weight:600;color:var(--secondary-color)}.focus-stats-inline .stats-divider{margin:0 6px;opacity:.5}.stats-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem;text-align:left}.stats-row strong{color:var(--secondary-color);font-weight:600}.stats-chart{margin:6px 0 16px}.stats-chart svg{display:block;width:100%;height:auto;overflow:visible}.stats-chart-baseline{stroke:var(--border-color);stroke-width:1}.stats-chart-bar{fill:var(--secondary-color);opacity:.5;transition:height .7s cubic-bezier(.34, 1.56, .64, 1),y .7s cubic-bezier(.34, 1.56, .64, 1),opacity .3s ease,fill .3s ease}.stats-chart-bar.is-today{opacity:1;fill:var(--secondary-color)}.stats-chart-label{fill:var(--text-color-light);opacity:.55;font-size:9px;font-family:Poppins,sans-serif;text-anchor:middle}.player-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:10px;min-height:80px}.player-controls button{background:rgba(255,255,255,.1);border:2px solid var(--primary-color);cursor:pointer;border-radius:50%;box-shadow:0 3px 10px rgba(0,0,0,.15);transition:all .3s ease}.player-controls button:hover{background:rgba(255,255,255,.2);transform:scale(1.05)}.player-controls button:active{transform:scale(.95);transition:transform .1s ease}.player-controls button svg{fill:var(--text-color-light)}#start-timer-btn{width:80px;height:80px;position:relative;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.22),rgba(255,255,255,.08));box-shadow:0 6px 18px rgba(0,0,0,.25)}#start-timer-btn svg{width:40px;height:40px}#start-timer-btn::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary-color);pointer-events:none;animation:start-btn-ripple 2.2s ease-out infinite}@keyframes start-btn-ripple{0%{transform:scale(1);opacity:.65}100%{transform:scale(1.55);opacity:0}}#pause-timer-btn,#reset-timer-btn{width:60px;height:60px}#pause-timer-btn svg,#reset-timer-btn svg{width:30px;height:30px}.music-controls{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:20px}.music-controls button{background:0 0;border:none;cursor:pointer;width:24px;height:24px}.music-controls button svg{fill:var(--text-color-light);transition:fill .3s}.music-controls button:hover svg{fill:var(--primary-color)}#music-play-pause-btn{position:relative}#music-play-pause-btn svg{position:absolute;top:0;left:0;transition:opacity .25s ease,transform .25s ease,fill .3s;opacity:1;transform:scale(1) rotate(0)}#music-play-pause-btn svg.icon-hidden{opacity:0;transform:scale(.4) rotate(-40deg);pointer-events:none}#music-play-pause-btn.music-btn-error{animation:music-btn-shake .4s ease-in-out}@keyframes music-btn-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}#volume-slider{-webkit-appearance:none;appearance:none;width:120px;height:5px;background:rgba(255,255,255,.3);border-radius:5px;cursor:pointer;transition:background .2s}#volume-slider:hover{background:rgba(255,255,255,.4)}#volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--primary-color);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease,box-shadow .15s ease}#volume-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 10px rgba(0,0,0,.4),0 0 0 6px rgba(255,255,255,.12)}#volume-slider::-moz-range-thumb{width:18px;height:18px;border:none;background:var(--primary-color);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease}#volume-slider::-moz-range-thumb:hover{transform:scale(1.15)}#settings-button{position:fixed;top:20px;right:20px;background:0 0;border:none;cursor:pointer;z-index:1001;width:40px;height:40px;border-radius:50%;transition:background .25s ease}#settings-button:hover{background:rgba(255,255,255,.12)}#settings-button svg{fill:var(--text-color-light);transition:transform .5s ease}#settings-button:hover svg{transform:rotate(90deg)}#settings-button.has-alert::after{content:'';position:absolute;top:2px;right:2px;width:9px;height:9px;border-radius:50%;background:var(--alert-color);box-shadow:0 0 0 2px rgba(30,41,59,.6);animation:settings-alert-pulse 1.8s ease-in-out infinite}@keyframes settings-alert-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.75}}#settings-panel{position:fixed;top:0;right:0;width:300px;height:100%;background:var(--bg-glass-light);backdrop-filter:blur(20px);border-left:1px solid var(--border-color);padding:80px 20px 20px 20px;z-index:1000;overflow-y:auto;box-shadow:-20px 0 50px -12px rgba(0,0,0,.4);transform:translateX(105%);opacity:0;visibility:hidden;transition:transform .5s cubic-bezier(.34, 1.56, .64, 1),opacity .35s ease,visibility 0s linear .5s}#settings-panel.open{transform:translateX(0);opacity:1;visibility:visible;transition:transform .5s cubic-bezier(.34, 1.56, .64, 1),opacity .35s ease,visibility 0s linear 0s}@media (prefers-reduced-motion:reduce){#settings-panel{transition-delay:0s!important}}#settings-panel h3{margin-bottom:15px;font-weight:600;border-bottom:1px solid var(--border-color);padding-bottom:10px;padding-left:10px;text-align:left;font-size:.95rem;letter-spacing:.02em;text-transform:uppercase;opacity:.9;border-left:2px solid var(--secondary-color)}.settings-inline-heading{margin:0;border:0;padding:0;font-size:.95rem;font-weight:600}.settings-section{margin-bottom:30px;opacity:0;transform:translateY(10px)}#settings-panel.open .settings-section{animation:settings-section-in .4s ease-out forwards}#settings-panel.open .settings-section:first-of-type{animation-delay:.1s}#settings-panel.open .settings-section:nth-of-type(2){animation-delay:.16s}#settings-panel.open .settings-section:nth-of-type(3){animation-delay:.22s}#settings-panel.open .settings-section:nth-of-type(4){animation-delay:.28s}#settings-panel.open .settings-section:nth-of-type(5){animation-delay:.34s}#settings-panel.open .settings-section:nth-of-type(6){animation-delay:.4s}#settings-panel.open .settings-section:nth-of-type(7){animation-delay:.46s}@keyframes settings-section-in{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.choice-grid button{background:rgba(255,255,255,.1);border:1px solid transparent;color:var(--text-color-light);padding:10px;border-radius:10px;cursor:pointer;transition:all .3s ease,transform .15s ease;font-family:Poppins,sans-serif;font-size:.85rem}.choice-grid button:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}.choice-grid button:active{transform:translateY(0) scale(.97)}.choice-grid button.active{border-color:var(--secondary-color);background:var(--secondary-color);transform:translateY(0)}.source-toggle{display:flex;gap:6px;background:rgba(255,255,255,.06);border:1px solid var(--border-color);border-radius:12px;padding:4px;margin-bottom:12px}.source-toggle-btn{flex:1;background:0 0;border:none;border-radius:9px;color:var(--text-color-light);padding:8px 10px;cursor:pointer;font-family:Poppins,sans-serif;font-size:.82rem;font-weight:600;opacity:.7;transition:background .25s,opacity .25s}.source-toggle-btn:hover{opacity:.9}.source-toggle-btn.active{background:var(--secondary-color);color:var(--text-color-dark);opacity:1}.spotify-panel{text-align:left}#music-choices.hidden,.spotify-panel.hidden{display:none}@keyframes source-fade-in{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:translateY(0)}}.source-fade-in{animation:source-fade-in .35s ease-out}.spotify-state{display:flex;flex-direction:column;gap:10px}.spotify-hint{font-size:.8rem;font-weight:300;line-height:1.5;color:var(--text-color-light);opacity:.85}.spotify-connect-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:#1db954;border:none;color:#06120a;padding:10px 14px;border-radius:50px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:700;font-size:.85rem;transition:transform .15s ease,background .25s ease,box-shadow .25s ease}.spotify-connect-btn:hover{background:#1ed760;box-shadow:0 0 0 6px rgba(29,185,84,.15)}.spotify-connect-btn:active{transform:scale(.97)}.spotify-connect-btn svg{transition:transform .3s ease}.spotify-connect-btn:hover svg{transform:rotate(-8deg) scale(1.08)}.spotify-account-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.spotify-status-label{font-size:.78rem;font-weight:600;color:var(--secondary-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-disconnect-btn{background:0 0;border:1px solid var(--border-color);color:var(--text-color-light);padding:5px 10px;border-radius:8px;font-size:.72rem;cursor:pointer;opacity:.75;transition:opacity .2s,border-color .2s;flex-shrink:0;font-family:Poppins,sans-serif}.spotify-disconnect-btn:hover{opacity:1;border-color:var(--alert-color);color:var(--alert-color)}.spotify-search-row input{width:100%;background:rgba(255,255,255,.08);border:1px solid var(--border-color);border-radius:10px;padding:8px 12px;color:var(--text-color-light);font-family:Poppins,sans-serif;font-size:.82rem;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.15);transition:border-color .2s,box-shadow .2s}.spotify-search-row input:focus{border-color:var(--secondary-color);box-shadow:inset 0 1px 3px rgba(0,0,0,.15),0 0 0 3px rgba(167,139,250,.15)}.spotify-search-row input::placeholder{color:rgba(226,232,240,.5)}.spotify-search-row{position:relative}.spotify-search-spinner{position:absolute;top:50%;right:10px;width:14px;height:14px;margin-top:-7px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--secondary-color);border-radius:50%;opacity:0;pointer-events:none;transition:opacity .15s ease;animation:spotify-spinner-spin .7s linear infinite}.spotify-search-spinner.visible{opacity:1}@keyframes spotify-spinner-spin{to{transform:rotate(360deg)}}.spotify-subheading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin:4px 0 -2px}.spotify-results-list{list-style:none;max-height:150px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.spotify-results-list:empty{display:none}.spotify-results-list::-webkit-scrollbar{width:6px}.spotify-results-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:3px}.spotify-results-list .spotify-result-item:first-child{animation-delay:20ms}.spotify-results-list .spotify-result-item:nth-child(2){animation-delay:50ms}.spotify-results-list .spotify-result-item:nth-child(3){animation-delay:80ms}.spotify-results-list .spotify-result-item:nth-child(4){animation-delay:.11s}.spotify-results-list .spotify-result-item:nth-child(5){animation-delay:.14s}.spotify-results-list .spotify-result-item:nth-child(6){animation-delay:.17s}.spotify-results-list .spotify-result-item:nth-child(7){animation-delay:.2s}.spotify-results-list .spotify-result-item:nth-child(8){animation-delay:.23s}.spotify-result-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;background:rgba(255,255,255,.05);border:1px solid transparent;transition:background .2s,border-color .2s,transform .15s ease;animation:spotify-result-in .25s ease-out both}@keyframes spotify-result-in{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}.spotify-result-item:hover{background:rgba(255,255,255,.12);border-color:var(--secondary-color);transform:translateX(2px)}.spotify-result-item:active{transform:translateX(2px) scale(.98)}.spotify-result-item img{width:30px;height:30px;border-radius:5px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,.1)}.spotify-result-info{min-width:0;display:flex;flex-direction:column}.spotify-result-title{font-size:.8rem;font-weight:500;color:var(--text-color-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-result-subtitle{font-size:.7rem;opacity:.65;color:var(--text-color-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-now-playing{display:flex;align-items:center;gap:10px;padding:8px;background:rgba(167,139,250,.12);border:1px solid var(--secondary-color);border-radius:10px;margin-top:4px;animation:spotify-now-playing-in .3s ease-out}@keyframes spotify-now-playing-in{0%{opacity:0;transform:scale(.96)}100%{opacity:1;transform:scale(1)}}.spotify-now-playing-art{width:38px;height:38px;border-radius:6px;object-fit:cover;flex-shrink:0;animation:spotify-art-spin-in .4s ease-out}@keyframes spotify-art-spin-in{0%{opacity:0;transform:scale(.7) rotate(-8deg)}100%{opacity:1;transform:scale(1) rotate(0)}}.spotify-now-playing-info{min-width:0;display:flex;flex-direction:column}.spotify-now-playing-track{font-size:.8rem;font-weight:600;color:var(--text-color-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-now-playing-artist{font-size:.72rem;opacity:.7;color:var(--text-color-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-transport{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:6px}.spotify-transport button{background:0 0;border:none;cursor:pointer;padding:4px}.spotify-transport button svg{width:22px;height:22px;fill:var(--text-color-light);transition:fill .25s,transform .15s ease}.spotify-transport button:hover svg{fill:var(--secondary-color)}.spotify-transport button:active svg{transform:scale(.92)}#spotify-playpause-btn{position:relative;width:30px;height:30px}#spotify-playpause-btn svg{position:absolute;top:4px;left:4px;transition:opacity .25s ease,transform .25s ease}#spotify-playpause-btn svg.icon-hidden{opacity:0;transform:scale(.4);pointer-events:none}.spotify-error{font-size:.75rem;line-height:1.5;color:var(--text-color-light);background:rgba(248,113,113,.14);border:1px solid var(--alert-color);border-left:3px solid var(--alert-color);border-radius:8px;padding:10px 12px;margin-top:8px}.toggle-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:.85rem;text-align:left;gap:10px}.switch{position:relative;width:44px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider-toggle{position:absolute;inset:0;cursor:pointer;background:rgba(255,255,255,.2);border-radius:24px;transition:background-color .3s ease}.slider-toggle:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .35s cubic-bezier(.34, 1.56, .64, 1)}.switch input:checked+.slider-toggle{background:var(--secondary-color)}.switch input:checked+.slider-toggle:before{transform:translateX(20px)}.reset-btn{background:rgba(255,255,255,.1);border:1px solid var(--border-color);color:var(--text-color-light);padding:8px 14px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-size:.85rem;transition:background .3s,transform .15s ease,border-color .3s;width:100%}.reset-btn:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.35)}.reset-btn:active{transform:scale(.96)}.reset-btn+.reset-btn{margin-top:8px}.shortcuts-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.shortcuts-list li{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--text-color-light);opacity:.9}.shortcuts-list kbd{display:inline-block;min-width:1.6em;text-align:center;background:rgba(255,255,255,.12);border:1px solid var(--border-color);border-radius:6px;padding:2px 7px;font-family:Poppins,sans-serif;font-size:.78rem;color:var(--text-color);box-shadow:0 1px 0 rgba(0,0,0,.15)}.donate-text{font-size:.8rem;font-weight:300;line-height:1.5;color:var(--text-color-light);opacity:.85;margin-bottom:12px;text-align:left}.donate-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.donate-label{font-size:.75rem;opacity:.65;flex-shrink:0;width:38px;text-align:left;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.donate-copy-btn{flex:1;display:flex;justify-content:space-between;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid var(--border-color);color:var(--text-color-light);padding:8px 10px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-size:.76rem;text-align:left;overflow:hidden;min-width:0;transition:background .25s,border-color .25s,transform .15s ease}.donate-copy-btn .copy-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donate-copy-btn:hover{background:rgba(255,255,255,.18);border-color:var(--secondary-color)}.donate-copy-btn:active{transform:scale(.96)}.donate-copy-btn.copied{background:rgba(167,139,250,.28);border-color:var(--secondary-color)}.donate-copy-btn .copy-icon{flex-shrink:0;opacity:.7;font-size:.9rem}#zen-toggle-button{position:fixed;top:20px;right:68px;background:0 0;border:none;cursor:pointer;z-index:1001;width:40px;height:40px;border-radius:50%;color:var(--text-color-light);transition:background .25s ease,transform .3s cubic-bezier(.34, 1.56, .64, 1)}#zen-toggle-button:hover{background:rgba(255,255,255,.12)}#zen-toggle-button:active{transform:scale(.92)}#zen-toggle-button svg{width:20px;height:20px;position:absolute;top:10px;left:10px;stroke:var(--text-color-light);transition:opacity .25s ease,transform .25s ease}#zen-toggle-button svg.icon-hidden{opacity:0;transform:scale(.5) rotate(-20deg);pointer-events:none}#settings-button{right:20px}body.zen-mode #zen-toggle-button{color:var(--secondary-color)}.zen-fade{transition:opacity .35s ease,transform .35s cubic-bezier(.34, 1.56, .64, 1),max-height .4s ease .35s,margin .4s ease .35s;max-height:600px}body.zen-mode .zen-fade{opacity:0;transform:scale(.96) translateY(-6px);max-height:0!important;margin-top:0!important;margin-bottom:0!important;overflow:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,max-height .4s ease,margin .4s ease}body.zen-mode .main-panel h1.zen-fade{transition-delay:0s}body.zen-mode .task-panel.zen-fade{transition-delay:30ms}body.zen-mode .custom-duration-row.zen-fade,body.zen-mode .time-buttons.zen-fade{transition-delay:60ms}body.zen-mode .focus-stats-inline.zen-fade,body.zen-mode .session-dots.zen-fade{transition-delay:90ms}body.zen-mode .music-controls.zen-fade{transition-delay:0.12s}body.zen-mode .main-panel{background:0 0;backdrop-filter:none;border-color:transparent;box-shadow:none;padding:20px;max-width:440px;transition:background .5s ease,backdrop-filter .5s ease,border-color .5s ease,box-shadow .5s ease,padding .5s cubic-bezier(.34, 1.56, .64, 1),max-width .5s cubic-bezier(.34, 1.56, .64, 1)}body.zen-mode .timer-circle{width:320px;height:320px;margin:10px auto 32px;transition:width .55s cubic-bezier(.34, 1.56, .64, 1),height .55s cubic-bezier(.34, 1.56, .64, 1),margin .55s cubic-bezier(.34, 1.56, .64, 1)}body.zen-mode #timer-display{font-size:3.6rem}body.zen-mode .player-controls{margin-top:4px}.zen-hint{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(10px);font-size:.78rem;color:var(--text-color-light);opacity:0;letter-spacing:.02em;text-align:center;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.35);transition:opacity .4s ease .3s,transform .4s cubic-bezier(.34, 1.56, .64, 1) .3s}.zen-hint kbd{display:inline-block;min-width:1.6em;text-align:center;background:rgba(255,255,255,.12);border:1px solid var(--border-color);border-radius:6px;padding:1px 6px;font-size:.75rem;box-shadow:0 1px 0 rgba(0,0,0,.15)}body.zen-mode .zen-hint{opacity:.75;transform:translateX(-50%) translateY(0)}body.zen-mode .zen-hint:hover{opacity:1}@media (prefers-reduced-motion:reduce){#zen-toggle-button,#zen-toggle-button svg,.zen-fade,.zen-hint,body.zen-mode .main-panel,body.zen-mode .timer-circle,body.zen-mode .zen-fade{transition:none!important}}@media (max-width:600px){#zen-toggle-button{top:14px;right:60px;width:36px;height:36px}#zen-toggle-button svg{top:8px;left:8px;width:20px;height:20px}#settings-button{top:14px;right:14px}body.zen-mode .timer-circle{width:240px;height:240px;margin-bottom:24px}body.zen-mode #timer-display{font-size:2.6rem}.zen-hint{bottom:18px;font-size:.72rem}}body.dark-mode .main-panel{background:var(--bg-glass-dark)}body.dark-mode #app-overlay{background:linear-gradient(180deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.58) 55%,rgba(0,0,0,.68) 100%)}body.dark-mode #settings-panel{background:var(--bg-glass-dark)}.site-footer{position:relative;text-align:center;padding:4px 0 18px;font-size:.75rem}.site-footer a{color:var(--text-color-light);opacity:.55;text-decoration:none;transition:opacity .2s,text-shadow .2s;text-shadow:0 1px 4px rgba(0,0,0,.3)}.site-footer a:hover{opacity:.95;text-decoration:underline}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.task-text:focus-visible{outline:2px solid var(--secondary-color);outline-offset:2px;border-radius:4px}.spotify-result-item:focus-visible{outline:2px solid var(--secondary-color);outline-offset:1px}.switch input:focus-visible+.slider-toggle,a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--secondary-color);outline-offset:2px}.slider-toggle{transition:background-color .3s ease,outline-offset .15s ease}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}@media (max-width:600px){.main-panel{padding:30px 20px}.main-panel h1{font-size:2rem}.timer-circle{width:200px;height:200px}#timer-display{font-size:2.2rem}.custom-duration-row input{width:130px}#settings-panel{width:100%}.spotify-results-list{max-height:120px}}