:root{--dracula-bg:#0a0a0a;--dracula-bg-elevated:#111;--dracula-text:#e8dcc8;--dracula-text-dim:#a89b86;--dracula-text-bright:#f5edd8;--dracula-red:#8b0000;--dracula-red-light:#b22222;--dracula-red-glow:#8b00004d;--dracula-sidebar-bg:#0a0a0ad9;--dracula-sidebar-border:#1a1111;--dracula-border:#2a2a2a}.dracula-layout{background:var(--dracula-bg);color:var(--dracula-text);min-height:100vh;font-family:Georgia,Times New Roman,serif;position:relative}.dracula-main{max-width:100%;padding:0 0 6rem 40px;position:relative}@media (min-width:1100px){.dracula-main{margin-right:360px}}.chapter-nav{z-index:300;background:#0a0a0a99;border-right:1px solid #8b000026;width:40px;height:100vh;transition:width .3s;display:flex;position:fixed;top:0;left:0}.chapter-nav.expanded{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0aeb;border-right:1px solid #8b00004d;width:300px}.cnav-collapsed{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.cnav-collapsed-list{flex-direction:column;align-items:center;gap:.35rem;display:flex}.cnav-pip{font-variant:small-caps;letter-spacing:1px;color:var(--dracula-text-dim);opacity:.35;flex-shrink:0;font-size:.6rem;line-height:1}.cnav-pip.active{color:var(--dracula-red-light);opacity:1;font-size:.7rem}.cnav-pip.dimmed{opacity:.15}.cnav-track{cursor:pointer;background:#8b000026;border-radius:2px;flex:1;width:3px;margin:.4rem auto;position:relative;overflow:hidden}.cnav-fill{background:var(--dracula-red);width:100%;box-shadow:0 0 8px var(--dracula-red-glow);border-radius:2px;transition:height .15s linear}.cnav-expanded{flex-direction:column;width:100%;height:100%;display:flex;overflow-y:auto}.cnav-before{flex-direction:column;flex-shrink:0;justify-content:flex-end;min-height:25vh;padding:1rem 0 0;display:flex}.cnav-active-zone{flex-direction:column;flex-shrink:0;align-items:center;min-height:50vh;display:flex}.cnav-active-zone .cnav-track{width:3px;margin:.4rem auto}.cnav-after{flex-direction:column;flex-shrink:0;padding:0 0 1rem;display:flex}.cnav-chapter-item{cursor:pointer;color:var(--dracula-text-dim);align-items:baseline;gap:.6rem;width:100%;padding:.4rem .75rem;font-size:.85rem;transition:background .15s;display:flex}.cnav-chapter-item:hover{background:#8b00001a}.cnav-chapter-item.active{color:var(--dracula-red-light)}.cnav-chapter-item.next{opacity:.6}.cnav-item-num{font-variant:small-caps;letter-spacing:1px;flex-shrink:0;min-width:2rem}.cnav-item-title{font-style:italic}@media (max-width:1099px){.chapter-nav{display:none}}.scroll-indicator{z-index:250;color:var(--dracula-text-dim);opacity:0;pointer-events:none;font-size:4rem;transition:opacity .6s;animation:2s ease-in-out infinite scroll-bounce;position:fixed;bottom:2rem;left:calc(50vw - 140px);transform:translate(-50%)}.scroll-indicator.visible{opacity:.5}@keyframes scroll-bounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}.chapter-header{text-align:center;margin-bottom:4rem;padding:8rem 2rem 5rem}.chapter-header h1{font-variant:small-caps;letter-spacing:6px;color:var(--dracula-red-light);margin:0 0 .5rem;font-size:2rem;font-weight:400}.chapter-header h2{color:var(--dracula-text-dim);margin:0 0 .75rem;font-size:1.1rem;font-style:italic;font-weight:400}.chapter-header .subtitle-note{color:var(--dracula-text-dim);font-size:.8rem;font-style:italic}.para-block{min-height:100vh;position:relative}.para-image-fixed{z-index:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .5s ease-out;display:flex;position:fixed;inset:0 0 0 40px}@media (min-width:1100px){.para-image-fixed{right:360px}}.para-image-fixed img{object-fit:contain;width:100%;height:100%;max-height:80vh;padding:2rem}.para-image-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 100px 40px #0a0a0a80}.para-text-scroll{z-index:1;justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex;position:relative}.para-image-window{z-index:1;position:relative}.para-text-block{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;max-width:720px;color:var(--dracula-text);background:#0a0a0abf;border-radius:2px;padding:2.5rem;font-size:1.2rem;line-height:1.9}.para-text-block p{margin:0}.para-text-block.has-drop-cap p:first-letter{float:left;color:var(--dracula-red);padding-right:.12em;font-size:3.8em;font-weight:700;line-height:.78}.journal-date{font-variant:small-caps;letter-spacing:4px;color:var(--dracula-red-light);text-align:center;z-index:2;margin:0;padding:2rem 0;font-size:1.1rem;position:relative}.journal-entry{color:var(--dracula-text);background:0 0;max-width:640px;margin:0 auto;padding:2rem;font-size:1.2rem;line-height:1.9;position:relative}.journal-entry p{text-indent:1.5em;margin:0 0 1.25rem}.journal-entry p:first-of-type{text-indent:0}.journal-entry .drop-cap:first-letter{float:left;color:var(--dracula-red);padding-right:.12em;font-size:3.8em;font-weight:700;line-height:.78}.dialogue{color:var(--dracula-text-bright);font-weight:600}.letter-artifact{color:#1a1008;background:#f0e2c8;border:1px solid #8b00004d;max-width:520px;margin:2.5rem auto;padding:2.5rem 2rem;font-family:Segoe Script,Apple Chancery,Lucida Handwriting,cursive;font-size:1.05rem;font-style:normal;line-height:1.9;position:relative;transform:rotate(-.8deg);box-shadow:0 4px 30px #0009,inset 0 0 40px #8b69141a}.letter-artifact:before{content:"";pointer-events:none;background:radial-gradient(at 20% 80%,#8b691414 0%,#0000 60%),radial-gradient(at 75% 20%,#6446140f 0%,#0000 50%);position:absolute;inset:0}.letter-artifact p{margin:0 0 .75rem}.letter-artifact:after{content:"";background:radial-gradient(circle, var(--dracula-red) 40%, #600000 70%, transparent 72%);opacity:.85;border-radius:50%;width:48px;height:48px;position:absolute;bottom:1.5rem;right:1.5rem;box-shadow:0 2px 8px #8b000066}.letter-signature{text-align:right;letter-spacing:3px;font-variant:small-caps;color:#8b0000;margin-top:1.5rem;margin-right:70px;font-size:1.25rem;font-weight:700}.cinematic-break{margin:3rem 0;position:relative;overflow:hidden}.cinematic-break img,.cinematic-break video{border-top:2px solid var(--dracula-red);border-bottom:2px solid var(--dracula-red);width:100%;display:block}.cinematic-break video{object-fit:cover;max-height:400px}.cinematic-break .vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 80px 30px #0a0a0ab3}.cinematic-caption{text-align:center;color:var(--dracula-text-dim);letter-spacing:1px;padding:.75rem 1rem;font-size:.85rem;font-style:italic}.character-intro{background:var(--dracula-bg-elevated);border-left:3px solid var(--dracula-red);z-index:1;border-radius:2px;flex-direction:column;align-items:center;gap:1.5rem;max-width:640px;margin:4rem auto;padding:3rem 2rem;animation:.8s ease-out character-fade-in;display:flex;position:relative}.character-intro .portrait{border:3px solid var(--dracula-red);object-fit:cover;border-radius:50%;flex-shrink:0;width:280px;height:280px}.character-intro .portrait-fallback{background:var(--dracula-red);color:var(--dracula-text);font-variant:small-caps;justify-content:center;align-items:center;font-size:1.2rem;display:none}.character-intro .character-name{font-variant:small-caps;letter-spacing:3px;color:var(--dracula-red-light);text-align:center;font-size:1.2rem}.character-intro .character-role{color:var(--dracula-text-dim);text-align:center;margin-top:.15rem;font-size:.9rem;font-style:italic}@keyframes character-fade-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.bat-sidebar{background:var(--dracula-sidebar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--dracula-sidebar-border);z-index:100;flex-direction:column;width:360px;height:100vh;font-size:.9rem;display:flex;position:fixed;top:0;right:0}.bat-header-zone{text-align:center;flex-shrink:0;padding:1.5rem 1rem .75rem;position:relative}.bat-header-zone:before{content:"";background:var(--dracula-text-dim);opacity:.2;width:2px;height:1rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.bat-sprite-large{filter:drop-shadow(0 0 20px #8b000040);font-size:7.2rem;line-height:1;animation:4s ease-in-out infinite bat-sway;display:inline-block;transform:rotate(180deg)}@keyframes bat-sway{0%,to{transform:rotate(180deg)translate(0)}30%{transform:rotate(180deg)translate(-5px)rotate(-3deg)}70%{transform:rotate(180deg)translate(5px)rotate(3deg)}}.bat-sidebar-name{font-variant:small-caps;letter-spacing:4px;color:var(--dracula-red-light);opacity:.7;margin-top:.75rem;font-size:.95rem}.bat-messages-area{scroll-behavior:smooth;flex-direction:column;flex:1;gap:1.25rem;padding:0 1rem;display:flex;overflow-y:auto}.bat-messages-spacer{flex-shrink:0;min-height:25vh}.bat-messages-bottom-spacer{flex-shrink:0;min-height:15vh}.bat-idle-text{color:var(--dracula-text-dim);text-align:center;opacity:.4;font-size:.82rem;font-style:italic}.bat-bubble{border-radius:10px;max-width:92%;padding:.7rem .95rem;font-size:1.05rem;line-height:1.6;transition:opacity .3s;animation:.4s ease-out bubble-appear}.bat-bubble.vesper{color:var(--dracula-text-dim);background:#e8dcc808;border:1px solid #e8dcc80d;align-self:flex-start;font-style:italic;animation:.6s ease-out bubble-appear,1.8s ease-out forwards vesper-glow}.bat-bubble.user{color:var(--dracula-text);background:#e8dcc812;border:1px solid #e8dcc81a;align-self:flex-end;font-style:normal}@keyframes bubble-appear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes vesper-glow{0%{color:var(--dracula-text);background:#e8dcc840;border-color:#e8dcc859}to{color:var(--dracula-text);background:#e8dcc821;border-color:#e8dcc82e}}.bat-input-area{flex-shrink:0;padding:1rem 1.25rem 1.25rem}.bat-input-area form{flex-direction:column;align-items:center;gap:.5rem;display:flex}.bat-input-area textarea{border:1px solid var(--dracula-border);width:100%;color:var(--dracula-text);resize:none;background:#0a0a0a80;border-radius:8px;outline:none;min-height:4.5rem;max-height:8rem;padding:.65rem .85rem;font-family:Georgia,serif;font-size:1.05rem;line-height:1.5}.bat-input-area textarea:focus{border-color:var(--dracula-red)}.bat-input-area button{background:var(--dracula-red);color:var(--dracula-text);cursor:pointer;letter-spacing:1px;border:none;border-radius:6px;padding:.5rem 2rem;font-family:Georgia,serif;font-size:.82rem}.bat-input-area button:disabled{opacity:.25;cursor:default}.scene-divider{text-align:center;color:var(--dracula-red-light);letter-spacing:12px;z-index:1;padding:2rem 0;font-size:2.5rem;position:relative}.chapter-end{text-align:center;z-index:1;flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex;position:relative}.chapter-end-crosses{color:var(--dracula-red);letter-spacing:16px;margin-bottom:2rem;font-size:3rem}.chapter-end-text{font-variant:small-caps;letter-spacing:6px;color:var(--dracula-text-dim);font-size:2.5rem;font-style:italic}.chapter-end-next{color:var(--dracula-red-light);letter-spacing:2px;margin-top:3rem;font-size:1.1rem;font-style:italic;text-decoration:none;transition:color .2s;display:inline-block}.chapter-end-next:hover{color:var(--dracula-text)}@media (max-width:1099px){.bat-sidebar{display:none}.bat-sidebar.mobile-open{z-index:200;background:#0a0a0af2;width:100%;display:flex;position:fixed;inset:0}.bat-mobile-toggle{background:var(--dracula-red);cursor:pointer;z-index:150;width:56px;height:56px;color:var(--dracula-text);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.6rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 16px #8b000066}.para-image-fixed{right:0}}@media (min-width:1100px){.bat-mobile-toggle{display:none}}.bat-messages-area::-webkit-scrollbar{width:2px}.bat-messages-area::-webkit-scrollbar-track{background:0 0}.bat-messages-area::-webkit-scrollbar-thumb{background:#8b00004d;border-radius:2px}.cnav-chapter-item.dimmed{opacity:.3;pointer-events:none}.dracula-landing{background:var(--dracula-bg);min-height:100vh;color:var(--dracula-text);flex-direction:column;align-items:center;padding:8rem 2rem 4rem;display:flex}.dracula-landing-header{text-align:center;margin-bottom:4rem}.dracula-landing-header h1{font-variant:small-caps;letter-spacing:8px;color:var(--dracula-red-light);margin:0;font-size:3rem}.dracula-landing-author{color:var(--dracula-text-dim);margin-top:.75rem;font-size:1rem;font-style:italic}.dracula-landing-chapters{flex-direction:column;gap:0;width:100%;max-width:600px;display:flex}.dracula-landing-chapter{border-bottom:1px solid #e8dcc814}.dracula-landing-link{color:inherit;align-items:baseline;gap:1.5rem;padding:1rem .5rem;text-decoration:none;transition:background .2s;display:flex}a.dracula-landing-link:hover{background:#e8dcc80d}.dracula-landing-link.dimmed{opacity:.25}.dracula-landing-numeral{font-variant:small-caps;letter-spacing:2px;color:var(--dracula-red-light);min-width:3rem;font-size:.95rem}.dracula-landing-subtitle{color:var(--dracula-text-dim);font-size:.95rem;font-style:italic}.dracula-title-page{padding-left:40px}.dracula-title-viewport{text-align:center;background:radial-gradient(ellipse at 50% 40%, #8b00000f 0%, transparent 60%), var(--dracula-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.dracula-title-ornament-top{color:var(--dracula-red);opacity:.5;margin-bottom:2.5rem;font-size:1.2rem}.dracula-title-text{font-variant:small-caps;letter-spacing:14px;color:var(--dracula-red-light);text-shadow:0 0 80px #8b000026;margin:0;font-size:clamp(3rem,8vw,5.5rem);line-height:1.1}.dracula-title-author{color:var(--dracula-text-dim);letter-spacing:3px;margin-top:1.25rem;font-size:1.25rem;font-style:italic}.dracula-title-year{color:var(--dracula-text-dim);opacity:.5;letter-spacing:4px;margin-top:.5rem;font-size:.9rem}.dracula-title-ornament{color:var(--dracula-red);letter-spacing:4px;opacity:.4;margin-top:3rem;font-size:.75rem}.dracula-title-cta{color:var(--dracula-red-light);border:1px solid var(--dracula-red);letter-spacing:2px;font-variant:small-caps;margin-top:3rem;padding:.85rem 2.5rem;font-family:Georgia,Times New Roman,serif;font-size:1rem;text-decoration:none;transition:all .3s;display:inline-block}.dracula-title-cta:hover{color:var(--dracula-text);border-color:var(--dracula-red-light);box-shadow:0 0 30px var(--dracula-red-glow), inset 0 0 30px #8b000014}.dracula-title-dedication{text-align:center;flex-direction:column;align-items:center;padding:6rem 2rem 8rem;display:flex}.dracula-dedication-rule{background:var(--dracula-red);opacity:.3;width:60px;height:1px;margin-bottom:3rem}.dracula-dedication-to{font-variant:small-caps;letter-spacing:6px;color:var(--dracula-text-dim);opacity:.6;margin:0;font-size:.85rem}.dracula-dedication-line{font-variant:small-caps;letter-spacing:4px;color:var(--dracula-text-dim);opacity:.6;margin:.75rem 0 0;font-size:1rem}.dracula-dedication-name{font-variant:small-caps;letter-spacing:6px;color:var(--dracula-text);opacity:.7;margin:.75rem 0 0;font-size:1.4rem}.dracula-front-matter{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:4rem 2rem 4rem calc(40px + 2rem);display:flex}.dracula-front-matter-content{text-align:center;max-width:580px}.dracula-front-matter-ornament{color:var(--dracula-red);letter-spacing:4px;opacity:.4;margin-bottom:3rem;font-size:.75rem}.dracula-front-matter-text{color:var(--dracula-text-dim);text-align:left;margin:0;font-size:1.15rem;font-style:italic;line-height:2}.dracula-front-matter-nav{text-align:center;margin-top:4rem}.cnav-separator{background:#8b000033;height:1px;margin:.5rem 1rem}.cnav-chapter-item.special .cnav-item-title{font-variant:small-caps;letter-spacing:1px;font-style:normal}@media (max-width:1099px){.dracula-title-page{padding-left:0}.dracula-front-matter{padding-left:2rem}}
