:root{--desk:#f3f1ec;--dot:#1f234024;--ink:#1d1f2b;--ink-soft:#3d4052;--muted:#7a7b86;--faint:#a9a9b2;--line:#1d1f2b17;--line-strong:#1d1f2b29;--accent:#1f2340;--accent-soft:#1f234012;--amber:#c98a2e;--danger:#a33a32;--glass:#fcfbf8a8;--glass-strong:#fcfbf8db;--glass-border:#ffffffbf;--shadow-sm:0 1px 2px #1416280f, 0 1px 1px #1416280a;--shadow:0 1px 2px #1416280d, 0 8px 24px -8px #14162824;--shadow-lg:0 2px 6px #1416280d, 0 24px 60px -18px #14162847;--paper-shadow:0 0 0 1px #1416280d, 0 1px 3px #1416280f, 0 12px 32px -14px #14162838;--radius:12px;--ui:"Inter", system-ui, -apple-system, sans-serif;--display:"Instrument Serif", Georgia, serif;--surface:#ffffffb3;--surface-dim:#ffffff59;--surface-hover:#fff;--field:#fffc;--raised:#fff;--on-accent:#f6f4ef;--accent-hover:#2b3054;--focus-border:#1f234073;--focus-ring:#1f234014;--topbar:#f3f1ecb8;--chrome:#faf9f694;--scrim:#1e20302e;--paper:#fff;--paper-ink:#1e1f26;--paper-muted:#4a4b56;--paper-faint:#8a8b95;--folio:#b4b4bc;--placeholder:#c2c2c9;--rule:#e2ddd2;--mark-ink:inherit;--blob-1:#f2c06f;--blob-2:#f7b787;--blob-3:#f4dc8f;--blob-4:#dcae6e;--blob-5:#f0d2a8;--blob-opacity:.5;--blob-blur:90px;--veil:#12100e09;--grain-opacity:.07;--chart-bar:#b06d1f;--glass-ghost:#faf8f3db;--chrome-ghost:#f8f5efe6;--chart-bar-hover:#8f5716;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--desk:#131418;--dot:#ffffff13;--ink:#ebe8e1;--ink-soft:#c5c3cb;--muted:#8e8f9a;--faint:#686975;--line:#ffffff12;--line-strong:#ffffff21;--accent:#e9e4d8;--accent-soft:#ffffff12;--amber:#dca54f;--danger:#e27b70;--glass:#1e1f269e;--glass-strong:#1c1d24e6;--glass-border:#ffffff14;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 8px 24px -8px #00000080;--shadow-lg:0 2px 6px #0000004d, 0 24px 60px -18px #000000b3;--paper-shadow:0 0 0 1px #ffffff0d, 0 1px 3px #00000059, 0 14px 36px -14px #000000b3;--surface:#ffffff0d;--surface-dim:#ffffff05;--surface-hover:#ffffff1a;--field:#00000038;--raised:#ffffff14;--on-accent:#17181d;--accent-hover:#fff;--focus-border:#e9e4d873;--focus-ring:#e9e4d81a;--topbar:#131418b8;--chrome:#14151b99;--scrim:#00000073;--paper:#1d1e25;--paper-ink:#dfddd6;--paper-muted:#b2b0ba;--paper-faint:#7f808b;--folio:#575865;--placeholder:#545562;--rule:#393a45;--mark-ink:#1e1f26;--blob-1:#3554c9;--blob-2:#5a3fb8;--blob-3:#8a5bd6;--blob-4:#5f86e6;--blob-5:#2c3f8f;--blob-opacity:.7;--blob-blur:100px;--veil:#08090e80;--grain-opacity:.12;--chart-bar:#7486e0;--glass-ghost:#1e1f28db;--chrome-ghost:#16171ee6;--chart-bar-hover:#95a4ec;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--desk:#131418;--dot:#ffffff13;--ink:#ebe8e1;--ink-soft:#c5c3cb;--muted:#8e8f9a;--faint:#686975;--line:#ffffff12;--line-strong:#ffffff21;--accent:#e9e4d8;--accent-soft:#ffffff12;--amber:#dca54f;--danger:#e27b70;--glass:#1e1f269e;--glass-strong:#1c1d24e6;--glass-border:#ffffff14;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 8px 24px -8px #00000080;--shadow-lg:0 2px 6px #0000004d, 0 24px 60px -18px #000000b3;--paper-shadow:0 0 0 1px #ffffff0d, 0 1px 3px #00000059, 0 14px 36px -14px #000000b3;--surface:#ffffff0d;--surface-dim:#ffffff05;--surface-hover:#ffffff1a;--field:#00000038;--raised:#ffffff14;--on-accent:#17181d;--accent-hover:#fff;--focus-border:#e9e4d873;--focus-ring:#e9e4d81a;--topbar:#131418b8;--chrome:#14151b99;--scrim:#00000073;--paper:#1d1e25;--paper-ink:#dfddd6;--paper-muted:#b2b0ba;--paper-faint:#7f808b;--folio:#575865;--placeholder:#545562;--rule:#393a45;--mark-ink:#1e1f26;--blob-1:#3554c9;--blob-2:#5a3fb8;--blob-3:#8a5bd6;--blob-4:#5f86e6;--blob-5:#2c3f8f;--blob-opacity:.7;--blob-blur:100px;--veil:#08090e80;--grain-opacity:.12;--chart-bar:#7486e0;--glass-ghost:#1e1f28db;--chrome-ghost:#16171ee6;--chart-bar-hover:#95a4ec;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--desk);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-size:14px}button,input,select,textarea{font:inherit;color:inherit}.dotgrid{background:0 0}.backdrop{z-index:-1;pointer-events:none;background:var(--desk);position:fixed;inset:0;overflow:hidden}.blob{opacity:var(--blob-opacity);filter:blur(var(--blob-blur));will-change:transform;position:absolute}.b1{background:var(--blob-1);border-radius:62% 38% 54% 46%/48% 63% 37% 52%;width:78vw;height:46vh;animation:75s ease-in-out infinite alternate flow-a;top:-14vh;left:-18vw;transform:rotate(-14deg)}.b2{background:var(--blob-2);border-radius:38% 62% 33% 67%/57% 41% 59% 43%;width:58vw;height:64vh;animation:90s ease-in-out infinite alternate flow-b;bottom:-26vh;right:-14vw;transform:rotate(22deg)}.b3{background:var(--blob-3);border-radius:46% 54% 60% 40%/70% 30%;width:96vw;height:20vh;animation:105s ease-in-out infinite alternate flow-c;top:44vh;left:-2vw;transform:rotate(-17deg)}.b4{background:var(--blob-4);border-radius:71% 29% 52% 48%/31% 58% 42% 69%;width:34vw;height:54vh;animation:120s ease-in-out infinite alternate-reverse flow-b;top:-6vh;right:8vw;transform:rotate(38deg)}.b5{background:var(--blob-5);border-radius:55% 45% 28% 72%/44% 66% 34% 56%;width:50vw;height:30vh;animation:95s ease-in-out infinite alternate-reverse flow-a;bottom:-8vh;left:14vw;transform:rotate(-6deg)}@keyframes flow-a{to{transform:translate(14vw,9vh)rotate(8deg)scale(1.1,.9)}}@keyframes flow-b{to{transform:translate(-12vw,-8vh)rotate(-10deg)scale(.9,1.12)}}@keyframes flow-c{to{transform:translate(-6vw,10vh)rotate(-28deg)scale(1.08,1.25)}}@media (prefers-reduced-motion:reduce){.blob{animation:none}}.veil{background:var(--veil);position:absolute;inset:0}.grain{opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.dots{background-image:radial-gradient(var(--dot) 1px, transparent 1.3px);background-size:22px 22px;transition:opacity .6s;position:absolute;inset:0}:root[data-scene=moodboard] .dots{opacity:0}.setup-preview{background-color:var(--surface-dim);background-image:radial-gradient(var(--dot) 1px, transparent 1.3px);border:1px solid var(--line);background-size:18px 18px}.glass{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(150%);border:1px solid var(--glass-border);box-shadow:var(--shadow)}.logo{font-family:var(--display);letter-spacing:-.01em;color:var(--ink);align-items:baseline;gap:2px;font-size:26px;display:inline-flex}.logo i{color:var(--amber);font-style:normal}.btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:8px;height:36px;padding:0 14px;font-weight:500;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--accent-soft)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.sm{height:30px;padding:0 10px;font-size:13px}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);letter-spacing:.01em;font-size:12px;font-weight:500}.input{border:1px solid var(--line-strong);background:var(--field);border-radius:9px;outline:none;width:100%;height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}textarea.input{resize:vertical;height:auto;padding:10px 12px;line-height:1.5}.input:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring)}.icon-btn{width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;place-items:center;transition:background .12s,color .12s;display:inline-grid}.icon-btn:hover{background:var(--accent-soft);color:var(--ink)}.icon-btn.active{background:var(--accent);color:var(--on-accent)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.error{color:var(--danger);font-size:13px}.linklike{color:var(--ink);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:500}.topbar{z-index:10;background:var(--topbar);-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 32px;display:flex;position:sticky;top:0}.user-chip{color:var(--ink-soft);align-items:center;gap:10px;display:flex}.avatar{background:var(--accent);width:30px;height:30px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.projects-page{min-height:100%}.projects-main{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.projects-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:36px;display:flex}.projects-head h1{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:48px;font-weight:400;line-height:1}.projects-head p{color:var(--muted);margin:8px 0 0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:36px 28px;display:grid}.book{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;gap:12px;padding:0;display:flex;position:relative}.book-cover{aspect-ratio:148/210;background:var(--paper);box-shadow:var(--paper-shadow);border-radius:3px 6px 6px 3px;flex-direction:column;padding:18% 14% 12%;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s;display:flex;position:relative;overflow:hidden}.book:hover .book-cover{box-shadow:var(--shadow-lg);transform:translateY(-4px)rotate(-.6deg)}.book-cover:before{content:"";background:var(--book-color);opacity:.9;width:7px;position:absolute;inset:0 auto 0 0}.book-cover .band{background:var(--book-color);width:34px;height:2px;margin-bottom:14px}.book-cover h3{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:25px;font-weight:400;line-height:1.05}.book-cover .excerpt{color:var(--paper-faint);-webkit-line-clamp:6;text-indent:1.4em;-webkit-box-orient:vertical;margin-top:auto;font-family:Literata,serif;font-size:9px;line-height:1.7;display:-webkit-box;overflow:hidden}.book-meta{flex-direction:column;gap:3px;padding:0 2px;display:flex}.book-meta strong{font-size:14px;font-weight:500}.book-meta span{color:var(--muted);font-size:12.5px}.book-actions{opacity:0;border-radius:9px;gap:2px;padding:3px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.book:hover .book-actions,.book:focus-within .book-actions{opacity:1}.book-new .book-cover{background:var(--surface-dim);border:1.5px dashed var(--line-strong);box-shadow:none;color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:0}.book-new .book-cover:before{display:none}.book-new:hover .book-cover{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.empty-state{text-align:center;color:var(--muted);padding:60px 0}.overlay{z-index:100;background:var(--scrim);-webkit-backdrop-filter:blur(3px);place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}.dialog{background:var(--glass-strong);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--glass-border);width:min(460px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;gap:18px;padding:26px 26px 22px;animation:.2s cubic-bezier(.2,.7,.3,1) rise;display:flex;overflow:auto}.dialog.wide{width:min(760px,100%)}.dialog h2{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:28px;font-weight:400}.dialog .actions{justify-content:flex-end;gap:8px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.985)}}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid4{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:-6px;font-size:11px;font-weight:600}.setup-layout{grid-template-columns:1fr 220px;gap:26px;display:grid}.setup-preview{border-radius:12px;place-items:center;min-height:300px;padding:16px;display:grid}.mini-page{background:var(--paper);box-shadow:var(--paper-shadow);border-radius:2px;transition:width .2s,height .2s;position:relative}.mini-page .mini-text{background:repeating-linear-gradient(to bottom, var(--line-strong) 0 2px, transparent 2px 6px);background-clip:content-box;border:1px dashed #c98a2e8c;transition:all .2s;position:absolute}@media (width<=680px){.setup-layout{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}}.workspace{--sb-w:264px;--ai-w:0px;grid-template-columns:var(--sb-w) minmax(0, 1fr) var(--ai-w);height:100%;transition:grid-template-columns .6s cubic-bezier(.3,.8,.2,1);display:grid;overflow:hidden}.workspace.with-ai{--ai-w:360px}.workspace.no-sidebar{--sb-w:0px}.sidebar{background:var(--chrome);-webkit-backdrop-filter:blur(28px)saturate(140%);border-right:1px solid var(--line);z-index:3;flex-direction:column;min-width:0;min-height:0;transition:border-color .4s;display:flex;overflow:hidden}.sidebar>*{flex-shrink:0;width:264px;transition:opacity .35s,transform .5s cubic-bezier(.3,.8,.2,1)}.sidebar.collapsed{pointer-events:none;border-right-color:#0000}.sidebar.collapsed>*{opacity:0;transform:translate(-28px)}.sidebar-body{flex-direction:column;min-height:0;display:flex;flex:1!important}.sidebar .search{margin:0 10px 8px}.sidebar-head{flex-direction:column;gap:12px;padding:14px 14px 10px;display:flex}.sidebar-head .row{justify-content:space-between;align-items:center;display:flex}.back-link{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 6px 4px 2px;font-size:12.5px;display:inline-flex}.back-link:hover{color:var(--ink);background:var(--accent-soft)}.project-title{font-family:var(--display);letter-spacing:-.01em;background:0 0;border:0;border-radius:6px;outline:none;width:100%;padding:0 4px;font-size:26px;line-height:1.05}.project-title:focus{background:var(--field)}.toc-label{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);justify-content:space-between;align-items:center;padding:10px 14px 6px 18px;font-size:11px;font-weight:600;display:flex}.toc{flex-direction:column;flex:1;gap:1px;padding:0 8px 12px;display:flex;overflow-y:auto}.toc-item{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-soft);border-radius:8px;align-items:center;gap:10px;padding:8px 8px 8px 10px;transition:background .12s;display:flex;position:relative}.toc-item:hover{background:var(--accent-soft)}.toc-item.active{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.toc-item.drag-over{box-shadow:inset 0 2px 0 var(--amber)}.toc-num{font-family:var(--display);text-align:right;width:20px;color:var(--faint);flex-shrink:0;font-size:17px}.toc-item.active .toc-num{color:var(--amber)}.toc-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.toc-title{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.toc-title-input{font:inherit;background:var(--accent-soft);border:0;border-radius:4px;outline:none;width:calc(100% + 8px);margin:-1px -4px;padding:1px 4px;font-size:13.5px;font-weight:500}.toc-sub{color:var(--faint);font-size:11.5px}.toc-item .toc-menu{opacity:0}.toc-item:hover .toc-menu,.toc-item.active .toc-menu{opacity:1}.add-chapter{border:1px dashed var(--line-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;margin:4px 0 0;padding:8px 10px;font-size:13px;display:flex}.add-chapter:hover{color:var(--ink);background:var(--surface)}.sidebar-foot{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding:14px 18px 16px;display:grid}.stat{flex-direction:column;gap:2px;display:flex}.stat b{font-family:var(--display);letter-spacing:-.01em;font-size:28px;font-weight:400;line-height:1}.stat span{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:11px;font-weight:600}.save-state{color:var(--faint);grid-column:1/-1;align-items:center;gap:6px;font-size:11.5px;display:flex}.save-state .dot{background:#7fae84;border-radius:50%;width:6px;height:6px}.save-state .dot.pending{background:var(--amber)}.popmenu{z-index:200;background:var(--glass-strong);-webkit-backdrop-filter:blur(20px)saturate(160%);border:1px solid var(--glass-border);min-width:180px;box-shadow:var(--shadow-lg);border-radius:11px;flex-direction:column;padding:5px;animation:.1s fade;display:flex;position:fixed}.popmenu button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.popmenu button:hover{background:var(--accent-soft)}.popmenu button.danger{color:var(--danger)}.popmenu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.desk-wrap{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.desk{padding:calc(var(--tabbar-h) + 96px) 40px 120px;scroll-padding:calc(var(--tabbar-h) + 120px) 0 120px;flex:1;overflow:auto}.zoom-box{margin:0 auto;position:relative}.pages{position:relative}.sheet{background:var(--paper);box-shadow:var(--paper-shadow);pointer-events:none;border-radius:2px;position:absolute;left:0}.sheet .folio{text-align:center;font-family:var(--display);color:var(--folio);font-size:13px;position:absolute;left:0;right:0}.toolbar{top:calc(var(--tabbar-h) + 14px);left:var(--ws-gutter,20px);right:var(--ws-gutter,20px);z-index:5;scrollbar-width:none;border-radius:14px;align-items:center;gap:2px;padding:5px 6px;display:flex;position:absolute;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.tb-sep{background:var(--line-strong);flex-shrink:0;width:1px;height:20px;margin:0 5px}.tb-select{cursor:pointer;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a7b86' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center no-repeat;border:0;border-radius:7px;flex-shrink:0;height:30px;padding:0 24px 0 9px;font-size:13px}.tb-select:hover{background-color:var(--accent-soft)}.tb-size{flex-shrink:0;align-items:center;display:flex}.tb-size input{text-align:center;border:1px solid var(--line-strong);background:var(--surface);-moz-appearance:textfield;border-radius:6px;outline:none;width:36px;height:26px;font-size:13px}.tb-size input::-webkit-outer-spin-button{-webkit-appearance:none}.tb-size input::-webkit-inner-spin-button{-webkit-appearance:none}.tb-size .icon-btn{width:24px}.font-picker{flex-shrink:0;position:relative}.font-picker>button{white-space:nowrap;text-overflow:ellipsis;justify-content:space-between;align-items:center;width:148px;display:flex;overflow:hidden}.font-menu{width:260px;max-height:380px;overflow:auto}.font-menu .font-row{justify-content:space-between;font-size:16px}.font-menu .font-row small{font-family:var(--ui);color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.font-menu .custom{gap:6px;padding:6px;display:flex}.font-menu .custom .input{height:32px;font-size:13px}.color-pop{gap:10px;min-width:0;padding:10px}.swatches{grid-template-columns:repeat(6,22px);gap:6px;display:grid}.swatch{cursor:pointer;border:1px solid #00000014;border-radius:6px;width:22px;height:22px;padding:0!important}.swatch.none{background:linear-gradient(135deg, var(--paper) 45%, var(--danger) 45% 55%, var(--paper) 55%)!important}.color-pop .custom-color{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.color-pop input[type=color]{cursor:pointer;background:0 0;border:0;width:28px;height:24px;padding:0}.color-bar{border-radius:2px;width:16px;height:3px;margin-top:1px;display:block}.icon-stack{flex-direction:column;align-items:center;gap:0;display:flex}.statusbar{z-index:5;color:var(--ink-soft);border-radius:12px;align-items:center;gap:4px;padding:4px 6px 4px 12px;font-size:12.5px;display:flex;position:absolute;bottom:14px;right:16px}.statusbar .zoom-val{white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums;width:52px}.statusbar .meta{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:8px}.page-editor{z-index:1;position:relative}.page-editor .ProseMirror{font-family:var(--doc-font);font-size:var(--doc-size);line-height:var(--doc-lh);color:var(--paper-ink);padding:var(--m-top) var(--m-right) var(--m-bottom) var(--m-left);min-height:var(--page-h);white-space:pre-wrap;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;caret-color:var(--amber);outline:none}.page-editor .ProseMirror>*{margin:0}.page-editor .ProseMirror p{text-indent:var(--doc-indent);padding-bottom:var(--doc-pspace)}.page-editor .ProseMirror>h1+p,.page-editor .ProseMirror>h2+p,.page-editor .ProseMirror>h3+p,.page-editor .ProseMirror>hr+p,.page-editor .ProseMirror>.page-break+p,.page-editor .ProseMirror>p:first-child,.page-editor .ProseMirror p[style*="text-align: center"],.page-editor .ProseMirror p[style*="text-align: right"],.page-editor .ProseMirror li p,.page-editor .ProseMirror blockquote p{text-indent:0}.page-editor .ProseMirror h1{letter-spacing:-.01em;padding:1.6em 0 1.2em;font-size:2em;font-weight:400;line-height:1.15}.page-editor .ProseMirror>h1:first-child{padding-top:2.4em}.page-editor .ProseMirror h2{padding:1.2em 0 .6em;font-size:1.45em;font-weight:600;line-height:1.25}.page-editor .ProseMirror h3{padding:1em 0 .4em;font-size:1.15em;font-weight:600;line-height:1.3}.page-editor .ProseMirror blockquote{color:var(--paper-muted);border-left:2px solid var(--rule);padding:.4em 0 .6em 1.4em;font-style:italic}.page-editor .ProseMirror ul,.page-editor .ProseMirror ol{padding:.2em 0 .6em 1.6em}.page-editor .ProseMirror hr{border:0;height:3em;position:relative}.page-editor .ProseMirror hr:after{content:"⁂";color:var(--paper-faint);place-items:center;font-size:1.1em;display:grid;position:absolute;inset:0}.page-editor .ProseMirror hr.ProseMirror-selectednode:after{color:var(--amber)}.page-editor .ProseMirror .page-break{height:0;position:relative}.page-editor .ProseMirror .page-break.ProseMirror-selectednode:after{content:"saut de page";text-align:center;font:500 10px var(--ui);text-transform:uppercase;letter-spacing:.1em;color:var(--amber);position:absolute;top:-.6em;left:0;right:0}.page-editor .ProseMirror mark{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:0 1px;color:var(--mark-ink)!important}.page-editor .ProseMirror a{color:inherit}.page-editor .ProseMirror ::selection{background:#c98a2e3d}.page-editor .ProseMirror p.is-empty[data-placeholder]:not([data-placeholder=""]):before{content:attr(data-placeholder);float:left;pointer-events:none;height:0;color:var(--placeholder);font-style:italic}.page-spacer{pointer-events:none;-webkit-user-select:none;user-select:none}.ai-panel{background:var(--chrome);-webkit-backdrop-filter:blur(28px)saturate(140%);border-left:1px solid var(--line);z-index:3;flex-direction:column;min-height:0;display:flex}.ai-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 14px 12px 18px;display:flex}.ai-head h3{font-family:var(--display);align-items:center;gap:8px;margin:0;font-size:23px;font-weight:400;display:flex}.ai-head h3 svg{color:var(--amber)}.ai-body{flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.ai-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ai-action{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:11px;flex-direction:column;align-items:flex-start;gap:6px;padding:11px 12px;transition:border-color .15s,background .15s,transform .1s;display:flex}.ai-action:hover:not(:disabled){background:var(--surface-hover);border-color:var(--line-strong)}.ai-action.active{border-color:var(--accent);background:var(--raised);box-shadow:0 0 0 3px var(--focus-ring)}.ai-action:disabled{opacity:.45;cursor:default}.ai-action b{font-size:13px;font-weight:600}.ai-action span{color:var(--muted);font-size:11.5px;line-height:1.35}.ai-action svg{color:var(--amber)}.ai-context{color:var(--muted);background:var(--accent-soft);border-radius:9px;padding:9px 11px;font-size:12px;line-height:1.45}.ai-context q{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:4px;font-family:Literata,serif;font-style:italic;display:-webkit-box;overflow:hidden}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px}.chip:hover{background:var(--surface-hover)}.ai-result{background:var(--paper);box-shadow:var(--paper-shadow);border-radius:12px;flex-direction:column;gap:12px;padding:16px 16px 12px;display:flex}.ai-result .text{white-space:pre-wrap;color:var(--paper-ink);font-family:Literata,serif;font-size:13.5px;line-height:1.65}.ai-result .text.streaming:after{content:"";vertical-align:-2px;background:var(--amber);width:7px;height:14px;margin-left:2px;animation:1s steps(2,end) infinite blink;display:inline-block}.ai-result .row{flex-wrap:wrap;gap:6px;display:flex}@keyframes blink{50%{opacity:0}}.ai-settings{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding:14px 18px 18px;display:flex}.ai-settings small{color:var(--faint);font-size:11.5px;line-height:1.5}@media (width<=1100px){.workspace.with-ai{--ai-w:320px}}@media (width<=820px){.workspace,.workspace.with-ai,.workspace.no-sidebar{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:30;width:280px;transition:transform .25s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:none}.scrim{z-index:25;background:var(--scrim);animation:.15s fade;display:block;position:fixed;inset:0}.ai-panel{z-index:30;width:min(360px,100%);box-shadow:var(--shadow-lg);position:fixed;inset:0 0 0 auto}.desk{padding:calc(var(--tabbar-h) + 72px) 0 100px}}.mobile-only,.scrim{display:none}@media (width<=820px){.mobile-only{display:inline-grid}.scrim{display:block}}.ws-main{--ws-gutter:20px;--tabbar-h:48px;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.tab-panel{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.tab-panel>.desk-wrap{flex:1;min-height:0}.tab-scroll{min-height:0;padding:calc(var(--tabbar-h) + 28px) 32px 64px;flex:1;overflow-y:auto}.tab-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.tab-head h2{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:40px;font-weight:400;line-height:1}.tab-head p{color:var(--muted);margin:8px 0 0}.muted-line{color:var(--muted);margin:0;font-size:13px}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.chip.chip-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip{color:var(--ink-soft);align-items:center;gap:6px;display:inline-flex}.chip b{color:var(--muted);font-weight:600}.chip.static{cursor:default}.mini-dot{border-radius:50%;width:8px;height:8px}.mini-avatar{color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:8.5px;font-weight:600;display:inline-grid}@keyframes item-in{0%{opacity:0;transform:translateY(10px)}}.entity-page{max-width:820px;margin:0 auto}.search{background:var(--field);border:1px solid var(--line);height:34px;color:var(--muted);border-radius:9px;align-items:center;gap:8px;margin:0 4px;padding:0 10px;display:flex}.search input{background:0 0;border:0;outline:none;width:100%;font-size:13px}.entity-items{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.entity-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;padding:8px;transition:background .15s;animation:.5s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.entity-item:hover{background:var(--accent-soft)}.entity-item.active{background:var(--raised);box-shadow:var(--shadow-sm)}.avatar-dot{color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:12px;font-weight:600;display:grid}.entity-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.entity-item-body b{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.entity-item-body small{color:var(--muted);font-size:12px}.count-pill{color:var(--muted);background:var(--accent-soft);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.entity-sheet{border-radius:20px;flex-direction:column;gap:26px;padding:28px 30px 30px;animation:.5s cubic-bezier(.2,.8,.2,1) both sheet-in;display:flex}@keyframes sheet-in{0%{opacity:0;transform:translateY(14px)scale(.985)}}.sheet-head{align-items:center;gap:18px;display:flex}.avatar-xl{color:#fff;width:76px;height:76px;font-family:var(--display);border-radius:50%;flex-shrink:0;place-items:center;font-size:32px;transition:background .3s;display:grid;box-shadow:0 10px 24px -10px #00000073}.sheet-title{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.sheet-name{font-family:var(--display);letter-spacing:-.015em;background:0 0;border:0;border-radius:8px;outline:none;width:100%;margin-left:-6px;padding:0 6px;font-size:40px;line-height:1.05}.sheet-name:focus{background:var(--field)}.color-row{gap:6px;display:flex}.color-chip{cursor:pointer;border:0;border-radius:50%;width:16px;height:16px;transition:transform .15s}.color-chip:hover{transform:scale(1.15)}.color-chip.active{outline:2px solid var(--ink);outline-offset:2px}.sheet-fields{grid-template-columns:1fr 1fr;gap:16px 18px;display:grid}.sheet-fields .wide{grid-column:1/-1}.sheet-fields textarea.input{resize:none;min-height:64px;overflow:hidden}.appearances{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:18px;display:flex}.entity-empty{text-align:center;min-height:320px;color:var(--muted);font-family:var(--display);border:1.5px dashed var(--line-strong);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:22px;display:flex}.entity-empty p{max-width:28ch;margin:0}.timeline-page{max-width:900px;margin:0 auto}.filter-row{margin-bottom:22px}.timeline{margin:0;padding:0;list-style:none}.tl-item{grid-template-columns:150px 34px minmax(0,1fr);padding-bottom:18px;display:grid;position:relative}.tl-item>*{animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;animation-delay:inherit}.tl-item.drag-over .tl-card{box-shadow:0 -3px 0 var(--amber), var(--shadow)}.tl-when{text-align:right;font-family:var(--display);color:var(--ink-soft);padding:14px 4px 0 0;font-size:19px;line-height:1.15}.tl-rail{justify-content:center;display:flex;position:relative}.tl-rail:before{content:"";background:linear-gradient(var(--line-strong), var(--line-strong));width:2px;position:absolute;top:0;bottom:-18px}.tl-item:last-child .tl-rail:before{background:linear-gradient(var(--line-strong), transparent);bottom:50%}.tl-item:first-child .tl-rail:before{top:20px}.tl-node{background:var(--amber);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--amber) 22%, transparent);border-radius:50%;margin-top:18px;position:relative}.tl-card{cursor:pointer;border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px 14px 18px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.tl-card:hover:not(.editing){box-shadow:var(--shadow-lg);transform:translate(3px)}.tl-card.editing{cursor:default;gap:12px}.tl-card h3{margin:0;font-size:15px;font-weight:600}.tl-card p{color:var(--ink-soft);white-space:pre-wrap;margin:0;line-height:1.55}.tl-grip{color:var(--faint);opacity:0;cursor:grab;position:absolute;top:16px;left:2px}.tl-card:hover .tl-grip{opacity:1}.tl-insert{border:1px solid var(--line-strong);background:var(--paper);width:18px;height:18px;color:var(--muted);cursor:pointer;opacity:0;border-radius:50%;place-items:center;padding:0;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:-14px;left:158px}.tl-item:hover .tl-insert{opacity:1}.tl-insert:hover{color:var(--ink);transform:scale(1.2)}.stats-page{flex-direction:column;gap:18px;max-width:1080px;margin:0 auto;display:flex}.hero-stats{grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:18px;display:grid}.hero-tile{border-radius:20px;flex-direction:column;gap:8px;padding:24px 26px;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.tile-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:600}.hero-number{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:76px;font-weight:400;line-height:.95}.goal{flex-direction:column;gap:8px;margin-top:auto;display:flex}.goal-bar{background:var(--accent-soft);border-radius:999px;height:6px;overflow:hidden}.goal-bar span{background:var(--chart-bar);transform-origin:0;border-radius:999px;height:100%;animation:1.1s cubic-bezier(.2,.8,.2,1) both grow-x;display:block}.goal-line{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.goal-line svg{vertical-align:-2px}.goal-input{border:0;border-bottom:1px dashed var(--line-strong);width:72px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;background:0 0;outline:none;font-weight:600}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.tile{border-radius:16px;flex-direction:column;gap:6px;padding:16px 18px;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.tile:nth-child(2){animation-delay:40ms}.tile:nth-child(3){animation-delay:80ms}.tile:nth-child(4){animation-delay:.12s}.tile:nth-child(5){animation-delay:.16s}.tile:nth-child(6){animation-delay:.2s}.tile b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:32px;font-weight:400;line-height:1}.chart-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.chart-card{border-radius:20px;flex-direction:column;gap:16px;min-width:0;padding:20px 22px 18px;animation:.7s cubic-bezier(.2,.8,.2,1) .1s both item-in;display:flex}.chart-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.chart-card h3{margin:0;font-size:14px;font-weight:600}.chart-card header span{color:var(--muted);font-size:12.5px}.chart-actions{align-items:center;gap:8px;display:flex}.streak{color:var(--ink-soft);background:var(--accent-soft);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.streak svg{color:var(--amber)}.bars-wrap{padding-left:44px;position:relative}.bars-grid{pointer-events:none;height:170px;position:absolute;top:0;left:44px;right:0}.gridline{border-top:1px dashed var(--line);position:absolute;left:0;right:0}.gridline span{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10.5px;position:absolute;top:-7px;right:calc(100% + 8px)}.bars{border-bottom:1px solid var(--line-strong);align-items:flex-end;gap:2px;height:170px;display:flex;position:relative}.bar-slot{cursor:default;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.bar{background:var(--chart-bar);transform-origin:bottom;border-radius:4px 4px 0 0;width:min(100%,26px);min-height:0;transition:background .15s;animation:.8s cubic-bezier(.2,.8,.2,1) both grow-y}.bar-slot.hover .bar{background:var(--chart-bar-hover)}.bar-slot.hover:before{content:"";background:var(--accent-soft);border-radius:4px;position:absolute;inset:0 -1px}.chart-tip{z-index:3;white-space:nowrap;background:var(--glass-strong);border:1px solid var(--glass-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);pointer-events:none;border-radius:8px;padding:5px 9px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.bars-labels{gap:2px;margin-top:6px;display:flex}.bars-labels span{text-align:center;color:var(--faint);white-space:nowrap;flex:1;font-size:10.5px;overflow:visible}.hbars{flex-direction:column;gap:10px;display:flex}.hbar-row{grid-template-columns:110px minmax(0,1fr) 44px;align-items:center;gap:10px;font-size:13px;display:grid}.hbar-label{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);overflow:hidden}.hbar-track{height:14px}.hbar{background:var(--chart-bar);transform-origin:0;border-radius:0 4px 4px 0;height:100%;animation:.9s cubic-bezier(.2,.8,.2,1) both grow-x}.hbar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.chart-table{max-height:260px;overflow:auto}.chart-table table{border-collapse:collapse;width:100%;font-size:13px}.chart-table th,.chart-table td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}.chart-table th:last-child,.chart-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.chart-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}@keyframes grow-y{0%{transform:scaleY(0)}}@keyframes grow-x{0%{transform:scaleX(0)}}.book{animation:.7s cubic-bezier(.2,.8,.2,1) both item-in;animation-delay:calc(var(--i,0) * 60ms)}@media (width<=980px){.hero-stats,.chart-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=820px){.tab-scroll{padding:calc(var(--tabbar-h) + 20px) 16px 48px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet-fields{grid-template-columns:minmax(0,1fr)}.tl-item{grid-template-columns:0 26px minmax(0,1fr)}.tl-when{display:none}.tl-insert{left:4px}.hero-number{font-size:56px}}.stage{height:100%}.vt-ghost{z-index:50;pointer-events:none;transform-origin:50% 40%;position:fixed;overflow:hidden}.vt-ghost,.vt-ghost *{caret-color:#0000!important;transition:none!important;animation:none!important}.vt-ghost .glass,.vt-ghost .topbar{-webkit-backdrop-filter:none!important;background:var(--glass-ghost)!important}.vt-ghost .sidebar,.vt-ghost .ai-panel{-webkit-backdrop-filter:none!important;background:var(--chrome-ghost)!important}.bw{will-change:transform;transition:transform 2.6s cubic-bezier(.45,.05,.15,1);position:absolute;inset:0}:root[data-scene=projects] .bw1{transform:translate(12vw,8vh)rotate(6deg)}:root[data-scene=projects] .bw2{transform:translate(-10vw,-6vh)}:root[data-scene=projects] .bw3{transform:translateY(-10vh)rotate(-8deg)}:root[data-scene=projects] .bw4{transform:translate(-20vw,12vh)}:root[data-scene=projects] .bw5{transform:translate(16vw,-4vh)}:root[data-scene=manuscrit] .bw1{transform:translate(-6vw,18vh)rotate(-6deg)}:root[data-scene=manuscrit] .bw2{transform:translate(6vw,4vh)}:root[data-scene=manuscrit] .bw3{transform:translate(-10vw,6vh)rotate(10deg)}:root[data-scene=manuscrit] .bw4{transform:translate(-34vw,24vh)}:root[data-scene=manuscrit] .bw5{transform:translate(20vw,-20vh)}:root[data-scene=personnages] .bw1{transform:translate(24vw,10vh)rotate(12deg)}:root[data-scene=personnages] .bw2{transform:translate(-20vw,-14vh)}:root[data-scene=personnages] .bw3{transform:translate(8vw,-18vh)rotate(-14deg)}:root[data-scene=personnages] .bw4{transform:translate(-8vw,30vh)}:root[data-scene=personnages] .bw5{transform:translate(-14vw,-26vh)}:root[data-scene=lieux] .bw1{transform:translate(30vw,30vh)rotate(-4deg)}:root[data-scene=lieux] .bw2{transform:translate(-30vw)}:root[data-scene=lieux] .bw3{transform:translate(-6vw,16vh)rotate(18deg)}:root[data-scene=lieux] .bw4{transform:translate(-46vw,6vh)}:root[data-scene=lieux] .bw5{transform:translate(26vw,-12vh)}:root[data-scene=chronologie] .bw1{transform:translateY(40vh)rotate(-10deg)}:root[data-scene=chronologie] .bw2{transform:translate(-8vw,-34vh)}:root[data-scene=chronologie] .bw3{transform:translate(12vw,-4vh)rotate(-24deg)}:root[data-scene=chronologie] .bw4{transform:translate(-28vw,40vh)}:root[data-scene=chronologie] .bw5{transform:translate(-24vw,-30vh)}:root[data-scene=statistiques] .bw1{transform:translate(40vw,4vh)rotate(8deg)}:root[data-scene=statistiques] .bw2{transform:translate(-36vw,-10vh)}:root[data-scene=statistiques] .bw3{transform:translateY(20vh)rotate(6deg)}:root[data-scene=statistiques] .bw4{transform:translate(-10vw,-10vh)}:root[data-scene=statistiques] .bw5{transform:translate(4vw,-30vh)}@media (prefers-reduced-motion:reduce){.bw,.workspace,.sidebar>*,.book,.entity-item,.tl-item>*,.tile,.hero-tile,.chart-card,.entity-sheet,.bar,.hbar,.goal-bar span{animation:none}}.vt-ghost .book-actions{display:none}.sync-badge{border:1px solid var(--line);background:var(--surface);height:28px;color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.sync-badge:hover{color:var(--ink)}.sync-badge.synced svg{color:#6f9f78}.sync-badge.offline svg,.sync-badge.error svg{color:var(--amber)}.sync-badge.error{color:var(--danger)}.save-state .sync-badge{background:0 0;border:0;height:22px;margin-left:auto;padding:0 7px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{background:var(--accent-soft);color:var(--ink-soft);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5}.page-editor .ProseMirror .mention{-webkit-text-decoration:underline dotted var(--mention-color,var(--amber));text-decoration:underline dotted var(--mention-color,var(--amber));text-underline-offset:.22em;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;cursor:pointer;border-radius:3px;text-decoration-thickness:1.5px;transition:background .15s}.page-editor .ProseMirror .mention:hover{background:color-mix(in srgb, var(--mention-color,var(--amber)) 16%, transparent)}.mention-card{gap:12px;width:300px;padding:14px 14px 12px}.mention-card header{align-items:center;gap:10px;display:flex}.mention-card header div{flex-direction:column;min-width:0;display:flex}.mention-card header b{font-family:var(--display);font-size:22px;font-weight:400;line-height:1.05}.mention-card header div span{color:var(--muted);font-size:12px}.mention-card dl{flex-direction:column;gap:8px;margin:0;display:flex}.mention-card dt{text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-size:10.5px;font-weight:600}.mention-card dd{color:var(--ink-soft);-webkit-line-clamp:3;white-space:pre-line;-webkit-box-orient:vertical;margin:2px 0 0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.mention-card footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding-top:10px;font-size:12px;display:flex}.mention-card .btn{padding:0 10px}.page-editor .ProseMirror .note-mark{background:color-mix(in srgb, var(--amber) 20%, transparent);border-bottom:2px solid color-mix(in srgb, var(--amber) 70%, transparent);cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;transition:background .15s}.page-editor .ProseMirror .note-mark:hover{background:color-mix(in srgb, var(--amber) 34%, transparent)}.note-fab{z-index:120;height:32px;color:var(--ink);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:0 12px;font-size:12.5px;font-weight:500;animation:.18s cubic-bezier(.2,.8,.2,1) fab-in;display:inline-flex;position:fixed}.note-fab svg{color:var(--amber)}.note-fab:hover{background:var(--glass-strong)}@keyframes fab-in{0%{opacity:0;transform:translateY(-4px)scale(.96)}}.note-composer{gap:8px;width:320px;padding:10px}.note-composer textarea,.note-card textarea{resize:none;min-height:58px;font-size:13.5px}.note-composer .actions,.note-card .actions{justify-content:flex-end;gap:6px;display:flex}.note-card{gap:10px;width:320px;padding:12px}.note-card blockquote{border-left:2px solid var(--amber);color:var(--ink-soft);margin:0;padding:2px 0 2px 10px;font-family:Literata,serif;font-size:12.5px;font-style:italic;line-height:1.5}.note-card footer{color:var(--faint);justify-content:space-between;align-items:center;font-size:11.5px;display:flex}.note-card footer div{align-items:center;gap:4px;display:flex}.notes-btn{position:relative}.notes-count{background:var(--amber);color:#fff;text-align:center;border-radius:999px;min-width:15px;height:15px;padding:0 4px;font-size:9.5px;font-weight:700;line-height:15px;position:absolute;top:1px;right:0}.notes-list{width:340px;max-height:420px;overflow-y:auto}.notes-list-head{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);justify-content:space-between;padding:8px 10px 6px;font-size:11px;font-weight:600;display:flex}.popmenu .notes-item{flex-direction:column;align-items:flex-start;gap:3px;padding:9px 10px}.notes-item q{color:var(--muted);font-family:Literata,serif;font-size:12px;font-style:italic}.notes-item span{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.page-editor .ProseMirror .note-pending{background:color-mix(in srgb, var(--amber) 28%, transparent);border-radius:2px}.tabbar-row{z-index:55;padding:14px var(--ws-gutter) 0;pointer-events:none;align-items:center;gap:6px;min-width:0;display:flex;position:absolute;top:0;left:0;right:0}.tabbar-row>*{pointer-events:auto}.tabbar{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.tabbar::-webkit-scrollbar{display:none}.tab{height:34px;box-shadow:var(--shadow-sm);color:var(--ink-soft);white-space:nowrap;cursor:pointer;border-radius:10px;flex-shrink:0;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;transition:background .25s,color .25s,border-color .25s,transform .15s,box-shadow .25s;display:inline-flex}.tab svg{color:var(--muted);transition:color .25s}.tab:hover{color:var(--ink);background:var(--glass-strong)}.tab:active{transform:translateY(1px)}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 6px 16px -8px #14162880}.tab.active svg{color:var(--on-accent)}.tab-back span{font-family:var(--display);color:var(--ink);text-overflow:ellipsis;max-width:220px;font-size:18px;font-weight:400;overflow:hidden}.tab-back{margin-right:6px}@media (width<=820px){.ws-main{--ws-gutter:12px;--tabbar-h:46px}.tabbar-row{z-index:20}.tab span{display:none}.tab.active span{display:inline}.tab{padding:0 11px}}.tab.mobile-only{display:none}@media (width<=820px){.tab.mobile-only{display:inline-flex}}.toc-sub{align-items:center;gap:6px;display:inline-flex}.toc-sub .mini-dot{width:6px;height:6px}.plan-page{min-height:0;padding:calc(var(--tabbar-h) + 24px) 0 16px;flex-direction:column;flex:1;display:flex}.plan-head{margin-bottom:18px;padding:0 28px}.plan-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-structure{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.plan-board{flex:1;align-items:flex-start;gap:14px;min-height:0;padding:0 28px 12px;display:flex;overflow-x:auto}.plan-col{background:var(--surface-dim);border:1px solid var(--line);border-radius:18px;flex-direction:column;flex-shrink:0;width:292px;max-height:100%;display:flex}.plan-col.ideas{background:color-mix(in srgb, var(--amber) 7%, transparent);border-style:dashed;width:260px}.plan-col-head{align-items:center;gap:8px;padding:12px 12px 8px 14px;display:flex}.plan-col-title{font-family:var(--display);flex:1;align-items:center;gap:7px;font-size:20px;display:flex}.plan-col-title svg{color:var(--amber)}.plan-col-name{min-width:0;font-family:var(--display);text-overflow:ellipsis;background:0 0;border:0;border-radius:6px;outline:none;flex:1;margin-left:-4px;padding:2px 4px;font-size:20px;line-height:1.1}.plan-col-name:focus{background:var(--field)}.plan-col-meta{color:var(--faint);white-space:nowrap;font-size:11.5px}.plan-col-del{opacity:0;width:24px;height:24px}.plan-col:hover .plan-col-del{opacity:1}.plan-col-body{flex-direction:column;flex:1;gap:8px;min-height:60px;padding:2px 10px 12px;display:flex;overflow-y:auto}.plan-add{border:1px dashed var(--line-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:7px;padding:8px 10px;font-size:13px;display:flex}.plan-add:hover{color:var(--ink);background:var(--surface)}.plan-hint{color:var(--faint);margin:2px 4px 0;font-size:11.5px;line-height:1.4}.drop-before{position:relative}.drop-before:before,.drop-slot{content:"";background:var(--amber);border-radius:3px;height:3px;display:block}.drop-before:before{position:absolute;top:-6px;left:4px;right:4px}.plan-card{cursor:grab;box-shadow:var(--shadow-sm);border-radius:13px;flex-direction:column;gap:6px;padding:10px 10px 9px;transition:box-shadow .2s,transform .2s,opacity .2s;animation:.45s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.plan-card:hover{box-shadow:var(--shadow)}.plan-card.dragging,.idea-card.dragging{opacity:.35}.plan-card header{align-items:center;gap:6px;display:flex}.plan-card header .icon-btn{opacity:0;width:24px;height:24px}.plan-card:hover header .icon-btn{opacity:1}.plan-grip{color:var(--faint);flex-shrink:0;margin-left:-2px}.plan-num{font-family:var(--display);color:var(--amber);min-width:14px;font-size:17px}.plan-title{text-overflow:ellipsis;background:0 0;border:0;border-radius:5px;outline:none;flex:1;min-width:0;padding:2px 4px;font-size:13.5px;font-weight:600}.plan-summary,.idea-text{resize:none;width:100%;color:var(--ink-soft);cursor:text;background:0 0;border:0;border-radius:6px;outline:none;padding:3px 4px;font-size:13px;line-height:1.45;overflow:hidden}.plan-title:focus,.plan-summary:focus,.idea-text:focus{background:var(--field)}.plan-card footer{align-items:center;gap:6px;display:flex}.status-chip,.pov-btn{border:1px solid var(--line);background:var(--surface);height:22px;color:var(--ink-soft);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;display:inline-flex}.status-chip{background:color-mix(in srgb, var(--status) 12%, transparent);border-color:color-mix(in srgb, var(--status) 30%, transparent)}.pov-btn{color:var(--muted);white-space:nowrap;max-width:110px;overflow:hidden}.pov-btn.set{color:var(--ink-soft);padding-left:3px}.pov-btn .mini-avatar{flex-shrink:0;width:16px;height:16px;font-size:7.5px}.plan-words{color:var(--faint);white-space:nowrap;margin-left:auto;font-size:11px}.idea-card{background:color-mix(in srgb, var(--idea) 26%, var(--paper));border-left:3px solid var(--idea);box-shadow:var(--shadow-sm);cursor:grab;border-radius:12px;padding:8px 26px 8px 8px;transition:transform .2s,box-shadow .2s,opacity .2s;animation:.45s cubic-bezier(.2,.8,.2,1) both item-in;position:relative;transform:rotate(-.4deg)}.idea-card:nth-child(2n){transform:rotate(.5deg)}.idea-card:hover{box-shadow:var(--shadow);transform:none}.idea-text{color:var(--paper-ink);font-family:Literata,serif;font-size:13px}.idea-del{opacity:0;width:22px;height:22px;position:absolute;top:6px;right:4px}.idea-card:hover .idea-del{opacity:1}:root[data-scene=plan] .bw1{transform:translate(-14vw,-12vh)rotate(-12deg)}:root[data-scene=plan] .bw2{transform:translate(-24vw,8vh)}:root[data-scene=plan] .bw3{transform:translate(18vw,10vh)rotate(14deg)}:root[data-scene=plan] .bw4{transform:translate(12vw,-20vh)}:root[data-scene=plan] .bw5{transform:translate(-30vw,6vh)}:root[data-scene=univers] .bw1{transform:translate(34vw,-6vh)rotate(16deg)}:root[data-scene=univers] .bw2{transform:translate(-14vw,20vh)}:root[data-scene=univers] .bw3{transform:translate(-20vw,-22vh)rotate(-20deg)}:root[data-scene=univers] .bw4{transform:translate(18vw,34vh)}:root[data-scene=univers] .bw5{transform:translate(-36vw,-14vh)}@media (width<=820px){.plan-head,.plan-board{padding-left:16px;padding-right:16px}.plan-col{width:260px}}@media (prefers-reduced-motion:reduce){.plan-card,.idea-card{animation:none}}.tabbar-row:before{content:"";z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(10px);position:absolute;inset:0 0 -8px;-webkit-mask-image:linear-gradient(#000 45%,#0000);mask-image:linear-gradient(#000 45%,#0000)}.relations{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:18px;display:flex}.relations-head{justify-content:space-between;align-items:center;display:flex}.relations-head .section-label{margin:0}.relation-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.relation-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:flex-start;gap:10px;width:100%;padding:8px;display:flex}.relation-row:hover{background:var(--accent-soft)}.relation-body{flex-direction:column;gap:3px;min-width:0;display:flex}.relation-body b{font-size:13.5px;font-weight:600}.relation-body>span{color:var(--ink-soft);align-items:center;gap:8px;font-size:12.5px;display:flex}.relation-body em{font-style:normal}.relation-body small{color:var(--muted);font-size:12px;line-height:1.45}.relation-type{color:var(--rel);background:color-mix(in srgb, var(--rel) 14%, transparent);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.chip.relation-chip.on{background:color-mix(in srgb, var(--rel) 18%, transparent);border-color:var(--rel);color:var(--ink)}.relation-form{flex-direction:column;gap:16px;display:flex}.relation-pair{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.character-select{align-items:center;gap:8px;display:flex}.character-select .avatar-dot{width:30px;height:30px;font-size:11px}.relations-page{max-width:1100px;margin:0 auto}.relations-canvas{aspect-ratio:1000/620;touch-action:none;border-radius:22px;position:relative;overflow:hidden}.relations-svg{width:100%;height:100%;position:absolute;inset:0}.relation-edge{fill:none;stroke-width:2.5px;stroke-linecap:round;transition:opacity .25s}.relation-node{cursor:grab}.relation-node.dragging{cursor:grabbing}.relation-node-ring{fill:var(--paper);filter:drop-shadow(0 4px 10px #0000002e);transition:r .2s}.relation-node:hover .relation-node-ring,.relation-node.dragging .relation-node-ring{r:37px}.relation-node-initials{text-anchor:middle;fill:#fff;font:600 15px var(--ui);pointer-events:none}.relation-node-name{text-anchor:middle;fill:var(--ink);font:500 14px var(--ui);paint-order:stroke;stroke:var(--desk);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.relation-label{border:1px solid color-mix(in srgb, var(--rel) 40%, transparent);background:var(--glass-strong);max-width:160px;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:11.5px;font-weight:500;transition:opacity .25s,transform .15s;display:inline-flex;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.relation-label:hover{transform:translate(-50%,-50%)scale(1.06)}@media (width<=820px){.relation-pair{grid-template-columns:minmax(0,1fr)}}.relation-preview{color:var(--muted);font-size:12px;font-style:italic}.sheet-head+.relations{border-top:0;padding-top:0}:root[data-scene=moodboard] .bw1{transform:translate(-30vw,30vh)rotate(20deg)}:root[data-scene=moodboard] .bw2{transform:translate(10vw,-24vh)}:root[data-scene=moodboard] .bw3{transform:translate(-24vw,-8vh)rotate(-16deg)}:root[data-scene=moodboard] .bw4{transform:translate(30vw,20vh)}:root[data-scene=moodboard] .bw5{transform:translate(-6vw,30vh)}.board-wrap{flex:1;min-height:0;position:relative;overflow:hidden}.board{touch-action:none;-webkit-user-select:none;user-select:none;cursor:default;background-color:#0000;background-image:radial-gradient(var(--dot) 1px, transparent 1.3px);position:absolute;inset:0;overflow:hidden}.board.tool-hand{cursor:grab}.board.tool-hand:active{cursor:grabbing}.board.tool-note,.board.tool-arrow{cursor:crosshair}.board-wrap.dropping .board{box-shadow:inset 0 0 0 3px var(--focus-border)}.board-world{transform-origin:0 0;position:absolute;top:0;left:0}.bitem{cursor:grab;position:absolute}.bitem:active{cursor:grabbing}.bitem.selected{outline:calc(2px * var(--inv)) solid var(--amber);outline-offset:calc(3px * var(--inv))}.bitem.target{outline:calc(2px * var(--inv)) dashed var(--amber);outline-offset:calc(6px * var(--inv))}.bitem-image{box-shadow:var(--paper-shadow);background:var(--raised);border-radius:4px}.bitem-image img{object-fit:cover;border-radius:inherit;pointer-events:none;width:100%;height:100%;display:block}.bitem-note{color:#2b2a26;border-radius:3px;padding:14px 16px;font-size:15px;line-height:1.45;box-shadow:0 1px 2px #1416281f,0 10px 22px -12px #14162859}.bitem-note p,.bitem-note textarea{white-space:pre-wrap;overflow-wrap:anywhere;width:100%;height:100%;font:inherit;color:inherit;margin:0;overflow:hidden}.bitem-note textarea{resize:none;cursor:text;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;padding:0;display:block;overflow:auto}.bitem-note textarea::placeholder{color:#2b2a2673}.bitem-sticker{filter:drop-shadow(0 4px 6px #1416282e);place-items:center;line-height:1;display:grid}.bitem-sticker.selected{border-radius:12px}.bitem-resize{right:calc(-7px * var(--inv));bottom:calc(-7px * var(--inv));width:calc(12px * var(--inv));height:calc(12px * var(--inv));background:var(--paper);border:calc(2px * var(--inv)) solid var(--amber);cursor:nwse-resize;border-radius:50%;position:absolute}.board-arrows{z-index:1000000;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.board-arrow{color:var(--ink)}.arrow-line{stroke:currentColor;stroke-width:2.5px;stroke-linecap:round}.arrow-head{fill:currentColor;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round}.arrow-hit{stroke:#0000;stroke-width:calc(16px * var(--inv));pointer-events:stroke;cursor:pointer}.board-arrow.selected .arrow-line,.board-arrow.selected .arrow-head{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--amber) 70%, transparent))}.board-arrow.draft{opacity:.6}.arrow-handle{r:calc(6px * var(--inv));fill:var(--paper);stroke:var(--amber);stroke-width:calc(2px * var(--inv));pointer-events:all;cursor:move}.board-empty{text-align:center;pointer-events:none;color:var(--muted);place-content:center;padding:0 24px;display:grid;position:absolute;inset:0}.board-empty h2{font-family:var(--display);letter-spacing:-.02em;color:var(--ink);margin:0 0 8px;font-size:40px;font-weight:400}.board-empty p{max-width:380px;margin:0;line-height:1.5}.board-toolbar{z-index:20;border-radius:13px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.board-toolbar .icon-btn{width:34px;height:34px}.board-sep{background:var(--line-strong);width:1px;height:20px;margin:0 5px}.board-zoom{min-width:52px;height:30px;color:var(--ink-soft);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:12px}.board-zoom:hover{background:var(--accent-soft)}.board-selbar{z-index:21;border-radius:11px;align-items:center;gap:4px;padding:4px 5px;animation:.12s fade;display:flex;position:absolute;transform:translate(-50%,-100%)}.board-selbar.below{transform:translate(-50%)}.board-count{background:var(--accent);min-width:22px;height:22px;color:var(--on-accent);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;margin-right:2px;padding:0 7px;font-size:12px;font-weight:600;display:inline-grid}.board-marquee{z-index:1000001;pointer-events:none;border:calc(1px * var(--inv)) solid var(--amber);background:color-mix(in srgb, var(--amber) 10%, transparent);border-radius:calc(3px * var(--inv));position:absolute}.board-selbar .swatch{border:1px solid var(--line-strong);cursor:pointer;border-radius:50%;width:20px;height:20px;margin:0 1px;padding:0}.board-selbar .swatch.on{box-shadow:0 0 0 2px var(--glass-strong), 0 0 0 4px var(--amber)}.popmenu.sticker-picker{grid-template-columns:repeat(8,36px);gap:2px;min-width:0;display:grid}.popmenu.sticker-picker button{justify-content:center;height:36px;padding:0;font-size:22px}@media (width<=820px){.popmenu.sticker-picker{grid-template-columns:repeat(6,36px)}.board-toolbar .icon-btn{width:32px;height:32px}.board-zoom{display:none}}:root[data-scene=progress] .bw1{transform:translate(20vw,-10vh)rotate(-10deg)}:root[data-scene=progress] .bw2{transform:translate(-30vw,14vh)}:root[data-scene=progress] .bw3{transform:translate(10vw,24vh)rotate(12deg)}:root[data-scene=progress] .bw4{transform:translate(-16vw,-20vh)}:root[data-scene=progress] .bw5{transform:translate(30vw,10vh)}.progress-main{flex-direction:column;gap:18px;max-width:1080px;margin:0 auto;padding:48px 32px 80px;display:flex}.progress-main .projects-head{margin-bottom:18px}.progress-off{border-radius:20px;min-height:220px;padding:24px;font-size:20px}.switch-row{color:var(--ink-soft);cursor:pointer;align-items:center;gap:10px;font-size:13px;display:inline-flex}.switch-row input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line-strong);border-radius:999px;width:34px;height:20px;transition:background .2s;position:relative}.toggle-track:after{content:"";background:var(--raised);width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .2s;position:absolute;top:2px;left:2px}.switch-row input:checked+.toggle-track{background:var(--accent)}.switch-row input:checked+.toggle-track:after{background:var(--on-accent);transform:translate(14px)}.switch-row input:focus-visible+.toggle-track{box-shadow:0 0 0 3px var(--focus-ring)}.goal-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.goal-card{border-radius:20px;align-items:center;gap:16px;padding:18px 20px;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.goal-card:nth-child(2){animation-delay:50ms}.goal-card:nth-child(3){animation-delay:.1s}.goal-card-ring{flex-shrink:0;place-items:center;width:64px;height:64px;display:grid;position:relative}.goal-card-ring span{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;position:relative}.goal-card.done .goal-card-ring span{color:var(--chart-bar);font-size:18px}.goal-ring{position:absolute;inset:0;transform:rotate(-90deg)}.goal-ring circle,.progress-chip circle{fill:none;stroke-width:5px}.goal-ring .track,.progress-chip .track{stroke:var(--accent-soft)}.goal-ring .fill,.progress-chip .fill{stroke:var(--chart-bar);stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}.goal-card-text{flex-direction:column;gap:4px;min-width:0;display:flex}.goal-card-text b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:38px;font-weight:400;line-height:1}.goal-of{color:var(--muted);font-size:12.5px}.goal-of .goal-input::placeholder{color:var(--faint);font-weight:400}.streak-card{border-radius:20px;flex-wrap:wrap;align-items:center;gap:24px 28px;padding:22px 24px;animation:.6s cubic-bezier(.2,.8,.2,1) .12s both item-in;display:flex}.streak-side{flex-direction:column;flex:230px;gap:10px;display:flex}.streak-big{align-items:baseline;gap:8px;display:flex}.streak-big svg{color:var(--faint);align-self:center}.streak-big svg.lit{color:var(--amber)}.streak-big b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:64px;font-weight:400;line-height:.9}.streak-big span{color:var(--muted)}.streak-facts{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.streak-facts b{color:var(--ink);font-weight:600}.jokers-panel{border-top:1px solid var(--line);color:var(--ink-soft);flex-direction:column;flex-basis:100%;gap:8px;padding-top:18px;font-size:13px;line-height:1.5;display:flex}.jokers-panel p{max-width:720px;margin:0}.jokers-head{align-items:center;gap:12px;display:flex}.jokers-stock{align-items:center;gap:4px;display:inline-flex}.jokers-stock svg{color:var(--line-strong)}.jokers-stock svg.on{color:var(--amber);fill:color-mix(in srgb, var(--amber) 25%, transparent)}.jokers-stock b{font-variant-numeric:tabular-nums;margin-left:4px;font-size:12.5px}.jokers-next{color:var(--ink);align-items:center;gap:10px;display:flex}.joker-pips{gap:3px;display:inline-flex}.joker-pips i{background:var(--accent-soft);width:14px;height:6px;box-shadow:inset 0 0 0 1px var(--line);border-radius:999px}.joker-pips i.on{background:var(--amber);box-shadow:none}.jokers-used{color:var(--muted);font-size:12.5px}.heatmap-wrap{flex-direction:column;flex:3 330px;gap:10px;min-width:0;display:flex}.heatmap{justify-content:flex-end;gap:3px;padding:2px;display:flex}.heat-col{flex-direction:column;gap:3px;display:flex}.heat-cell{background:var(--accent-soft);border-radius:4px;flex-shrink:0;width:15px;height:15px;display:inline-block}.heat-cell.l1{background:color-mix(in srgb, var(--chart-bar) 22%, transparent)}.heat-cell.l2{background:color-mix(in srgb, var(--chart-bar) 48%, transparent)}.heat-cell.l3{background:color-mix(in srgb, var(--chart-bar) 74%, transparent)}.heat-cell.l4{background:var(--chart-bar)}.heat-cell.future{background:0 0}.heat-cell.protected{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--amber) 55%, transparent) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--amber) 60%, transparent)}.heat-cell.today{box-shadow:0 0 0 1.5px var(--ink)}.heatmap .heat-cell:not(.future):hover{box-shadow:0 0 0 1.5px var(--focus-border)}.heat-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.heat-hover b{color:var(--ink);font-weight:500}.heat-legend{align-items:center;gap:3px;display:inline-flex}.heat-legend .heat-cell{border-radius:3px;width:11px;height:11px}.heat-legend .heat-cell.protected{margin-left:10px}.trophy-section{flex-direction:column;gap:18px;margin-top:18px;display:flex}.trophy-section h2{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:32px;font-weight:400}.trophy-family h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:11px;font-weight:600}.trophy-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.trophy{text-align:center;background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px)saturate(150%);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px 14px;display:flex}.trophy b{font-size:13px;font-weight:600}.trophy small{color:var(--muted);font-size:11.5px;line-height:1.35}.medal{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--amber) 35%, var(--raised)), color-mix(in srgb, var(--amber) 14%, transparent) 70%);width:48px;height:48px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--amber) 55%, transparent), 0 6px 14px -8px color-mix(in srgb, var(--amber) 80%, transparent);border-radius:50%;flex-shrink:0;place-items:center;font-size:24px;display:grid}.trophy.locked .medal{filter:grayscale();opacity:.35;background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--muted)}.trophy.locked b{color:var(--ink-soft)}.toast-stack{z-index:300;pointer-events:none;flex-direction:column-reverse;gap:10px;display:flex;position:fixed;bottom:20px;left:20px}.trophy-toast{pointer-events:auto;max-width:min(380px,100vw - 40px);box-shadow:var(--shadow-lg);border-radius:16px;align-items:flex-start;gap:4px;padding:10px 8px 10px 12px;animation:.5s cubic-bezier(.2,.9,.25,1.2) both toast-in;display:flex}.trophy-toast.leaving{animation:.22s ease-in both toast-out}.trophy-toast-body{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;min-width:0;padding:0;display:flex}.trophy-toast-body>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.trophy-toast b{font-size:13.5px}.trophy-toast small{color:var(--muted);font-size:12px;line-height:1.35}.trophy-toast .medal{animation:.9s cubic-bezier(.2,.9,.25,1.3) .15s both medal-pop}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}@keyframes medal-pop{0%{transform:scale(.4)rotate(-20deg)}60%{transform:scale(1.12)rotate(6deg)}}.progress-chip{border:1px solid var(--line);background:var(--surface-dim);height:30px;color:var(--ink-soft);font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-size:12.5px;display:inline-flex}.progress-chip:hover{background:var(--surface-hover)}.progress-chip svg{width:16px;height:16px;transform:rotate(-90deg)}.progress-chip circle{stroke-width:2.6px}.progress-chip .of{color:var(--muted)}.progress-chip .flame{color:var(--muted);align-items:center;gap:2px;display:inline-flex}.progress-chip .flame.lit svg{color:var(--amber)}.progress-chip .flame svg{width:13px;height:13px;transform:none}.progress-chip.in-statusbar{background:0 0;height:24px;margin-right:6px}.challenge-card h3{align-items:center;gap:6px;display:flex}.challenge-figures{flex-wrap:wrap;align-items:flex-end;gap:14px 36px;display:flex}.challenge-figures>div{flex-direction:column;gap:2px;display:flex}.challenge-figures b{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.challenge-figures b.challenge-big{font-family:var(--display);font-size:44px;font-weight:400;line-height:1}.challenge-figures span{color:var(--muted);font-size:12px}.burnup{flex-direction:column;gap:6px;display:flex}.burnup-legend{color:var(--ink-soft);gap:16px;font-size:12px;display:flex}.burnup-legend span{align-items:center;gap:6px;display:inline-flex}.burnup-legend .sw{border-top:2px solid var(--chart-bar);width:16px;height:0}.burnup-legend .sw.ideal{border-top:2px dashed var(--muted)}.burnup-plot{height:180px;position:relative}.burnup-plot svg{width:100%;height:100%;display:block;overflow:visible}.burnup-plot line,.burnup-plot path{vector-effect:non-scaling-stroke;fill:none}.burnup-base{stroke:var(--line-strong)}.burnup-target{stroke:var(--line);stroke-dasharray:2 4}.burnup-ideal{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:5 5}.burnup-line{stroke:var(--chart-bar);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.burnup-cross{stroke:var(--line-strong)}.burnup-dot{background:var(--chart-bar);width:9px;height:9px;box-shadow:0 0 0 2px var(--paper);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.burnup-tip{flex-direction:column;gap:1px;display:flex;top:0;bottom:auto}.burnup-tip span{color:var(--muted)}.burnup-goal-label{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;right:0;transform:translateY(-120%)}.burnup-axis{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.past-challenges{flex-direction:column;gap:8px;display:flex}.chip.chip-won{border-color:color-mix(in srgb, var(--amber) 45%, transparent)}@media (width<=820px){.progress-main{padding:28px 16px 64px}.goal-cards{grid-template-columns:minmax(0,1fr)}.progress-chip .of{display:none}}@media (prefers-reduced-motion:reduce){.trophy-toast,.trophy-toast .medal,.goal-card{animation:none}}:root[data-scene=calendrier] .bw1{transform:translate(-20vw,24vh)rotate(8deg)}:root[data-scene=calendrier] .bw2{transform:translate(24vw,-16vh)}:root[data-scene=calendrier] .bw3{transform:translate(-4vw,-24vh)rotate(-18deg)}:root[data-scene=calendrier] .bw4{transform:translate(-36vw,20vh)}:root[data-scene=calendrier] .bw5{transform:translate(10vw,26vh)}.calendar-page{max-width:1240px;margin:0 auto}.cal-title:first-letter{text-transform:uppercase}.cal-nav{align-items:center;gap:2px;display:inline-flex}.cal-chip{align-items:center;gap:6px;transition:opacity .15s;display:inline-flex}.cal-chip.off{opacity:.45;text-decoration:line-through}.cal-layout{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.cal-month{border-radius:20px;flex:4 560px;min-width:0;padding:10px 10px 12px;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;container-type:inline-size}.cal-weekdays{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));padding:4px 0 8px;font-size:11px;font-weight:600;display:grid}.cal-weeks{-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.cal-weeks.moving{cursor:grabbing}.cal-week{border-top:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px;display:grid;position:relative}.cal-day{border-left:1px solid var(--line);cursor:pointer;transition:background .12s;position:relative}.cal-day:first-child{border-left:0}.cal-day:hover{background:var(--accent-soft)}.cal-day.out .cal-num{color:var(--faint)}.cal-day.picked{background:color-mix(in srgb, var(--amber) 16%, transparent)}.cal-num{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500;position:absolute;top:6px;left:8px}.cal-day.today .cal-num{background:var(--accent);min-width:22px;height:22px;color:var(--on-accent);border-radius:999px;place-items:center;padding:0 5px;display:grid;top:4px;left:4px}.cal-day.focus{animation:1.6s ease-out 2 cal-focus}@keyframes cal-focus{0%{background:color-mix(in srgb, var(--amber) 30%, transparent)}}.cal-bar{z-index:1;min-width:0;color:var(--ink);background:color-mix(in srgb, var(--c) 20%, var(--glass-strong));box-shadow:inset 3px 0 0 var(--c);cursor:grab;border-radius:6px;align-items:center;gap:4px;margin:0 3px;padding:0 7px;font-size:11.5px;font-weight:500;transition:transform .12s,box-shadow .12s;display:flex;position:relative;overflow:hidden}.cal-bar:hover{background:color-mix(in srgb, var(--c) 30%, var(--glass-strong))}.cal-bar svg{color:var(--c);flex-shrink:0}.cal-bar.cont-before{box-shadow:none;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.cal-bar.cont-after{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.cal-bar.challenge{cursor:pointer;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--c) 22%, var(--glass-strong)) 0 6px, color-mix(in srgb, var(--c) 14%, var(--glass-strong)) 6px 12px)}.cal-bar.dragging{box-shadow:inset 3px 0 0 var(--c), var(--shadow);transform:translateY(-1px)}.cal-bar-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-time{color:var(--muted);font-variant-numeric:tabular-nums}.cal-more{z-index:1;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-self:start;margin-left:6px;padding:0 4px;font-size:11px;font-weight:600;position:relative}.cal-more:hover{background:var(--accent-soft);color:var(--ink)}.cal-pop-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px 4px;font-size:11px;font-weight:600}.cal-side{border-radius:20px;flex-direction:column;flex:260px;gap:12px;padding:18px 16px;animation:.6s cubic-bezier(.2,.8,.2,1) 80ms both item-in;display:flex}.cal-side h3{margin:0 4px;font-size:14px;font-weight:600}.cal-side .muted-line{margin:0 4px;line-height:1.5}.cal-upcoming{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.cal-upcoming button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:7px 6px;display:flex}.cal-upcoming button:hover{background:var(--accent-soft)}.cal-date-block{background:color-mix(in srgb, var(--c) 16%, transparent);width:42px;height:44px;box-shadow:inset 0 -3px 0 var(--c);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;line-height:1.05;display:flex}.cal-date-block b{font-family:var(--display);font-size:20px;font-weight:400}.cal-date-block small{color:var(--muted);font-size:10.5px}.cal-up-text{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-up-text b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.cal-up-text small{color:var(--muted);font-size:11.5px}.cal-up-bell{vertical-align:-1px;color:var(--amber);margin-left:5px}.agenda-form{flex-direction:column;gap:16px;display:flex}.agenda-title{border:0;border-left:4px solid var(--c);font-family:var(--display);color:var(--ink);background:0 0;outline:none;padding:4px 0 4px 12px;font-size:28px}.agenda-title::placeholder{color:var(--faint)}.field>span svg{vertical-align:-1px}.agenda-swatches{flex-wrap:wrap;gap:6px;display:flex}.agenda-swatches .swatch{cursor:pointer;border:0;border-radius:50%;width:24px;height:24px;padding:0}.agenda-swatches .swatch.on{box-shadow:0 0 0 2px var(--glass-strong), 0 0 0 4px var(--ink)}.agenda-dates{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.agenda-dates .field{flex:140px}.check-row{height:40px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.agenda-hint{color:var(--muted);font-size:11.5px}.agenda-link{align-items:center;gap:2px;padding:2px 4px 2px 8px;display:inline-flex}.agenda-link-open,.agenda-link-remove{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:5px;padding:2px;font-size:12px;display:inline-flex}.agenda-link-open:hover{color:var(--ink);text-decoration:underline}.agenda-link-remove:hover{background:var(--accent-soft)}.agenda-link-search{position:relative}.agenda-suggest{z-index:5;background:var(--glass-strong);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);border-radius:11px;flex-direction:column;padding:5px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0}.agenda-suggest button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.agenda-suggest button:hover{background:var(--accent-soft)}.agenda-actions{align-items:center}@media (width<=820px){.cal-month{flex-basis:100%;padding:6px 4px 8px}}@container (width<=560px){.cal-bar{margin:0 1px;padding:0 4px;font-size:10.5px}.cal-bar svg,.cal-time{display:none}.cal-num{left:5px}}:root[data-scene=settings] .bw1{transform:translate(-10vw,-14vh)rotate(-6deg)}:root[data-scene=settings] .bw2{transform:translate(20vw,10vh)}:root[data-scene=settings] .bw3{transform:translate(-24vw,18vh)rotate(10deg)}:root[data-scene=settings] .bw4{transform:translate(14vw,-24vh)}:root[data-scene=settings] .bw5{transform:translate(-30vw,-4vh)}.user-link{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;padding:3px 10px 3px 3px;display:inline-flex}.user-link:hover{background:var(--accent-soft)}.user-link svg{color:var(--muted)}.settings-main{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;padding:48px 32px 80px;display:flex}.settings-main .projects-head{margin-bottom:12px}.settings-card{border-radius:20px;flex-direction:column;gap:14px;padding:22px 24px;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.settings-card h2{align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.settings-card-head p,.settings-card>p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.5}.settings-form{flex-direction:column;gap:12px;display:flex}.settings-inline{flex-wrap:wrap;gap:10px;display:flex}.settings-inline .input{flex:220px;width:auto}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13.5px;display:flex}.btn.wrap{white-space:normal;text-align:left;height:auto;min-height:36px;padding:7px 14px}.segmented{background:var(--accent-soft);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.segmented button.on{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.danger-zone{border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.danger-zone h2{color:var(--danger)}.danger-list{color:var(--ink-soft);font-size:13.5px;line-height:1.55}.danger-list p{margin:0}.danger-list ul{margin:6px 0 10px;padding-left:20px}.btn.primary.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}@media (width<=820px){.settings-main{padding:28px 16px 64px}.settings-main .grid2{grid-template-columns:minmax(0,1fr)}.user-link>span:not(.avatar){display:none}}.avatar{flex-shrink:0;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.user-link>span:not(.avatar){white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.user-link.open{background:var(--accent-soft)}.user-link svg{transition:transform .15s}.user-link.open svg{transform:rotate(180deg)}.popmenu.user-menu{min-width:230px}.user-menu-head{align-items:center;gap:10px;min-width:0;padding:8px 10px 6px;display:flex}.user-menu-head>span:last-child{flex-direction:column;min-width:0;display:flex}.user-menu-head b{font-size:13.5px;font-weight:600}.user-menu-head small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.avatar-picker{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.avatar-edit{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:relative}.avatar-edit:focus-visible{outline:2px solid var(--focus-border);outline-offset:3px}.avatar-edit-badge{background:var(--raised);width:26px;height:26px;color:var(--ink);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.avatar-picker-actions{flex-direction:column;gap:6px;min-width:0;display:flex}.avatar-picker-actions small{color:var(--muted);font-size:12px}.book-cover.with-image{background:var(--raised);padding:0}.book-cover-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.book-cover.with-image:before{z-index:1;opacity:1;background:linear-gradient(90deg,#00000059,#ffffff1f 60%,#00000026);width:6px}.book-cover .book-actions{z-index:2}.book-cover .excerpt.is-summary{font-family:var(--ui);color:var(--paper-muted);text-indent:0;-webkit-line-clamp:8;white-space:pre-line;font-size:10px;line-height:1.55}.book-meta .book-title{font-family:var(--display);overflow-wrap:anywhere;font-size:19px;font-weight:400;line-height:1.1}.book-summary{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:2px 0 4px;font-size:12.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.details-fields{flex-wrap:wrap;gap:22px;display:flex}.details-cover{flex-direction:column;flex:0 0 150px;align-items:flex-start;gap:8px;display:flex}.details-cover small{color:var(--muted);font-size:11.5px;line-height:1.4}.cover-preview{aspect-ratio:148/210;border:1.5px dashed var(--line-strong);background:var(--surface-dim);width:150px;color:var(--muted);cursor:pointer;border-radius:3px 6px 6px 3px;padding:0;transition:border-color .15s,transform .2s;position:relative;overflow:hidden}.cover-preview:hover{border-color:var(--focus-border);transform:translateY(-2px)}.cover-preview>span{flex-direction:column;align-items:center;gap:8px;font-size:12px;display:flex}.cover-preview.has-image{box-shadow:var(--paper-shadow);border:0}.cover-preview img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.details-cover-actions{gap:6px;display:flex}.details-text{flex-direction:column;flex:260px;gap:14px;min-width:0;display:flex}.details-count{color:var(--muted);font-variant-numeric:tabular-nums;align-self:flex-end;font-size:11.5px}.beta-reader{--tabbar-h:0px;grid-template-columns:264px minmax(0,1fr) 320px;height:100%;display:grid;position:relative}.glass-side{background:var(--chrome);-webkit-backdrop-filter:blur(28px)saturate(140%);z-index:3;flex-direction:column;gap:14px;min-height:0;padding:16px 14px;display:flex;overflow-y:auto}.beta-side{border-right:1px solid var(--line)}.beta-notes{border-left:1px solid var(--line)}.beta-head h1{font-family:var(--display);overflow-wrap:anywhere;margin:8px 0 2px;font-size:28px;font-weight:400;line-height:1.05}.beta-head p{color:var(--muted);margin:0;font-size:13px}.beta-badge,.beta-ribbon{letter-spacing:.02em;color:#fff;background:#5a6fa8;border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.beta-toc{flex-direction:column;gap:2px;display:flex}.beta-toc button{color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 8px 8px 6px;display:flex}.beta-toc button:hover{background:var(--accent-soft)}.beta-toc button.active{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.beta-toc-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.beta-toc-count{color:var(--muted);align-items:center;gap:3px;font-size:11px;display:inline-flex}.beta-privacy{color:var(--muted);align-items:flex-start;gap:6px;margin:0;font-size:12px;line-height:1.45;display:flex}.beta-privacy svg{flex-shrink:0;margin-top:2px}.beta-side .beta-privacy{margin-top:auto}.beta-main{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.beta-desk{padding:40px 32px 120px}.beta-desk .ProseMirror{cursor:text;caret-color:#0000}.beta-hl{cursor:pointer;background:#5a6fa82e;border-radius:2px;box-shadow:inset 0 -2px #5a6fa8b3}.beta-hl.active{background:color-mix(in srgb, var(--amber) 32%, transparent);box-shadow:inset 0 -2px 0 var(--amber)}.beta-annotate{z-index:60;cursor:pointer;height:32px;box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;animation:.12s fade;display:inline-flex;position:fixed;transform:translate(-50%)}.beta-notes header h2{margin:0;font-size:15px;font-weight:600}.beta-notes header span{color:var(--muted);font-size:12px}.beta-empty{line-height:1.5}.beta-composer{background:var(--raised);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.beta-composer .actions{justify-content:flex-end;gap:6px;display:flex}.beta-composer blockquote,.beta-note blockquote,.author-note blockquote{font-family:var(--display);color:var(--ink-soft);-webkit-line-clamp:3;border-left:3px solid #5a6fa8;-webkit-box-orient:vertical;margin:0;padding-left:10px;font-size:14px;font-style:italic;line-height:1.4;display:-webkit-box;overflow:hidden}.beta-note blockquote.missing,.author-note blockquote.missing{opacity:.6;border-left-style:dashed}.beta-note-list,.author-note-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.beta-note{cursor:pointer;border:1px solid #0000;border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.beta-note:hover{background:var(--accent-soft)}.beta-note.active{background:var(--raised);border-color:color-mix(in srgb, var(--amber) 50%, transparent)}.beta-note p,.author-note p{white-space:pre-wrap;margin:0;font-size:13.5px;line-height:1.5}.beta-note footer{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;display:flex}.beta-note-actions{align-items:center;gap:2px;display:inline-flex}.beta-note-actions .icon-btn{width:26px;height:26px}.beta-mobile-bar{display:none}@media print{.beta-reader{display:none!important}}@media (width<=1100px){.beta-reader{grid-template-columns:minmax(0,1fr)}.beta-side,.beta-notes{z-index:20;width:min(320px,88vw);transition:transform .25s cubic-bezier(.2,.8,.2,1);position:absolute;top:0;bottom:0;transform:translate(-105%)}.beta-side{left:0}.beta-notes{right:0;transform:translate(105%)}.beta-reader.show-chapters .beta-side,.beta-reader.show-notes .beta-notes{box-shadow:var(--shadow-lg);transform:none}.beta-scrim{z-index:15;background:var(--scrim);display:block;position:absolute;inset:0}.beta-mobile-bar{justify-content:space-between;gap:8px;padding:10px 12px 0;display:flex}.beta-mobile-bar .btn{text-overflow:ellipsis;max-width:70%;overflow:hidden}.beta-desk{padding:20px 12px 100px}}.beta-ribbon{z-index:2;box-shadow:var(--shadow-sm);position:absolute;top:12px;left:16px}.beta-page{max-width:1180px;margin:0 auto}.beta-error{margin-bottom:14px}.beta-grid{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.beta-readers{flex:320px;max-width:420px}.beta-notes-col{flex-direction:column;flex:3 420px;gap:12px;min-width:0;display:flex}.beta-notes-col .filter-row{align-items:center}.beta-select{width:auto;max-width:240px;height:34px;font-size:13px}.invite-form{flex-direction:column;gap:8px;display:flex}.reader-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.reader-row{border-radius:10px;align-items:center;gap:10px;padding:6px 4px;display:flex}.reader-row:hover{background:var(--accent-soft)}.reader-text{flex-direction:column;flex:1;min-width:0;display:flex}.reader-text b{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.reader-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.reader-confirm{gap:4px;display:inline-flex}.beta-rules{border-top:1px solid var(--line);color:var(--muted);padding-top:12px;font-size:12px;line-height:1.5}.beta-rules p{margin:0 0 4px}.beta-rules svg{vertical-align:-1px}.beta-notes-empty{border-radius:20px;min-height:220px;font-size:18px}.author-note{border-radius:16px;flex-direction:column;gap:10px;padding:16px 18px;animation:.5s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.author-note.resolved{opacity:.6}.author-note header{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.author-note header b{color:var(--ink);font-size:13.5px}.author-note footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.author-note footer .muted-line{margin-right:auto}.notes-count.beta-count{background:#5a6fa8;top:auto;bottom:0}.beta-in-notes{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.beta-switch{width:100%;color:var(--ink);border-radius:7px;padding:8px 10px;font-size:13px}.beta-switch:hover{background:var(--accent-soft)}.beta-switch>svg{color:#5a6fa8;flex-shrink:0}.beta-switch>span:first-of-type{flex:1}.beta-in-msg{padding:2px 10px 8px}.popmenu .notes-item.beta-item{box-shadow:inset 3px 0 #5a6fa8}.popmenu .notes-item.beta-item:disabled{opacity:.5;cursor:default}.notes-item.beta-item b{font-weight:600}.beta-card{max-width:320px}.beta-card-head{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.beta-card-head b{color:var(--ink);font-size:13px}.beta-card-body{white-space:pre-wrap;margin:0;font-size:13.5px;line-height:1.5}:root[data-scene=notfound] .bw1{transform:translate(18vw,20vh)rotate(14deg)}:root[data-scene=notfound] .bw2{transform:translate(-22vw,-18vh)}:root[data-scene=notfound] .bw3{transform:translate(-8vw,28vh)rotate(-12deg)}:root[data-scene=notfound] .bw4{transform:translate(26vw,-10vh)}:root[data-scene=notfound] .bw5{transform:translate(-30vw,10vh)}.notfound{flex-wrap:wrap;justify-content:center;align-items:center;gap:48px 64px;min-height:100%;padding:48px 24px;display:flex}.notfound-sheet{aspect-ratio:148/210;background:var(--paper);width:210px;box-shadow:var(--paper-shadow);border-radius:3px 6px 6px 3px;flex-direction:column;flex-shrink:0;gap:10px;padding:48px 34px 0;animation:.7s cubic-bezier(.2,.8,.2,1) both item-in;display:flex;position:relative;transform:rotate(-3deg)}.notfound-line{background:var(--rule);border-radius:999px;width:70%;height:6px}.notfound-line.short{width:42%}.notfound-caret{background:var(--amber);width:2px;height:18px;margin-top:4px;animation:1.1s step-end infinite blink}.notfound-folio{text-align:center;font-family:var(--display);color:var(--folio);letter-spacing:.08em;font-size:15px;position:absolute;bottom:14px;left:0;right:0}.notfound-text{flex-direction:column;gap:14px;max-width:420px;animation:.7s cubic-bezier(.2,.8,.2,1) 80ms both item-in;display:flex}.notfound-text h1{font-family:var(--display);letter-spacing:-.02em;margin:6px 0 0;font-size:44px;font-weight:400;line-height:1.02}.notfound-text p{color:var(--ink-soft);margin:0;line-height:1.55}.notfound-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}@media (width<=820px){.notfound{text-align:center}.notfound-sheet{width:150px;padding:34px 24px 0}.notfound-text{align-items:center}.notfound-text h1{font-size:34px}.notfound-actions{justify-content:center}}@media (prefers-reduced-motion:reduce){.notfound-sheet,.notfound-text,.notfound-caret{animation:none}}:root[data-scene=legal] .bw1{transform:translate(-16vw,-8vh)rotate(-8deg)}:root[data-scene=legal] .bw2{transform:translate(24vw,14vh)}:root[data-scene=legal] .bw3{transform:translate(10vw,-20vh)rotate(10deg)}:root[data-scene=legal] .bw4{transform:translate(-28vw,18vh)}:root[data-scene=legal] .bw5{transform:translate(20vw,-6vh)}.legal-main{flex-direction:column;gap:16px;max-width:820px;margin:0 auto;padding:36px 24px 80px;display:flex}.legal-nav{flex-wrap:wrap;gap:4px;display:flex}.legal-nav a{color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none}.legal-nav a:hover{background:var(--accent-soft)}.legal-nav a.active{background:var(--accent);color:var(--on-accent)}.legal-doc{color:var(--ink-soft);border-radius:20px;padding:36px 40px 40px;line-height:1.65;animation:.6s cubic-bezier(.2,.8,.2,1) both item-in}.legal-doc h1{font-family:var(--display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:40px;font-weight:400;line-height:1.05}.legal-updated{color:var(--muted);margin:8px 0 24px;font-size:13px}.legal-doc h2{color:var(--ink);margin:30px 0 8px;font-size:16px;font-weight:600}.legal-doc p,.legal-doc ul{margin:0 0 12px}.legal-doc ul{padding-left:20px}.legal-doc li{margin-bottom:4px}.legal-doc a{color:var(--ink);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.legal-doc b{color:var(--ink);font-weight:600}.legal-lead{color:var(--ink);font-size:16px}.legal-note{color:var(--muted);border-left:2px solid var(--line-strong);padding-left:12px;font-size:13px}.legal-todo{background:color-mix(in srgb, var(--amber) 22%, transparent);color:var(--ink);border-radius:5px;padding:1px 6px;font-size:.92em;font-weight:500}.legal-table{border-collapse:collapse;width:100%;margin:4px 0 16px;font-size:13.5px;line-height:1.5}.legal-table th,.legal-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:9px 10px}.legal-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.legal-links{color:var(--muted);font-size:12.5px}.legal-links a{color:var(--ink-soft);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.terms-check{color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:9px;font-size:13px;line-height:1.45;display:flex}.terms-check input{accent-color:var(--accent);flex-shrink:0;margin-top:2px}.terms-check a{color:var(--ink);text-underline-offset:3px}@media (width<=680px){.legal-main{padding:24px 12px 64px}.legal-doc{padding:26px 20px 28px}.legal-doc h1{font-size:32px}.legal-table thead{display:none}.legal-table tr{border-bottom:1px solid var(--line);padding:10px 0;display:block}.legal-table td{border:0;padding:2px 0;display:block}.legal-table td:first-child{color:var(--ink);font-weight:600}}.storage-status{background:var(--accent-soft);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.storage-status>svg{color:var(--amber);flex-shrink:0;margin-top:2px}.storage-status.granted>svg{color:#5f8f6a}.storage-status b{font-weight:600}.storage-status p{color:var(--ink-soft);margin:2px 0 8px}.storage-status.granted p{margin-bottom:0}.storage-hint{color:var(--muted);font-size:12px}.dialog:has(.history){width:min(920px,100%)}.history{flex-direction:column;gap:14px;min-height:0;display:flex}.history-head{justify-content:space-between;align-items:center;display:flex}.history-head h2{align-items:center;gap:10px;display:flex}.history-head h2 svg{color:var(--amber)}.history-save{flex-wrap:wrap;gap:8px;display:flex}.history-save .input{flex:260px;width:auto}.history-empty{padding:8px 0;line-height:1.5}.history-body{flex-wrap:wrap;gap:16px;min-height:0;display:flex}.history-list{flex-direction:column;flex:230px;gap:10px;max-width:280px;max-height:58vh;margin:0;padding:0 4px 0 0;list-style:none;display:flex;overflow-y:auto}.history-day{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 8px 4px;font-size:11px;font-weight:600;display:block}.history-day:first-letter{text-transform:uppercase}.history-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:flex-start;gap:10px;width:100%;padding:7px 8px;display:flex}.history-item:hover{background:var(--accent-soft)}.history-item.active{background:var(--raised);box-shadow:var(--shadow-sm)}.history-time{font-variant-numeric:tabular-nums;width:40px;color:var(--muted);flex-shrink:0;padding-top:1px;font-size:12px}.history-meta{flex-direction:column;min-width:0;display:flex}.history-meta b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.history-item.kind-manual .history-meta b{font-weight:600}.history-item.kind-conflict .history-meta b{color:var(--danger)}.history-meta small{color:var(--muted);font-size:11.5px}.history-preview{flex-direction:column;flex:3 340px;gap:10px;min-width:0;display:flex}.history-preview-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.history-preview-head div{flex-direction:column;gap:2px;display:flex}.history-preview-head b{font-size:14px}.history-preview-head small{color:var(--muted);font-size:12px}.history-paper{background:var(--paper);max-height:46vh;box-shadow:var(--paper-shadow);border-radius:4px;padding:28px 32px;overflow-y:auto}.history-doc .ProseMirror{color:var(--paper-ink);outline:none;font-family:Literata,Georgia,serif;font-size:14px;line-height:1.6}.history-doc .ProseMirror p{margin:0 0 .4em}.history-doc .ProseMirror h1,.history-doc .ProseMirror h2,.history-doc .ProseMirror h3{margin:0 0 .8em;font-weight:400}.history-actions,.history-confirm{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.history-confirm span{color:var(--ink-soft);margin-right:auto;font-size:13px}@media (width<=680px){.history-list{max-width:none;max-height:26vh}.history-paper{max-height:40vh;padding:18px 16px}}.feedback-fab{z-index:90;border:1px solid var(--glass-border);background:var(--glass-strong);width:34px;height:34px;color:var(--ink-soft);box-shadow:var(--shadow);cursor:pointer;opacity:.55;border-radius:50%;place-items:center;transition:opacity .15s,transform .15s;display:grid;position:fixed;bottom:70px;right:16px}.feedback-fab:hover,.feedback-fab:focus-visible{opacity:1;transform:scale(1.06)}.feedback-panel{z-index:250;width:min(360px,100vw - 32px);max-height:calc(100vh - 100px);box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;gap:12px;padding:14px 16px 16px;animation:.18s cubic-bezier(.2,.7,.3,1) rise;display:flex;position:fixed;bottom:70px;right:16px;overflow-y:auto}.feedback-panel header{justify-content:space-between;align-items:center;display:flex}.feedback-panel header b{font-size:14.5px}.feedback-kinds{background:var(--accent-soft);border-radius:10px;gap:4px;padding:3px;display:flex}.feedback-kinds button{height:30px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.feedback-kinds button.on{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.feedback-context{color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:8px;font-size:12.5px;display:flex}.feedback-context input{accent-color:var(--accent);margin-top:2px}.feedback-context small{color:var(--muted);margin-top:2px;font-size:11.5px;line-height:1.4;display:block}.feedback-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.feedback-hide{color:var(--muted);margin-right:auto;font-size:12px;font-weight:400}.feedback-sent{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:8px 0 4px;display:flex}.feedback-sent p{color:var(--ink-soft);margin:0;font-size:13.5px;line-height:1.5}.feedback-check{color:#5f8f6a;background:#5f8f6a2e;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}@media print{.feedback-fab,.feedback-panel{display:none}}.cal-chip.cal-manage,.chip.cal-manage{color:var(--muted);border-style:dashed}.cal-up-check{white-space:nowrap}.cal-up-check svg{vertical-align:-1px}.popmenu.event-card{cursor:default;gap:0;width:min(340px,100vw - 16px);padding:0}.event-card-head{border-left:4px solid var(--c);border-radius:11px 11px 0 0;justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 10px 10px 16px;display:flex}.event-card-head h3{font-family:var(--display);overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:400;line-height:1.15}.event-card-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:0 16px 12px;font-size:12.5px;display:flex}.event-card-meta>span:nth-child(2):first-letter{text-transform:uppercase}.event-card-remind{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.event-card-section{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:10px 16px;display:flex}.event-card-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.event-card-notes{white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;margin:0;font-size:13px;line-height:1.5;overflow-y:auto}.event-checklist{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.event-checklist label{cursor:pointer;align-items:flex-start;gap:8px;padding:3px 0;font-size:13px;line-height:1.4;display:flex}.event-checklist input,.checklist-row input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;margin-top:2px}.event-checklist label.done span{color:var(--muted);text-decoration:line-through}.event-card-actions{border-top:1px solid var(--line);justify-content:flex-end;padding:10px 12px 12px;display:flex}.popmenu.event-card .btn{border:1px solid var(--accent);border-radius:9px;justify-content:center;height:30px;padding:0 12px}.popmenu.event-card .icon-btn{justify-content:center;width:28px;height:28px;padding:0}.popmenu.event-card .chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;gap:6px;padding:4px 10px;font-size:12px}.checklist-editor{flex-direction:column;gap:4px;display:flex}.checklist-row{align-items:center;gap:8px;display:flex}.checklist-row .input{flex:1;height:34px}.checklist-row.done .input{color:var(--muted);text-decoration:line-through}.checklist-row.add{color:var(--muted);padding-left:1px}.checklist-row.add .input{border-style:dashed}.category-form{background:var(--accent-soft);border-radius:12px;flex-direction:column;gap:10px;margin-top:8px;padding:12px;display:flex}.category-form-actions{justify-content:flex-end;gap:6px;display:flex}.category-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.category-list li{border-radius:9px;align-items:center;gap:10px;min-height:38px;padding:2px 4px 2px 8px;font-size:13.5px;display:flex}.category-list li:hover{background:var(--accent-soft)}.category-list li.editing{padding:0;display:block}.category-list li.editing:hover{background:0 0}.category-name{flex:1;min-width:0}.category-list li.builtin small{color:var(--muted);padding-right:8px;font-size:11.5px}.category-actions,.category-confirm{align-items:center;gap:4px;display:inline-flex}.category-confirm small{color:var(--muted);margin-right:4px;font-size:11.5px}.error-screen{background:var(--desk);flex-wrap:wrap;justify-content:center;align-items:center;gap:48px 64px;min-height:100%;padding:48px 24px;display:flex}.error-blot{background:var(--accent);opacity:.85;width:54px;height:46px;box-shadow:34px 22px 0 -16px var(--accent), -14px 30px 0 -19px var(--accent);border-radius:58% 42% 63% 37%/46% 58% 42% 54%;margin:18px 0 0 22px}.error-status{font-size:13px;color:var(--muted)!important}.error-details{color:var(--muted);flex-direction:column;align-items:flex-start;gap:8px;margin-top:4px;font-size:12.5px;display:flex}.error-details .linklike{color:var(--muted);font-weight:400}.error-details pre{background:var(--accent-soft);white-space:pre-wrap;overflow-wrap:anywhere;width:100%;max-width:560px;max-height:220px;color:var(--ink-soft);text-align:left;border-radius:10px;margin:0;padding:10px 12px;font-size:11.5px;line-height:1.5;overflow:auto}.panel-error{border-radius:20px;flex-direction:column;gap:10px;max-width:560px;margin:40px auto 0;padding:28px 30px;display:flex}.panel-error h2{font-family:var(--display);margin:0;font-size:30px;font-weight:400;line-height:1.1}.panel-error p{color:var(--ink-soft);margin:0;line-height:1.55}@media (width<=820px){.error-screen{text-align:center}.error-screen .notfound-text,.error-details{align-items:center}}html.no-glass *{-webkit-backdrop-filter:none!important}html.no-glass .glass,html.no-glass .popmenu,html.no-glass .dialog,html.no-glass .tab{background:var(--glass-ghost)}html.no-glass .sidebar,html.no-glass .glass-side,html.no-glass .topbar{background:var(--chrome-ghost)}html.no-motion .blob{animation:none!important}html.no-motion .bw{transition:none!important}.appearance{flex-direction:column;gap:18px;padding-top:4px;display:flex}.appearance-block{flex-direction:column;gap:8px;min-width:0;display:flex}.appearance-label{font-size:13.5px}.appearance-hint{color:var(--muted);font-size:12px;display:block}.accent-swatches{flex-wrap:wrap;gap:8px;display:flex}.accent-swatch{border:1px solid var(--line-strong);color:#fff;cursor:pointer;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;transition:transform .12s;display:grid;position:relative}.accent-swatch:hover{transform:scale(1.08)}.accent-swatch.on{box-shadow:0 0 0 2px var(--glass-strong), 0 0 0 4px var(--ink)}.accent-swatch svg{filter:drop-shadow(0 0 2px #0009)}.accent-custom{background:conic-gradient(#e0565b,#e8b04a,#7bc46c,#4fb3c8,#5a6fa8,#a56cc1,#e0565b)}.accent-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.ambiance-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.ambiance-tile{border:1px solid var(--line);background:var(--surface-dim);color:var(--ink-soft);cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:6px 6px 8px;font-size:12.5px;display:flex}.ambiance-tile:hover{background:var(--surface-hover)}.ambiance-tile.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--ink)}.ambiance-preview{border:1px solid var(--line);filter:saturate(1.1);border-radius:8px;height:46px;display:block}.appearance-fonts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.font-choices{flex-direction:column;gap:4px;display:flex}.font-choice{border:1px solid var(--line);background:var(--surface-dim);text-align:left;color:var(--ink-soft);cursor:pointer;border-radius:9px;padding:7px 12px;font-size:14px}.font-choice.display{font-size:19px;line-height:1.2}.font-choice:hover{background:var(--surface-hover)}.font-choice.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--ink)}.landing{min-height:100%;overflow-x:hidden}.landing-nav{z-index:20;background:var(--topbar);-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:14px 32px;display:flex;position:sticky;top:0}.landing-nav nav{gap:20px;margin-right:auto;display:flex}.landing-nav nav a{color:var(--ink-soft);font-size:13.5px;text-decoration:none}.landing-nav nav a:hover{color:var(--ink)}.landing-nav-actions{align-items:center;gap:8px;display:flex}.landing-alert{max-width:720px;margin:16px auto 0}.landing-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:56px;max-width:1180px;margin:0 auto;padding:72px 32px 56px;display:grid}.landing-hero-text{flex-direction:column;align-items:flex-start;gap:20px;animation:.7s cubic-bezier(.2,.8,.2,1) both item-in;display:flex}.landing-hero h1{font-family:var(--display);letter-spacing:-.025em;margin:0;font-size:clamp(44px,6vw,76px);font-weight:400;line-height:.98}.landing-hero h1 em{color:var(--amber)}.landing-hero p{max-width:520px;color:var(--ink-soft);margin:0;font-size:17px;line-height:1.6}.landing-ctas{flex-wrap:wrap;gap:10px;display:flex}.landing-ctas .btn{height:44px;padding:0 20px;font-size:15px}.landing-hero small,.landing-muted{color:var(--muted);font-size:13px}.landing-muted a{color:var(--ink-soft)}.hero-mock{min-height:420px;animation:.8s cubic-bezier(.2,.8,.2,1) .1s both item-in;position:relative}.mock-window{box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;inset:24px 0 24px 32px;transform:rotate(-1.2deg)}.mock-tabs{gap:6px;display:flex}.mock-tabs span{color:var(--muted);background:var(--surface-dim);border-radius:8px;padding:4px 10px;font-size:11px}.mock-tabs span.on{background:var(--accent);color:var(--on-accent)}.mock-body{flex:1;grid-template-columns:130px 1fr;gap:12px;min-height:0;display:grid}.mock-toc{flex-direction:column;gap:4px;padding-top:4px;display:flex}.mock-toc span{color:var(--ink-soft);border-radius:7px;padding:6px 8px;font-size:11px}.mock-toc span.on{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.mock-page{background:var(--paper);box-shadow:var(--paper-shadow);color:var(--paper-ink);border-radius:2px;padding:26px 28px;font-family:Literata,Georgia,serif;overflow:hidden}.mock-page h4{text-align:center;font-family:var(--display);margin:0 0 14px;font-size:20px;font-weight:400}.mock-page p{text-indent:1.4em;margin:0 0 6px;font-size:11.5px;line-height:1.7}.mock-page mark{color:inherit;background:#5a6fa82e;box-shadow:inset 0 -2px #5a6fa8b3}.mock-page u{-webkit-text-decoration:underline dotted var(--amber);text-decoration:underline dotted var(--amber);text-underline-offset:3px}.mock-card{box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;animation:6s ease-in-out infinite alternate mock-float;display:flex;position:absolute}.mock-card b{font-size:12.5px;display:block}.mock-card small{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.mock-character{top:0;right:-8px}.mock-avatar{color:#fff;background:#a0607a;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.mock-trophy{animation-delay:-2s;bottom:6px;left:0}.mock-medal{font-size:18px}.mock-note{border-left:3px solid #5a6fa8;flex-direction:column;align-items:flex-start;gap:4px;max-width:230px;animation-delay:-4s;bottom:64px;right:18px}.mock-note span{font-family:var(--display);font-size:14px;line-height:1.3}.mock-event{max-width:180px;animation-delay:-1s;top:56%;left:-14px}.mock-event svg{color:#c25b7a}@keyframes mock-float{to{transform:translateY(-8px)}}.landing-section{max-width:1180px;margin:0 auto;padding:56px 32px}.landing-section h2{font-family:var(--display);letter-spacing:-.02em;margin:0 0 28px;font-size:clamp(32px,4vw,44px);font-weight:400;line-height:1.05}.landing-features{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.landing-feature{animation:.6s cubic-bezier(.2,.8,.2,1) both item-in;animation-delay:calc(var(--i) * 50ms);border-radius:18px;flex-direction:column;gap:8px;padding:22px 22px 20px;display:flex}.landing-feature-icon{background:var(--accent);width:36px;height:36px;color:var(--on-accent);border-radius:10px;place-items:center;margin-bottom:4px;display:grid}.landing-feature h3{margin:0;font-size:16px;font-weight:600}.landing-feature p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.landing-promises{flex-wrap:wrap;justify-content:center;gap:10px 28px;max-width:1180px;margin:0 auto;padding:8px 32px 24px;display:flex}.landing-promises span{color:var(--ink-soft);align-items:center;gap:8px;font-size:14px;display:inline-flex}.landing-promises svg{color:var(--amber)}.landing-beta{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:48px;display:grid}.landing-beta-text p{color:var(--ink-soft);margin:0 0 12px;font-size:16px;line-height:1.6}.landing-request{border-radius:20px;flex-direction:column;gap:14px;padding:24px;display:flex}.landing-request .btn.primary{height:42px}.landing-request-sent{text-align:center;align-items:center}.landing-request-sent h3{font-family:var(--display);margin:0;font-size:26px;font-weight:400}.landing-request-sent p{color:var(--ink-soft);margin:0}.landing-footer{border-top:1px solid var(--line);max-width:1180px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin:24px auto 0;padding:24px 32px 40px;font-size:13px;display:flex}.landing-footer .logo{font-size:22px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-sub{color:var(--muted);margin:-6px 0 2px;font-size:13.5px;line-height:1.5}.auth-password-label{justify-content:space-between;align-items:baseline;display:flex}.auth-password-label .linklike{color:var(--muted);font-size:12px;font-weight:400}.auth-submit{height:42px}.auth-switch{text-align:center;color:var(--muted);font-size:13px}@media (width<=900px){.landing-hero{grid-template-columns:minmax(0,1fr);gap:32px;padding:40px 20px 32px}.hero-mock{min-height:360px}.landing-beta{grid-template-columns:minmax(0,1fr);gap:20px}}@media (width<=640px){.landing-nav{gap:12px;padding:12px 16px}.landing-nav nav{display:none}.landing-nav-actions{margin-left:auto}.landing-section{padding:40px 16px}.landing-promises,.landing-footer{padding-left:16px;padding-right:16px}.hero-mock{min-height:300px}.mock-window{inset:30px 0}.mock-body{grid-template-columns:minmax(0,1fr)}.mock-toc,.mock-event,.mock-tabs span:nth-child(n+3),.mock-note{display:none}}@media (prefers-reduced-motion:reduce){.mock-card,.landing-feature,.landing-hero-text,.hero-mock{animation:none}}.trash-link{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;margin-top:2px;padding:7px 10px;font-size:12.5px;display:flex}.trash-link:hover{background:var(--accent-soft);color:var(--ink)}.trash-head{justify-content:space-between;align-items:center;display:flex}.trash-empty{text-align:center;color:var(--muted);margin:0;padding:18px 0}.trash-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.trash-list li{border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 6px 8px 10px;display:flex}.trash-list li:hover{background:var(--accent-soft)}.trash-text{flex-direction:column;flex:1;min-width:160px;display:flex}.trash-text b{font-size:14px;font-weight:600}.trash-text small{color:var(--muted);font-size:12px}.trash-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.trash-footer{flex-wrap:wrap;align-items:center}.tour{z-index:2147483000;position:fixed;inset:0}.tour-block{position:absolute;inset:0}.tour-hole{box-shadow:0 0 0 2px var(--accent), 0 0 0 9999px #0e101a8c;pointer-events:none;border-radius:12px;transition:left .35s cubic-bezier(.2,.7,.3,1),top .35s cubic-bezier(.2,.7,.3,1),width .35s cubic-bezier(.2,.7,.3,1),height .35s cubic-bezier(.2,.7,.3,1);position:absolute}.tour-hole.none{box-shadow:0 0 0 9999px #0e101a8c}.tour-hole.soft{box-shadow:0 0 0 2px var(--accent), 0 0 0 9999px #0e101a38}.tour-bubble{background:var(--glass-strong);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--glass-border);width:min(360px,100vw - 32px);box-shadow:var(--shadow-lg);opacity:0;border-radius:16px;flex-direction:column;gap:10px;padding:18px 20px 16px;transition:transform .35s cubic-bezier(.2,.7,.3,1),opacity .2s;display:flex;position:absolute;top:0;left:0}.tour-bubble.shown{opacity:1}.tour-top{justify-content:space-between;align-items:center;margin:-4px -8px -6px 0;display:flex}.tour-count{letter-spacing:.04em;color:var(--muted);font-size:11.5px;font-weight:600}.tour-bubble h2{font-family:var(--display);margin:0;font-size:26px;font-weight:400;line-height:1.1}.tour-text{color:var(--ink-soft);font-size:14px;line-height:1.55}.tour-text p{margin:0 0 8px}.tour-text p:last-child{margin:0}.tour-progress{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.tour-progress span{background:var(--line-strong,#7f7f7f47);border-radius:3px;width:6px;height:6px;transition:width .25s,background .25s}.tour-progress span.done{background:color-mix(in oklab, var(--accent) 45%, transparent)}.tour-progress span.on{background:var(--accent);width:18px}.tour-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.tour-actions .linklike{color:var(--muted);font-size:13px}.tour-actions .btn.primary{margin-left:auto}@media (prefers-reduced-motion:reduce){.tour-hole,.tour-bubble{transition:none}}
