:root{--bg-app: #0a0a0a;--color-regular: #e6e6e6;--color-highlight: #ffffff;--color-interact: #7aa2f7;--color-secondary: #5c5c5c;--color-success: #3ddc84;--color-failure: #f7768e;--color-progress: #2a2a2a;--color-void: #141414;--color-grid: #1f1f1f;--stroke-grid: 1px;--font-scale-goal: .5;--font-scale-time: .28;--segment-gap: .6vw;--font-primary: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{background:var(--bg-app);color:var(--color-regular);font-family:var(--font-primary);overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}input,button{font-family:inherit;color:inherit;background:transparent;border:0;outline:none}.deck{height:100vh;height:100dvh;width:100vw;width:100dvw;overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none}.deck::-webkit-scrollbar{display:none}.slide{position:relative;height:100vh;height:100dvh;width:100vw;width:100dvw;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}.slide__mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#000;opacity:var(--mask-opacity, 0);pointer-events:none}.focus{display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:var(--color-void);padding:6vh 6vw}.focus__fill{position:absolute;inset:0 auto 0 0;height:100%;width:0;background:var(--color-progress);z-index:0}.focus__fill--completed{background:var(--color-success)}.focus__fill--failed{background:var(--color-failure)}.focus__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100%;width:100%}.focus__bounds{font-family:var(--font-mono);font-size:3.2vh;letter-spacing:.05em;color:var(--color-highlight)}.focus__goal{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;width:100%;font-size:clamp(4vh,9vh,14vw);font-weight:600;line-height:1.1;color:var(--color-highlight);word-break:break-word}.focus__goal--empty{color:var(--color-secondary);font-weight:400}.focus__status{display:flex;align-items:center;justify-content:center;width:12vh;height:12vh;font-size:5vh;color:var(--color-interact);cursor:pointer}.focus__status:hover{color:var(--color-highlight)}.focus__status--done{color:var(--color-success)}.focus__idle{flex:1;display:flex;align-items:center;justify-content:center;font-size:4vh;color:var(--color-secondary)}.visualizer{display:flex;flex-direction:column;background:var(--bg-app)}.hour-row{display:flex;flex:1 1 0;min-height:0;border-top:var(--stroke-grid) solid var(--color-grid)}.hour-row:first-child{border-top:0}.segment{position:relative;flex:1 1 0;min-width:0;display:flex;align-items:center;overflow:hidden;background:var(--color-void);border-left:var(--stroke-grid) solid var(--color-grid)}.segment:first-child{border-left:0}.segment__fill{position:absolute;inset:0 auto 0 0;height:100%;z-index:0}.segment--active .segment__fill,.segment--past .segment__fill{background:var(--color-progress)}.segment--failed .segment__fill{background:var(--color-failure)}.segment--completed .segment__fill{background:var(--color-success)}.segment__body{position:relative;z-index:1;display:flex;align-items:center;gap:var(--segment-gap);width:100%;height:100%;padding:0 var(--segment-gap)}.segment__time{flex:none;font-family:var(--font-mono);font-size:calc(var(--font-scale-time) * (100vh / var(--rows, 17)));color:var(--color-secondary);-webkit-user-select:none;user-select:none}.segment__input{flex:1 1 auto;min-width:0;font-size:calc(var(--font-scale-goal) * (100vh / var(--rows, 17)));line-height:1;color:var(--color-regular);background:transparent;text-overflow:ellipsis;white-space:nowrap}.segment__input::placeholder{color:var(--color-secondary);opacity:.5}.segment__input:focus,.segment--active .segment__input{color:var(--color-highlight)}.segment__check{flex:none;display:flex;align-items:center;justify-content:center;height:100%;padding:0 var(--segment-gap);font-size:calc(var(--font-scale-goal) * .8 * (100vh / var(--rows, 17)));color:var(--color-interact);cursor:pointer}.segment--completed .segment__check{color:var(--color-success)}.settings{background:var(--bg-app);overflow-y:auto;padding:6vh 8vw;display:flex;flex-direction:column;gap:4vh}.settings__title{font-size:4vh;font-weight:600;color:var(--color-highlight)}.settings__section{display:flex;flex-direction:column;gap:1.6vh}.settings__heading{font-size:2vh;letter-spacing:.12em;text-transform:uppercase;color:var(--color-secondary)}.field{display:flex;align-items:center;justify-content:space-between;gap:2vw;font-size:2.2vh}.field__label{color:var(--color-regular)}.field__control{display:flex;align-items:center;gap:1vw;color:var(--color-interact)}.field input[type=number],.field select{background:var(--color-void);color:var(--color-regular);padding:.6vh 1vw;font-size:2.2vh;min-width:7vw}.field input[type=range]{accent-color:var(--color-interact);width:24vw}.field input[type=color]{width:4vh;height:4vh;padding:0;background:none;cursor:pointer}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(20vw,1fr));gap:1.6vh 2vw}.swatch{display:flex;align-items:center;justify-content:space-between;gap:1vw;font-size:1.9vh;color:var(--color-regular)}.switch{position:relative;width:7vh;height:3.4vh;background:var(--color-void);border:var(--stroke-grid) solid var(--color-grid);cursor:pointer}.switch__knob{position:absolute;top:0;left:0;height:100%;width:50%;background:var(--color-secondary)}.switch--on .switch__knob{left:50%;background:var(--color-interact)}.actions{display:flex;flex-wrap:wrap;gap:1.5vw}.btn{background:var(--color-void);color:var(--color-interact);padding:1.2vh 2vw;font-size:2.1vh;cursor:pointer;border:var(--stroke-grid) solid var(--color-grid)}.btn:hover{color:var(--color-highlight)}.btn--ghost{color:var(--color-secondary)}.credits{margin-top:2vh;font-size:1.6vh;color:var(--color-secondary)}.credits a{color:var(--color-secondary)}.import-status{font-size:1.8vh;color:var(--color-secondary)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
