:root{--color-parchment-bg: #f9f6f0;--color-parchment-card: #fdfbf7;--color-ink-deep: #2c2523;--color-ink-muted: #594d3f;--text-muted: #594d3f;--color-wax-seal: #8b2623;--color-wax-seal-hover: #a12f2c;--color-gold-accent: #c49a45;--color-border-subtle: #e6dfd5;--color-shadow: rgba(44, 37, 35, .08);--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 9999px;--transition-smooth: all .25s cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--color-parchment-bg: #141210;--color-parchment-card: #1d1917;--color-ink-deep: #ede6dc;--color-ink-muted: #a89b8c;--text-muted: #a89b8c;--color-wax-seal: #c74b48;--color-wax-seal-hover: #e05e5a;--color-gold-accent: #dfb661;--color-border-subtle: #2d2724;--color-shadow: rgba(0, 0, 0, .4)}.letter-card{background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:1.75rem 2rem;box-shadow:0 4px 20px var(--color-shadow);font-family:var(--font-serif);font-size:1.25rem;line-height:1.75;color:var(--color-ink-deep);position:relative;transition:var(--transition-smooth);flex-shrink:0}.letter-card.user-note{font-family:var(--font-sans);font-size:1rem;line-height:1.6;background:#c49a4512;border:1px solid rgba(196,154,69,.28);border-left:4px solid var(--color-gold-accent);border-radius:var(--radius-md);margin-left:auto;max-width:80%;box-shadow:0 2px 10px #0000000a}[data-theme=dark] .letter-card.user-note{background:#c49a4517;border-color:#c49a4559;border-left-color:var(--color-gold-accent)}.letter-card.persona-missive{margin-right:auto;max-width:85%;background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:0 4px 20px var(--color-shadow);font-family:var(--font-serif);line-height:1.75}.letter-companion-medallion{display:inline-block;width:38px;height:38px;min-width:38px;min-height:38px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;border:1px solid var(--color-border-subtle);box-shadow:0 2px 6px #00000014;flex-shrink:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.letter-companion-medallion:hover{transform:scale(1.08);box-shadow:0 3px 10px #00000029}.wax-seal-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-wax-seal);color:#fff;border-radius:50%;font-family:var(--font-serif);font-weight:700;font-size:1rem;box-shadow:0 2px 6px #8b26234d}.persona-missive .wax-seal-badge{display:none}.letter-card.is-composing{border-color:#c49a4573;animation:candleGlow 2.8s ease-in-out infinite alternate;background:linear-gradient(135deg,var(--color-parchment-card) 0%,rgba(254,249,237,.95) 100%);position:relative;overflow:hidden}[data-theme=dark] .letter-card.is-composing{background:linear-gradient(135deg,var(--color-parchment-card) 0%,rgba(36,30,24,.95) 100%)}@keyframes candleGlow{0%{box-shadow:0 4px 20px #c49a451f,0 0 10px #c49a4514;border-color:#c49a4559}50%{box-shadow:0 6px 26px #c49a4538,0 0 20px #c49a4529;border-color:#c49a4599}to{box-shadow:0 8px 32px #c49a4547,0 0 26px #c49a4538;border-color:#c49a4580}}.composing-stage-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--radius-pill);background:#c49a4524;border:1px solid rgba(196,154,69,.35);font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:#6e4c00;letter-spacing:.02em;margin-left:.15rem}[data-theme=dark] .composing-stage-badge{background:#c49a4533;border-color:#c49a4566;color:#e6a100}.composing-box{display:inline-flex;align-items:center;gap:.6rem;color:var(--color-ink-muted);font-family:var(--font-serif);font-style:italic;font-size:1.15rem;padding:.25rem 0;flex-wrap:wrap}.quill-icon{display:inline-block;font-size:1.25rem;transform-origin:bottom left;animation:quillSway 1.8s ease-in-out infinite}@keyframes quillSway{0%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(-10deg) translateY(-2px)}}.ink-dots{display:inline-flex;align-items:center;gap:5px;margin-left:2px}.ink-dots .dot{width:5px;height:5px;border-radius:50%;background:var(--color-gold-accent);display:inline-block;opacity:.4;animation:inkWave 1.4s infinite ease-in-out both}.ink-dots .dot:nth-child(1){animation-delay:-.32s}.ink-dots .dot:nth-child(2){animation-delay:-.16s}.ink-dots .dot:nth-child(3){animation-delay:0s}@keyframes inkWave{0%,80%,to{transform:scale(.7);opacity:.3}40%{transform:scale(1.25);opacity:1;background:var(--color-wax-seal)}}.streaming-caret{display:inline-block;width:2px;height:1.15em;background:var(--color-wax-seal);margin-left:3px;vertical-align:text-bottom;animation:caretBlink .85s infinite}@keyframes caretBlink{0%,to{opacity:1}50%{opacity:0}}.chat-page{height:calc(100vh - 85px);height:calc(100dvh - 85px)}.composer{margin-top:1rem;border-top:1px solid var(--color-border-subtle);padding-top:.5rem}.composer--typing #chips-container,.composer--sheet #chips-container{display:none}.composer-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.composer-input,.composer textarea{width:100%;min-height:3.1rem;max-height:40vh;overflow-y:auto;resize:none;padding:.6rem .85rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-parchment-card);color:var(--color-ink-deep);font-family:var(--font-serif);font-size:1.15rem;line-height:1.7;box-shadow:0 2px 10px var(--color-shadow);transition:border-color .2s,box-shadow .2s}.composer-input::placeholder{color:var(--color-ink-muted);font-style:italic}.composer-input:focus{outline:none;border-color:var(--color-gold-accent);box-shadow:0 0 0 3px #c49a452e,0 2px 10px var(--color-shadow)}.composer-toolbar{display:flex;align-items:center;gap:.75rem}.composer-status{flex:1;font-size:.8rem;color:var(--color-ink-muted)}.composer-hint{display:none}.composer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;min-width:40px;min-height:40px;border:1px solid var(--color-border-subtle);border-radius:50%;background:transparent;color:var(--color-ink-muted);font-size:1rem;cursor:pointer;transition:var(--transition-smooth)}.composer-icon-btn:hover{color:var(--color-ink-deep);border-color:var(--color-gold-accent)}.composer-icon-btn:focus-visible,#send-btn:focus-visible{outline:2px solid var(--color-wax-seal);outline-offset:2px}#send-btn{min-height:40px;padding:.5rem 1.15rem;display:inline-flex;align-items:center;justify-content:center;font-weight:500}.letter-voice-controls{background:var(--color-parchment-bg);padding:.15rem .35rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);box-shadow:0 1px 3px #0000000a}.letter-voice-controls .letter-speed-btn{display:none}.letter-voice-controls.is-active .letter-speed-btn,.letter-voice-controls.is-playing .letter-speed-btn{display:inline-flex}.letter-listen-btn,.letter-speed-btn{transition:all .15s ease}.letter-listen-btn:hover,.letter-speed-btn:hover{background:var(--color-parchment-card);color:var(--color-wax-seal)!important}.letter-copy-btn,.letter-delete-btn{background:transparent;border:none;color:var(--color-ink-muted);cursor:pointer;font-size:.75rem;padding:.1rem .35rem;border-radius:var(--radius-sm);pointer-events:auto;visibility:visible}@media(hover:hover){.letter-copy-btn,.letter-delete-btn{opacity:0;transition:opacity .15s ease,color .15s ease}.letter-card:hover .letter-copy-btn,.letter-card:hover .letter-delete-btn,.letter-card:focus-within .letter-copy-btn,.letter-card:focus-within .letter-delete-btn{opacity:1}}.letter-copy-btn:hover{color:var(--color-ink-deep)}.letter-delete-btn:hover{color:var(--color-wax-seal)}#chips-container>div,#chips-container .chips-list{display:flex;flex-wrap:wrap;gap:.35rem;padding:.35rem .25rem}#chips-container .chip-btn{font-family:var(--font-sans);font-weight:500;white-space:nowrap;font-size:.8rem;padding:.3rem .65rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-parchment-card);color:var(--color-ink-deep);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000000a}#chips-container .chip-btn:hover{background:var(--color-parchment-bg);border-color:var(--color-gold-accent);box-shadow:0 3px 8px #c49a452e;transform:translateY(-1px)}#chips-container .chip-btn:focus-visible{outline:2px solid var(--color-wax-seal);outline-offset:2px}.composer-sheet-head,.composer-context{display:none}body.composer-sheet-open{overflow:hidden}.composer--sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;margin:0;padding:1.5rem 1rem;border:none;background:#14121059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:center}.composer--sheet .composer-form{width:100%;max-width:760px;height:100%;margin:0;padding:1.25rem 1.5rem;background:var(--color-parchment-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:0 12px 40px var(--color-shadow)}.composer--sheet .composer-sheet-head{display:flex;align-items:center;justify-content:space-between}.composer-sheet-title{font-family:var(--font-serif);font-weight:700;font-size:1.3rem}.composer--sheet .composer-context:not([hidden]){display:block;max-height:7.5rem;overflow-y:auto;margin:0;padding:.4rem 0 .4rem .9rem;border-left:3px solid var(--color-gold-accent);font-family:var(--font-serif);font-style:italic;font-size:1rem;line-height:1.5;color:var(--color-ink-muted);white-space:pre-wrap}.composer--sheet .composer-input{flex:1;max-height:none;font-size:1.25rem;line-height:1.8;padding:1.25rem 1.5rem}.composer--sheet #expand-btn{display:none}.composer-sheet-head{gap:.5rem}.composer-sheet-title{flex:1}.composer-pill-btn{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:transparent;color:var(--color-ink-deep);padding:.35rem .85rem;font-size:.85rem;cursor:pointer}.composer-pill-btn:hover{border-color:var(--color-gold-accent)}.read-dock,.chat-page[data-mode=read] .composer{display:none}.chat-page[data-mode=read] .read-dock{display:flex;justify-content:center;align-items:center;gap:.75rem;padding-top:.75rem}@media(max-width:720px){.chat-page{padding:.5rem!important}.letter-card{padding:1.1rem 1.2rem}.composing-box{font-size:1rem;gap:.45rem}.letter-card.persona-missive{max-width:100%;font-size:1.15rem}.letter-card.user-note{max-width:90%}.composer-input{min-height:4.5rem;max-height:25vh;font-size:1.05rem}.composer-hint{display:none}.composer--sheet{padding:0;background:var(--color-parchment-bg);-webkit-backdrop-filter:none;backdrop-filter:none}.composer--sheet .composer-form{max-width:none;border:none;border-radius:0;box-shadow:none;padding:.75rem}.composer--sheet .composer-input{font-size:1.1rem;padding:1rem}.letter-companion-medallion{width:32px;height:32px;min-width:32px;min-height:32px}}@media(max-width:480px){.composer-toolbar{flex-wrap:wrap;gap:.5rem}.composer-status{width:100%;order:-1}#send-btn{margin-left:auto}}@keyframes mic-pulse{0%{transform:scale(1);box-shadow:0 0 #dc354566}70%{transform:scale(1.08);box-shadow:0 0 0 6px #dc354500}to{transform:scale(1);box-shadow:0 0 #dc354500}}.composer-icon-btn.is-recording{color:#dc3545!important;animation:mic-pulse 1.5s infinite;background:#dc35451a}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#f9f6f0d9;border-bottom:1px solid var(--color-border-subtle);padding:.5rem 1.25rem;display:flex;align-items:center;justify-content:space-between}[data-theme=dark] .site-header{background:#141210d9}.reload-page-btn{background:transparent;border:1px solid transparent;border-radius:50%;padding:0;font-size:.95rem;color:var(--color-ink-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;width:32px;height:32px;min-width:32px;min-height:32px;transition:all .15s ease;opacity:.75}.reload-page-btn:hover{opacity:1;color:var(--color-ink-deep);background:var(--color-parchment-bg);border-color:var(--color-border-subtle)}.header-companion-medallion{display:inline-block;width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;border:1px solid var(--color-border-subtle);box-shadow:0 1px 4px #00000014;flex-shrink:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.header-companion-medallion:hover{transform:scale(1.08);box-shadow:0 3px 10px #00000029}.header-nav-btn{font-family:var(--font-sans);font-weight:500;transition:all .15s ease;letter-spacing:.01em}.header-nav-btn:hover{background:var(--color-parchment-bg)!important;border-color:var(--color-ink-muted)!important;box-shadow:0 1px 4px #00000014}.header-nav-btn:focus-visible,.reload-page-btn:focus-visible{outline:2px solid var(--color-wax-seal);outline-offset:2px}.onboarding-medallion{display:block;width:72px;height:72px;min-width:72px;min-height:72px;margin:0 auto 1rem;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;border:2px solid var(--color-border-subtle);box-shadow:0 4px 14px #0000001f;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.onboarding-medallion:hover{transform:scale(1.08);box-shadow:0 3px 10px #00000029}.header-toggle,.header-persona-short,body.zen-reading .site-header{display:none}@media(max-width:720px){.site-header{position:static;flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.site-header>div{flex-wrap:wrap;gap:.5rem!important}.site-header h1{font-size:1.3rem!important}.site-header button{padding:.35rem .65rem!important;font-size:.8rem!important}.header-companion-medallion{width:28px;height:28px;min-width:28px;min-height:28px}.onboarding-fields-row{grid-template-columns:1fr!important}.site-header .header-main{width:100%}.header-actions{margin-left:auto}.header-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:1px solid var(--color-border-subtle);border-radius:50%;background:transparent;color:var(--color-ink-deep);cursor:pointer}.site-header.is-collapsed{padding:.35rem .75rem}.site-header.is-collapsed .header-collapsible{display:none!important}.site-header.is-collapsed .header-persona-short{display:inline;font-family:var(--font-serif);font-weight:700;font-size:1.05rem;color:var(--color-ink-muted)}.site-header.is-collapsed h1{font-size:1.15rem!important}}.ai-disclosure-banner{font-family:var(--font-sans);font-size:.7rem;color:var(--color-ink-muted);text-align:center;padding:.2rem .75rem;opacity:.85;background:#c49a451a;border-bottom:1px solid rgba(196,154,69,.2)}.btn-primary{background:var(--color-wax-seal);color:#fff;border:none;border-radius:var(--radius-pill);padding:.6rem 1.4rem;font-family:var(--font-sans);font-weight:500;cursor:pointer;transition:var(--transition-smooth)}.btn-primary:hover{background:var(--color-wax-seal-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--color-ink-deep);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.6rem 1.4rem;font-family:var(--font-sans);font-weight:500;cursor:pointer;transition:var(--transition-smooth);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-secondary:hover{border-color:var(--color-ink-muted);background:#594d3f0d}.landing-page{max-width:960px;margin:0 auto;padding:1.25rem 1.5rem 4rem;color:var(--color-ink-deep);font-family:var(--font-sans)}.landing-topbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0 1.5rem;margin-bottom:2.5rem;border-bottom:1px solid var(--color-border-subtle);gap:1.25rem;flex-wrap:wrap}.landing-topbar-brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--color-ink-deep);-webkit-user-select:none;user-select:none}.landing-topbar-emblem{width:38px;height:38px;border-radius:50%;background:var(--color-wax-seal);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.35rem;font-weight:700;box-shadow:0 2px 8px var(--color-shadow)}.landing-topbar-title{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.08em;font-weight:700;color:var(--color-ink-deep)}.landing-topbar-signin{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;justify-content:flex-end}.landing-topbar-label{font-size:.88rem;color:var(--color-ink-muted);font-weight:500}#google-signin-button{min-height:44px;min-width:220px;display:inline-flex;align-items:center;justify-content:center}#google-button{min-height:44px;min-width:220px}.landing-topbar-pwd-form{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.landing-hero{text-align:center;margin-bottom:4rem;padding:.5rem 0}.landing-hero-emblem{width:56px;height:56px;border-radius:50%;background:var(--color-wax-seal);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.85rem;font-weight:700;margin-bottom:1.25rem;box-shadow:0 4px 14px var(--color-shadow);-webkit-user-select:none;user-select:none}.landing-hero h1{font-family:var(--font-serif);font-size:3rem;letter-spacing:.08em;margin-bottom:.75rem;color:var(--color-ink-deep);line-height:1.1}.landing-hero-tagline{font-family:var(--font-serif);font-style:italic;font-size:1.3rem;color:var(--color-ink-deep);max-width:600px;margin:0 auto 1.25rem;line-height:1.5}.landing-hero-desc{font-size:1.05rem;color:var(--color-ink-muted);max-width:620px;margin:0 auto 2rem;line-height:1.6}.landing-hero-actions{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap}#landing-showcase{min-height:420px;margin-bottom:4rem}.landing-card{background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 12px);padding:1.75rem;box-shadow:0 3px 10px var(--color-shadow)}.landing-section-title{font-family:var(--font-serif);font-size:2rem;text-align:center;margin-bottom:.35rem;color:var(--color-ink-deep)}.landing-section-subtitle{font-family:var(--font-serif);font-style:italic;color:var(--color-ink-muted);text-align:center;margin-bottom:1.75rem;font-size:1.05rem}.landing-desk-vignette{display:block;max-width:240px;height:auto;margin:0 auto .75rem;mix-blend-mode:multiply;border-radius:var(--radius-md)}[data-theme=dark] .landing-desk-vignette{mix-blend-mode:normal;opacity:.85}.showcase-moments-selector{display:flex;justify-content:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.btn-showcase-moment{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.55rem 1.15rem;border-radius:var(--radius-md, 8px);border:1px solid var(--color-border-subtle);background:var(--color-parchment-card, #fdfbf7);color:var(--color-ink-deep);cursor:pointer;transition:var(--transition-smooth);font-family:inherit;text-align:center;min-height:48px}.btn-showcase-moment:hover{border-color:var(--color-ink-muted)}.btn-showcase-moment.active,.btn-showcase-moment[aria-selected=true]{border-color:var(--color-wax-seal);background:#8b262312;box-shadow:0 0 0 1px var(--color-wax-seal)}.showcase-moment-label{font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--color-ink-deep)}.btn-showcase-moment.active .showcase-moment-label,.btn-showcase-moment[aria-selected=true] .showcase-moment-label{color:var(--color-wax-seal)}.showcase-moment-badge{font-size:.75rem;color:var(--color-ink-muted);font-family:var(--font-sans)}[data-theme=dark] .btn-showcase-moment{background:#ffffff0a}[data-theme=dark] .btn-showcase-moment.active,[data-theme=dark] .btn-showcase-moment[aria-selected=true]{background:#8b262333}.companion-portrait{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border-subtle);box-shadow:0 2px 8px var(--color-shadow);flex-shrink:0;background:var(--color-parchment-bg);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.companion-portrait:hover{transform:scale(1.08);box-shadow:0 3px 10px #00000029}.companion-portrait-sm{width:56px;height:56px}.showcase-tabs{display:flex;justify-content:center;gap:.6rem;margin-bottom:1.5rem;flex-wrap:wrap}.btn-showcase-tab{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.45rem 1.15rem;cursor:pointer;font-size:.9rem;font-family:inherit;color:var(--color-ink-muted);transition:var(--transition-smooth);min-height:38px}.btn-showcase-tab:hover{color:var(--color-ink-deep);border-color:var(--color-ink-muted)}.btn-showcase-tab.active,.btn-showcase-tab[aria-selected=true]{background:var(--color-wax-seal);color:#fff;border-color:var(--color-wax-seal);font-weight:500}.badge-active{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:#e4ecdf;color:#1b5e20;border:1px solid rgba(27,94,32,.25);line-height:1.3}.badge-archive{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:#e8e3dc;color:#4a4137;border:1px solid var(--color-border-subtle);line-height:1.3}[data-theme=dark] .badge-active{background:#1b5e2047;color:#81c784;border-color:#81c78459}[data-theme=dark] .badge-archive{background:#a89b8c26;color:#c4b5a5;border-color:var(--color-border-subtle)}.landing-form-group{display:flex;flex-direction:column;gap:.35rem;text-align:left}.landing-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-ink-deep)}.landing-input,.landing-textarea{min-height:44px;padding:.65rem .85rem;font-size:.95rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);background:var(--color-parchment-card, #fdfbf7);color:var(--color-ink-deep);font-family:inherit;width:100%;box-sizing:border-box;transition:var(--transition-smooth)}.landing-input:focus,.landing-textarea:focus{outline:none;border-color:var(--color-wax-seal);box-shadow:0 0 0 2px #8b262326}.landing-textarea{resize:vertical;min-height:72px}.landing-footer{margin-top:5rem;padding-top:2.5rem;border-top:1px solid var(--color-border-subtle);text-align:center;color:var(--color-ink-muted);font-size:.88rem;line-height:1.6}.landing-footer-disclosure{font-size:.92rem;color:var(--color-ink-deep);margin-bottom:.75rem;font-weight:500}.landing-footer-details{margin:1rem auto 0;max-width:680px;text-align:left;background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);padding:.75rem 1.25rem;font-size:.85rem;color:var(--color-ink-muted)}.landing-footer-details summary{cursor:pointer;font-weight:600;color:var(--color-ink-deep);-webkit-user-select:none;user-select:none;padding:.25rem 0}@media(max-width:640px){.landing-topbar{flex-direction:column;align-items:stretch;gap:1rem}.landing-topbar-signin{width:100%;justify-content:stretch}.landing-topbar-pwd-form{width:100%;align-items:stretch}.landing-topbar-pwd-form form{width:100%;flex-direction:column;align-items:stretch}.landing-topbar-pwd-form input,.landing-topbar-pwd-form button{width:100%!important}#google-signin-button{width:100%;justify-content:center}.landing-hero h1{font-size:2.4rem}}.header-mode-switcher{display:inline-flex;align-items:center;background:var(--color-surface, rgba(0, 0, 0, .04));border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:2px;gap:2px}.header-mode-btn{background:transparent;border:none;border-radius:var(--radius-pill);padding:.3rem .75rem;font-size:.85rem;font-weight:500;color:var(--color-ink-muted);cursor:pointer;transition:all .15s ease}.header-mode-btn:hover{color:var(--color-ink-deep)}.header-mode-btn.is-active,.header-mode-btn[aria-pressed=true]{background:var(--color-parchment-card, #ffffff);color:var(--color-ink-deep);box-shadow:0 1px 3px #0000001a;font-weight:600}.story-scope-wrapper{position:relative;display:inline-block}.story-scope-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.35rem .8rem;font-size:.85rem;color:var(--color-ink-deep);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease}.story-scope-btn:hover{border-color:var(--color-ink-muted);background:var(--color-parchment-bg)}.story-scope-popover{position:absolute;top:calc(100% + 8px);left:0;width:320px;max-width:90vw;background:var(--color-parchment-card, #fff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 8px);box-shadow:0 4px 20px #00000026;padding:1rem;z-index:100;box-sizing:border-box}.story-scope-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.story-scope-title{font-family:var(--font-serif);font-weight:700;font-size:.95rem;color:var(--color-ink-deep)}.story-scope-close-btn{background:transparent;border:none;color:var(--color-ink-muted);cursor:pointer;font-size:1rem;padding:.2rem}.scope-mode-cards{display:flex;flex-direction:column;gap:.5rem;margin-bottom:0}.scope-mode-btn{display:flex;flex-direction:column;align-items:flex-start;padding:.6rem .75rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);background:transparent;cursor:pointer;text-align:left;transition:all .15s ease}.scope-mode-btn strong{font-size:.85rem;color:var(--color-ink-deep)}.scope-mode-desc{font-size:.75rem;color:var(--color-ink-muted);margin-top:.2rem}.scope-mode-btn.is-active{border-color:var(--color-wax-seal, #8b261e);background:var(--color-parchment-bg, #fdfbf7)}.scope-selectors-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.85rem}.scope-selector-row{display:flex;flex-direction:column;gap:.25rem}.scope-selector-row label{font-size:.75rem;font-weight:600;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.04em}.scope-select{padding:.4rem .6rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);background:var(--color-parchment-bg, #f9f6f0);color:var(--color-ink-deep);font-size:.85rem;width:100%;box-sizing:border-box}.scope-open-novel-btn{width:100%;padding:.5rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-ink-deep);font-weight:500;font-size:.85rem;cursor:pointer;transition:all .15s ease;text-align:center}.scope-open-novel-btn:hover{background:var(--color-parchment-bg);border-color:var(--color-ink-muted)}.desk-reading-banner{display:flex;align-items:center;justify-content:space-between;background:var(--color-parchment-card, #fdfbf7);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);padding:.5rem .85rem;margin-bottom:.75rem;gap:.5rem;font-size:.85rem;flex-wrap:wrap}.desk-reading-label{color:var(--color-ink-deep);font-weight:500}.desk-reading-actions{display:inline-flex;align-items:center;gap:.5rem}.desk-reading-btn,.desk-reading-change-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.2rem .55rem;font-size:.8rem;color:var(--color-ink-deep);cursor:pointer}.desk-reading-btn:hover,.desk-reading-change-btn:hover{border-color:var(--color-ink-muted)}.reading-context-badge{margin-bottom:.5rem}.reading-context-link{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.2rem .6rem;font-size:.8rem;color:var(--color-ink-muted);cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all .15s ease}.reading-context-link:hover{color:var(--color-ink-deep);border-color:var(--color-ink-muted);background:var(--color-parchment-bg)}.reading-context-quote{margin:.25rem 0 .5rem;padding:.35rem .65rem;border-left:2px solid var(--color-border-subtle);font-style:italic;font-size:.85rem;color:var(--color-ink-muted);background:var(--color-parchment-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.novel-page{display:flex;flex-direction:column;align-items:center;max-width:900px;margin:0 auto;width:100%;padding:1rem;position:relative;box-sizing:border-box;overflow-wrap:break-word;word-break:break-word}.novel-toolbar{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;max-width:720px;margin-bottom:1rem;flex-wrap:wrap;box-sizing:border-box}.novel-nav-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.35rem .75rem;font-size:.85rem;color:var(--color-ink-deep);cursor:pointer;flex-shrink:0}.novel-nav-btn:disabled{opacity:.4;cursor:not-allowed}.novel-select{padding:.35rem .65rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-parchment-bg);color:var(--color-ink-deep);font-size:.85rem;max-width:min(200px,100%);box-sizing:border-box}.novel-toolbar .novel-bookmark-pill{background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-wax-seal);border-radius:var(--radius-pill);padding:.35rem .75rem;font-size:.85rem;color:var(--color-wax-seal);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all .15s ease;white-space:nowrap}.novel-toolbar .novel-bookmark-pill:hover{background:var(--color-parchment-bg);box-shadow:0 1px 4px #b4530926}.novel-bookmarks-popover{width:100%;max-width:680px;background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 8px);box-shadow:0 4px 16px #00000014;padding:1rem 1.25rem;margin-bottom:1rem;box-sizing:border-box}.novel-bookmarks-popover-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border-subtle)}.novel-bookmarks-popover-title{font-size:.9rem;font-weight:600;color:var(--color-ink-deep);font-family:var(--font-sans)}.novel-bookmark-quick-save{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.2rem .6rem;font-size:.78rem;color:var(--color-wax-seal);cursor:pointer;font-weight:500}.novel-bookmark-quick-save:hover{border-color:var(--color-wax-seal);background:var(--color-parchment-bg)}.novel-bookmarks-empty{font-size:.85rem;color:var(--color-ink-muted);font-style:italic;margin:.5rem 0}.novel-bookmarks-list{display:flex;flex-direction:column;gap:.45rem;max-height:280px;overflow-y:auto}.novel-bookmark-item{display:flex;align-items:stretch;gap:.4rem}.novel-bookmark-item .novel-bookmark-pill{flex:1;text-align:left;background:var(--color-parchment-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.4rem .65rem;display:flex;flex-direction:column;gap:.2rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}.novel-bookmark-item .novel-bookmark-pill:hover{background:var(--color-parchment-card, #ffffff);border-color:var(--color-ink-muted)}.novel-bookmark-loc{font-size:.82rem;font-weight:600;color:var(--color-ink-deep);font-family:var(--font-sans)}.novel-bookmark-excerpt{font-size:.8rem;font-style:italic;color:var(--color-ink-muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.novel-bookmark-remove-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:0 .55rem;color:var(--color-ink-muted);cursor:pointer;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,border-color .15s ease}.novel-bookmark-remove-btn:hover{color:var(--color-wax-seal);border-color:var(--color-wax-seal);background:var(--color-parchment-bg)}.novel-page-sheet{width:100%;max-width:680px;background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 8px);box-shadow:0 2px 12px #0000000d;padding:2.75rem 3.25rem;box-sizing:border-box;font-family:var(--reader-font-family, var(--font-serif));line-height:var(--reader-line-height, 1.88);font-size:var(--reader-font-size, 1.08rem);color:var(--color-ink-deep);overflow-wrap:break-word;word-break:break-word}@media(max-width:600px){.novel-page{padding:.5rem .25rem}.novel-toolbar{gap:.25rem}.novel-select{max-width:130px}.novel-nav-btn,.novel-toolbar .novel-bookmark-pill,.novel-aa-btn{padding:.25rem .45rem;font-size:.8rem}.novel-page-sheet{padding:1.25rem .85rem}}.novel-chapter-head{text-align:center;margin-bottom:2rem}.novel-chapter-num{display:block;font-family:var(--font-sans);font-size:.72em;letter-spacing:.15em;color:var(--color-ink-muted);margin-bottom:.25rem}.novel-chapter-title{font-size:1.62em;line-height:1.25;font-weight:700;color:var(--color-ink-deep);margin-bottom:.35rem;overflow-wrap:break-word;word-break:break-word}.novel-book-subtitle{font-size:.88em;font-style:italic;color:var(--color-ink-muted)}.novel-chapter-summary{display:inline-block;background:transparent;border:none;padding:.25rem 0;margin-top:.35rem;color:var(--color-ink-muted);font-size:.8em;font-family:var(--font-sans)}.novel-chapter-summary summary{cursor:pointer;font-weight:600;color:var(--color-ink-muted)}.novel-summary-text{max-width:540px;margin:.5rem auto 0;padding:.65rem 1rem;background:var(--color-parchment-bg);border-radius:var(--radius-sm);text-align:left;line-height:1.5;color:var(--color-ink-deep)}.novel-paragraph{position:relative;margin-bottom:1.05rem;padding:.2rem .45rem;border-radius:var(--radius-sm);transition:background .15s ease}.novel-para-text{font-size:1em;line-height:var(--reader-line-height, 1.88)}.novel-paragraph.is-active{background:var(--color-parchment-bg)}.novel-paragraph.is-bookmarked{border-left:3px solid var(--color-wax-seal)}.novel-paragraph.is-focused{outline:2px solid var(--color-wax-seal);outline-offset:2px}.novel-sentence-end{cursor:pointer;border-bottom:1.5px dotted rgba(180,83,9,.5);padding-bottom:1px;border-radius:2px;outline:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.novel-sentence-end:hover,.novel-sentence-end:focus{background:#b4530924;border-bottom-color:var(--color-wax-seal)}[data-theme=dark] .novel-sentence-end{border-bottom:1.5px dotted rgba(217,169,91,.48)}[data-theme=dark] .novel-sentence-end:hover,[data-theme=dark] .novel-sentence-end:focus{background:#d9a95b24;border-bottom-color:#dfb661d9}.novel-para-actions{position:absolute;top:-.35rem;right:.25rem;display:flex;gap:.35rem;margin-top:0;opacity:0;transition:opacity .15s ease,transform .15s ease;transform:translateY(2px);z-index:5;background:var(--color-parchment-card, #ffffff);padding:.15rem .25rem;border-radius:var(--radius-pill);box-shadow:0 2px 8px #00000014;pointer-events:none}.novel-paragraph.show-actions .novel-para-actions{opacity:1;transform:translateY(0);pointer-events:auto}.novel-aa-btn{background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.35rem .75rem;font-size:.85rem;font-family:var(--font-serif);font-weight:600;color:var(--color-ink-deep);cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;transition:all .15s ease}.novel-aa-btn:hover{border-color:var(--color-ink-muted)}.novel-aa-popover{width:100%;max-width:680px;background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 8px);box-shadow:0 4px 16px #00000014;padding:1rem 1.25rem;margin-bottom:1rem;box-sizing:border-box}.novel-aa-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--color-border-subtle)}.novel-aa-row:last-child{border-bottom:none}.novel-aa-label{font-size:.85rem;font-family:var(--font-sans);font-weight:600;color:var(--color-ink-muted);min-width:90px}.novel-aa-group{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.novel-aa-size-btn,.novel-aa-choice-btn{background:var(--color-parchment-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.25rem .65rem;font-size:.82rem;font-family:var(--font-sans);color:var(--color-ink-deep);cursor:pointer;transition:all .15s ease}.novel-aa-size-btn:hover,.novel-aa-choice-btn:hover{border-color:var(--color-ink-muted)}.novel-aa-choice-btn.is-active{background:var(--color-wax-seal);color:#fff;border-color:var(--color-wax-seal)}.novel-aa-val{font-size:.85rem;font-family:var(--font-sans);font-weight:500;color:var(--color-ink-deep);min-width:60px;text-align:center}.novel-chapter-footer{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--color-border-subtle);gap:1rem}.novel-footer-nav-btn{background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.5rem 1.1rem;font-family:var(--font-serif);font-size:.9em;color:var(--color-ink-deep);cursor:pointer;transition:all .15s ease}.novel-footer-nav-btn:hover{background:var(--color-parchment-bg);border-color:var(--color-wax-seal);color:var(--color-wax-seal)}.novel-composing-box{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-sans);font-size:.85rem;color:var(--color-ink-muted);font-style:italic;padding:.2rem 0}.site-header.is-novel-zen .header-toggle,.site-header.is-novel-zen .header-nav-collapsible,.site-header.is-novel-zen #header-persona-picker,.site-header.is-novel-zen #header-spoiler-toggle,.site-header.is-novel-zen #header-next-letter,.site-header.is-novel-zen #header-engine-picker{display:none!important}.site-header.is-novel-zen+.ai-disclosure-banner{display:none!important}.novel-bookmark-para-btn,.novel-ask-para-btn{background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:.15rem .55rem;font-size:.75rem;font-family:var(--font-sans);color:var(--color-ink-muted);cursor:pointer}.novel-bookmark-para-btn:hover,.novel-ask-para-btn:hover{color:var(--color-ink-deep);border-color:var(--color-ink-muted)}.novel-margin-dock{display:none!important}.novel-margin-spoiler-note{font-size:.72rem;padding:.15rem .5rem;border-radius:var(--radius-pill);border:1px solid rgba(180,83,9,.3);color:var(--color-wax-seal);background:#b453090f;white-space:nowrap;margin:0 auto 0 0;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;display:inline-flex;align-items:center;font-family:var(--font-sans)}.novel-margin-spoiler-note.is-spoiler-safe{border-color:#b453094d;color:var(--color-wax-seal);background:#b453090f}.novel-margin-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:720px;height:min(580px,80vh);max-height:82vh;background:var(--color-parchment-card, #ffffff);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 8px) var(--radius-md, 8px) 0 0;box-shadow:0 -4px 24px #00000026;display:flex;flex-direction:column;padding:1rem;box-sizing:border-box;z-index:90}.novel-margin-sheet.is-fullscreen{top:0;bottom:0;left:0;right:0;transform:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:1.25rem max(1rem,calc((100vw - 760px)/2));z-index:200}.novel-margin-head{display:flex;align-items:center;gap:.45rem;padding-bottom:.4rem;border-bottom:1px solid var(--color-border-subtle);margin-bottom:.45rem;flex-wrap:nowrap}.novel-margin-desk-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-ink-muted);font-size:.75rem;padding:.2rem .55rem;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.novel-margin-desk-btn:hover{color:var(--color-ink-deep);border-color:var(--color-border);background:var(--color-parchment-bg)}.novel-margin-head-btn{width:26px;height:26px;min-width:26px;min-height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border-subtle);border-radius:6px;color:var(--color-ink-muted);font-size:.8rem;cursor:pointer;flex-shrink:0;transition:all .15s ease}.novel-margin-head-btn:hover{color:var(--color-ink-deep);border-color:var(--color-border);background:var(--color-parchment-bg)}.novel-margin-meta-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.novel-margin-meta-bar .novel-margin-scope-bar{margin-bottom:0}.novel-margin-meta-bar .novel-margin-spoiler-note{margin:0;white-space:nowrap}.novel-quote-chip{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--color-parchment-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.35rem .65rem;font-style:italic;font-size:.8rem;color:var(--color-ink-muted);margin-bottom:.5rem}.novel-quote-chip .novel-quote-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.novel-quote-clear{background:transparent;border:none;color:var(--color-ink-muted);cursor:pointer;font-size:.85rem}.novel-margin-stream{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding-right:.25rem;margin-bottom:.75rem}.novel-margin-scope-bar{display:flex;gap:.35rem;padding:.2rem 0;margin-bottom:.5rem}.novel-margin-scope-btn{flex:1;background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-ink-muted);font-size:.78rem;padding:.3rem .5rem;cursor:pointer;text-align:center;transition:all .15s ease}.novel-margin-scope-btn:hover{color:var(--color-ink-deep);border-color:var(--color-border)}.novel-margin-scope-btn.is-active{background:var(--color-parchment-bg);color:var(--color-ink-deep);border-color:var(--color-border);font-weight:600;box-shadow:var(--shadow-sm)}.novel-margin-turn{background:var(--color-parchment-bg);border-radius:var(--radius-sm);padding:.7rem .95rem;font-size:.96rem;line-height:1.68;flex-shrink:0}.novel-margin-turn-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.novel-margin-turn-author{font-weight:600;font-size:.8rem;color:var(--color-ink-muted)}.novel-margin-ch-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.72rem;padding:.15rem .45rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-ink-muted);cursor:pointer;margin-left:auto;transition:all .15s ease}.novel-margin-ch-badge:hover{color:var(--color-ink-deep);border-color:var(--color-border);background:var(--color-parchment-bg)}.novel-margin-delete-btn{background:transparent;border:none;color:var(--color-ink-muted);font-size:.78rem;padding:.15rem .35rem;cursor:pointer;border-radius:var(--radius-sm);opacity:.6;transition:opacity .15s ease,color .15s ease}.novel-margin-delete-btn:hover{opacity:1;color:#c94a4a}.novel-margin-quote{font-style:italic;color:var(--color-ink-muted);border-left:2px solid var(--color-border-subtle);padding-left:.5rem;margin:.25rem 0}.novel-margin-turn-body,.novel-margin-body{font-size:.96rem;line-height:1.68;white-space:pre-wrap;color:var(--color-ink-deep)}.novel-margin-form{display:flex;align-items:flex-end;gap:.5rem;padding-top:.25rem}.novel-margin-form .composer-input{flex:1;box-sizing:border-box;min-height:76px;max-height:150px;padding:.55rem .75rem;font-size:.92rem;line-height:1.5;border-radius:10px;resize:vertical}.novel-margin-form .btn-primary{white-space:nowrap;flex-shrink:0}.novel-margin-toolbar{display:flex;justify-content:flex-end}@media(max-width:600px){.novel-margin-sheet{max-width:100%;left:0;transform:none;height:min(560px,78dvh);max-height:85dvh;padding:.75rem .5rem calc(.75rem + env(safe-area-inset-bottom,0px))}.novel-margin-sheet.is-fullscreen{height:100dvh;max-height:100dvh;padding:.85rem .5rem calc(.85rem + env(safe-area-inset-bottom,0px))}.novel-margin-head{gap:.25rem;padding-bottom:.35rem;margin-bottom:.4rem}.novel-margin-spoiler-note{font-size:.72rem;padding:.18rem .5rem;flex-shrink:0}.novel-margin-desk-btn{font-size:.7rem;padding:.18rem .35rem}.novel-margin-head-btn{width:28px;height:28px;min-width:28px;min-height:28px}.novel-margin-stream{margin-bottom:.5rem;gap:.55rem}.novel-margin-form{flex-direction:column;align-items:stretch;gap:.45rem}.novel-margin-form .composer-input{width:100%;box-sizing:border-box;min-height:92px;max-height:32dvh;font-size:.95rem;line-height:1.45;padding:.6rem .75rem}.novel-margin-form .btn-primary{align-self:flex-end;padding:.5rem 1.25rem;font-size:.9rem}}.persona-portrait-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#14100c8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem;cursor:zoom-out;animation:portraitFadeIn .18s ease-out}.persona-portrait-card{position:relative;background:var(--color-parchment-card, #fdfaf3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md, 14px);padding:1.75rem 2rem 1.5rem;box-shadow:0 18px 48px #00000047;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:340px;width:100%;cursor:default;animation:portraitPopIn .2s cubic-bezier(.16,1,.3,1)}.persona-portrait-enlarged{width:210px;height:210px;border-radius:50%;object-fit:cover;border:3px solid var(--color-border-subtle);box-shadow:0 8px 24px #0000002e;background:var(--color-parchment-bg);margin-bottom:1rem;cursor:zoom-out}.persona-portrait-name{font-family:var(--font-serif);font-size:1.35rem;font-weight:700;color:var(--color-ink-deep);margin:0 0 .25rem}.persona-portrait-meta{font-size:.85rem;color:var(--color-ink-muted);line-height:1.45;margin:0}.persona-portrait-close{position:absolute;top:.65rem;right:.75rem;background:transparent;border:none;color:var(--color-ink-muted);font-size:1.1rem;cursor:pointer;padding:.25rem .45rem;border-radius:var(--radius-sm, 6px);line-height:1}.persona-portrait-close:hover{color:var(--color-ink-deep);background:var(--color-parchment-bg)}@keyframes portraitFadeIn{0%{opacity:0}to{opacity:1}}@keyframes portraitPopIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-parchment-bg);color:var(--color-ink-deep);font-family:var(--font-sans);min-height:100vh;display:flex;flex-direction:column}.app-root{display:flex;flex-direction:column;flex:1}:root{--text-muted: #594d3f}[data-theme=dark]{--text-muted: #a89b8c}.crisis-banner{background:#fff3cd;color:#856404;padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:.75rem;border:1px solid #ffeeba}.crisis-banner a{color:inherit;text-decoration:underline}[data-theme=dark] .crisis-banner{background:#2d261e;color:#f0c674;border-color:#4a3e2e}.memories-drawer{margin-top:1rem;margin-bottom:1.5rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);background:var(--color-parchment-card, rgba(255, 255, 255, .4));padding:.6rem .9rem;transition:background-color .15s ease}.memories-drawer summary{cursor:pointer;font-family:var(--font-sans);font-size:.9rem;font-weight:600;color:var(--color-ink-deep);outline:none;-webkit-user-select:none;user-select:none}.memories-drawer summary:hover{color:var(--color-wax-seal)}.memories-drawer[open]{padding-bottom:.9rem}.memories-drawer .drawer-content{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--color-border-subtle)}.disclosure-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);font-size:.85rem;color:var(--color-ink-deep)}.history-page{width:100%;max-width:900px;margin:0 auto;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem;min-width:0;overflow-wrap:anywhere}.history-page *,.learning-strip *{box-sizing:border-box;min-width:0}.history-page [hidden]{display:none!important}.history-page h2{font-family:var(--font-serif);font-size:2rem}.history-page h3{font-family:var(--font-serif);font-size:1.35rem;margin-bottom:.5rem}.history-page p{margin:.4rem 0}.history-page small,.history-muted{color:var(--color-ink-muted);font-size:.85rem}.history-stack{display:flex;flex-direction:column;gap:.75rem}.history-quick-nav{position:sticky;top:56px;z-index:20;display:flex;gap:.5rem;padding:.5rem .25rem;margin-bottom:.75rem;background:#f9f6f0eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-subtle);overflow-x:auto;scrollbar-width:none}[data-theme=dark] .history-quick-nav{background:#141210eb}.history-quick-link{font-family:var(--font-sans);font-size:.8rem;font-weight:500;color:var(--color-ink-deep);text-decoration:none;padding:.35rem .75rem;border-radius:var(--radius-pill);background:var(--color-parchment-card);border:1px solid var(--color-border-subtle);white-space:nowrap;transition:all .15s ease;min-height:32px;display:inline-flex;align-items:center}.history-quick-link:hover{background:var(--color-parchment-bg);border-color:var(--color-gold-accent);color:var(--color-wax-seal)}.history-quick-link:focus-visible{outline:2px solid var(--color-wax-seal);outline-offset:2px}.history-card{padding:1.25rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-parchment-card);box-shadow:0 2px 8px var(--color-shadow);transition:border-color .15s ease,box-shadow .15s ease}.learning-strip{padding:1rem 1.25rem;border:1px solid var(--color-border-subtle);border-left:4px solid var(--color-gold-accent);border-radius:var(--radius-md);background:var(--color-parchment-card);font-size:.88rem;line-height:1.55;box-shadow:0 1px 4px #0000000a}.history-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.history-button,.history-page select,.history-page input{border:1px solid var(--color-border-subtle);border-radius:8px;background:transparent;color:var(--color-ink-deep);padding:.45rem .75rem;font:inherit;max-width:100%;min-height:38px}.history-button{cursor:pointer;font-size:.9rem}.history-button:disabled{opacity:.55;cursor:default}.history-button:focus-visible,.history-page summary:focus-visible{outline:2px solid var(--color-gold-accent);outline-offset:3px}.history-error{color:var(--color-wax-seal)}.history-page details>summary{cursor:pointer;padding:.4rem 0}.history-page details[open]>summary{margin-bottom:.5rem}.history-tabs [aria-selected=true]{background:var(--color-parchment-card);border-bottom:3px solid var(--color-wax-seal)}#lived-list .letter-card span[style*=border-radius]{flex-shrink:0;white-space:nowrap}.source-letter{white-space:pre-wrap;border-left:3px solid var(--color-gold-accent);padding:.6rem .85rem;margin:.6rem 0;color:var(--color-ink-deep);font-family:var(--font-serif);font-style:italic;font-size:.95rem;line-height:1.6;background:#c49a450d;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.inspector-summary{padding:1rem;border:2px solid var(--color-border-subtle);border-left:5px solid var(--color-gold-accent);border-radius:var(--radius-md);background:var(--color-parchment-card)}.inspector-summary[data-status=healthy]{border-left-color:#2e7d32}.inspector-summary[data-status=attention],.inspector-summary[data-status=offline]{border-left-color:var(--color-wax-seal)}.inspector-badge[data-status=review]{background:#6e4c0024;color:#6e4c00}.inspector-issue{border:1px solid var(--color-border-subtle);border-left:4px solid var(--color-gold-accent);border-radius:var(--radius-md);padding:.75rem;margin-bottom:.5rem}.inspector-issue[data-issue=attention],.inspector-issue[data-issue=offline]{border-left-color:var(--color-wax-seal)}.inspector-findings{list-style:none;padding:0;margin:.25rem 0;flex-basis:100%}.inspector-findings li{padding:.4rem .6rem;margin:.3rem 0;border-radius:6px;background:#6e4c0012}.inspector-findings li[data-severity=info]{background:#6464640f}.inspector-findings p{margin:.15rem 0;font-size:.9rem}.inspector-summary h3{margin-top:0;font-size:1.6rem}.inspector-issues{list-style:none;padding:0;margin:.5rem 0}.inspector-check{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;border-top:1px solid var(--color-border-subtle);padding:.75rem 0}.inspector-check p,.inspector-check small{flex-basis:100%}.inspector-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;background:#6464641a;color:var(--color-ink-deep)}.inspector-badge[data-status=healthy]{background:#2e7d321f;color:#256429}.inspector-badge[data-status=attention],.inspector-badge[data-status=offline]{background:#b43c281a;color:var(--color-wax-seal)}.inspector-target{scroll-margin-top:1rem}.inspector-target:focus{outline:2px solid var(--color-gold-accent);outline-offset:3px}.history-page .inspector-badge+span{overflow-wrap:anywhere}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important}@media(max-width:480px){.history-page{padding:1rem .75rem}.history-card{padding:.8rem}.history-page h2{font-size:1.65rem}.history-page>div:first-child,.history-page .letter-card>div,#threads-list .letter-card,#episodes-list .letter-card,.agenda-row{flex-wrap:wrap}.calendar-grid>div{padding:.15rem!important;font-size:.65rem!important}}
