:root{--rail: 232px;--column: 640px;--drawer: 330px;--titlebar: 48px;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--c-bg);color:var(--c-ink);-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none}button{font:inherit;color:inherit;background:none;border:none;cursor:default}.tabular{font-variant-numeric:tabular-nums}.error-banner{position:fixed;top:0;left:0;right:0;z-index:200;background:var(--c-hotBg);color:var(--c-hot);border-bottom:1px solid var(--c-hotBorder);font-size:12px;padding:8px 16px;text-align:center}.titlebar{height:var(--titlebar);display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--c-hairlineA)}.wordmark{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center}.wm-line{position:absolute;left:-30px;right:-30px;top:58%;height:1px;background:var(--c-threadLine)}.wm-text{position:relative;font-size:13.5px;font-weight:600;letter-spacing:.01em;color:var(--c-ink);background:var(--c-bg);padding:0 5px}.wm-dot{position:absolute;right:-13px;top:58%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--c-ember);box-shadow:0 0 5px var(--c-knotGlow)}.tb-right{margin-left:auto;display:flex;gap:8px;align-items:center}.tb-btn{font-size:9.5px;font-weight:700;letter-spacing:.18em;padding:6px 10px;border-radius:7px;border:1px solid var(--c-cardBorder);color:var(--c-muted);transition:background .15s,border-color .15s,color .15s}.tb-btn:hover{background:var(--c-hover)}.tb-btn.ember{border-color:var(--c-emberRing);color:var(--c-ember)}.tb-dot{width:7px;height:7px;border-radius:50%;background:var(--c-ember);box-shadow:0 0 8px var(--c-knotGlow);display:inline-block;margin-right:7px;vertical-align:middle}.shell{display:flex;height:calc(100% - var(--titlebar))}.spine{width:var(--rail);border-right:1px solid var(--c-hairlineA);overflow:hidden;padding:22px 0;flex-shrink:0;display:flex;flex-direction:column;position:relative;cursor:grab;touch-action:none;user-select:none}.spine:active{cursor:grabbing}.spine:before{content:"";position:absolute;left:33px;top:12px;bottom:12px;width:1px;background:linear-gradient(180deg,transparent,var(--c-threadLine) 10%,var(--c-threadLine) 90%,transparent);pointer-events:none}.spine-days{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}.spine-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:16px 14px 4px}.spine-foot-btn{font-size:10px;font-weight:700;letter-spacing:.14em;padding:8px 10px;border-radius:7px;border:1px solid var(--c-cardBorder);color:var(--c-muted);background:transparent;text-align:center;cursor:pointer;transition:border-color .15s,color .15s}.spine-foot-btn:hover{border-color:var(--c-muted);color:var(--c-ink)}.spine-foot-btn.back{border-color:var(--c-emberRing);color:var(--c-ember)}.spine-foot-btn.back:hover{border-color:var(--c-ember)}.main{flex:1;overflow-y:auto;display:flex;justify-content:center;padding:28px 24px 40px}.column{width:var(--column);max-width:100%}.spine-row{display:flex;align-items:center;gap:12px;height:26px;padding:0 20px 0 22px;position:relative;transition:background .15s}.spine-row .knot{width:7px;height:7px;border-radius:50%;background:var(--c-knot);flex-shrink:0;margin-left:8px}.spine-row.weekend .knot{width:5px;height:5px;margin-left:9px;background:var(--c-dimmer)}.spine-row.today .knot{width:13px;height:13px;margin-left:5px;background:var(--c-ember);box-shadow:0 0 14px var(--c-knotGlow),0 0 3px var(--c-knotGlow)}.spine-row.complete .knot{background:var(--c-ember);box-shadow:0 0 0 2.5px var(--c-bg),0 0 0 4px var(--c-emberRing);width:9px;height:9px;margin-left:7px}.spine-row.today.complete .knot{width:13px;height:13px;margin-left:5px;box-shadow:0 0 14px var(--c-knotGlow),0 0 0 3px var(--c-bg),0 0 0 4.5px var(--c-emberRing)}.spine-row .label{font-size:11px;letter-spacing:.08em;color:var(--c-muted);font-weight:400}.spine-row.today .label{color:var(--c-ink);font-weight:700;font-size:12px}.spine-row.weekend .label{color:var(--c-dim);font-size:10px}.spine-row .today-tag{font-size:8.5px;letter-spacing:.3em;font-weight:700;color:var(--c-ember)}.spine-row .dots{display:flex;gap:3px}.spine-month{padding:5px 0 5px 30px;font-size:9.5px;letter-spacing:.28em;color:var(--c-faint)}.spine-row .spine-frac{font-size:9px;font-weight:600;letter-spacing:.06em;color:var(--c-muted)}.spine-row .spine-frac.complete{color:var(--c-ember)}.spine-row .dot{width:4px;height:4px;border-radius:50%}.spine-row .dot.done{background:var(--c-dot)}.spine-row.complete .dot.done{background:var(--c-ember)}.spine-row .dot.planned{border:1px solid var(--c-faint)}.spine-row .dot.ghost{border:1px solid var(--c-dimmer)}.spine-row:hover{background:var(--c-hover)}.backlog-bar{display:flex;align-items:center;gap:10px;padding:0 4px 20px;font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted)}.backlog-bar .count{color:var(--c-ember)}.backlog-bar .ritual-btn{margin-left:auto}.card{background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:12px;padding:22px 20px 10px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;padding:0 10px;margin-bottom:18px}.kicker{font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-ember);margin-bottom:6px}.date{font-size:26px;font-weight:600;letter-spacing:-.03em}.beads{margin-left:auto;display:flex;flex-wrap:wrap;gap:5px;max-width:170px;justify-content:flex-end}.bead{width:8px;height:8px;border-radius:50%;transition:background .25s,border-color .25s,transform .25s}.bead.done{background:var(--c-ember)}.bead.planned{border:1px solid var(--c-emberRing)}.bead.empty{border:1px solid var(--c-knot)}.bead.done.hot{background:var(--c-hot)}.bead.planned.hot{border-color:var(--c-hot)}.beads .bead.hot:nth-child(odd){transform:translateY(2px)}.beads .bead.hot:nth-child(2n){transform:translateY(-1.5px)}@keyframes beadPulse{0%{opacity:.3}to{opacity:1}}.bead.preview{border:1px solid var(--c-ember);animation:beadPulse 1.4s ease-in-out infinite alternate}.count-line{font-size:12px;color:var(--c-muted);margin-top:6px;text-align:right}.task{display:flex;align-items:center;gap:14px;padding:13px 10px;border-radius:9px;border:1px solid transparent;position:relative;transition:background .15s,border-color .15s}.task.divided{border-bottom-color:var(--c-hairlineB)}.task:hover{background:var(--c-hover)}.check{width:21px;height:21px;border-radius:50%;border:1.5px solid var(--c-knot);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.check.done{background:var(--c-ember);border-color:var(--c-ember);color:var(--c-onEmber)}.task .title{font-size:15.5px;font-weight:500;letter-spacing:-.01em;flex:1;min-width:0}.task .title .strike{position:relative}.task .title .strike:after{content:"";position:absolute;left:-3px;top:54%;height:1px;width:0;background:var(--c-muted);pointer-events:none;transition:width .3s ease}.task.done .title .strike:after{width:calc(100% + 6px)}.title-edit{flex:1;min-width:0;background:none;border:none;outline:none;font:inherit;font-size:15.5px;font-weight:500;color:var(--c-ink);caret-color:var(--c-ember);user-select:text}.row-actions{display:flex;align-items:center;gap:12px;margin-left:12px;flex:none;opacity:0;transition:opacity .12s}.task:hover .row-actions,.task:focus-within .row-actions{opacity:1}.row-act{flex:none;background:none;border:none;font-size:8.5px;font-weight:700;letter-spacing:.16em;color:var(--c-dim);cursor:pointer;white-space:nowrap;transition:color .15s;opacity:0}.task .row-act{opacity:1}.row-act:hover{color:var(--c-ink)}.row-act.delete:hover{color:var(--c-hot)}.drawer-row:hover .row-act,.drawer-row:focus-within .row-act{opacity:1}.task.done .title{opacity:.45;transition:opacity .25s}.task.ghost{opacity:.55;pointer-events:none;cursor:default}.task.ghost .check{border-style:dashed;border-color:var(--c-dot)}.task.ghost .tag{margin-left:auto;font-size:8.5px;letter-spacing:.18em;color:var(--c-faint)}.task.over{background:linear-gradient(90deg,var(--c-heatBgFrom),var(--c-heatBgTo));border:1px solid var(--c-heatBorder);margin-top:6px;box-shadow:0 calc((3 + var(--oi, 0) * 3) * 1px) calc((8 + var(--oi, 0) * 6) * 1px) #00000038}.task .over-tag{margin-left:auto;flex-shrink:0;font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--c-hot)}.over-banner{display:flex;align-items:center;gap:12px;background:var(--c-hotBg);border:1px solid var(--c-hotBorder);border-radius:10px;padding:12px 14px;margin:10px 2px 4px;font-size:12.5px;color:var(--c-hot)}.over-move{margin-left:auto;flex-shrink:0;color:var(--c-hot);border:1px solid var(--c-hotBorder);border-radius:7px;padding:6px 10px;font-size:9.5px;font-weight:700;letter-spacing:.16em;cursor:pointer}.over-move:hover{background:var(--c-hotBg)}.day-empty-hint{font-size:13px;color:var(--c-faint);padding:18px 10px}.task.slot{cursor:default}.task.slot .check{border:1.5px dashed var(--c-knot)}.task.slot .title{color:var(--c-faint)}.task.slot:hover{background:transparent}.day-coach{background:var(--c-emberFaint);border:1px solid var(--c-emberRing);border-radius:10px;padding:16px 16px 14px;margin:6px 0}.day-coach-text{font-size:14.5px;color:var(--c-ink);line-height:1.5}.day-coach-action{margin-top:12px;font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--c-ember);cursor:pointer}.spine-firstrun-note{margin-top:18px;padding:0 20px 0 22px;font-size:8px;letter-spacing:.18em;font-weight:700;color:var(--c-dim);line-height:1.7}.add{display:flex;align-items:center;gap:14px;padding:13px 10px}.add .plus{width:21px;height:21px;border-radius:50%;border:1.5px dashed var(--c-knot);color:var(--c-faint);display:flex;align-items:center;justify-content:center;flex-shrink:0}.add input{flex:1;background:none;border:none;outline:none;font:inherit;font-size:15.5px;color:var(--c-ink);user-select:text}.add input::placeholder{color:var(--c-faint)}.keycaps{display:flex;gap:8px}.keycap{font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-muted);border:1px solid var(--c-cardBorder);border-radius:5px;padding:4px 7px}.footer-hints{font-size:9.5px;letter-spacing:.18em;color:var(--c-dim);text-align:center;padding:20px 0 4px}.capture-scrim{position:fixed;inset:0;background:var(--c-modalScrim);display:flex;justify-content:center;align-items:flex-start;padding-top:16vh;z-index:72}.capture-sheet{width:520px;max-width:90vw;background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:12px;box-shadow:0 30px 70px #0000008c;padding:18px 20px}.capture-head{display:flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin-bottom:14px}.capture-head .counter{margin-left:auto;color:var(--c-faint)}.capture-sheet input{width:100%;background:none;border:none;outline:none;font:inherit;font-size:18px;font-weight:500;color:var(--c-ink);user-select:text}.capture-sheet input::placeholder{color:var(--c-faint)}.capture-chips{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.capture-chip{font-size:9.5px;letter-spacing:.14em;font-weight:700;color:var(--c-muted);border:1px solid var(--c-cardBorder);border-radius:7px;padding:7px 11px;cursor:pointer}.capture-chip.active{background:var(--c-ember);color:var(--c-onEmber);border-color:var(--c-ember)}.capture-chip:hover{border-color:var(--c-emberRing)}.capture-hint{font-size:9.5px;letter-spacing:.18em;color:var(--c-dim);margin-top:14px}.capture-scrim.capture-panel{background:transparent;padding:0;align-items:stretch}.capture-panel .capture-sheet{width:100%;border:none;border-radius:0;box-shadow:none;padding:22px 24px}body.capture-window{background:var(--c-card)}.settings-scrim{position:fixed;inset:0;background:var(--c-modalScrim);display:flex;justify-content:center;align-items:flex-start;padding:12vh 24px 40px;overflow-y:auto;z-index:65}.settings-sheet{width:560px;max-width:92vw;background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:14px;box-shadow:0 30px 70px #0000008c;padding:20px 24px 24px;height:max-content}.settings-head{display:flex;align-items:center;font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin-bottom:8px}.settings-close{margin-left:auto;color:var(--c-faint);font-size:14px;cursor:pointer}.settings-section{font-size:9.5px;letter-spacing:.24em;font-weight:700;color:var(--c-ember);margin:22px 0 6px}.settings-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--c-hairlineB)}.settings-label>div:first-child{font-size:14.5px;font-weight:500}.settings-sub{font-size:12px;color:var(--c-faint);margin-top:3px}.stepper{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0}.stepper button{width:26px;height:26px;border-radius:7px;border:1px solid var(--c-cardBorder);color:var(--c-ink);cursor:pointer}.stepper button:disabled{color:var(--c-dimmer);cursor:default}.stepper>span{min-width:44px;text-align:center;font-size:14.5px;font-weight:600}.toggle{margin-left:auto;flex-shrink:0;width:42px;height:24px;border-radius:999px;background:var(--c-dimmer);position:relative;cursor:pointer;transition:background .15s ease}.toggle.on{background:var(--c-ember)}.toggle .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--c-card);transition:transform .15s ease}.toggle.on .knob{transform:translate(18px)}.segmented{margin-left:auto;flex-shrink:0;display:flex;border:1px solid var(--c-cardBorder);border-radius:8px;overflow:hidden}.segmented button{padding:7px 12px;font-size:12.5px;font-weight:500;color:var(--c-muted);cursor:pointer;border-right:1px solid var(--c-cardBorder)}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--c-ember);color:var(--c-onEmber);font-weight:600}.settings-version{font-size:11px;color:var(--c-faint);margin-top:20px;text-align:center}.settings-footer{display:flex;gap:22px;margin-top:24px}.settings-link{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--c-muted);cursor:pointer}.settings-link:hover{color:var(--c-ink)}.settings-link.danger{color:var(--c-hot)}.settings-erase{margin-top:16px;padding:16px;border:1px solid var(--c-hotBorder);background:var(--c-hotBg);border-radius:10px}.settings-erase-title{font-size:14.5px;font-weight:600;margin-bottom:6px}.settings-erase-input{width:100%;margin-top:12px;background:none;border:none;border-bottom:1.5px solid var(--c-knot);outline:none;font:inherit;font-size:14px;letter-spacing:.2em;color:var(--c-ink);padding:6px 2px;user-select:text}.settings-erase-input.error{border-bottom-color:var(--c-hot)}.settings-erase-actions{display:flex;gap:14px;align-items:center;margin-top:14px}.pill.danger{background:var(--c-hot);color:var(--c-onEmber)}.pill.danger:disabled{opacity:.4;cursor:default}.spine-row{cursor:pointer}.spine-row.viewing:not(.today){background:var(--c-hoverRow)}.spine-row.viewing:not(.today) .label{color:var(--c-ink);font-weight:600}.kicker.muted{color:var(--c-muted)}.rel-tag{font-size:9.5px;letter-spacing:.18em;color:var(--c-dim);font-weight:700}.month{position:fixed;inset:0;background:var(--c-bg);z-index:62;overflow-y:auto;display:flex;justify-content:center;padding:8vh 24px 40px;animation:sealIn .45s cubic-bezier(.2,.9,.3,1) both}.month-sheet{width:820px;max-width:100%}.month-head{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:18px}.month-label{font-size:20px;font-weight:600;letter-spacing:.08em;min-width:220px;text-align:center}.month-nav{background:none;border:1px solid var(--c-hairlineB);color:var(--c-muted);width:30px;height:30px;border-radius:8px;font-size:16px;line-height:1;cursor:pointer;transition:color .15s,border-color .15s}.month-nav:hover{color:var(--c-ink);border-color:var(--c-emberRing)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-wd{font-size:9.5px;letter-spacing:.18em;font-weight:700;color:var(--c-faint);text-align:center;padding-bottom:8px}.month-cell{height:86px;padding:10px 12px;background:transparent;border:none;border-bottom:1px solid var(--c-hairlineB);display:flex;flex-direction:column;gap:4px;cursor:pointer;text-align:left;transition:background .15s}.month-cell:hover{background:var(--c-hover)}.month-cell.out{opacity:.45}.month-cell.weekend{background:var(--c-bg2)}.month-cell.today{background:var(--c-emberFaint);box-shadow:inset 0 0 0 1px var(--c-emberRing)}.month-num{font-size:12px;font-weight:400;color:var(--c-dim)}.month-cell.has .month-num{color:var(--c-muted)}.month-cell.out .month-num{color:var(--c-dimmer)}.month-cell.today .month-num{color:var(--c-ember);font-weight:700}.month-today{font-size:7.5px;letter-spacing:.2em;font-weight:700;color:var(--c-ember)}.month-dots{margin-top:auto;display:flex;flex-wrap:wrap;gap:3px}.mdot{width:5px;height:5px;border-radius:50%}.mdot.done{background:var(--c-dot)}.mdot.planned{border:1px solid var(--c-faint)}.mdot.ghost{border:1px solid var(--c-dimmer)}.month-frac{margin-top:auto;font-size:10px;font-weight:600;color:var(--c-muted)}.month-ring{margin-top:auto;align-self:flex-start;width:20px;height:20px;border-radius:50%;border:2px solid var(--c-ember);color:var(--c-ember);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.month-foot{display:flex;gap:20px;margin-top:22px;font-size:9px;letter-spacing:.18em;font-weight:700;color:var(--c-dim)}.palette-scrim{position:fixed;inset:0;background:var(--c-modalScrim);display:flex;justify-content:center;align-items:flex-start;padding-top:16vh;z-index:70}.palette{width:460px;max-width:90vw;background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:12px;box-shadow:0 30px 70px #0000008c;padding:18px 20px 20px;height:max-content}.palette-title{font-size:9.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin-bottom:12px}.palette-input{width:100%;background:none;border:none;outline:none;font:inherit;font-size:22px;font-weight:500;color:var(--c-ink);user-select:text}.palette-input::placeholder{color:var(--c-faint)}.palette-preview{margin-top:12px;font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--c-ember)}.palette-preview.dim{color:var(--c-faint)}.palette-chips{display:flex;gap:8px;margin-top:16px}.palette-chip{font-size:9.5px;letter-spacing:.16em;font-weight:700;color:var(--c-muted);border:1px solid var(--c-cardBorder);border-radius:7px;padding:7px 11px;cursor:pointer}.palette-chip:hover{border-color:var(--c-emberRing);color:var(--c-ember)}@keyframes sealIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes glowPulse{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes sealRing{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(2.1)}}@keyframes checkBurst{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(2.1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.card{position:relative}.seal-overlay{position:absolute;inset:0;border-radius:12px;background:var(--c-sealScrim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:5;animation:sealIn .45s cubic-bezier(.2,.9,.3,1) both}.seal-burst{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.seal-halo{position:absolute;left:50%;top:50%;margin:-120px 0 0 -120px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,var(--c-glow) 0%,transparent 70%);animation:glowPulse 3s ease-in-out infinite alternate;pointer-events:none}.seal-ring{position:absolute;left:50%;top:50%;margin:-60px 0 0 -60px;width:120px;height:120px;border-radius:50%;border:1.5px solid var(--c-emberRing);animation:sealRing .9s ease-out forwards;pointer-events:none}.seal-ring.delayed{border-width:1px;animation:sealRing 1.15s ease-out .22s forwards}.seal-check{width:64px;height:64px;border-radius:50%;border:2px solid var(--c-ember);color:var(--c-ember);display:flex;align-items:center;justify-content:center;font-size:26px;z-index:1}.seal-headline{font-size:22px;font-weight:600;letter-spacing:-.02em;z-index:1}.seal-sub{font-size:12px;letter-spacing:.1em;color:var(--c-muted);z-index:1}.seal-actions{display:flex;gap:12px;margin-top:18px;z-index:1}.pill{font-size:13px;font-weight:500;padding:10px 18px;border-radius:999px}.pill.ember{background:var(--c-ember);color:var(--c-onEmber)}.pill.ghost{border:1px solid var(--c-cardBorder);color:var(--c-muted)}.sealed-panel{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 0 20px;position:relative}.sealed-panel .glow{position:absolute;top:0;width:180px;height:120px;background:radial-gradient(ellipse,var(--c-glow) 0%,transparent 70%);pointer-events:none}.sealed-panel .beads{max-width:none;justify-content:center}.sealed-reopen{font-size:10px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin-top:4px}.check .mark{transform:scale(.3);opacity:0;transition:transform .3s cubic-bezier(.2,1.6,.4,1),opacity .18s ease}.check.done .mark{transform:scale(1);opacity:1}.check .burst{position:absolute;width:21px;height:21px;border-radius:50%;border:1.5px solid var(--c-ember);animation:checkBurst .55s ease-out forwards;pointer-events:none}.check{position:relative}.ritual{position:fixed;inset:0;background:var(--c-bg);z-index:60;overflow-y:auto;display:flex;justify-content:center;padding:12vh 24px 40px;animation:sealIn .45s cubic-bezier(.2,.9,.3,1) both}.ritual-col{width:560px;max-width:100%}.ritual-kicker{font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin-bottom:10px}.ritual-headline{font-size:30px;font-weight:600;letter-spacing:-.03em}.ritual-sub{font-size:14.5px;color:var(--c-muted);margin:8px 0 26px}.ritual-section-head{display:flex;align-items:center;font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted);margin:22px 0 12px}.ritual-section-head .beads{margin-left:auto}.ritual-section-head .waiting{margin-left:auto;color:var(--c-faint)}.ritual-chosen{background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:12px;overflow:hidden}.ritual-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--c-hairlineB)}.ritual-row:last-child{border-bottom:none}.ritual-row .circle{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px}.ritual-row .circle.chosen{background:var(--c-ember);color:var(--c-onEmber)}.ritual-row .circle.picked{border:1.5px solid var(--c-knot)}.ritual-row.done .title{opacity:.45}.ritual-row .circle.pull{border:1.5px solid var(--c-knot);color:var(--c-faint);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.ritual-row .circle.pull:hover{border-color:var(--c-emberRing);color:var(--c-ember);background:var(--c-hover)}.ritual-row.slot{color:var(--c-faint)}.ritual-row.slot .circle{border:1.5px dashed var(--c-dimmer)}.ritual-row .title{font-size:15.5px;font-weight:500;flex:1;min-width:0}.ritual-row .remove{margin-left:auto;color:var(--c-faint);font-size:15px}.ritual-row.backlog-row{padding:12px 4px}.ritual-actions{display:flex;gap:14px;align-items:center;margin-top:28px}.ritual-skip{color:var(--c-muted);font-size:13px}.ritual-sbs{width:946px;max-width:100%}.ritual-columns{display:flex;gap:56px;align-items:flex-start}.ritual-col-left{width:560px;max-width:100%;flex-shrink:0}.ritual-columns .ritual-backlog-col{width:330px;flex-shrink:0;background:var(--c-bg2);border-radius:12px;padding:6px 16px 16px}.ritual-columns .ritual-backlog-col .ritual-section-head{margin-top:14px}.ritual-today-col.drop-active .ritual-chosen{box-shadow:inset 0 0 0 1px var(--c-emberRing)}.ritual-backlog-col.drop-active{box-shadow:inset 0 0 0 1px var(--c-emberRing);border-radius:12px}.ritual-drop{font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-ember);border:1px dashed var(--c-emberRing);border-radius:9px;padding:12px;text-align:center;margin:8px 0 2px}.ritual-drop.hot{color:var(--c-hot);border-color:var(--c-hot);background:var(--c-hotBg)}.ritual-row.backlog-row,.ritual-today-col .ritual-row:not(.slot):not(.done){cursor:grab}.ritual-row.dragging{opacity:.25}@media(prefers-reduced-motion:reduce){.seal-overlay,.ritual{animation:fadeIn .12s ease both}.seal-halo{animation:none;opacity:.8}.seal-ring,.check .burst{display:none}.check .mark{transition:none}.bead.preview{animation:none}}@media(prefers-reduced-motion:reduce){.task,.spine-row,.drawer-row,.backlog-toggle,.spine-foot-btn,.tb-btn,.bead{transition:none}}@keyframes dragFloat{0%{transform:rotate(-2.5deg) translateY(0)}to{transform:rotate(-2deg) translateY(-3px)}}.backlog-toggle{display:flex;align-items:center;gap:10px;color:inherit;transition:color .15s}.backlog-toggle:hover{color:var(--c-ink)}.drawer{width:var(--drawer, 330px);flex-shrink:0;background:var(--c-bg2);border-left:1px solid var(--c-hairlineA);overflow-y:auto;padding:22px 18px 40px}.drawer.drop-active{box-shadow:inset 0 0 0 1px var(--c-emberRing)}.drawer-head{display:flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.24em;font-weight:700;color:var(--c-muted)}.drawer-head .count{color:var(--c-ember)}.drawer-close{margin-left:auto;color:var(--c-faint);font-size:13px}.drawer-close:hover{color:var(--c-muted)}.drawer-hint{font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-faint);margin:8px 0 16px}.drawer-drop{position:sticky;top:0;z-index:2;font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-ember);border:1px dashed var(--c-emberRing);border-radius:9px;padding:12px;text-align:center;margin-bottom:8px;background:var(--c-bg2)}.drawer-empty{font-size:13px;color:var(--c-faint);padding:10px 4px}.drawer-row{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid var(--c-hairlineB);transition:background .15s}.drawer-row:hover{background:var(--c-hover);border-radius:9px}.drawer-row.dragging{opacity:.25}.drawer-row .circle.pull{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--c-emberRing);color:var(--c-ember);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px}.drawer-row .title{font-size:14.5px;font-weight:500;flex:1;min-width:0}.card.drop-active{box-shadow:inset 0 0 0 1px var(--c-emberRing)}.drop-slot{display:flex;align-items:center;justify-content:center;font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-ember);border:1px dashed var(--c-emberRing);border-radius:9px;padding:14px;margin:2px 0}.drop-slot.hot{color:var(--c-hot);border-color:var(--c-hot);background:var(--c-hotBg)}.spine-row.drop-active{background:var(--c-hoverRow);box-shadow:inset 0 0 0 1px var(--c-emberRing)}.task.dragging{opacity:.25}.drag-ghost{position:fixed;z-index:90;width:320px;max-width:60vw;pointer-events:none;background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:10px;box-shadow:0 26px 56px #0000008c,0 4px 14px #00000059;padding:12px 14px;display:flex;align-items:center;gap:10px;animation:dragFloat 1.6s ease-in-out infinite alternate}.drag-ghost .dg-title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drag-ghost .dg-target{margin-left:auto;font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-ember);flex-shrink:0}@media(prefers-reduced-motion:reduce){.drag-ghost{animation:none;transform:rotate(-2.5deg)}}.toast{position:fixed;z-index:80;left:50%;bottom:28px;transform:translate(-50%);max-width:min(520px,84vw);display:flex;align-items:center;gap:16px;padding:12px 18px;background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:999px;box-shadow:0 24px 56px #0006;color:var(--c-ink);font-size:13.5px;font-weight:500;animation:toastIn .25s ease-out}.toast-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-undo{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--c-ember);font-size:10px;font-weight:700;letter-spacing:.16em}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastFade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.toast{animation:toastFade .12s ease-out}}.review{position:fixed;inset:0;background:var(--c-bg);z-index:62;overflow-y:auto;display:flex;justify-content:center;padding:8vh 24px 40px;animation:sealIn .45s cubic-bezier(.2,.9,.3,1) both}.review-sheet{width:1080px;max-width:100%}.review-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.review-kicker{font-size:10.5px;font-weight:700;letter-spacing:.24em;color:var(--c-ember)}.review-headline{font-size:28px;font-weight:600;letter-spacing:-.03em;color:var(--c-ink);margin-top:6px}.review-stats{display:flex;gap:26px;padding-bottom:4px}.review-stat{text-align:right}.review-stat-n{font-size:22px;font-weight:600}.review-stat-n.ink{color:var(--c-ink)}.review-stat-n.ember{color:var(--c-ember)}.review-stat-n.muted{color:var(--c-muted)}.review-stat-label{font-size:9px;letter-spacing:.18em;color:var(--c-faint);margin-top:2px}.review-thread{position:relative;margin-top:34px}.review-rail{position:absolute;left:10px;right:10px;top:56px;height:1px;background:linear-gradient(90deg,transparent,var(--c-hairlineA) 6%,var(--c-hairlineA) 94%,transparent)}.review-days{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.review-day{background:var(--c-card);border:1px solid var(--c-cardBorder);border-radius:12px;padding:16px 0 14px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;text-align:center;transition:border-color .15s,box-shadow .15s}.review-day:hover{border-color:var(--c-emberRing)}.review-day.quiet,.review-day.empty{background:var(--c-bg2);border-color:var(--c-hairlineB)}.review-day.today{border-color:var(--c-emberRing);box-shadow:0 0 22px var(--c-emberFaint)}.review-day-label{font-size:9.5px;letter-spacing:.14em;color:var(--c-faint)}.review-day.today .review-day-label{color:var(--c-ember);font-weight:700}.review-day.quiet .review-day-label,.review-day.empty .review-day-label{color:var(--c-dimmer)}.review-knot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.review-knot.complete{background:var(--c-ember);color:var(--c-onEmber);box-shadow:0 0 0 3px var(--c-card),0 0 0 4.5px var(--c-emberRing)}.review-knot.today{background:var(--c-ember);color:var(--c-onEmber);box-shadow:0 0 14px var(--c-knotGlow)}.review-knot.partial{border:1.5px solid var(--c-knot)}.review-knot.quiet{border:1.5px dashed var(--c-cardBorder)}.review-knot.empty{border:1.5px solid var(--c-hairlineB)}.review-knot-frac{font-size:11px;font-weight:800}.review-knot.partial .review-knot-frac{font-size:10px;font-weight:600;color:var(--c-muted)}.review-day-sub{font-size:10px;color:var(--c-muted);min-height:12px}.review-day.quiet .review-day-sub,.review-day.empty .review-day-sub{color:var(--c-dimmer)}.review-streak{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;background:var(--c-emberFaint);border:1px solid var(--c-emberRing);border-radius:12px;padding:14px 20px}.review-streak-left{display:flex;align-items:center;gap:14px}.review-streak-dots{display:flex;align-items:center;gap:5px}.review-streak-dot{width:11px;height:11px;border-radius:50%;background:var(--c-ember)}.review-streak-dot:last-child{box-shadow:0 0 10px var(--c-knotGlow)}.review-streak-link{width:16px;height:1.5px;background:var(--c-emberRing)}.review-streak-text{font-size:13px;color:var(--c-ink)}.review-seal{flex:none;background:none;border:none;font-size:9.5px;font-weight:700;letter-spacing:.16em;color:var(--c-ember);cursor:pointer;transition:opacity .15s}.review-seal:hover{opacity:.7}.review-foot{text-align:center;font-size:9.5px;letter-spacing:.2em;color:var(--c-dim);margin-top:24px}@media(prefers-reduced-motion:reduce){.review{animation:fadeIn .12s ease-out}}button:focus-visible,input:focus-visible,.task:focus-visible,.drawer-row:focus-visible,.ritual-row:focus-visible{outline:none;box-shadow:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-ember)}.spine:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--c-emberRing)}.task.over:focus-visible{box-shadow:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-ember),0 calc((3 + var(--oi, 0) * 3) * 1px) calc((8 + var(--oi, 0) * 6) * 1px) #00000038}.row-act:focus-visible{box-shadow:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-ember);border-radius:4px;outline:none}.drawer-scrim{display:none}@media(max-width:1271px){.drawer-scrim{display:block;position:fixed;inset:var(--titlebar) 0 0 0;background:var(--c-modalScrim);z-index:45;pointer-events:none}.drawer{position:fixed;top:var(--titlebar);right:0;bottom:0;z-index:46;box-shadow:-24px 0 56px #0006;animation:drawerIn .26s cubic-bezier(.2,.9,.3,1) both}}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@media(max-width:1099px){:root{--rail: 72px}.spine{overflow:visible}.spine-row{gap:0;padding:0;justify-content:center}.spine-row .knot,.spine-row.today .knot{margin-left:0}.spine-row .label,.spine-row .today-tag,.spine-row .dots,.spine-row .spine-frac,.spine-month,.spine-firstrun-note,.spine-foot{display:none}.spine-row:hover .label{display:block;position:absolute;left:calc(var(--rail) - 6px);top:50%;transform:translateY(-50%);background:var(--c-card);border:1px solid var(--c-cardBorder);padding:3px 9px;border-radius:6px;white-space:nowrap;z-index:20;box-shadow:0 6px 18px #00000059}}@media(prefers-reduced-motion:reduce){.drawer{animation:none}}@media(prefers-reduced-motion:reduce){.month{animation:fadeIn .12s ease-out}}.ritual-row.over{background:linear-gradient(90deg,var(--c-heatBgFrom),var(--c-heatBgTo));border:1px solid var(--c-heatBorder);border-radius:12px;box-shadow:0 8px 20px #00000059;margin-top:6px}.ritual-row .over-tag{margin-left:auto;flex-shrink:0;font-size:8.5px;letter-spacing:.18em;font-weight:700;color:var(--c-hot)}.ritual-row.over:focus-visible{box-shadow:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-ember),0 8px 20px #00000059}
