.slot-text{display:inline-flex;white-space:pre}.char-slot{position:relative;display:inline-flex;flex:none;justify-content:center;overflow:hidden;overflow-x:visible;overflow-y:clip;line-height:1.3;vertical-align:bottom}.char-slot.is-resizing{overflow-x:clip}.char-sizer{visibility:hidden;white-space:pre}.char-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;white-space:pre;will-change:transform}:root{--serif: "Cormorant Garamond", Georgia, serif;--serif-alt: "Playfair Display", Georgia, serif;--sans: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--bg: #0c1426;--fg: #ece6da;--accent: #e7b56a;--muted: #5d6e8c;--t-ui: .24s;--t-scene: .8s;--e-out: cubic-bezier(.2, .7, .3, 1);--e-in: cubic-bezier(.4, 0, .9, .4)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--fg);overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--t-scene) var(--e-out)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.app[data-mode=dark],.app[data-mode=neon]{--panel-bg: rgba(16, 20, 30, .5);--panel-strong: rgba(11, 15, 25, .82);--panel-fg: #ece6da;--panel-dim: rgba(236, 230, 218, .62);--panel-faint: rgba(236, 230, 218, .4);--panel-border: rgba(255, 255, 255, .12);--panel-shadow: 0 24px 70px -28px rgba(0, 0, 0, .85);--chip: rgba(255, 255, 255, .07);--line: rgba(255, 255, 255, .1);--track: rgba(255, 255, 255, .16);--scrim: radial-gradient(58% 60% at 50% 50%, rgba(6, 10, 18, .5), rgba(6, 10, 18, 0) 72%);--text-shadow: 0 2px 30px rgba(0, 0, 0, .6)}.app[data-mode=light]{--panel-bg: rgba(247, 245, 238, .52);--panel-strong: rgba(246, 243, 233, .86);--panel-fg: #1d3325;--panel-dim: rgba(29, 51, 37, .64);--panel-faint: rgba(29, 51, 37, .42);--panel-border: rgba(60, 80, 50, .2);--panel-shadow: 0 22px 60px -28px rgba(20, 40, 30, .5);--chip: rgba(255, 255, 255, .42);--line: rgba(40, 60, 40, .14);--track: rgba(40, 60, 40, .18);--scrim: radial-gradient(58% 60% at 50% 50%, rgba(255, 252, 244, .5), rgba(255, 252, 244, 0) 72%);--text-shadow: 0 2px 22px rgba(255, 255, 255, .35)}.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--bg);overflow:hidden}.scene-stack{position:fixed;top:0;right:0;bottom:0;left:0}.gl{position:absolute;top:0;right:0;bottom:0;left:0}.scene-prev{animation:sceneOut var(--t-scene) var(--e-out) forwards;z-index:1}.koi-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;opacity:1;transition:opacity var(--t-scene) var(--e-out)}.koi-canvas.koi-leaving{opacity:0}.jelly-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;opacity:1;transition:opacity var(--t-scene) var(--e-out)}.jelly-canvas.jelly-leaving{opacity:0}.jelly-wrap{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.astral-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;opacity:1;transition:opacity var(--t-scene) var(--e-out)}.astral-canvas.astral-leaving{opacity:0}.astral-wrap{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.koi-hint{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:17;pointer-events:none;font-family:var(--sans);font-size:13px;letter-spacing:.12em;color:#eef0e8d1;background:#06090b66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:8px 20px;border-radius:99px;white-space:nowrap;animation:koiHintIn .8s var(--e-out)}@keyframes koiHintIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@keyframes sceneOut{0%{opacity:1}to{opacity:0}}.scene-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;width:100%;height:100%}@media(prefers-reduced-motion:no-preference){.gl-drift{animation:glDrift 46s ease-in-out infinite alternate}.gl-pulse{animation:glPulse 11s ease-in-out infinite alternate}.gl-flicker{animation:glFlicker 7s steps(12,end) infinite}}@keyframes glDrift{0%{transform:translate3d(-1.5%,-1%,0) scale(1.03)}to{transform:translate3d(1.5%,1%,0) scale(1.06)}}@keyframes glPulse{0%{opacity:.7}to{opacity:1}}@keyframes glFlicker{0%,to{opacity:.92}50%{opacity:1}72%{opacity:.86}}.app{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.app>*{pointer-events:auto}.app.ui-hidden .chrome{opacity:0;pointer-events:none;transition:opacity .6s var(--e-in)}.app.ui-hidden.reveal .chrome{opacity:.65;pointer-events:auto;transition:opacity var(--t-ui) var(--e-out)}.entry{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#04080e6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:entryIn .6s var(--e-out);cursor:pointer}@keyframes entryIn{0%{opacity:0}to{opacity:1}}.entry-inner{text-align:center;-webkit-user-select:none;user-select:none}.entry-mark{font-family:var(--serif);font-size:clamp(40px,7vw,72px);font-weight:500;letter-spacing:.01em;color:#f3efe6;text-shadow:0 2px 30px rgba(0,0,0,.6)}.entry-mark span{opacity:.55}.entry-prompt{margin-top:14px;font-size:13.5px;letter-spacing:.16em;color:#f3efe6a8;animation:breathe 3.6s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.5}50%{opacity:.95}}#brand{position:fixed;right:32px;top:26px;z-index:20;-webkit-user-select:none;user-select:none;text-shadow:var(--text-shadow)}#brand .mark{font-family:var(--serif);font-size:23px;font-weight:500;letter-spacing:.018em;color:var(--fg)}#brand .md{opacity:.6}.widget{position:fixed;z-index:14}.clock-grab{cursor:grab;-webkit-user-select:none;user-select:none;padding:14px 26px;border-radius:30px;transition:background var(--t-ui)}.clock-grab:active{cursor:grabbing}.dragging .clock-grab{background:var(--chip)}.clock-scrim{position:absolute;top:-60px;right:-80px;bottom:-60px;left:-80px;z-index:-1;pointer-events:none;background:var(--scrim)}#dock{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:18;display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:46px;background:var(--panel-bg);-webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);color:var(--fg)}.dock-btn{display:flex;align-items:center;gap:9px;height:44px;padding:0 15px;border-radius:36px;color:var(--fg);font-size:14px;font-weight:500;letter-spacing:.01em;white-space:nowrap;opacity:.85;transition:background var(--t-ui),opacity var(--t-ui),transform var(--t-ui)}.dock-btn:hover{background:#ffffff1a;opacity:1;transform:translateY(-1px)}.dock-btn.on{background:#ffffff29;opacity:1}.dock-icon{width:44px;padding:0;justify-content:center}.dock-sep{width:1px;height:26px;background:var(--panel-border);margin:0 3px}.dock-vol{display:flex;align-items:center;gap:8px;padding:0 8px}.dock-vol-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--fg);opacity:.7;transition:background var(--t-ui),opacity var(--t-ui)}.dock-vol-btn:hover{background:#ffffff1a;opacity:1}.field{width:100%;height:42px;padding:0 14px;border-radius:12px;background:var(--chip);border:1px solid var(--panel-border);color:var(--panel-fg);font-size:14px;outline:none;transition:border-color var(--t-ui)}.field:focus{border-color:var(--accent)}.field::placeholder{color:var(--panel-faint)}.ctl-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0}.ctl-row+.ctl-row{border-top:1px solid var(--line)}.ctl-row-name{font-size:14px;font-weight:500;color:var(--panel-fg)}.greeting{position:fixed;top:7%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:auto;cursor:grab;touch-action:none;color:var(--fg);text-shadow:var(--text-shadow);max-width:90vw}.greeting.dragging,.quote-bar.dragging,.timer-readout.dragging{cursor:grabbing}.greeting-hi{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(22px,3vw,38px);opacity:.95}.greeting-sub{font-family:var(--sans);font-size:clamp(12px,1.3vw,15px);letter-spacing:.04em;opacity:.7;margin-top:6px;cursor:pointer;color:var(--fg);transition:opacity var(--t-ui)}.greeting-sub:hover{opacity:1}.notepad{position:fixed;top:84px;left:28px;width:260px;background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:10px 12px 12px;box-shadow:0 16px 50px #00000057}.notepad-h{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--panel-faint);margin-bottom:6px}.notepad-x{width:22px;height:22px;display:grid;place-items:center;color:var(--panel-faint);opacity:.8}.notepad-x:hover{opacity:1}.notepad-area{width:100%;height:150px;resize:none;border:none;background:transparent;color:var(--panel-fg);font-family:var(--sans);font-size:13.5px;line-height:1.5;outline:none}.notepad-area::placeholder{color:var(--panel-faint)}.quote-bar{position:fixed;left:50%;bottom:92px;transform:translate(-50%);max-width:min(560px,90vw);display:flex;align-items:center;gap:8px;z-index:16;cursor:grab;touch-action:none}.quote-text{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.8vw,20px);color:var(--fg);opacity:.86;text-align:center;text-shadow:var(--text-shadow);line-height:1.4}.quote-text:hover{opacity:1}.quote-x{color:var(--fg);opacity:.5;width:22px;height:22px;display:grid;place-items:center;flex:none}.quote-x:hover{opacity:.9}.checklist{margin-top:8px;display:flex;flex-direction:column;gap:2px;max-height:150px;overflow-y:auto}.check-row{display:flex;align-items:center;gap:8px;padding:4px 0}.check-box{width:18px;height:18px;flex:none;border-radius:6px;border:1.5px solid var(--panel-border);display:grid;place-items:center;color:var(--bg);background:transparent;transition:background var(--t-ui),border-color var(--t-ui)}.check-row.done .check-box{background:var(--accent);border-color:var(--accent)}.check-text{flex:1;min-width:0;font-size:13px;color:var(--panel-fg);word-break:break-word}.check-row.done .check-text{opacity:.5;text-decoration:line-through}.check-del{flex:none;width:20px;height:20px;display:grid;place-items:center;color:var(--panel-faint);opacity:0;transition:opacity var(--t-ui)}.check-row:hover .check-del{opacity:.8}.check-del:hover{opacity:1}.check-add{display:flex;align-items:center;gap:6px;margin-top:8px}.check-input{flex:1;min-width:0;height:32px;padding:0 10px;border-radius:9px;background:var(--chip);border:1px solid var(--panel-border);color:var(--panel-fg);font-size:13px;outline:none}.check-input:focus{border-color:var(--accent)}.check-input::placeholder{color:var(--panel-faint)}.check-add-btn{flex:none;width:32px;height:32px;border-radius:9px;background:var(--chip);color:var(--panel-fg);font-size:18px;line-height:1;display:grid;place-items:center;transition:background var(--t-ui)}.check-add-btn:hover{background:#ffffff24}@media(max-width:640px){.notepad{top:auto;bottom:92px;left:12px;width:220px}.greeting{top:5%}.greeting-sub{display:none}}.np{display:flex;align-items:center;gap:11px;padding:0 6px;max-width:280px}.np-play{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#20160a;flex:none;transition:transform var(--t-ui),opacity var(--t-ui)}.np-play:hover{transform:scale(1.06)}.np-play:disabled{opacity:.5;cursor:default;transform:none}.np-name{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.05;color:var(--fg);white-space:nowrap}.np-sub{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:2px}.scrim-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:transparent}.panel{position:fixed;z-index:31;display:flex;flex-direction:column;width:340px;max-height:calc(100vh - 120px);border-radius:22px;color:var(--panel-fg);background:var(--panel-bg);-webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.panel-left{left:22px;bottom:92px;animation:slideUp var(--t-ui) var(--e-out)}.panel-right{right:22px;bottom:92px;animation:slideUp var(--t-ui) var(--e-out)}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.panel-h{display:flex;align-items:center;justify-content:space-between;padding:15px 17px 11px;flex:none}.panel-title{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:22px;font-weight:600}.panel-x{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--panel-dim);transition:background var(--t-ui),color var(--t-ui)}.panel-x:hover{background:#7f7f7f29;color:var(--panel-fg)}.panel-body{padding:2px 17px 17px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(127,127,127,.3) transparent}.row{display:flex;align-items:center;gap:12px;padding:11px 0}.row+.row{border-top:1px solid var(--line)}.row-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--chip);color:var(--panel-dim);transition:color var(--t-ui),background var(--t-ui)}.row-ic.on{color:var(--panel-fg);background:#7fa07f38}.row-main{flex:1;min-width:0}.row-name{font-size:14px;font-weight:600;color:var(--panel-fg)}.row-name.off{color:var(--panel-faint)}.sl{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:99px;background:var(--track);outline:none;margin-top:9px}.sl::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--panel-fg);border:2px solid var(--accent);cursor:grab}.sl::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--panel-fg);border:2px solid var(--accent)}.sl:disabled{opacity:.45}.sl-mini{width:96px;margin:0}.sw{width:40px;height:23px;border-radius:99px;background:var(--track);position:relative;flex:none;transition:background var(--t-ui)}.sw[data-on="1"]{background:var(--accent)}.sw i{position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform var(--t-ui)}.sw[data-on="1"] i{transform:translate(17px)}.label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--panel-faint);margin:14px 0 6px}.scenes{display:grid;grid-template-columns:1fr 1fr;gap:11px}.scene-card{position:relative;aspect-ratio:16 / 10;border-radius:14px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:transform var(--t-ui),border-color var(--t-ui);text-align:left}.scene-card:hover{transform:translateY(-2px)}.scene-card.sel{border-color:var(--accent)}.scene-card .sc-bg{position:absolute;top:0;right:0;bottom:0;left:0}.scene-card .sc-name{position:absolute;left:0;right:0;bottom:0;padding:14px 10px 8px;font-size:12.5px;font-weight:600;letter-spacing:.02em;color:#fff;background:linear-gradient(transparent,#0009);text-shadow:0 1px 6px rgba(0,0,0,.5)}.scene-card .tick{position:absolute;top:7px;right:7px;width:21px;height:21px;border-radius:50%;background:var(--accent);color:#20160a;display:none;place-items:center}.scene-card.sel .tick{display:grid}.timer-readout{position:fixed;left:50%;top:30px;transform:translate(-50%);z-index:16;display:flex;align-items:baseline;gap:10px;color:var(--fg);text-shadow:var(--text-shadow);-webkit-user-select:none;user-select:none;pointer-events:auto;cursor:grab;touch-action:none;animation:timerPulse .6s var(--e-out)}.timer-phase{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.6}.timer-time{font-family:var(--serif);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.timer-readout:before{content:"";position:absolute;top:-16px;right:-40px;bottom:-16px;left:-40px;z-index:-1;border-radius:99px;background:radial-gradient(60% 120% at 50% 50%,rgba(6,9,11,.38),transparent 75%)}@keyframes timerPulse{0%{opacity:.4;transform:translate(-50%) scale(1)}30%{opacity:1;transform:translate(-50%) scale(1.07)}to{opacity:1;transform:translate(-50%) scale(1)}}.app.ui-hidden .timer-readout{opacity:.35;transition:opacity .6s var(--e-in)}.app.ui-hidden.reveal .timer-readout{opacity:.8;transition:opacity var(--t-ui) var(--e-out)}.pills{display:flex;gap:7px}.pill{flex:1;padding:9px 6px;border-radius:11px;background:var(--chip);border:1px solid transparent;color:var(--panel-fg);font-size:13px;font-weight:600;text-align:center;transition:border-color var(--t-ui),background var(--t-ui)}.pill:hover{background:#7f7f7f29}.pill.sel{border-color:var(--accent)}.stepper{display:flex;align-items:center;gap:14px}.step-btn{width:34px;height:34px;border-radius:50%;background:var(--chip);color:var(--panel-fg);font-size:18px;line-height:1;display:grid;place-items:center;transition:background var(--t-ui)}.step-btn:hover{background:#7f7f7f29}.step-val{font-family:var(--serif);font-size:26px;font-weight:600;min-width:42px;text-align:center;font-variant-numeric:tabular-nums}.timer-actions{display:flex;gap:8px;margin-top:16px}.btn{flex:1;height:42px;border-radius:12px;background:var(--chip);color:var(--panel-fg);font-weight:600;font-size:13.5px;letter-spacing:.02em;transition:background var(--t-ui),transform var(--t-ui)}.btn:hover{background:#7f7f7f29;transform:translateY(-1px)}.btn-accent{background:var(--accent);color:#20160a}.btn-accent:hover{filter:brightness(1.05)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media(max-width:820px){#brand{right:18px;top:16px}.widget{position:fixed!important;left:50%!important;top:42%!important;transform:translate(-50%,-50%)!important}.clock-grab{cursor:default}#dock{left:12px;right:12px;bottom:14px;transform:none;justify-content:space-between;gap:2px;padding:8px;border-radius:24px}.dock-btn span.t{display:none}.np{max-width:none;flex:1}.panel{left:0!important;right:0!important;bottom:0!important;width:auto!important;max-height:80vh;border-radius:22px 22px 0 0;animation:sheetUp var(--t-ui) var(--e-out)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}
