:root{--color-page: #f1ebde;--color-ink: #1c1612;--color-rule: #6b5535;--boot-bg: #0a0a08;--boot-fg: #c8a268;--boot-accent: #e6c585;--boot-ok: #87b577;--boot-dim: #806640;--boot-kimi: #d8a8c8;--boot-system: #8ad79e;--color-band-bg: transparent;--type-serif: "EB Garamond", Garamond, serif;--type-display: "Cormorant Garamond", Garamond, serif;--type-mono: "IBM Plex Mono", "Courier Prime", "Courier New", monospace;--canvas-width: min(60vw, 1180px);--band-padding: 2.5em 1em}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-page);color:var(--color-ink);font-family:var(--type-serif);height:100%;overflow:hidden}#stage{position:relative;width:100vw;height:100vh;overflow:hidden}#ascii-mount{position:absolute;left:50%;top:0;bottom:0;transform:translate(-50%);width:var(--canvas-width);z-index:1;display:flex;align-items:center;justify-content:center;transition:opacity .6s ease}#ascii-mount.hidden{opacity:0;pointer-events:none}#ascii-mount .ascii-canvas{display:block;margin:0;-webkit-user-select:none;user-select:none;box-shadow:0 1px 3px #1c161214}#text-band-left,#text-band-right{position:absolute;top:0;bottom:0;width:calc((100vw - var(--canvas-width)) / 2);z-index:2;display:flex;align-items:safe center;justify-content:center;padding:var(--band-padding);overflow-y:auto;pointer-events:auto;opacity:0;transition:opacity 1.2s ease;background:var(--color-band-bg)}#text-band-left{left:0}#text-band-right{right:0;padding-top:0}#text-band-left .band-content,#text-band-right .band-content{font-size:clamp(.8rem,.95vw,.98rem);line-height:1.5;max-width:22em}#text-band-left .band-content{font-size:clamp(.95rem,1.15vw,1.2rem);max-width:13em}#text-band-right .band-content{font-size:clamp(.88rem,1.05vw,1.05rem);line-height:1.45;max-width:15em}@media (orientation: landscape){#text-band-right .band-content.entry-body-dense{font-size:clamp(.78rem,.92vw,.94rem)}}.band-content.entry-header .roman-numeral{font-family:var(--type-display);font-weight:500;font-size:3em;letter-spacing:.2em;color:var(--color-rule);display:block;margin-bottom:.4em}.band-content.entry-header .original-title{font-family:var(--type-display);font-style:italic;font-size:1.1em;color:var(--color-rule);margin:0 0 .15em;line-height:1.2}.band-content.entry-header .entry-title{font-family:var(--type-display);font-style:italic;font-size:2.1em;margin:0 0 1em;line-height:1.2}.band-content.entry-header .provenance{font-style:italic;color:var(--color-rule);font-size:1.1em;border-top:1px solid var(--color-rule);padding-top:.8em}.band-content.entry-body .description{text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 1em}.band-content.entry-body .description:first-letter{font-family:var(--type-display);font-size:2.6em;float:left;line-height:.9;margin:.05em .1em 0 0;color:var(--color-rule)}.band-content.entry-body blockquote{font-style:italic;margin:1em .5em;padding-left:.8em;border-left:1px solid var(--color-rule);font-size:.95em}.band-content.entry-body blockquote .citation{display:block;font-style:normal;font-size:.85em;color:var(--color-rule);margin-top:.3em}.band-content.entry-body .marginalia{font-size:.85em;font-style:italic;color:var(--color-rule);margin:.8em 0 0}#text-band-center{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:safe center;justify-content:center;padding:1em 8vw;overflow-y:auto;pointer-events:auto;opacity:0;transition:opacity 1.2s ease;background:var(--color-band-bg)}#text-band-center .band-content.prose-block{max-width:80ch;font-size:clamp(.95rem,1.15vw,1.15rem);line-height:1.5;text-align:justify;-webkit-hyphens:auto;hyphens:auto;position:relative;padding:1em 0}#text-band-center .band-content.prose-block:before,#text-band-center .band-content.prose-block:after{content:"═══════════════  ❦  ═══════════════\a░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░";display:block;white-space:pre;text-align:center;font-family:var(--type-mono);font-size:.62em;line-height:1.2;color:var(--color-rule);letter-spacing:.05em;opacity:.7}#text-band-center .band-content.prose-block:before{margin-bottom:1em}#text-band-center .band-content.prose-block:after{content:"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░\a═══════════════  ❦  ═══════════════";margin-top:1em}#text-band-center .band-content.prose-block.preface,#text-band-center .band-content.prose-block.coda{background-image:radial-gradient(ellipse 60% 35% at 18% 22%,rgba(140,95,50,.05),transparent 70%),radial-gradient(ellipse 45% 30% at 78% 48%,rgba(140,95,50,.04),transparent 70%),radial-gradient(ellipse 55% 40% at 32% 78%,rgba(140,95,50,.035),transparent 70%),radial-gradient(ellipse 30% 25% at 88% 88%,rgba(140,95,50,.045),transparent 70%)}#text-band-center .band-content.prose-block .prose-frontispiece{text-align:center;margin:0 0 1em;padding:0 0 .7em;border-bottom:1px solid rgba(107,85,53,.35)}#text-band-center .band-content.prose-block .prose-volume{font-family:var(--type-display);font-size:clamp(.72rem,.95vw,.88rem);text-transform:uppercase;letter-spacing:.32em;color:var(--color-rule);opacity:0;animation:prose-paragraph-in .8s ease-out .2s forwards;margin-bottom:.8em}#text-band-center .band-content.prose-block .prose-title{font-family:var(--type-display);font-style:italic;font-weight:500;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1;color:var(--color-ink);margin:0 0 .3em;letter-spacing:0;opacity:0;animation:prose-title-in 1.1s cubic-bezier(.2,.7,.2,1) .5s forwards}#text-band-center .band-content.prose-block .prose-subtitle{font-family:var(--type-display);font-style:italic;font-size:clamp(.82rem,1.1vw,1.02rem);letter-spacing:.06em;color:var(--color-rule);opacity:0;animation:prose-paragraph-in .9s ease-out 1.1s forwards}@keyframes prose-title-in{0%{opacity:0;transform:translateY(10px) scale(.985);letter-spacing:.04em}to{opacity:1;transform:translateY(0) scale(1);letter-spacing:0}}#text-band-center .band-content.prose-block .prose-header{font-family:var(--type-display);font-style:italic;font-weight:400;font-size:clamp(2rem,3.7vw,3rem);line-height:1;text-align:center;margin:0 0 .18em;color:var(--color-ink);letter-spacing:.02em;opacity:0;animation:prose-paragraph-in .9s ease-out forwards}#text-band-center .band-content.prose-block .prose-epigraph{font-family:var(--type-display);font-style:italic;font-size:clamp(.78rem,.98vw,.9rem);text-align:center;letter-spacing:.18em;text-transform:lowercase;color:var(--color-rule);margin:0 0 .9em;opacity:0;animation:prose-paragraph-in .9s ease-out forwards}#text-band-center .band-content.prose-block.coda .prose-header{animation-delay:.4s}#text-band-center .band-content.prose-block.coda .prose-epigraph{animation-delay:.8s}#text-band-center .band-content.prose-block.coda p{animation-delay:calc(var(--p-idx, 0) * .35s + 1.2s)}#text-band-center .band-content.prose-block.coda .prose-signature{animation-delay:2.4s}#text-band-center .band-content.prose-block.coda .prose-dateline{animation-delay:2.7s}#text-band-center .band-content.prose-block.preface .prose-header{animation-delay:2s}#text-band-center .band-content.prose-block.preface .prose-epigraph{animation-delay:2.4s}#text-band-center .band-content.prose-block p{margin:0 0 1em;opacity:0;animation:prose-paragraph-in .9s ease-out forwards;animation-delay:calc(var(--p-idx, 0) * .35s + 2.7s)}#text-band-center .band-content.prose-block p:first-child:first-letter{font-family:var(--type-display);font-size:3em;float:left;line-height:.9;margin:.05em .1em 0 0;color:var(--color-rule)}#text-band-center .band-content.prose-block .prose-signature{font-family:var(--type-display);font-style:italic;font-size:clamp(1.05rem,1.3vw,1.25rem);text-align:right;color:var(--color-rule);margin:.8em 0 0;opacity:0;animation:prose-paragraph-in 1.2s ease-out forwards;animation-delay:4.5s}#text-band-center .band-content.prose-block .prose-dateline{font-family:var(--type-display);font-style:italic;font-size:clamp(.85rem,1.05vw,1rem);text-align:right;letter-spacing:.12em;color:var(--color-rule);opacity:.75;margin:.3em 0 0;animation:prose-paragraph-in 1.2s ease-out forwards;animation-delay:4.9s}#text-band-center .band-content.prose-block.preface .prose-signature{animation-delay:4.5s}#text-band-center .band-content.prose-block.preface .prose-dateline{animation-delay:4.9s}@keyframes prose-paragraph-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}#splash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--boot-bg);color:var(--boot-fg);font-family:var(--type-mono);gap:2em;transition:opacity .8s ease-out;background-image:linear-gradient(180deg,rgba(255,255,255,.015) 0px,rgba(255,255,255,.015) 1px,transparent 1px,transparent 3px)}#splash.hidden{opacity:0;pointer-events:none}@keyframes splash-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#splash .splash-content{margin:0;font-family:var(--type-mono);font-size:clamp(.78rem,1.5vw,.95rem);line-height:1.55;color:var(--boot-fg);text-shadow:0 0 4px rgba(200,162,104,.35);white-space:pre;animation:splash-rise .9s ease-out .2s both}#splash button{margin-top:0;padding:.55em 1.4em;background:var(--boot-bg);color:var(--boot-system);border:1px solid rgba(138,215,158,.35);border-radius:6px;box-shadow:0 0 10px #8ad79e2e;font-family:var(--type-mono);font-size:clamp(.78rem,1.5vw,.95rem);letter-spacing:.05em;cursor:pointer;text-shadow:0 0 4px rgba(138,215,158,.45);transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;animation:splash-rise .7s ease-out 1.1s both}#splash button:hover{border-color:#8ad79e99;box-shadow:0 0 14px #8ad79e52}#splash button .touch-label{display:none}#splash button .key-label{display:inline}@media (hover: none) and (pointer: coarse){#splash button .touch-label{display:inline}#splash button .key-label{display:none}}#boot-sequence{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;background:var(--boot-bg);color:var(--boot-fg);font-family:var(--type-mono);font-size:clamp(.78rem,1.6vw,.95rem);line-height:1.55;padding:2.5rem 2rem;display:none;opacity:0;transition:opacity .8s ease;overflow-y:auto;background-image:linear-gradient(180deg,rgba(255,255,255,.015) 0px,rgba(255,255,255,.015) 1px,transparent 1px,transparent 3px)}#boot-sequence.active{display:block}#boot-sequence.visible{opacity:1}#boot-sequence #boot-output{margin:0;white-space:pre-wrap;font-family:inherit;font-size:inherit;color:inherit;text-shadow:0 0 4px rgba(200,162,104,.35)}#boot-sequence #boot-output:after{content:"▌";color:var(--boot-accent);animation:boot-cursor 1s steps(2,end) infinite;margin-left:.1em}@keyframes boot-cursor{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (orientation: portrait){#boot-sequence{padding:1rem .5rem;font-size:min(clamp(.78rem,2.6vw,1.05rem),calc((100vw - 1rem)/40))}#boot-sequence.active{display:flex;flex-direction:column;align-items:center;justify-content:safe center}#boot-sequence #boot-output{margin:0;width:max-content;max-width:100%;text-align:left}}#closing-sequence{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;background:var(--boot-bg);color:var(--boot-fg);font-family:var(--type-mono);font-size:clamp(.78rem,1.6vw,.95rem);line-height:1.55;padding:2.5rem 2rem;display:none;opacity:0;transition:opacity 1.1s ease;overflow-y:auto;background-image:linear-gradient(180deg,rgba(255,255,255,.015) 0px,rgba(255,255,255,.015) 1px,transparent 1px,transparent 3px)}#closing-sequence.active{display:block}#closing-sequence.visible{opacity:1}#closing-sequence #closing-output{margin:0;white-space:pre-wrap;font-family:inherit;font-size:inherit;color:inherit;text-shadow:0 0 4px rgba(200,162,104,.35)}#closing-sequence #closing-output:after{content:"▌";color:var(--boot-accent);animation:boot-cursor 1s steps(2,end) infinite;margin-left:.1em}#closing-sequence #closing-output.done:after{display:none}#closing-sequence .closing-cursor{color:var(--boot-accent);animation:closing-cursor-blink 1s step-end infinite}@keyframes closing-cursor-blink{0%,49.99%{opacity:1}50%,to{opacity:0}}@media (orientation: portrait){#closing-sequence{padding:1rem .5rem;font-size:min(clamp(.7rem,2.4vw,1rem),calc((100vw - 1rem) / 48))}#closing-sequence.active{display:flex;flex-direction:column;align-items:center;justify-content:safe center}#closing-sequence #closing-output{width:max-content;max-width:100%;text-align:left}}#scene-curtain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#0a0a08;opacity:0;pointer-events:none;transition:opacity .6s ease}#scene-curtain.visible{opacity:1}#advance-hint{position:absolute;bottom:1.6em;right:2em;z-index:4;display:flex;align-items:center;gap:.6em;padding:.5em 1.1em;font-family:var(--type-display);font-size:.82rem;letter-spacing:.08em;color:var(--boot-system);background:var(--boot-bg);border:1px solid rgba(138,215,158,.35);box-shadow:0 0 10px #8ad79e2e;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .8s ease}#advance-hint.visible{opacity:.78;animation:hint-pulse 2.4s ease-in-out infinite}#advance-hint .key{font-family:var(--type-mono);font-size:.78rem;padding:.05em .5em;background:#8ad79e14;border:1px solid rgba(138,215,158,.4);border-radius:3px;letter-spacing:.04em;text-transform:lowercase;color:var(--boot-system)}#advance-hint .sep{opacity:.5}#advance-hint .action{font-style:italic;text-transform:lowercase}@media (orientation: portrait){html,body{overflow:auto;height:auto}#stage{height:auto;min-height:100vh;overflow:visible;display:flex;flex-direction:column}#ascii-mount{position:relative;inset:auto;left:0;width:100vw;height:117vw;max-height:70vh;transform:none;overflow:hidden;order:2;flex-shrink:0}#ascii-mount canvas,#ascii-mount .ascii-canvas{width:270vw!important;height:auto!important;max-width:none!important;max-height:none!important;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#splash,#boot-sequence,#closing-sequence,#scene-curtain,#text-band-center{position:fixed}#text-band-left{position:relative;inset:auto;top:auto;left:auto;right:auto;bottom:auto;width:100%;height:auto;min-height:0;padding:.2rem 1.25rem .25rem;background:var(--color-page);z-index:auto;align-items:center;justify-content:center;pointer-events:none;order:1}#text-band-left .band-content{width:100%;max-width:28em;text-align:center;margin:0 auto;font-size:clamp(.95rem,3.8vw,1.1rem)}.band-content.entry-header .original-title{font-size:.9em;color:var(--color-rule);margin-bottom:.15em;line-height:1.1}.band-content.entry-header .entry-title{font-size:1.45em;margin:0;line-height:1.15}.band-content.entry-header .entry-title .roman-numeral{display:inline;font-family:var(--type-display);font-style:italic;font-weight:500;font-size:1em;letter-spacing:.04em;color:var(--color-rule);margin:0 .25em 0 0;line-height:inherit}.band-content.entry-header .provenance{display:block;font-style:italic;color:var(--color-rule);font-size:.78em;line-height:1.35;text-align:center;margin:.4em auto 0;padding-top:0;border-top:none;max-width:26em}#text-band-right{position:relative;top:auto;bottom:auto;left:auto;right:auto;width:100%;height:auto;max-height:none;padding:.7rem 1.25rem 4rem;align-items:flex-start;justify-content:center;background:var(--color-page);z-index:auto;overflow:visible;pointer-events:auto;order:3}#text-band-right .band-content{width:100%;max-width:32em;margin:0 auto;font-size:clamp(.7rem,3vw,.88rem);line-height:1.45}.band-content.entry-body .description{text-align:left;margin-bottom:.5em}.band-content.entry-body .description:first-letter{font-size:2.1em}.band-content.entry-body blockquote{font-size:.92em;margin:.6em .4em}#text-band-center{padding:4vh 1.25rem 4rem}#text-band-center .band-content.prose-block{font-size:clamp(.7rem,3vw,.88rem);line-height:1.45;text-align:left;padding:1em 0}#text-band-center .band-content.prose-block p:first-child:first-letter{font-size:3.4em}#text-band-center .band-content.prose-block:before,#text-band-center .band-content.prose-block:after{font-size:.5em}#text-band-center .band-content.prose-block:before{margin-bottom:1.4em}#text-band-center .band-content.prose-block:after{margin-top:1.4em}#text-band-center .band-content.prose-block .prose-header{font-size:clamp(2.5rem,9.8vw,3.6rem);margin-bottom:.15em}#text-band-center .band-content.prose-block .prose-epigraph{font-size:clamp(.8rem,2.6vw,1rem);letter-spacing:.16em;margin-bottom:.8em}#text-band-center .band-content.prose-block .prose-signature{font-size:clamp(1.15rem,4.2vw,1.45rem);margin-top:1.2em}#text-band-center .band-content.prose-block .prose-volume{font-size:clamp(.78rem,2.8vw,.92rem);letter-spacing:.32em}#text-band-center .band-content.prose-block .prose-title{display:flex;flex-direction:column;align-items:center;font-size:1rem;line-height:1;margin:0 0 .5em}#text-band-center .band-content.prose-block .prose-title-main{display:block;font-family:var(--type-display);font-style:normal;font-weight:500;font-size:12vw;letter-spacing:.06em;line-height:1;text-transform:uppercase;color:var(--color-ink);text-align:center}#text-band-center .band-content.prose-block .prose-title-tail{display:block;font-family:var(--type-display);font-style:italic;font-weight:500;font-size:17.5vw;line-height:.95;letter-spacing:0;color:var(--color-ink);text-align:center;margin-top:-.05em}#text-band-center .band-content.prose-block .prose-subtitle{font-size:clamp(1rem,3.6vw,1.3rem)}#text-band-center .band-content.prose-block .prose-frontispiece{margin-bottom:1em;padding-bottom:.7em}#text-band-center .band-content.prose-block .prose-dateline{font-size:clamp(.85rem,3vw,1.05rem);letter-spacing:.14em}#splash{padding:2rem .75rem}#splash .splash-content{font-size:min(clamp(.62rem,2vw,.95rem),calc((100vw - 1rem)/40))}#splash h1{font-size:clamp(2rem,9vw,2.6rem);line-height:1.05}#splash .subtitle{font-size:1rem;margin-top:.5rem}#splash button{margin-top:1.5rem;padding:.7em 2.5em}#advance-hint{display:none}}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:.85}}#mobile-tap-hint{display:none}@media (orientation: portrait){#mobile-tap-hint{display:block;position:fixed;bottom:24px;left:50%;transform:translate(-50%);font-family:var(--type-mono);font-size:.95em;letter-spacing:.08em;color:var(--boot-system);text-shadow:0 0 4px rgba(138,215,158,.45);background:var(--boot-bg);border:1px solid rgba(138,215,158,.35);padding:6px 14px;border-radius:6px;box-shadow:0 0 10px #8ad79e2e;pointer-events:none;opacity:0;transition:opacity .6s ease;z-index:6}#mobile-tap-hint.visible{opacity:1}#mobile-tap-hint.pulsing{animation:mobile-tap-pulse 1.6s ease-in-out infinite}}@keyframes mobile-tap-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
