:root{--paper:#fcfbf7;--ink:#141414;--ink-soft:#3a3a3a;--ink-faint:#8a8781;--line:#141414;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-hand:"Caveat", cursive}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;margin:0;padding:0}#root{min-height:100dvh}.page{flex-direction:column;max-width:680px;min-height:100dvh;margin:0 auto;padding:28px 20px 96px;display:flex}.chapter-title{font-family:var(--font-serif);text-align:center;letter-spacing:.01em;margin:8px 0 22px;font-size:clamp(28px,6vw,40px);font-weight:700}.ink-frame{border:2.5px solid var(--line);background:#fff;border-radius:3px;position:relative;overflow:hidden;box-shadow:2px 3px 0 -1px #1414141f}.ink-frame img{width:100%;height:auto;display:block}.ink-frame .placeholder{aspect-ratio:4/3;color:var(--ink-faint);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.ink-frame .placeholder .mark{font-family:var(--font-hand);font-size:26px;transform:rotate(-2deg)}.frame-signature{font-family:var(--font-hand);color:var(--ink-soft);opacity:.75;font-size:15px;position:absolute;bottom:8px;left:12px;transform:rotate(-4deg)}.narration{text-align:center;white-space:pre-wrap;max-width:60ch;margin:26px auto 0;font-size:clamp(19px,3.4vw,23px);line-height:1.55}.dialogue{text-align:center;max-width:56ch;margin:26px auto 0}.dialogue .speaker{letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-size:16px;font-weight:700}.dialogue .line{font-size:clamp(20px,3.6vw,24px);font-style:italic;line-height:1.5}.choices{flex-direction:column;gap:12px;width:100%;max-width:480px;margin:30px auto 0;display:flex}.choice-btn{appearance:none;font-family:var(--font-serif);text-align:center;background:var(--paper);color:var(--ink);border:2px solid var(--line);cursor:pointer;border-radius:3px;padding:13px 18px;font-size:19px;line-height:1.4;transition:background .14s,color .14s,transform .1s;box-shadow:2px 2px 0 -1px #14141424}.choice-btn:hover{background:var(--ink);color:var(--paper)}.choice-btn:active{box-shadow:none;transform:translate(1px,1px)}.effect-note{font-family:var(--font-hand);color:var(--ink-soft);text-align:center;margin-top:18px;font-size:22px;transform:rotate(-2deg)}.task-card{border:2.5px solid var(--line);background:#fff;border-radius:3px;max-width:520px;margin:26px auto 0;padding:26px 24px 22px;position:relative;box-shadow:3px 4px 0 -1px #1414141f}.task-card:before{content:"";border:1px solid var(--line);pointer-events:none;border-radius:2px;position:absolute;inset:5px}.task-card .task-label{text-align:center;letter-spacing:.28em;text-transform:uppercase;margin-bottom:14px;font-size:13px;font-weight:700}.task-card .objective{gap:10px;margin:0 0 6px;font-size:19px;line-height:1.55;display:flex}.task-card .objective .num{text-align:right;min-width:22px;font-weight:700}.task-card .stakes{color:var(--ink-soft);text-align:center;margin-top:14px;font-size:17px;font-style:italic}.task-card .signed{text-align:right;font-family:var(--font-hand);color:var(--ink-soft);margin-top:12px;font-size:20px;transform:rotate(-1.5deg)}.theory-card{border:2.5px solid var(--line);background:#fff;border-radius:3px;max-width:540px;margin:26px auto 0;padding:24px 24px 20px;box-shadow:3px 4px 0 -1px #1414141f}.theory-stamp{letter-spacing:.22em;text-transform:uppercase;border:1.5px solid var(--line);margin-bottom:14px;padding:3px 9px;font-size:11px;display:inline-block;transform:rotate(-1.5deg)}.theory-heading{margin-bottom:12px;font-size:21px;font-weight:700}.theory-point{gap:10px;margin:0 0 8px;font-size:17.5px;line-height:1.55;display:flex}.theory-point .num{text-align:right;min-width:20px;font-weight:700}.theory-footnote{color:var(--ink-soft);margin-top:12px;font-size:15px;font-style:italic}.continue-hint{text-align:center;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:34px;font-size:15px}.verdict-card{border:2.5px solid var(--line);text-align:center;background:#fff;border-radius:3px;margin-top:26px;padding:30px 26px;box-shadow:3px 4px 0 -1px #1414141f}.verdict-card .rubric-label{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px;font-size:13px}.verdict-card h2{margin:0 0 18px;font-size:30px;font-weight:700}.meter{align-items:center;gap:12px;max-width:340px;margin:0 auto 10px;font-size:18px;display:flex}.meter .name{text-align:right;width:130px}.meter .track{border:1.5px solid var(--line);background:#fff;border-radius:2px;flex:1;height:10px;overflow:hidden}.meter .fill{background:var(--ink);height:100%}.verdict-card .roast{max-width:46ch;margin:22px auto 0;font-size:20px;font-style:italic;line-height:1.5}.verdict-card .concepts{color:var(--ink-soft);margin-top:20px;font-size:15px}.portrait-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:520px;margin:24px auto 0;display:grid}.portrait-cell{appearance:none;cursor:pointer;background:0 0;border:0;padding:0;transition:transform .12s}.portrait-cell:hover{transform:translateY(-2px)}.portrait-cell .portrait-frame{aspect-ratio:3/4}.portrait-cell .portrait-frame .placeholder{aspect-ratio:auto;height:100%}.portrait-cell.chosen .portrait-frame{box-shadow:4px 5px 0 -1px var(--ink);transform:rotate(-1deg)}.ink-input-wrap{max-width:480px;margin:24px auto 0}.ink-input{width:100%;font-family:var(--font-serif);color:var(--ink);border:2.5px solid var(--line);text-align:center;background:#fff;border-radius:3px;outline:none;padding:12px 14px;font-size:20px;box-shadow:2px 3px 0 -1px #1414141f}.ink-textarea{resize:vertical;text-align:left;min-height:96px;line-height:1.5}.doc-progress{text-align:center;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-size:13px}.doc-paper{background:#fff;max-width:540px;margin:22px auto 0;padding:28px 26px}.doc-title{text-align:center;letter-spacing:.06em;border-bottom:1.5px solid var(--line);margin-bottom:16px;padding-bottom:10px;font-size:20px;font-weight:700}.doc-block{margin-bottom:14px}.doc-label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px;font-size:11px}.doc-text{font-size:16.5px;line-height:1.55}.nw-card{max-width:520px;font-family:var(--font-serif);background:#fff;margin:22px auto 0}.nw-banner{border-bottom:2px solid var(--line);background:#fff;height:56px}.nw-banner svg{width:100%;height:100%;display:block}.nw-head{justify-content:space-between;align-items:flex-start;padding:0 18px;display:flex}.nw-avatar{border:2.5px solid var(--line);background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:84px;height:84px;margin-top:-42px;font-size:34px;font-weight:700;display:flex;box-shadow:2px 3px 0 -1px #1414141f}.nw-avatar-note{font-family:var(--font-hand);color:var(--ink-faint);font-size:11px;font-weight:400}.nw-open-to-work{letter-spacing:.14em;border:1.5px solid var(--line);font-size:11px;font-family:var(--font-hand);border-radius:999px;margin-top:10px;padding:4px 10px;transform:rotate(2deg)}.nw-body{padding:10px 18px 20px}.nw-name{font-size:24px;font-weight:700}.nw-headline{margin-top:2px;font-size:15.5px;line-height:1.45}.nw-meta{color:var(--ink-faint);margin-top:4px;font-size:13px}.nw-surname-note{font-family:var(--font-hand);color:var(--ink-soft);margin-top:4px;font-size:14px;transform:rotate(-1.2deg)}.nw-actions{gap:8px;margin:12px 0 4px;display:flex}.nw-btn{font-family:var(--font-serif);border:2px solid var(--line);color:var(--ink);cursor:default;background:#fff;border-radius:999px;padding:5px 16px;font-size:14px}.nw-btn-solid{background:var(--ink);color:#fff}.nw-section{border-top:1.5px solid var(--line);margin-top:14px;padding-top:10px}.nw-section-title{margin-bottom:8px;font-size:17px;font-weight:700}.nw-entry{gap:12px;margin-bottom:12px;display:flex}.nw-logo{border:2px solid var(--line);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex;box-shadow:1px 2px 0 -1px #14141424}.nw-entry-text{font-size:14.5px;line-height:1.45}.nw-entry-sub{color:var(--ink-faint);margin-top:2px;font-size:12.5px}.nw-skills{flex-wrap:wrap;gap:6px;display:flex}.nw-skill{border:1.5px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px}.nw-endorse{font-family:var(--font-hand);color:var(--ink-soft);margin-top:8px;font-size:14px;transform:rotate(-1deg)}.nw-strength{border-top:1.5px solid var(--line);align-items:center;gap:10px;margin-top:14px;padding-top:12px;font-size:13.5px;display:flex}.nw-strength-bar{border:1.5px solid var(--line);border-radius:2px;flex:1;height:8px;overflow:hidden}.nw-strength-bar div{background:var(--ink);width:100%;height:100%}.vn-page{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.vn-bg{z-index:0;pointer-events:none;justify-content:center;align-items:flex-start;padding:2vh 2vw 0;display:flex;position:fixed;inset:0}.vn-plate{aspect-ratio:1.6;border:2px solid var(--line);background:var(--paper);width:auto;max-width:100%;height:100%;max-height:100%;position:relative;overflow:hidden;box-shadow:4px 5px 0 -1px #14141421}.vn-plate:after{content:"";pointer-events:none;border:1px solid #14141447;position:absolute;inset:6px}.vn-plate img{object-fit:cover;width:100%;height:100%;display:block}.vn-plate img.vn-doc{object-fit:contain;pointer-events:none;width:auto;height:auto;position:absolute}.vn-bg-empty{background:var(--paper);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vn-bg-empty .mark{font-family:var(--font-hand);color:var(--ink-faint);text-align:center;max-width:22ch;font-size:30px;transform:rotate(-2deg)}.vn-vignette{background:linear-gradient(#fcfbf700 54%,#fcfbf7b8 78%,#fcfbf7f5 100%),linear-gradient(#fcfbf7cc 0%,#fcfbf700 18%);position:absolute;inset:0}.vn-hud{z-index:2;justify-content:center;align-items:center;padding:14px 20px 0;display:flex;position:relative}.vn-chapter{font-family:var(--font-serif);letter-spacing:.02em;color:var(--ink);border:1.5px solid var(--line);white-space:nowrap;text-overflow:ellipsis;background:#fcfbf7e6;border-radius:999px;max-width:min(70vw,520px);padding:5px 18px;font-size:clamp(14px,2.4vw,18px);font-weight:700;overflow:hidden}.vn-clock{font-variant-numeric:tabular-nums;color:var(--ink-soft);border-right:1px solid #14141440;margin-right:10px;padding-right:10px;font-weight:400}.vn-menu-btn{appearance:none;font-family:var(--font-serif);letter-spacing:.08em;background:var(--paper);color:var(--ink);border:2px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:3px;padding:7px 14px;font-size:15px;transition:background .14s,color .14s;position:absolute;top:14px;right:20px;box-shadow:2px 2px 0 -1px #14141424}.vn-menu-btn:hover{background:var(--ink);color:var(--paper)}.vn-stage{z-index:1;overscroll-behavior:contain;flex-direction:column;flex:1;justify-content:flex-end;width:100%;max-width:760px;min-height:0;margin:0 auto;padding:20px 20px 40px;display:flex;position:relative;overflow-y:auto}.theory-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.theory-folio{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;padding-top:5px;font-size:11px}.choice-btn.is-quiet{color:var(--ink-soft);border-style:dashed}.both-heading{background:#fcfbf7f5;border:1px solid #14141429;padding:8px 12px}.both-step{letter-spacing:.16em;color:var(--ink-faint);margin-top:4px;font-size:11px;display:block}.both-recap{color:var(--ink-soft);text-align:center;background:#fcfbf7f5;border:1px solid #1414141f;margin-top:14px;padding:9px 12px;font-size:14px;line-height:1.45}.both-recap em{font-style:italic}.vn-box{border:2px solid var(--line);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fcfbf7ed;border-radius:4px;padding:26px 28px 22px;box-shadow:3px 4px 0 -1px #14141429}.vn-box.has-namebox{margin-top:22px}.vn-box{position:relative}.vn-namebox{background:var(--ink);color:var(--paper);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:90%;padding:6px 20px 7px;font-size:clamp(12px,2.2vw,14px);font-weight:700;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%,-55%)}.vn-box .narration:first-child,.vn-box .dialogue{margin-top:0}.vn-box .continue-hint{margin-top:18px}.vn-box .choices{margin-top:20px}.vn-stage .task-card,.vn-stage .theory-card,.vn-stage .verdict-card{background:#fcfbf7f2}.vn-pause{z-index:50;background:#1414148c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.vn-pause-card{background:var(--paper);border:2px solid var(--line);box-shadow:4px 5px 0 -1px var(--ink);text-align:center;border-radius:4px;width:min(440px,100%);padding:34px 30px 30px}.vn-pause-card h2{margin:0 0 6px;font-size:34px;font-weight:700}.cast-rails{pointer-events:none;position:fixed;inset:0;overflow:hidden}.cast-rail{align-items:flex-end;width:100%;display:flex;position:absolute;left:0;overflow:hidden}.cast-track{will-change:transform;align-items:center;gap:3vw;width:max-content;animation-name:cast-drift;animation-timing-function:linear;animation-iteration-count:infinite;display:flex}.cast-track img{object-fit:contain;width:auto;height:40vh;display:block}@keyframes cast-drift{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.cast-duel{pointer-events:none;position:fixed;inset:0;overflow:hidden}.cast-side{justify-content:center;align-items:flex-end;width:24vw;max-width:340px;height:82vh;display:flex;position:absolute;bottom:0}.cast-left{left:2vw}.cast-right{right:2vw}.cast-side img{object-fit:contain;object-position:bottom;opacity:.45;width:auto;max-width:100%;height:100%}@media (width<=820px){.cast-duel,.cast-rails{display:none}}.unfold-stage{z-index:300;background:var(--paper);pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.unfold-sheet{background:var(--paper);transform-origin:50%;will-change:transform;width:100vw;height:100dvh;position:relative;overflow:hidden;box-shadow:0 0 40px #1414142e}.unfold-sheet img{object-fit:cover;mix-blend-mode:multiply;width:100%;height:100%;position:absolute;inset:0}.btn-kicker{letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-bottom:2px;font-size:12px;display:block}.record-card{border:2px solid var(--line);text-align:left;background:#fcfbf7e6;border-radius:3px;width:100%;max-width:480px;margin:26px auto 0;padding:20px 22px;box-shadow:2px 3px 0 -1px #14141424}.record-row{align-items:center;gap:12px;margin:10px 0;font-size:15px;display:flex}.record-label{min-width:150px;color:var(--ink-soft)}.record-value{color:var(--ink);margin-left:auto}.record-row .track{border:1.5px solid var(--line);border-radius:2px;flex:1;height:10px;overflow:hidden}.record-row .fill{background:var(--ink);height:100%}.record-chapters{text-align:left;width:100%;max-width:480px;margin:18px auto 0}.record-chapter{border-bottom:1px dashed #14141438;justify-content:space-between;gap:14px;padding:7px 2px;font-size:15px;display:flex}.record-state{color:var(--ink-faint);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;align-self:center;font-size:12px}.cover-page{position:relative}.cover-art{z-index:0;pointer-events:none;position:fixed;inset:0}.cover-page>.cover{z-index:1;position:relative}.cover-art img{object-fit:cover;object-position:center;width:100%;height:100%}.cover-scrim{background:linear-gradient(90deg,#fcfbf700 0%,#fcfbf7db 18%,#fcfbf7eb 50%,#fcfbf7db 82%,#fcfbf700 100%);position:absolute;inset:0}.cover{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.cover .kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);font-size:14px}.cover h1{margin:6px 0;font-size:clamp(42px,9vw,64px);font-weight:700;line-height:1.05}.cover .subtitle{color:var(--ink-soft);max-width:44ch;font-size:20px;font-style:italic;line-height:1.5}.cover .begin{min-width:260px;margin-top:34px}.footer-note{text-align:center;font-family:var(--font-hand);color:var(--ink-faint);margin-top:48px;font-size:17px}.both-sides{margin-top:6px}.both-col+.both-col{margin-top:22px}.both-heading{text-align:center;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;font-size:13px}.both-tick{color:var(--ink-faint);letter-spacing:.12em}.both-col .choices{margin-top:0}.both-col .choice-btn{padding:11px 16px;font-size:17.5px}.choice-btn.is-picked{background:var(--ink);color:var(--paper);box-shadow:none;transform:translate(1px,1px)}.both-commit{margin-top:26px}.both-commit .choice-btn:disabled{opacity:.45;cursor:default}.vn-page--plate{--panel:clamp(320px, 30vw, 460px);height:100dvh;overflow:hidden}.vn-page--plate .vn-bg{right:var(--panel);padding:3vh 1.4vw}.vn-page--plate .vn-stage{width:var(--panel);overscroll-behavior:contain;justify-content:center;max-width:none;margin:0;padding:clamp(18px,3vh,34px) clamp(18px,1.5vw,30px);position:fixed;inset:0 0 0 auto;overflow-y:auto}.vn-page--plate .vn-hud{padding-right:calc(var(--panel) + 20px)}.vn-page--plate .vn-box,.vn-page--plate .task-card,.vn-page--plate .theory-card{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;max-width:none;margin:0;padding:clamp(16px,2.2vh,26px) clamp(16px,1.4vw,24px)}.vn-page--plate .choices{gap:10px;max-width:none;margin-top:16px}.vn-page--plate .choice-btn{padding:10px 14px;font-size:clamp(14px,1.6vh,17px)}.vn-page--plate .choice-btn:hover{background:var(--ink);color:var(--paper)}.vn-page--plate .narration{margin-top:14px;font-size:clamp(15px,1.85vh,19px)}.vn-page--plate .narration:first-child{margin-top:0}.vn-page--plate .dialogue{margin-top:8px}.vn-page--plate .dialogue .line{font-size:clamp(16px,2vh,20px)}.vn-page--plate .theory-point,.vn-page--plate .objective{font-size:clamp(14px,1.7vh,17px);line-height:1.5}.vn-page--plate .theory-heading{font-size:clamp(17px,2vh,22px)}.vn-page--plate .continue-hint{margin-top:18px}.vn-page--plate .theory-head{flex-direction:column;gap:6px}.vn-page--plate .theory-stamp{letter-spacing:.16em;align-self:flex-start;font-size:10px}.vn-page--plate .theory-folio{padding-top:0}.vn-page--plate .task-card:before{inset:4px}.vn-page--plate .vn-vignette{right:var(--panel);opacity:.3}.vn-page.is-advanceable{cursor:pointer}.vn-page.is-advanceable button,.vn-page.is-advanceable input,.vn-page.is-advanceable textarea{cursor:auto}.vn-page.is-advanceable .vn-menu-btn{cursor:pointer}.vn-box-tight{padding:18px 24px 16px}.vn-box-tight .narration{margin-top:0;font-size:clamp(17px,2.9vw,20px)}.vn-box-tight .doc-progress{margin-top:0}.vn-box-tight .effect-note{margin-bottom:2px}
