@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-wght-normal-CGKlZYBf.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-wght-normal-DLqwHbi6.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-wght-normal-e3e57Shi.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-wght-normal-CO1l-giJ.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-wght-normal-LcSrhZ7T.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-wght-normal-BnEbWgdZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-wght-normal-DLxlUchJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-wght-italic-DrMGjC4f.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-wght-italic-C2hF6zFe.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-wght-italic-f6xT_0ee.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-wght-italic-9BAkQpca.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-wght-italic-LyOFdRXZ.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-wght-italic-CC1SwlwQ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-wght-italic-Bm_GJfSc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=cafe]{--bg:#f6efe4;--bg-elevated:#fffaf2;--bg-sunken:#efe5d6;--bg-hover:#ebdfcd;--border:#e4d5c1;--border-strong:#d4c0a6;--text:#4a3f35;--text-muted:#8a7a6a;--text-faint:#b3a593;--accent:#c9906b;--accent-strong:#a8714f;--accent-soft:#f3e0cf;--accent-contrast:#fffaf2;--danger:#c76f6f;--danger-soft:#f6dcdc;--success:#7fa37a;--success-soft:#e0ecd9;--warning:#d6a64f;--paper:#fffdf8;--shadow:0 1px 2px #4a3f350f, 0 4px 16px #4a3f3512;--shadow-lg:0 12px 40px #4a3f3524;--pastel-1:#f2c4b3;--pastel-2:#c9dcb8;--pastel-3:#c6d7ec;--pastel-4:#dccbea;--pastel-5:#f3dfa6;--pastel-6:#f2c9dc;--type-character:#eb6834;--type-location:#1baf7a;--type-item:#eda100;--type-faction:#2a78d6;--type-lore:#4a3aa7;--type-other:#9a8f84;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=lavanda]{--bg:#f3effa;--bg-elevated:#fdfbff;--bg-sunken:#e9e2f5;--bg-hover:#e0d7f0;--border:#ddd3ee;--border-strong:#c8badf;--text:#3f3a4d;--text-muted:#7c7490;--text-faint:#ada5c0;--accent:#9b87c9;--accent-strong:#7a65ad;--accent-soft:#e7def7;--accent-contrast:#fdfbff;--paper:#fefcff;--shadow:0 1px 2px #3f3a4d0f, 0 4px 16px #3f3a4d12;--shadow-lg:0 12px 40px #3f3a4d24}[data-theme=matcha]{--bg:#eef3ea;--bg-elevated:#fbfdf8;--bg-sunken:#e1eadb;--bg-hover:#d6e2cf;--border:#d5e0cd;--border-strong:#bccdb1;--text:#36402f;--text-muted:#6f7d66;--text-faint:#a3b099;--accent:#7fa37a;--accent-strong:#5f8559;--accent-soft:#dbe9d4;--accent-contrast:#fbfdf8;--paper:#fdfefb;--shadow:0 1px 2px #36402f0f, 0 4px 16px #36402f12;--shadow-lg:0 12px 40px #36402f24}[data-theme=melocoton]{--bg:#fbf0ea;--bg-elevated:#fffaf7;--bg-sunken:#f6e2d8;--bg-hover:#f1d6c9;--border:#f0dacf;--border-strong:#e3c1b1;--text:#4d3a33;--text-muted:#8f7369;--text-faint:#c0a69b;--accent:#df8f77;--accent-strong:#c2705a;--accent-soft:#f9dccf;--accent-contrast:#fffaf7;--paper:#fffcfa;--shadow:0 1px 2px #4d3a330f, 0 4px 16px #4d3a3312;--shadow-lg:0 12px 40px #4d3a3324}[data-theme=chimenea]{--bg:#2a2420;--bg-elevated:#352d28;--bg-sunken:#231e1b;--bg-hover:#40362f;--border:#463b33;--border-strong:#5a4b40;--text:#efe3d3;--text-muted:#b3a291;--text-faint:#7d6e61;--accent:#e0a878;--accent-strong:#f0bd90;--accent-soft:#4a3a2f;--accent-contrast:#2a2420;--danger:#e08c8c;--danger-soft:#4a2f2f;--success:#9cc496;--success-soft:#33402f;--paper:#302823;--shadow:0 1px 2px #00000040, 0 4px 16px #00000040;--shadow-lg:0 12px 40px #00000073;--pastel-1:#8a5a4c;--pastel-2:#5f7353;--pastel-3:#4f6582;--pastel-4:#6d5a85;--pastel-5:#8a7543;--pastel-6:#85566b;--type-character:#d95926;--type-location:#199e70;--type-item:#c98500;--type-faction:#3987e5;--type-lore:#9085e9;--type-other:#8a7d71;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=halloween]{--bg:#f8e5cb;--bg-elevated:#fffaf2;--bg-sunken:#f0cfa8;--bg-hover:#ebc49a;--border:#e9c79f;--border-strong:#d6a676;--text:#3d2a22;--text-muted:#694c3c;--text-faint:#a88d7b;--accent:#b9521a;--accent-strong:#9e4a1c;--accent-soft:#fbd3ac;--accent-contrast:#fffaf2;--danger:#b5473d;--danger-soft:#f6d6cf;--success:#5f7d34;--success-soft:#e1e8c9;--warning:#c9861f;--paper:#fffaf0;--shadow:0 1px 2px #3d2a2212, 0 4px 16px #3d2a2214;--shadow-lg:0 12px 40px #3d2a2229;--pastel-1:#f2b98a;--pastel-2:#c9d29f;--pastel-3:#c3cadc;--pastel-4:#d8bfd9;--pastel-5:#edd08c;--pastel-6:#e7b2b2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}:root{--font-ui:"Nunito Variable", "Nunito", system-ui, -apple-system, sans-serif;--font-display:"Fraunces Variable", "Fraunces", Georgia, serif;--font-prose:"Literata Variable", "Literata", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--radius-sm:8px;--radius:12px;--radius-lg:18px;--sidebar-width:272px;--topbar-height:56px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--viewport-height:var(--app-height,100dvh);--topbar-total:calc(var(--topbar-height) + var(--safe-top))}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:15px;line-height:1.5;transition:background-color .25s,color .25s}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}h1{font-size:2rem}h2{font-size:1.45rem}h3{font-size:1.1rem}p{margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.85rem}.tiny{font-size:.75rem}.nowrap{white-space:nowrap}.row{align-items:center;gap:.5rem;display:flex}.row-between{justify-content:space-between;align-items:center;gap:1rem;display:flex}.stack{flex-direction:column;gap:1rem;display:flex}.stack-sm{flex-direction:column;gap:.5rem;display:flex}.grow{flex:1;min-width:0}.center-screen{min-height:100vh;min-height:var(--viewport-height);place-items:center;display:grid}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.btn{background:var(--bg-sunken);color:var(--text);white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1rem;font-size:.92rem;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--bg-hover);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent)}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{background:0 0}.btn-link{font:inherit;color:var(--accent-strong);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.btn-ghost:hover{background:var(--bg-hover)}.btn-outline{border-color:var(--border-strong);background:0 0}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{padding:.35rem .75rem;font-size:.84rem}.btn-lg{padding:.8rem 1.5rem;font-size:1rem}.btn-block{width:100%}.icon-btn{width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.icon-btn.active{background:var(--accent-soft);color:var(--accent-strong)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.field{flex-direction:column;gap:.35rem;display:flex}.field>label,.label{color:var(--text-muted);font-size:.82rem;font-weight:700}.input,.textarea,.select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);width:100%;color:var(--text);padding:.6rem .8rem;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.textarea{resize:vertical;min-height:80px;line-height:1.55}.input-bare{background:0 0;border:none;border-radius:6px;width:100%;padding:.2rem .3rem}.input-bare:hover{background:var(--bg-hover)}.input-bare:focus{background:var(--bg-elevated);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.9rem}.form-success{color:var(--success);background:var(--success-soft);border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.9rem}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.25rem}.card-flat{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card-title{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.05rem;font-weight:600}.badge{background:var(--bg-sunken);color:var(--text-muted);border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge-success{background:var(--success-soft);color:var(--success)}.chip{background:var(--bg-sunken);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.8rem;display:inline-flex}.chip button{color:var(--text-faint);background:0 0;border:none;padding:0;display:grid}.chip button:hover{color:var(--danger)}.dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.status-idea{background:var(--text-faint)}.status-draft{background:var(--warning,#d6a64f)}.status-revised{background:var(--pastel-3);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--text) 25%, transparent)}.status-final{background:var(--success)}.progress{background:var(--bg-sunken);border-radius:999px;height:8px;overflow:hidden}.progress>span{background:var(--accent);border-radius:999px;height:100%;transition:width .4s;display:block}.progress.done>span{background:var(--success)}.tabs{background:var(--bg-sunken);border-radius:999px;flex-wrap:wrap;gap:.25rem;width:fit-content;padding:.25rem;display:flex}.tab{color:var(--text-muted);background:0 0;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .95rem;font-size:.88rem;font-weight:600;display:inline-flex}.tab:hover{color:var(--text);text-decoration:none}.tab.active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#281e1459;place-items:center;padding:16px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:calc(100vh - 32px);max-height:calc(var(--viewport-height) - 32px);padding:1.5rem;animation:.2s pop-in;overflow:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-emoji{font-size:2.5rem}.empty h3{color:var(--text)}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.swatches{flex-wrap:wrap;gap:.4rem;display:flex}.swatch{border:2px solid var(--bg-elevated);width:26px;height:26px;box-shadow:0 0 0 1px var(--border);cursor:pointer;border-radius:50%;padding:0}.swatch.selected{box-shadow:0 0 0 2px var(--text)}.emoji-grid{flex-wrap:wrap;gap:.25rem;display:flex}.emoji-option{background:0 0;border:none;border-radius:8px;width:36px;height:36px;font-size:1.25rem}.emoji-option:hover{background:var(--bg-hover)}.emoji-option.selected{background:var(--accent-soft)}.toast{bottom:calc(20px + var(--safe-bottom));background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);z-index:200;border-radius:999px;padding:.65rem 1.1rem;font-size:.9rem;font-weight:600;animation:.2s pop-in;position:fixed;left:50%;transform:translate(-50%)}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart-bar{fill:var(--accent);transition:opacity .15s}.chart-bar.goal-met{fill:var(--success)}.chart-hit{fill:#0000;cursor:default}.chart-hit:hover+.chart-bar,.chart-bar.hover{opacity:.75}.chart-axis{fill:var(--text-faint);font-size:10px;font-family:var(--font-ui)}.chart-goal{stroke:var(--text-faint);stroke-dasharray:4 4;stroke-width:1px}.chart-baseline{stroke:var(--border-strong);stroke-width:1px}.chart-tooltip{background:var(--text);color:var(--bg);pointer-events:none;white-space:nowrap;border-radius:8px;margin-top:-8px;padding:.3rem .6rem;font-size:.78rem;position:absolute;transform:translate(-50%,-100%)}.ring-wrap{place-items:center;display:inline-grid;position:relative}.ring-wrap .ring-label{text-align:center;line-height:1.1;position:absolute}.ring-track{stroke:var(--bg-sunken)}.ring-value{stroke:var(--accent);transition:stroke-dashoffset .6s}.ring-value.done{stroke:var(--success)}.spin{animation:1s linear infinite spin}@media (pointer:coarse){.icon-btn{border-radius:10px;width:40px;height:40px}.btn{min-height:40px}.btn-sm{min-height:36px;padding:.4rem .85rem}.tab{min-height:38px}.swatch{width:34px;height:34px}.emoji-option{width:44px;height:44px}.chip{padding:.3rem .65rem}.chip button{place-items:center;min-width:24px;min-height:24px;display:grid}.menu-item{min-height:44px}}.app-shell{min-height:100vh;min-height:var(--viewport-height);padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex}.topbar{height:var(--topbar-total);padding:var(--safe-top) 16px 0;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.logo{font-family:var(--font-display);color:var(--text);align-items:center;gap:.5rem;font-size:1.15rem;font-weight:600;display:inline-flex}.logo:hover{text-decoration:none}.logo-mark{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);border-radius:9px;place-items:center;display:grid}.topbar-nav{gap:.25rem;display:flex}.topbar-right{align-items:center;gap:.5rem;margin-left:auto;display:flex}.plan-pill{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:.3rem .7rem;font-size:.8rem;font-weight:700}.plan-pill:hover{filter:brightness(.97);text-decoration:none}.avatar{background:var(--pastel-4);width:32px;height:32px;color:var(--text);border:none;border-radius:50%;place-items:center;font-size:.85rem;font-weight:700;display:grid}.menu{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:50;min-width:200px;padding:.35rem;position:absolute;top:calc(100% + 6px);right:0}.menu-item{text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.5rem .7rem;font-size:.9rem;display:flex}.menu-item:hover{background:var(--bg-hover);text-decoration:none}.menu-sep{background:var(--border);height:1px;margin:.3rem 0}.page{width:100%;max-width:1120px;margin:0 auto;padding:32px 16px 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header p{color:var(--text-muted);margin-top:.3rem}.dash-grid{grid-template-columns:300px 1fr;gap:1.25rem;margin-bottom:2.5rem;display:grid}.today-card{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.big-number{font-family:var(--font-display);font-size:1.9rem;font-weight:600}.stat-row{flex-wrap:wrap;gap:1.5rem;display:flex}.stat{flex-direction:column;display:flex}.stat strong{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.stat span{color:var(--text-muted);font-size:.8rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;display:grid}.project-card{border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-lg);text-decoration:none;transform:translateY(-2px)}.project-cover{place-items:center;height:96px;font-size:2.4rem;display:grid;position:relative}.project-cover:after{content:"";background:linear-gradient(#0000 60%,#0000000a);position:absolute;inset:0}.project-body{flex-direction:column;flex:1;gap:.5rem;padding:1rem 1.1rem 1.1rem;display:flex}.project-body h3{font-size:1.15rem}.project-new{border:2px dashed var(--border-strong);box-shadow:none;min-height:220px;color:var(--text-muted);background:0 0;place-items:center;gap:.5rem;font-weight:600;display:grid}.project-new:hover{background:var(--bg-elevated);color:var(--accent-strong)}.project-shell{height:calc(100vh - var(--topbar-total));height:calc(var(--viewport-height) - var(--topbar-total));display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-sunken);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-head{padding:1rem 1rem .5rem}.sidebar-title{font-family:var(--font-display);color:var(--text);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;display:flex}.sidebar-title:hover{text-decoration:none}.project-nav{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:.25rem .6rem .75rem;display:flex}.project-nav a{color:var(--text-muted);border-radius:8px;align-items:center;gap:.6rem;padding:.45rem .6rem;font-size:.9rem;font-weight:600;display:flex}.project-nav a:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.project-nav a.active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow)}.project-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.project-content{overscroll-behavior:contain;flex:1;min-height:0;position:relative;overflow:auto}.project-mobilebar{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.project-mobilebar-title{font-family:var(--font-display);font-size:1rem;font-weight:600;line-height:1.2}.project-shell.compact .sidebar{top:var(--topbar-total);z-index:30;width:min(86vw,320px);padding-left:var(--safe-left);padding-bottom:var(--safe-bottom);box-shadow:var(--shadow-lg);transition:transform .22s;position:fixed;bottom:0;left:0;transform:translate(-105%)}.project-shell.compact .sidebar.open{transform:none}.sidebar-back{color:var(--text-muted);align-items:center;gap:.4rem;padding:0 1rem .5rem;display:flex}.sidebar-back:hover{color:var(--text);text-decoration:none}.sidebar-backdrop{z-index:29;background:#1e140f59;animation:.15s fade-in;position:fixed;inset:0}.sidebar-search{padding:.6rem .75rem}.binder{flex:1;padding:.5rem .5rem 2rem;overflow:auto}.binder-head{justify-content:space-between;align-items:center;padding:.25rem .4rem .4rem;display:flex}.binder-head span{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.75rem;font-weight:800}.binder-chapter{margin-bottom:.25rem}.binder-row{color:var(--text);border-radius:8px;align-items:center;gap:.35rem;min-height:32px;padding:.3rem .4rem;font-size:.9rem;display:flex}.binder-row:hover{background:var(--bg-hover);text-decoration:none}.binder-row .actions{gap:0;display:none}.binder-row:hover .actions,.binder-row:focus-within .actions{display:flex}.binder-row .count{color:var(--text-faint);font-size:.72rem}.binder-row:hover .count{display:none}.binder-chapter-row{font-weight:700}.binder-scene{padding-left:1.6rem}.binder-scene.active{background:var(--bg-elevated);box-shadow:var(--shadow)}.binder-row .icon-btn{width:24px;height:24px}.row-actions{align-items:center;display:flex;position:relative}.row-actions-more{display:none}.row-actions-menu{min-width:190px;top:calc(100% + 2px)}.menu-item.danger{color:var(--danger)}.menu-item:disabled{opacity:.4;cursor:default;background:0 0}@media (hover:none){.binder-row .actions{display:none!important}.binder-row .row-actions-more{display:grid}.binder-row:hover .count{display:inline}}.binder-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.write-layout{height:100%;display:flex}.write-center{flex-direction:column;flex:1;min-width:0;display:flex;container-type:inline-size}.write-toolbar{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:.25rem;padding:.5rem 1rem;display:flex}.write-tools{scrollbar-width:none;flex:1;align-items:center;gap:.15rem;min-width:0;display:flex;overflow-x:auto}.write-tools::-webkit-scrollbar{display:none}.write-toolbar-end{flex-shrink:0;margin-left:auto}.footer-save{min-width:96px}.write-footer>span{white-space:nowrap}.sheet-backdrop{z-index:40;background:#1e140f59;animation:.15s fade-in;position:fixed;inset:0}.inspector.sheet{z-index:41;width:auto;max-height:calc(var(--viewport-height) * .8);box-shadow:var(--shadow-lg);padding:0 1rem calc(1.25rem + var(--safe-bottom));border-left:none;border-radius:18px 18px 0 0;animation:.22s sheet-up;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet-header{background:var(--bg-sunken);z-index:1;padding:.5rem 0 .25rem;position:sticky;top:0}.sheet-handle{background:var(--border-strong);border-radius:4px;width:40px;height:4px;margin:0 auto .5rem;display:block}@keyframes sheet-up{0%{opacity:0;transform:translateY(30%)}}.write-toolbar .sep{background:var(--border);width:1px;height:20px;margin:0 .35rem}.write-scroll{background:var(--bg);flex:1;overflow:auto}.write-footer{padding:.45rem 1rem calc(.45rem + var(--safe-bottom));border-top:1px solid var(--border);color:var(--text-muted);background:var(--bg);align-items:center;gap:1rem;font-size:.8rem;display:flex}.write-footer .progress{width:120px;height:6px}.inspector{border-left:1px solid var(--border);background:var(--bg-sunken);flex-direction:column;flex-shrink:0;gap:1.1rem;width:300px;padding:1rem;display:flex;overflow:auto}.inspector-section{flex-direction:column;gap:.45rem;display:flex}.inspector-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);justify-content:space-between;align-items:center;font-size:.72rem;font-weight:800;display:flex}.status-picker{grid-template-columns:repeat(4,1fr);gap:.25rem;display:grid}.status-picker button{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:8px;flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .2rem;font-size:.75rem;font-weight:600;display:flex}.status-picker button.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.snapshot{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.5rem;padding:.45rem .55rem;font-size:.82rem;display:flex}.focus-mode .topbar,.focus-mode .sidebar,.focus-mode .inspector,.focus-mode .write-toolbar .hide-in-focus,.focus-mode .project-mobilebar{display:none}.focus-mode .project-shell{height:100vh;height:var(--viewport-height);padding-top:var(--safe-top)}.focus-mode .write-toolbar,.focus-mode .write-footer{opacity:0;transition:opacity .3s}.focus-mode .write-toolbar:hover,.focus-mode .write-footer:hover{opacity:1}.board{flex-direction:column;gap:1.75rem;max-width:1400px;margin:0 auto;padding:24px 16px 64px;display:flex}.board-chapter-head{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.board-chapter-head .input-bare{font-family:var(--font-display);width:auto;min-width:200px;font-size:1.2rem;font-weight:600}.board-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.index-card{background:var(--paper);min-height:170px;box-shadow:var(--shadow);border-top:6px solid var(--card-color,var(--pastel-1));background-image:repeating-linear-gradient(transparent 0 23px, color-mix(in srgb, var(--pastel-3) 35%, transparent) 23px 24px);background-position:0 44px;border-radius:6px;flex-direction:column;gap:.4rem;padding:.9rem 1rem .75rem;display:flex;position:relative}.index-card .input-bare{font-weight:700;font-family:var(--font-display);padding:.1rem .2rem;font-size:1rem}.index-card textarea.input-bare{font-family:var(--font-prose);min-height:72px;font-size:.88rem;font-weight:400;line-height:24px}.index-card-footer{color:var(--text-muted);align-items:center;gap:.35rem;margin-top:auto;font-size:.75rem;display:flex}.index-card-footer .icon-btn{width:24px;height:24px}.index-card.add{border:2px dashed var(--border-strong);box-shadow:none;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-weight:600}.index-card.add:hover{color:var(--accent-strong);background:var(--bg-elevated)}.plot-wrap{padding:24px 16px 64px}.plot-scroller{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow);max-height:calc(100vh - 220px);max-height:calc(var(--viewport-height) - 230px);overflow:auto}.plot-table{border-collapse:separate;border-spacing:0;min-width:100%}.plot-table th,.plot-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top}.plot-table thead th{background:var(--bg-elevated);z-index:2;text-align:left;min-width:220px;padding:.6rem;position:sticky;top:0}.plot-table th.scene-col,.plot-table td.scene-col{background:var(--bg-elevated);z-index:1;min-width:220px;max-width:260px;padding:.55rem .75rem;position:sticky;left:0}.plot-table thead th.scene-col{z-index:3}.plot-table .chapter-row td{background:var(--bg-sunken);font-family:var(--font-display);padding:.45rem .75rem;font-weight:600}.plot-table .chapter-row td.scene-col{background:var(--bg-sunken)}.plotline-head{border-bottom:3px solid var(--line-color);align-items:center;gap:.4rem;padding-bottom:.35rem;display:flex}.plotline-head .input-bare{font-weight:700}.plot-cell textarea{resize:none;background:0 0;border:none;width:100%;min-height:64px;padding:.55rem .65rem;font-size:.86rem;line-height:1.45;display:block}.plot-cell textarea:focus{background:color-mix(in srgb, var(--line-color) 18%, var(--bg-elevated));outline:none}.plot-cell.filled textarea{background:color-mix(in srgb, var(--line-color) 22%, var(--bg-elevated))}.plot-add-col{min-width:140px!important}.wiki-page{flex-direction:column;height:100%;display:flex}.wiki-toolbar{border-bottom:1px solid var(--border);background:var(--bg);flex-direction:column;gap:.6rem;padding:.75rem 16px;display:flex}.wiki-toolbar-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.wiki-search{border:1px solid var(--border);background:var(--bg-elevated);min-width:200px;color:var(--text-muted);border-radius:999px;flex:1;align-items:center;gap:.4rem;padding:0 .4rem 0 .8rem;display:flex}.wiki-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.wiki-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:.5rem 0}.wiki-search .icon-btn{width:24px;height:24px}.filter-chip{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.84rem;font-weight:600;display:inline-flex}.filter-chip:hover{border-color:var(--border-strong);color:var(--text)}.filter-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.filter-select{border-radius:999px;width:auto;padding:.3rem .7rem;font-size:.84rem}.codex-layout{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid}.wiki-graph-layout{flex:1;grid-template-columns:1fr;min-height:0;display:grid;position:relative}.wiki-graph-layout.has-peek{grid-template-columns:1fr 300px}.wiki-graph{touch-action:none;-webkit-user-select:none;user-select:none;background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in srgb, var(--text-faint) 35%, transparent) 1px, transparent 1px);background-size:22px 22px;min-height:0;position:relative;overflow:hidden}.wiki-graph svg{cursor:grab;display:block}.wiki-graph svg:active{cursor:grabbing}.graph-link{stroke:var(--border-strong);stroke-width:1.6px;transition:opacity .2s,stroke .2s}.graph-link.active{stroke:var(--accent);stroke-width:2.4px}.graph-link.dimmed{opacity:.2}.graph-link.quiet{opacity:.45}.graph-node{cursor:pointer;--type-color:var(--type-other);outline:none;transition:opacity .2s}.graph-node.type-character{--type-color:var(--type-character)}.graph-node.type-location{--type-color:var(--type-location)}.graph-node.type-item{--type-color:var(--type-item)}.graph-node.type-faction{--type-color:var(--type-faction)}.graph-node.type-lore{--type-color:var(--type-lore)}.graph-node.dimmed{opacity:.18}.wiki-graph.few .graph-node.dimmed{opacity:.45}.wiki-graph.few .graph-link.dimmed{opacity:.35}.graph-node-ring{fill:none;stroke:#0000;stroke-width:3px}.graph-node:hover .graph-node-ring,.graph-node:focus-visible .graph-node-ring{stroke:var(--border-strong)}.graph-node.selected .graph-node-ring{stroke:var(--text);stroke-width:3px}.graph-node-body{fill:color-mix(in srgb, var(--type-color) 22%, var(--bg-elevated));stroke:var(--type-color);stroke-width:2.5px}.graph-node-emoji{pointer-events:none}.graph-node-label{font-family:var(--font-ui);fill:var(--text);stroke:var(--bg);stroke-width:4px;paint-order:stroke;stroke-linejoin:round;pointer-events:none;font-weight:700}.graph-region-label{font-family:var(--font-display);fill:var(--text-muted);opacity:.8;pointer-events:none;stroke:var(--bg);stroke-width:5px;paint-order:stroke;font-weight:600}.type-dot{border:2px solid var(--type-color);background:color-mix(in srgb, var(--type-color) 22%, var(--bg-elevated));border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.type-dot.type-character{--type-color:var(--type-character)}.type-dot.type-location{--type-color:var(--type-location)}.type-dot.type-item{--type-color:var(--type-item)}.type-dot.type-faction{--type-color:var(--type-faction)}.type-dot.type-lore{--type-color:var(--type-lore)}.type-dot.type-other{--type-color:var(--type-other)}.depth-toggle .tab{padding:.3rem .7rem;font-size:.8rem}.graph-controls{background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:2px;padding:3px;display:flex;position:absolute;bottom:12px;left:12px}.graph-caption{background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:999px;padding:.15rem .6rem;position:absolute;bottom:10px;right:12px}.wiki-peek{border-left:1px solid var(--border);background:var(--bg-sunken);flex-direction:column;gap:.9rem;padding:1.1rem;display:flex;overflow:auto}.codex-list{border-right:1px solid var(--border);background:var(--bg);padding:1rem .75rem;overflow:auto}.codex-group{margin-bottom:1rem}.codex-group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);justify-content:space-between;padding:0 .5rem .35rem;font-size:.72rem;font-weight:800;display:flex}.codex-item{color:var(--text);border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .55rem;display:flex}.codex-item:hover{background:var(--bg-hover);text-decoration:none}.codex-item.active{background:var(--bg-elevated);box-shadow:var(--shadow)}.codex-avatar{background:var(--entry-color,var(--pastel-4));border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:1.1rem;display:grid}.codex-detail{padding:28px 32px 64px;overflow:auto}.codex-detail-inner{flex-direction:column;gap:1.25rem;max-width:760px;margin:0 auto;display:flex}.codex-hero{align-items:center;gap:1rem;display:flex}.codex-hero .codex-avatar{border-radius:18px;width:64px;height:64px;font-size:2rem}.codex-hero input.input-bare{font-family:var(--font-display);font-size:1.8rem;font-weight:600}.codex-fields{grid-template-columns:170px 1fr auto;align-items:start;gap:.35rem .75rem;display:grid}.codex-fields .label{padding-top:.45rem}.codex-fields textarea{field-sizing:content;max-height:14rem}.overview{flex-direction:column;gap:1.25rem;max-width:1000px;margin:0 auto;padding:28px 16px 64px;display:flex}.overview-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.settings-layout{grid-template-columns:200px 1fr;gap:2rem;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex}.settings-nav button{text-align:left;color:var(--text-muted);background:0 0;border:none;border-radius:10px;align-items:center;gap:.6rem;padding:.55rem .8rem;font-weight:600;display:flex}.settings-nav button:hover{background:var(--bg-hover);color:var(--text)}.settings-nav button.active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow)}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem;display:grid}.theme-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);text-align:left;flex-direction:column;gap:.55rem;padding:.5rem;display:flex}.theme-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.theme-preview{border-radius:8px;grid-template-columns:30% 1fr;height:78px;display:grid;overflow:hidden}.theme-preview .tp-side{flex-direction:column;gap:5px;padding:8px 6px;display:flex}.theme-preview .tp-main{flex-direction:column;gap:6px;padding:10px;display:flex}.theme-preview i{border-radius:3px;height:6px;display:block}.pricing{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.price-card{flex-direction:column;gap:.9rem;display:flex}.price-card.featured{border:2px solid var(--accent)}.price{font-family:var(--font-display);font-size:2.2rem;font-weight:600}.price small{color:var(--text-muted);font-size:.95rem;font-family:var(--font-ui);font-weight:400}.feature-list{flex-direction:column;gap:.45rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:flex}.feature-list li{align-items:flex-start;gap:.5rem;display:flex}.feature-list li svg{color:var(--success);flex-shrink:0;margin-top:3px}.feature-list li.off,.feature-list li.off svg{color:var(--text-faint)}.interval-toggle{display:inline-flex}.auth-page{min-height:100vh;min-height:var(--viewport-height);grid-template-columns:1fr 1fr;display:grid}.auth-art{background:var(--bg-sunken);flex-direction:column;justify-content:center;gap:1rem;padding:48px;display:flex;position:relative;overflow:hidden}.auth-art blockquote{font-family:var(--font-prose);max-width:28rem;margin:0;font-size:1.35rem;font-style:italic;line-height:1.6}.auth-art .blob{filter:blur(40px);opacity:.55;border-radius:50%;position:absolute}.auth-form-wrap{place-items:center;padding:80px 16px 32px;display:grid;position:relative}.auth-topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex;position:absolute;top:18px;left:16px;right:16px}.auth-back{color:var(--text-muted)}.auth-back:hover{color:var(--text)}.auth-art-logo{position:absolute;top:28px;left:48px}.auth-mobile-logo{display:none}.auth-form{flex-direction:column;gap:1rem;width:min(380px,100%);display:flex}.landing-nav{justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:18px 16px;display:flex}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:3rem;max-width:1120px;margin:0 auto;padding:48px 16px 64px;display:grid}.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.1}.hero p.lead{color:var(--text-muted);max-width:34rem;margin:1.1rem 0 1.6rem;font-size:1.15rem}.hero-mock{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow:hidden;transform:rotate(1.2deg)}.hero-mock-bar{background:var(--bg-sunken);gap:6px;padding:10px 12px;display:flex}.hero-mock-bar i{background:var(--border-strong);border-radius:50%;width:10px;height:10px}.hero-mock-body{grid-template-columns:34% 1fr;min-height:260px;display:grid}.hero-mock-side{background:var(--bg-sunken);flex-direction:column;gap:8px;padding:12px;font-size:.78rem;display:flex}.hero-mock-text{font-family:var(--font-prose);padding:22px;font-size:.92rem;line-height:1.75}.section{max-width:1120px;margin:0 auto;padding:56px 16px}.section h2{text-align:center;margin-bottom:.6rem;font-size:1.9rem}.section>p.muted{text-align:center;margin-bottom:2rem}.features{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.feature{flex-direction:column;gap:.5rem;display:flex}.feature-icon{border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.footer{text-align:center;padding:32px 16px calc(32px + var(--safe-bottom));color:var(--text-faint);font-size:.85rem}@media (width<=960px){.dash-grid,.hero,.auth-page,.settings-layout{grid-template-columns:1fr}.auth-art{display:none}.auth-mobile-logo{display:block}.features,.overview-grid{grid-template-columns:1fr 1fr}.inspector:not(.sheet){display:none}.codex-layout{grid-template-columns:1fr}.codex-layout.has-entry .codex-list,.codex-layout:not(.has-entry) .codex-detail{display:none}.wiki-graph-layout.has-peek{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}.wiki-peek{border-left:none;border-top:1px solid var(--border);max-height:calc(var(--viewport-height) * .38);padding-bottom:calc(1.1rem + var(--safe-bottom))}.settings-nav{flex-direction:row;overflow-x:auto}}@media (width<=720px){.features,.overview-grid,.pricing{grid-template-columns:1fr}.topbar-nav{display:none}.codex-fields{grid-template-columns:1fr auto}.codex-fields .label{grid-column:1/-1;padding:0}.codex-detail{padding:20px 16px 64px}}@media (width>=721px){.mobile-only{display:none!important}}.tree-line{fill:none;stroke:var(--border-strong);stroke-width:2px;transition:opacity .2s}.tree-couple line{stroke:var(--type-character);stroke-width:2px}.tree-couple.distant{fill:none;stroke:var(--type-character);stroke-width:2px;stroke-dasharray:6 5}.tree-line.dimmed,.tree-couple.dimmed{opacity:.2}.tree-card{cursor:pointer;outline:none;transition:opacity .2s}.tree-card.dimmed{opacity:.3}.tree-card-body{fill:var(--bg-elevated);stroke:var(--border-strong);stroke-width:1.5px;filter:drop-shadow(0 2px 5px #00000014)}.tree-card:hover .tree-card-body,.tree-card:focus-visible .tree-card-body{stroke:var(--type-character)}.tree-card.selected .tree-card-body{stroke:var(--text);stroke-width:2.5px}.tree-card-emoji{pointer-events:none;font-size:20px}.tree-card-name{font-family:var(--font-ui);fill:var(--text);pointer-events:none;font-size:14px;font-weight:700}.tree-card-sub{font-family:var(--font-ui);fill:var(--text-muted);pointer-events:none;font-size:11.5px}.family-editor{flex-direction:column;gap:.55rem;display:flex}.family-row{grid-template-columns:76px 1fr;align-items:start;gap:.5rem;display:grid}.family-row .label{padding-top:.3rem}.family-chips{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.chip-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.chip-link:hover{text-decoration:underline}.legal{max-width:760px;margin:0 auto;padding:24px 16px 64px;line-height:1.7}.legal h1{margin-bottom:.3rem}.legal h2{margin:2rem 0 .6rem;font-size:1.2rem}.legal p,.legal ul{margin:0 0 .9rem}.legal ul,.legal ol{padding-left:1.3rem}.legal ol{margin:0 0 .9rem}.legal code{background:var(--bg-sunken);border-radius:4px;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.guide-code{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:pre;margin:0 0 1rem;padding:.9rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.55;overflow-x:auto}.legal li{margin-bottom:.35rem}.legal-todo{background:var(--danger-soft);color:var(--danger);border-radius:4px;padding:0 .3rem;font-weight:700}@media (pointer:coarse){.binder-row{min-height:44px}.binder-row .icon-btn{width:36px;height:36px}.project-nav a{padding:.65rem .7rem}.codex-item{min-height:48px}.index-card-footer .icon-btn{width:36px;height:36px}.filter-chip{min-height:38px}.settings-nav button{min-height:44px}.avatar{width:40px;height:40px}.plan-pill{padding:.55rem .8rem}.logo{min-height:40px}.focus-mode .write-toolbar,.focus-mode .write-footer{opacity:.75}}@media (width<=600px){.write-toolbar{padding:.35rem .5rem}.write-toolbar .sep{margin:0 .15rem}.write-footer{gap:.6rem;padding-left:.75rem;padding-right:.75rem}.footer-session{display:none}.write-footer .progress{width:56px}.footer-save{min-width:0}}@media (width<=720px){.hide-mobile{display:none!important}.wiki-toolbar{gap:.45rem;padding:.5rem .75rem}.wiki-toolbar-row:first-child{grid-template-columns:1fr auto;display:grid}.wiki-toolbar-row:first-child .tabs{width:100%}.wiki-toolbar-row:first-child .tabs .tab{flex:1;justify-content:center;padding-left:.5rem;padding-right:.5rem}.wiki-search{grid-area:2/1/auto/-1}.wiki-new{grid-area:1/2;padding-left:.8rem;padding-right:.8rem}.wiki-filters{scrollbar-width:none;flex-wrap:nowrap;margin:0 -.75rem;padding:0 .75rem 2px;overflow-x:auto}.wiki-filters::-webkit-scrollbar{display:none}.wiki-filters>*{flex-shrink:0}.graph-caption{display:none}.graph-controls{bottom:calc(12px + var(--safe-bottom))}.plot-table th.scene-col,.plot-table td.scene-col{min-width:132px;max-width:150px}.plot-table thead th{min-width:190px}}@media (height<=500px) and (pointer:coarse){:root{--topbar-height:44px}.app-shell:has(.project-shell)>.topbar{display:none}.app-shell:has(.project-shell) .project-shell{height:var(--viewport-height);padding-top:var(--safe-top)}.project-shell.compact .sidebar{padding-top:var(--safe-top);top:0}.write-toolbar{padding-top:.2rem;padding-bottom:.2rem}.write-footer{padding-top:.25rem}.editor-page{padding-top:16px}.footer-session{display:none}}.show-xs{display:none}@media (width<=400px){.hide-xs{display:none}.show-xs{display:inline}.topbar{gap:.5rem;padding-left:12px;padding-right:12px}.page{padding-left:12px;padding-right:12px}}@container (width<=620px){.footer-session{display:none}.write-footer{gap:.6rem}.write-footer .progress{width:56px}.footer-save{min-width:0}}.guide-compare{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.guide-compare .label{margin-bottom:.35rem}.guide-compare>div{flex-direction:column;min-width:0;display:flex}.guide-compare .guide-code{flex:1;margin:0}.legal h3{margin:1.4rem 0 .4rem;font-size:1.02rem}@media (width<=640px){.guide-compare{grid-template-columns:1fr}}.editor-page{margin:0 auto;padding:48px 24px 40vh}.editor-page.width-narrow{max-width:620px}.editor-page.width-medium{max-width:740px}.editor-page.width-wide{max-width:920px}.scene-title-input{font-family:var(--font-display);width:100%;color:var(--text);background:0 0;border:none;margin-bottom:1.5rem;padding:0;font-size:1.7rem;font-weight:600}.scene-title-input:focus{outline:none}.scene-title-input::placeholder{color:var(--text-faint)}.prose{color:var(--text);caret-color:var(--accent-strong);font-size:1.12rem;line-height:1.85}.prose.font-serif{font-family:var(--font-prose)}.prose.font-sans{font-family:var(--font-ui)}.prose.font-mono{font-family:var(--font-mono);font-size:1rem}.prose .ProseMirror{outline:none;min-height:50vh}.prose .ProseMirror p{margin:0 0 .9em}.prose .ProseMirror h2{margin:1.4em 0 .6em;font-size:1.4em}.prose .ProseMirror h3{margin:1.2em 0 .5em;font-size:1.15em}.prose .ProseMirror blockquote{border-left:3px solid var(--accent-soft);color:var(--text-muted);margin:1em 0;padding-left:1em;font-style:italic}.prose .ProseMirror hr{text-align:center;border:none;margin:1.6em 0}.prose .ProseMirror hr:after{content:"✦  ✦  ✦";color:var(--text-faint);letter-spacing:.4em}.prose .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-faint);float:left;pointer-events:none;height:0;font-style:italic}.prose .ProseMirror ::selection{background:var(--accent-soft)}.snapshot-preview{font-family:var(--font-prose);white-space:pre-wrap;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);max-height:50vh;padding:1rem 1.2rem;line-height:1.7;overflow:auto}@media (width<=600px){.editor-page{padding:24px 18px 40vh}.scene-title-input{margin-bottom:1rem;font-size:1.4rem}.prose{font-size:1.06rem;line-height:1.8}}@media (pointer:coarse){.input,.select,.textarea,.filter-select,.wiki-search input,textarea.input-bare,.index-card textarea.input-bare,.plot-cell textarea,.plotline-head .input-bare,.codex-fields .input-bare,select.input-bare,.binder .input-bare{font-size:16px}.input-bare{padding-top:.4rem;padding-bottom:.4rem}.plotline-head button.dot{width:24px!important;height:24px!important}}
