:root{--focus-time-color: #f4f7f5;--focus-time-overlay-rgb: 0 0 0;--focus-time-overlay: 0;--focus-micro-color: #f4f7f5;--focus-micro-overlay-rgb: 0 0 0;--focus-micro-overlay: 0;--focus-progress: 1}.focus-visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-app{position:fixed;isolation:isolate;inset:0;overflow:hidden;color:var(--focus-time-color);background:radial-gradient(circle at 28% 22%,rgb(19 80 77 / 30%),transparent 40%),linear-gradient(145deg,#10191d,#070b0e 58%,#030506);cursor:none}.focus-app.immersive-cursor-disabled{cursor:default}html[data-theme=light] .focus-app{background:radial-gradient(circle at 28% 22%,rgb(26 227 201 / 15%),transparent 40%),linear-gradient(145deg,#f2f5f1,#dfe8e4 58%,#cbd7d2)}.focus-background,.focus-background img{position:absolute;inset:0;width:100%;height:100%}.focus-background{z-index:-2;background:#070b0e}.focus-background img{display:block;object-fit:cover}.focus-app.is-solid .focus-background{display:none}.focus-stage{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:clamp(1.25rem,3vh,2.25rem);padding:max(5.5rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(5.5rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left))}.focus-timer-shell{position:relative;z-index:0;display:grid;width:min(76rem,84vw);justify-items:center;transform:translateZ(0);touch-action:none}.focus-timer-shell:before{position:absolute;z-index:-1;inset:-35% -14%;content:"";pointer-events:none;background:radial-gradient(ellipse at center,rgb(var(--focus-time-overlay-rgb) / var(--focus-time-overlay)) 0%,rgb(var(--focus-time-overlay-rgb) / var(--focus-time-overlay)) 52%,rgb(var(--focus-time-overlay-rgb) / calc(var(--focus-time-overlay) * .72)) 66%,transparent 84%)}.focus-status{margin:0 0 clamp(.9rem,2vh,1.5rem);color:var(--focus-micro-color);font:600 clamp(.66rem,.9vw,.78rem)/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase}.focus-time{color:var(--focus-time-color);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(6rem,22vw,19rem);font-variant-numeric:tabular-nums lining-nums;font-weight:300;letter-spacing:.025em;line-height:.78;white-space:nowrap}.focus-app[data-time-shadow=true] .focus-time{text-shadow:0 1px 1px rgb(0 0 0 / 92%),0 0 14px rgb(0 0 0 / 82%),0 0 34px rgb(0 0 0 / 62%)}.focus-app[data-time-shadow=true][data-time-tone=dark] .focus-time{text-shadow:0 1px 1px rgb(255 255 255 / 94%),0 0 14px rgb(255 255 255 / 80%),0 0 34px rgb(255 255 255 / 60%)}.focus-seconds{display:inline-block;width:0;overflow:hidden;opacity:0;font-size:.34em;font-weight:400;letter-spacing:0;line-height:1;transform:translateY(-.08em);transition:width .22s ease,opacity .22s ease;vertical-align:baseline}.focus-app.show-seconds .focus-seconds{width:3ch;opacity:.82}.focus-progress{width:min(62rem,78vw);height:1px;margin-top:clamp(1.5rem,3.4vw,3rem);overflow:hidden;background:#1ae3c933;box-shadow:0 0 12px #1ae3c92e}.focus-progress__fill{display:block;width:100%;height:100%;background:var(--immersive-teal);box-shadow:0 0 9px #1ae3c9b8;transform:scaleX(var(--focus-progress));transform-origin:left center;transition:transform .26s linear;will-change:transform}.focus-completion-light{position:absolute;z-index:-1;width:min(70vw,48rem);aspect-ratio:1;top:50%;left:50%;border-radius:50%;opacity:0;background:radial-gradient(circle,rgb(26 227 201 / 28%) 0%,rgb(26 227 201 / 8%) 42%,transparent 72%);pointer-events:none;transform:translate(-50%,-50%) scale(.58)}.focus-app.show-completion-light .focus-completion-light{animation:focus-completion-light 1.45s ease-out both}.focus-config{display:grid;width:min(42rem,88vw);gap:.85rem;opacity:1;transition:opacity .22s ease,transform .22s ease}.focus-presets{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.focus-preset,.focus-action{min-height:2.75rem;border:1px solid rgb(244 247 245 / 20%);color:#f4f7f5;background:#060a0cb8;font:600 .76rem/1 IBM Plex Mono,ui-monospace,monospace;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:border-color .18s ease,color .18s ease,background-color .18s ease,opacity .18s ease}.focus-preset{min-width:5.25rem;padding:.7rem .85rem;border-radius:999px}.focus-preset:hover,.focus-preset:focus-visible,.focus-preset.is-selected{border-color:var(--immersive-teal);color:var(--immersive-teal);outline:none}.focus-preset.is-selected{background:#051c1bd1}.focus-duration-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}.focus-duration-slider{display:grid;gap:.5rem;color:var(--focus-micro-color);font:500 .72rem/1.3 Noto Sans SC,system-ui,sans-serif}.focus-duration-slider input{width:100%;min-height:2.75rem;accent-color:var(--immersive-teal);touch-action:pan-x}.focus-duration-input{display:flex;min-height:2.75rem;align-items:center;border-bottom:1px solid rgb(244 247 245 / 28%);color:var(--focus-micro-color);font:500 .72rem/1 Noto Sans SC,system-ui,sans-serif}.focus-duration-input input{width:4.25rem;min-height:2.75rem;padding:0 .4rem;border:0;color:var(--focus-time-color);background:transparent;font:500 1rem/1 IBM Plex Mono,ui-monospace,monospace;text-align:right}.focus-inline-message{min-height:1rem;color:#ffd166;font:500 .7rem/1.4 Noto Sans SC,system-ui,sans-serif;text-align:center}.focus-actions{display:flex;justify-content:center;gap:.75rem;opacity:1;transition:opacity .22s ease,transform .22s ease}.focus-action{min-width:7rem;padding:.8rem 1.2rem;border-radius:999px}.focus-action--primary{border-color:#1ae3c99e;color:#06110f;background:var(--immersive-teal)}.focus-action:hover,.focus-action:focus-visible{border-color:var(--immersive-teal);outline:none;box-shadow:0 0 0 2px #1ae3c93d}.focus-preset:active,.focus-action:active{opacity:.76}.focus-preset:disabled,.focus-action:disabled,.focus-duration-controls input:disabled{opacity:.38;cursor:default}.focus-today{position:absolute;z-index:1;left:clamp(1.25rem,3vw,3rem);bottom:clamp(1.15rem,2.6vw,2.5rem);display:grid;gap:.28rem;margin:0;padding:1rem 1.2rem;color:var(--focus-micro-color);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(.66rem,1vw,.8rem);font-variant-numeric:tabular-nums;letter-spacing:.1em;line-height:1.2;transition:opacity .22s ease}.focus-today:before{position:absolute;z-index:-1;inset:-75% -30%;content:"";pointer-events:none;background:radial-gradient(ellipse at center,rgb(var(--focus-micro-overlay-rgb) / var(--focus-micro-overlay)) 0%,rgb(var(--focus-micro-overlay-rgb) / var(--focus-micro-overlay)) 58%,transparent 86%)}.focus-today span{opacity:.64;font-size:.72em;text-transform:uppercase}.focus-app[data-micro-shadow=true] .focus-status,.focus-app[data-micro-shadow=true] .focus-today,.focus-app[data-micro-shadow=true] .focus-duration-slider,.focus-app[data-micro-shadow=true] .focus-duration-input{text-shadow:0 1px 1px rgb(0 0 0 / 94%),0 0 10px rgb(0 0 0 / 88%)}.focus-app[data-micro-shadow=true][data-micro-tone=dark] .focus-status,.focus-app[data-micro-shadow=true][data-micro-tone=dark] .focus-today,.focus-app[data-micro-shadow=true][data-micro-tone=dark] .focus-duration-slider,.focus-app[data-micro-shadow=true][data-micro-tone=dark] .focus-duration-input{text-shadow:0 1px 1px rgb(255 255 255 / 94%),0 0 10px rgb(255 255 255 / 88%)}.focus-app.focus-ui-idle .immersive-controls,.focus-app.focus-ui-idle .focus-config,.focus-app.focus-ui-idle .focus-actions,.focus-app.focus-ui-idle .focus-today{opacity:0;pointer-events:none}.focus-app.focus-ui-idle .focus-config,.focus-app.focus-ui-idle .focus-actions{transform:translateY(.4rem)}.focus-app.focus-ui-idle :is(.immersive-controls,.focus-config,.focus-actions):focus-within{opacity:1;pointer-events:auto;transform:none}.focus-app.is-paused .focus-progress__fill{opacity:.62}.focus-app.is-breathing .focus-timer-shell{animation:focus-breathing 8s ease-in-out infinite}html.rs-lock .focus-timer-shell,html.rs-page-hidden .focus-timer-shell,html.rs-lock .focus-completion-light,html.rs-page-hidden .focus-completion-light{animation-play-state:paused}html.rs-lock .focus-progress__fill,html.rs-page-hidden .focus-progress__fill{transition:none}@keyframes focus-breathing{0%,to{opacity:.94;transform:scale(.998)}50%{opacity:1;transform:scale(1.003)}}@keyframes focus-completion-light{0%{opacity:0;transform:translate(-50%,-50%) scale(.58)}24%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1.12)}}@media(max-width:640px){.focus-stage{align-content:center;gap:1.15rem;padding-top:max(5rem,env(safe-area-inset-top));padding-bottom:max(7rem,env(safe-area-inset-bottom))}.focus-timer-shell{width:90vw}.focus-time{font-size:clamp(5rem,27vw,8rem);letter-spacing:0}.focus-progress{width:84vw;margin-top:1.35rem}.focus-config{width:min(92vw,32rem)}.focus-presets{gap:.5rem}.focus-preset{min-width:calc(25% - .5rem);padding-inline:.55rem}.focus-duration-controls{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.focus-actions{width:min(92vw,24rem)}.focus-action{min-width:0;flex:1}.focus-today{right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;padding-inline:0;text-align:center}}@media(max-height:620px)and (orientation:landscape){.focus-stage{grid-template-columns:minmax(0,1fr) minmax(16rem,32vw);grid-template-rows:auto auto;grid-template-areas:"timer config" "timer actions";align-content:center;column-gap:2rem;row-gap:1rem;padding:5.25rem 5rem 2rem}.focus-timer-shell{grid-area:timer;align-self:center;width:58vw}.focus-time{font-size:min(20vw,9rem)}.focus-config,.focus-actions{width:100%}.focus-config{grid-area:config;align-self:end}.focus-actions{grid-area:actions;align-self:start}.focus-preset{min-width:calc(50% - .4rem)}}@media(pointer:coarse){.focus-app{cursor:default}.focus-preset,.focus-action{min-height:3rem}}@media(prefers-reduced-motion:reduce){.focus-timer-shell,.focus-completion-light{animation:none!important}.focus-progress__fill,.focus-seconds,.focus-config,.focus-actions,.focus-today{transition:none}.focus-app.focus-ui-idle .immersive-controls,.focus-app.focus-ui-idle .focus-config,.focus-app.focus-ui-idle .focus-actions,.focus-app.focus-ui-idle .focus-today{opacity:1;pointer-events:auto;transform:none}}
