#app.typing .topbar,#app.typing .orbs,#app.typing .sidebar,#app.typing .tpill{opacity:0}
#app.typing .cmt-col{opacity:.45}
#app.typing .topbar:hover,#app.typing .orbs:hover,#app.typing .sidebar:hover,#app.typing .tpill:hover,#app.typing .cmt-col:hover{opacity:1}
.desk{position:absolute;z-index:5;top:66px;bottom:84px;left:var(--desk-l);width:var(--desk-w);display:flex;flex-direction:column;min-height:0;background:rgba(var(--shade-rgb),.5);backdrop-filter:blur(22px) saturate(1.1);-webkit-backdrop-filter:blur(22px) saturate(1.1);border:1px solid var(--hair);border-radius:22px;box-shadow:0 40px 90px rgba(0,0,0,.4);overflow:hidden;transition:border-color .8s,left .4s cubic-bezier(.2,.8,.2,1),width .4s cubic-bezier(.2,.8,.2,1)}
#app.typing .desk{border-color:transparent}
.scene-head{padding:22px 40px 4px 52px;flex:none}
.sh-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.crumbs{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sh-icons{display:flex;align-items:center;gap:6px;flex:none;transition:opacity .6s}
#app.typing .sh-icons{opacity:0}
#app.typing .sh-icons:hover{opacity:1}
.scene-title{display:block;width:100%;margin-top:4px;background:none;border:0;outline:none;padding:0;color:var(--text);font-family:var(--f-display);font-size:36px;font-weight:500}
.scene-title::placeholder{color:var(--mute)}
.scene-meta{margin-top:4px;font-family:var(--f-mono);font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}
.mini-note{position:relative;border-radius:4px;background:linear-gradient(135deg,var(--nc) 0,var(--nc) calc(100% - 14px),color-mix(in srgb,var(--nc) 74%,#000) calc(100% - 14px));color:var(--ni);box-shadow:0 2px 6px rgba(0,0,0,.28)}
.mini-note textarea{display:block;width:100%;box-sizing:border-box;min-height:92px;resize:none;border:0;background:none;outline:none;padding:10px 11px 26px;font-family:var(--f-ui);font-size:13px;line-height:1.45;color:inherit}
.mini-note textarea::placeholder{color:inherit;opacity:.5}
.mn-acts{position:absolute;left:4px;bottom:3px;display:flex;gap:1px;opacity:0;transition:opacity .15s}
.mini-note:hover .mn-acts,.mini-note:focus-within .mn-acts{opacity:1}
@media (hover:none){.mn-acts{opacity:.8}}
.mn-acts button{width:24px;height:22px;display:grid;place-items:center;border-radius:6px;color:inherit;opacity:.7}
.mn-acts button:hover{opacity:1;background:rgba(0,0,0,.08)}
.mn-acts svg{width:13px;height:13px}
.notes-pop .note-add{width:100%;min-height:44px;border-radius:4px;border:1px dashed var(--faint);color:var(--mute);display:grid;place-items:center}
.note-add:hover{color:var(--text);border-color:var(--mute)}
.note-add svg{width:18px;height:18px}
.prose{flex:1;min-height:0;overflow:auto;outline:none;padding:18px 52px 30vh;font-family:var(--f-prose);font-size:var(--prose-size);line-height:1.62;color:var(--text);caret-color:var(--accent);scrollbar-width:thin;scrollbar-color:var(--faint) transparent;position:relative;overflow-wrap:break-word}
.prose p,.prose div{margin:0 0 .7em}
.prose h2{font-family:var(--f-display);font-weight:500;font-size:1.65em;line-height:1.2;margin:.9em 0 .4em}
.prose h3{font-family:var(--f-display);font-weight:600;font-size:1.25em;line-height:1.25;margin:.8em 0 .3em}
.prose ul,.prose ol{margin:0 0 .7em;padding-left:1.4em}
.prose li{margin:.15em 0}
.prose blockquote{margin:0 0 .7em;padding-left:1.1em;border-left:2px solid var(--faint);color:var(--dim);font-style:italic}
.prose hr{border:0;height:1.6em;margin:.4em 0 1em;background:none;text-align:center;overflow:visible}
.prose hr::after{content:"⁂";color:var(--mute);letter-spacing:.4em}
.prose ::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
.prose.is-empty::before{content:attr(data-placeholder);position:absolute;left:52px;top:18px;color:var(--mute);font-style:italic;pointer-events:none}
.prose mark.cmt{background:color-mix(in srgb,var(--accent) 18%,transparent);color:inherit;border-bottom:1.5px solid color-mix(in srgb,var(--accent) 60%,transparent);border-radius:2px;cursor:pointer;padding:0 1px}
.prose mark.cmt.hot{background:color-mix(in srgb,var(--accent) 34%,transparent)}
.desk-empty{flex:1;display:grid;place-content:center;gap:20px;text-align:center;padding:40px}
.desk-empty h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:34px}
.desk-empty .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
@media (max-width:640px){.scene-head{padding:18px 16px 2px 22px}.prose{padding:12px 22px 30vh}.prose.is-empty::before{left:22px;top:12px}.scene-title{font-size:28px}}
.cmt-col{position:absolute;z-index:6;top:66px;bottom:84px;left:calc(var(--desk-l) + var(--desk-w) + 74px);width:236px;overflow:hidden;transition:left .4s cubic-bezier(.2,.8,.2,1),opacity .6s}
.mcmt{position:absolute;left:0;right:0;top:0;padding:10px 34px 10px 12px;border-radius:12px;background:var(--glass-2);border:1px solid var(--faint);box-shadow:0 10px 24px rgba(0,0,0,.3);transition:transform .25s ease,opacity .2s,border-color .2s}
.mcmt.focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
.mcmt.off{opacity:0;pointer-events:none}
.mcmt.orphan{opacity:.6}
.mcmt textarea{display:block;width:100%;box-sizing:border-box;min-height:20px;resize:none;background:none;border:0;outline:none;padding:0;font-size:13.5px;line-height:1.5;color:var(--text)}
.mcmt textarea::placeholder{color:var(--mute)}
.mcmt .mc-x{position:absolute;top:7px;right:6px;width:24px;height:24px;display:grid;place-items:center;border-radius:7px;color:var(--mute);opacity:0;transition:opacity .15s}
.mcmt:hover .mc-x,.mcmt.focus .mc-x{opacity:1}
@media (hover:none){.mcmt .mc-x{opacity:1}}
.mcmt .mc-x:hover{background:var(--faint);color:var(--text)}
.mcmt .mc-x svg{width:14px;height:14px}
.pop .mcmt{position:relative;width:240px;box-shadow:none;border:0;background:none;padding:6px 34px 6px 8px}
.cmt-float{position:fixed;z-index:45;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--text);color:#11151a;box-shadow:0 8px 24px rgba(0,0,0,.4);transform:translate(-50%,-100%)}
.cmt-float svg{width:16px;height:16px}
.orbs{position:absolute;z-index:28;left:calc(var(--desk-l) + var(--desk-w) + 14px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;transition:opacity .6s ease,left .4s cubic-bezier(.2,.8,.2,1)}
.orb{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--dim);background:rgba(var(--text-rgb),.06);border:1px solid rgba(var(--text-rgb),.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .2s,color .2s,transform .2s}
.orb:hover{color:var(--text);background:rgba(var(--text-rgb),.12);transform:scale(1.06)}
.orb[aria-pressed="true"]{color:var(--accent-ink);background:var(--accent);border-color:transparent}
.orb svg{width:18px;height:18px}
.orb .tip{right:auto;left:calc(100% + 10px)}
.orb.timer.live::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--accent);animation:breathe 4s ease-in-out infinite}
.orb-panel{position:absolute;z-index:40;right:calc(max(20px,env(safe-area-inset-right,0px)) + 58px);width:296px;max-width:calc(100vw - 100px);max-height:calc(100% - 120px);overflow:auto;padding:18px;box-sizing:border-box;border-radius:18px;background:var(--glass-2);border:1px solid var(--faint);box-shadow:0 24px 60px rgba(0,0,0,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:popIn .18s ease both;scrollbar-width:thin}
.panel-title{font-family:var(--f-display);font-weight:500;font-size:22px;margin:0 0 14px}
.p-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:20px 0 10px}
.p-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;font-size:13.5px}
.p-row small{color:var(--mute);font-size:12px}
.p-note{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--mute)}
.ic-row{display:flex;align-items:center;gap:12px;padding:6px 0}
.ic-row>svg{width:16px;height:16px;color:var(--mute)}
.fmt-row{display:flex;gap:4px;flex-wrap:wrap}
.fbtn{min-width:36px;height:34px;padding:0 10px;border-radius:9px;background:var(--hair);color:var(--text);font-size:14px}
.fbtn:hover{background:var(--faint)}
.notes-pop{width:300px;padding:10px}
.notes-pop .mini-note{margin-bottom:8px}
@media (max-width:900px){.desk{top:62px;bottom:128px}.orbs{left:auto;top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));right:50%;transform:translateX(50%);flex-direction:row;gap:6px;padding:5px;border-radius:999px;background:rgba(var(--shade-rgb),.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.orb{width:38px;height:38px}.orb .tip{display:none}.orb-panel{right:12px!important;left:12px!important;width:auto;max-width:none;bottom:calc(72px + env(safe-area-inset-bottom,0px));top:auto!important;max-height:calc(100% - 150px)}}
.desk{background:var(--desk-bg,rgba(var(--shade-rgb),.5))}
.cmt-col{width:var(--cmt-w,236px)}
.goalbar{position:absolute;left:52px;right:52px;bottom:16px;height:2px;border-radius:2px;background:var(--hair);transition:opacity .6s}
.goalbar i{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 60%,transparent);transition:width .6s ease}
.goalbar span{position:absolute;right:0;bottom:8px;font-family:var(--f-mono);font-size:10.5px;color:var(--mute);opacity:0;transition:opacity .3s;white-space:nowrap}
.desk:hover .goalbar span{opacity:1}
.goalbar.done i{background:var(--text)}
.prose{padding-bottom:30vh}
.prose.focus-on>*{opacity:.28;transition:opacity .45s ease}
.prose.focus-on>.cur{opacity:1}
.chips8{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.chips8 button{height:30px;border-radius:8px;font-size:11.5px;color:var(--dim);background:var(--hair);border:1px solid transparent;white-space:nowrap}
.chips8 button[aria-pressed="true"]{background:var(--text);color:#11151a}
@media (max-width:900px){.goalbar{left:22px;right:22px}}
.emo-prev{flex:none;display:flex;gap:3px;opacity:.85}
.emo-lbl{flex:none;width:46px;text-align:right;font-size:11.5px;color:var(--mute)}
