@import"https://fonts.googleapis.cn/css2?family=Noto+Serif+SC:wght@300;400;500;600;700;900&display=swap";:root{color-scheme:light;--paper-bg: #f5eedc;--paper-light: #faf6ec;--paper-deep: #ebdfc5;--paper-edge: #d8c9a6;--paper-dark: #3a2e23;--paper-border: rgba(94, 69, 44, .22);--paper-shadow: rgba(60, 44, 28, .12);--ink-primary: #221c17;--ink-secondary: #534537;--ink-muted: #786653;--ink-light: #9e8a75;--ink-faint: #c5b59e;--vermilion: #a82e24;--vermilion-light: #c2463b;--vermilion-glow: rgba(168, 46, 36, .16);--gold-bronze: #8f6834;--jade-green: #3f5547;--font-serif: "Noto Serif SC", serif;--font-kaiti: var(--font-serif);--font-sans: var(--font-serif);--shadow-paper: 0 4px 18px var(--paper-shadow), 0 1px 3px rgba(0, 0, 0, .05);--shadow-card: 0 8px 30px rgba(50, 36, 22, .15), 0 2px 6px rgba(0, 0, 0, .06);--shadow-deep: 0 16px 48px rgba(32, 22, 12, .25);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit}html,body,#app{width:100%;min-height:100%;height:100%;overflow-x:hidden;background-color:var(--paper-bg);color:var(--ink-primary);font-family:var(--font-serif);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.vn-app-shell{position:relative;width:100%;min-height:100dvh;display:flex;flex-direction:column;background:var(--paper-bg);overflow-x:hidden;-webkit-user-select:text;user-select:text}.vn-stage{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background-color:var(--paper-bg)}.vn-parchment-base{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(89,67,43,.018) 0 1px,transparent 1px 5px),radial-gradient(ellipse at 12% 18%,rgba(126,89,51,.11),transparent 26%),radial-gradient(ellipse at 88% 78%,rgba(126,89,51,.1),transparent 30%),radial-gradient(circle at 50% 30%,#faf5ea,#f1e7d2 70%,#e6d8bc);opacity:1}.vn-photo-container{position:absolute;inset:0;overflow:hidden}.vn-photo-frame{position:absolute;inset:0;pointer-events:auto;cursor:pointer;transition:opacity .75s ease-in-out}.vn-photo-frame.is-leaving{opacity:0;pointer-events:none;z-index:1}.vn-photo-frame.is-entering{opacity:1;z-index:2;animation:photoEnterDissolve .75s ease-in-out forwards}@keyframes photoEnterDissolve{0%{opacity:0}to{opacity:1}}.vn-photo-plate{position:absolute;inset:-5%;width:110%;height:110%;background-size:cover;background-position:center 38%;filter:sepia(.38) contrast(1.08) brightness(.92);transform:scale(1.02);animation:vnKenBurns 32s ease-in-out infinite alternate;will-change:transform}@keyframes vnKenBurns{0%{transform:scale(1.02) translate(0)}50%{transform:scale(1.08) translate(-1.2%,-.8%)}to{transform:scale(1.04) translate(1%,.6%)}}.vn-photo-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#f5eedc1a 30%,#37261699 85%,#20140ad9),linear-gradient(to bottom,rgba(245,238,220,.25) 0%,transparent 20%,rgba(38,26,15,.65) 100%)}.vn-photo-grain{position:absolute;inset:0;background-image:radial-gradient(rgba(0,0,0,.08) 1px,transparent 1px);background-size:4px 4px;opacity:.35}.vn-sketch-plate{position:absolute;inset:0;background-color:#e5d7bb;background-size:cover;background-position:center 44%;isolation:isolate}.vn-sketch-plate:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(245,238,220,.08),transparent 52%),linear-gradient(to bottom,rgba(245,238,220,.04),transparent 45%,rgba(245,238,220,.55))}.vn-sketch-caption{position:absolute;top:5.2rem;left:2rem;padding:.3rem .6rem;border-left:2px solid var(--vermilion);background:#f8f2e4d1;box-shadow:var(--shadow-paper);font-size:.78rem;letter-spacing:.06rem;color:var(--ink-muted)}.vn-film-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#f5eedc0a,#f5eedc14 48%,#f5eedca8)}.vn-texture-overlay{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(68,48,30,.018) 7px 8px),repeating-linear-gradient(90deg,transparent 0 11px,rgba(68,48,30,.012) 11px 12px);box-shadow:inset 0 0 110px #46301c47}.vn-stage-seal-tag{position:absolute;top:4.8rem;left:2rem;display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:#f8f2e4e6;border:1px solid var(--paper-border);box-shadow:var(--shadow-paper);border-radius:3px;pointer-events:auto;font-size:.85rem}.seal-char,.seal-caption,.seal-inner,.seal-inner span,.seal-large,.seal-large span,.chip-seal,.res-seal,.res-chip-seal,.choice-seal-stamp,.choice-number,.station-seal,.stamp-sub-tag,.stamp-station-name,.wp-seal-mark,.waypoint-seal-char,.wp-modal-seal,.backlog-seal,.archive-seal,.ending-top-seal,.block-seal,.epilogue-stamp,.caption-seal,.vn-error-seal,.res-delta-chip,.res-flag-chip,.resolution-chosen-pill,.vn-stage-seal-tag,.jt-seal-stamp,.btn-seal,.card-badge,.card-zoom-badge,.stamp-box,.stamp-cell .seal-char,.station-pill,.pill-name,.pill-province,.pill-status-tag,.waypoint-tag,.waypoint-tag-label{white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.seal-char{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;background:var(--vermilion);color:#fff;border-radius:2px;font-size:.75rem;font-family:var(--font-serif);font-weight:700;white-space:nowrap;word-break:keep-all;flex-shrink:0}.seal-caption{color:var(--ink-secondary);font-size:.82rem;white-space:nowrap;word-break:keep-all}.vn-topbar{position:sticky;top:0;z-index:50;width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:calc(.5rem + var(--safe-top)) 1.25rem .5rem 1.25rem;background:#f5eedcf0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--paper-border);box-shadow:0 2px 10px #3224140f}.vn-topbar-primary{display:contents}.vn-topbar-left{order:1;display:flex;align-items:center;gap:1rem;flex-shrink:0}.vn-brand-seal{display:flex;align-items:center;gap:.6rem;background:none;border:none;cursor:pointer;text-align:left}.vn-brand-seal .seal-char{width:2rem;height:2rem;background:var(--vermilion);color:#fff;font-size:1.15rem;border-radius:3px;box-shadow:0 2px 6px #a82e2459;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-serif)}.vn-brand-seal .seal-text strong{display:block;font-size:1.05rem;color:var(--ink-primary);letter-spacing:.08rem}.vn-brand-seal .seal-text span{display:block;font-size:.7rem;color:var(--ink-muted)}.vn-current-station{display:none;border-left:1px solid var(--paper-border);padding-left:.8rem}.vn-current-station .station-kicker{display:block;font-size:.68rem;color:var(--ink-muted);letter-spacing:.05rem}.vn-current-station .station-name{font-size:.95rem;color:var(--vermilion)}.vn-resources-deck{order:2;display:flex;align-items:center;gap:.6rem}.vn-resource-chip{display:flex;align-items:center;gap:.4rem;padding:.25rem .55rem;background:#fffcf4c7;border:1px solid var(--paper-border);border-radius:4px;box-shadow:0 1px 3px #0000000a;transition:all .25s ease}.chip-seal{width:1.3rem;height:1.3rem;display:inline-flex;align-items:center;justify-content:center;background:#a82e241f;color:var(--vermilion);font-size:.75rem;font-weight:700;border:1px solid rgba(168,46,36,.3);border-radius:2px}.chip-details{display:flex;flex-direction:column;min-width:0}.chip-label{display:flex;align-items:baseline;gap:.35rem;font-size:.75rem;color:var(--ink-secondary)}.chip-label .chip-name{white-space:nowrap}.chip-label .chip-value{font-size:.85rem;color:var(--ink-primary);font-weight:700}.chip-bar{width:2.8rem;height:3px;background:#78645033;border-radius:2px;overflow:hidden;margin-top:1px}.chip-bar i{display:block;height:100%;background:var(--gold-bronze);transition:width .35s ease}.vn-res-supplies .chip-bar i{background:#9a7442}.vn-res-ration .chip-bar i{background:#c28328}.vn-res-health .chip-bar i{background:#467a57}.vn-res-morale .chip-bar i{background:#b8382c}.vn-resource-chip.is-critical{border-color:#c0392b80;background:#fff0eeeb;animation:pulseCritical 2s infinite ease-in-out}.vn-resource-chip.is-critical .chip-bar i{background:#c0392b!important}@keyframes pulseCritical{0%,to{box-shadow:0 1px 3px #0000000a}50%{box-shadow:0 0 8px #c0392b4d}}.vn-topbar-right{order:3;display:flex;align-items:center;gap:.4rem;flex-shrink:0}.vn-icon-button,.vn-nav-button{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .65rem;background:#fffaeed9;border:1px solid var(--paper-border);color:var(--ink-secondary);font-size:.82rem;border-radius:4px;cursor:pointer;transition:all .2s ease}.vn-icon-button{padding:.35rem .5rem}.vn-icon-button:hover,.vn-nav-button:hover,.vn-nav-button.is-active{background:#fff;color:var(--vermilion);border-color:var(--vermilion)}.vn-main-layer{position:relative;z-index:10;flex:1;display:flex;flex-direction:column}.vn-main-layer.is-ui-hidden{pointer-events:none}.vn-home-screen{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem calc(2rem + var(--safe-bottom))}.vn-book-cover{position:relative;width:100%;max-width:540px;background:radial-gradient(ellipse at 50% 20%,#faf4e6,#ede2c8 80%,#dfd1b2);border:1px solid var(--paper-edge);box-shadow:var(--shadow-deep),inset 0 0 80px #50381e1f;border-radius:4px;padding:3rem 2.2rem 2.5rem;text-align:center}.vn-book-cover:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(17deg,transparent 0 13px,rgba(72,52,32,.014) 13px 14px),radial-gradient(ellipse at 2% 8%,rgba(108,76,43,.13),transparent 24%),radial-gradient(ellipse at 98% 94%,rgba(108,76,43,.12),transparent 25%);box-shadow:inset 0 0 36px #452f1a29}.vn-cover-content{position:relative;z-index:1}.vn-book-stitch{position:absolute;top:0;bottom:0;left:1.5rem;width:2px;border-left:1px dashed rgba(110,85,60,.35);display:flex;flex-direction:column;justify-content:space-around;padding:1.5rem 0}.vn-book-stitch span{width:10px;height:2px;background:#785f4666;margin-left:-5px}.vn-cover-motto{font-size:.85rem;color:var(--ink-muted);letter-spacing:.15rem;margin-bottom:1.8rem;display:flex;flex-direction:column;gap:.3rem}.vn-cover-title-panel{position:relative;display:inline-block;padding:1.2rem 2.2rem;border:2px solid var(--ink-primary);border-radius:2px;background:#fffcf4d9;box-shadow:0 4px 16px #0000000d;margin-bottom:2rem}.vn-cover-title-panel h1{font-size:2.8rem;letter-spacing:.45rem;color:var(--ink-primary);font-family:var(--font-serif);line-height:1.2}.vn-cover-sub{margin-top:.6rem;font-size:.95rem;color:var(--ink-secondary);letter-spacing:.08rem}.vn-cover-quote{margin:1.8rem auto 2.2rem;padding:1rem 1.4rem;background:#f0e6d080;border-top:1px dashed var(--paper-border);border-bottom:1px dashed var(--paper-border)}.vn-cover-quote p{font-size:1.05rem;color:var(--ink-secondary);font-family:var(--font-serif);letter-spacing:.12rem}.vn-cover-quote span{display:block;margin-top:.4rem;font-size:.78rem;color:var(--ink-muted)}.vn-cover-actions{display:flex;flex-direction:column;gap:.85rem;margin-bottom:2rem}.vn-cover-start-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:1rem 1.4rem;background:var(--ink-primary);color:#f7eedb;border:1px solid #14100c;border-radius:4px;font-size:1.15rem;font-family:var(--font-serif);cursor:pointer;box-shadow:0 4px 14px #1c140c4d;transition:transform .18s ease,background-color .18s ease}.vn-cover-start-btn .btn-seal{background:var(--vermilion);color:#fff;padding:.15rem .4rem;border-radius:2px;font-size:.82rem}.vn-cover-start-btn:hover{background:#15110d;transform:translateY(-2px)}.vn-cover-archive-btn{width:100%;padding:.75rem 1rem;background:transparent;color:var(--ink-secondary);border:1px solid var(--paper-border);border-radius:4px;font-size:.92rem;cursor:pointer;transition:all .2s ease}.vn-cover-archive-btn:hover{background:#fffcf5b3;color:var(--ink-primary);border-color:var(--ink-muted)}.vn-cover-footer-meta{font-size:.8rem;color:var(--ink-muted);display:flex;align-items:center;justify-content:center;gap:.5rem}.meta-dot{font-style:normal;color:var(--paper-edge)}.vn-route-screen{flex:1;display:flex;flex-direction:column;padding:1rem 1.25rem calc(1.5rem + var(--safe-bottom));max-width:1200px;width:100%;margin:0 auto}.vn-map-screen{display:flex;flex-direction:column;gap:1.2rem;width:100%}.vn-map-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;background:#fffcf4d9;border:1px solid var(--paper-border);border-radius:4px;box-shadow:var(--shadow-paper)}.vn-map-title-group{display:flex;align-items:center;gap:.8rem}.vn-map-seal-mark{width:2.2rem;height:2.2rem;background:var(--vermilion);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.1rem;font-weight:700;border-radius:3px}.vn-map-title-group h2{font-size:1.2rem;color:var(--ink-primary);letter-spacing:.05rem}.vn-map-title-group p{font-size:.8rem;color:var(--ink-muted)}.vn-map-archive-btn{background:none;border:1px solid var(--paper-border);padding:.4rem .8rem;border-radius:3px;color:var(--ink-secondary);font-size:.82rem;cursor:pointer}.vn-map-archive-btn:hover{border-color:var(--vermilion);color:var(--vermilion)}.vn-map-board{position:relative;width:100%;min-height:440px;height:52vh;max-height:560px;background:radial-gradient(circle at 50% 50%,#faf4e6,#eee3c8 85%,#e1d3b4);border:2px solid var(--paper-edge);border-radius:6px;box-shadow:var(--shadow-card),inset 0 0 60px #503a1e1a;overflow:hidden}.vn-map-paper-texture{position:absolute;inset:0;background-image:linear-gradient(rgba(100,75,50,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(100,75,50,.03) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.vn-map-compass{position:absolute;top:1rem;left:1.2rem;width:2.2rem;height:2.2rem;border:1px solid rgba(140,110,80,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-family:var(--font-serif);color:var(--ink-muted);-webkit-user-select:none;user-select:none}.vn-map-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vn-map-pulse-dot{animation:pulseDot 2s infinite ease-in-out}@keyframes pulseDot{0%{r:5px;opacity:1}50%{r:9px;opacity:.6}to{r:5px;opacity:1}}.vn-map-nodes{position:absolute;inset:0;pointer-events:none}.vn-map-station{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:transform .22s cubic-bezier(.18,.89,.32,1.28);z-index:10}.vn-map-station:hover{transform:translate(-50%,-50%) scale(1.12);z-index:30}.station-seal{width:2.1rem;height:2.1rem;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:700;font-size:.95rem;box-shadow:0 2px 8px #32241433;transition:all .2s ease;white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.station-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .45rem;background:#fefbf3f5;border:1px solid var(--paper-border);border-radius:3px;box-shadow:0 1px 4px #281c0f1f;white-space:nowrap!important;word-break:keep-all!important;pointer-events:none;transition:all .2s ease}.pill-province{font-size:.65rem;color:var(--ink-muted);padding:0 .2rem;background:#8c6e501a;border-radius:2px}.pill-name{font-size:.78rem;font-weight:700;color:var(--ink-primary);font-family:var(--font-serif)}.pill-status-tag{font-size:.62rem;color:#fff;background:var(--vermilion);padding:0 .3rem;border-radius:2px;font-weight:400;letter-spacing:.02rem}.vn-map-station.is-current .station-seal{background:var(--vermilion);color:#fff;box-shadow:0 0 0 4px #a82e2440,0 3px 10px #a82e2466}.vn-map-station.is-current .station-pill{border-color:var(--vermilion);box-shadow:0 2px 8px #a82e2438;background:#fff}.vn-map-station.is-passed .station-seal{background:#3e3227;color:#f0e6d2}.vn-map-station.is-future .station-seal{background:#e8dcc4;color:#826e58;border:1px dashed #b29e85}.vn-map-station.is-inspected{z-index:25}.vn-map-station.is-inspected .station-pill{border-color:var(--gold-bronze);box-shadow:0 2px 8px #8f683440;background:#fff}.vn-map-dossier{display:grid;grid-template-columns:240px 1fr;gap:1.5rem;padding:1.4rem;background:#fffcf5eb;border:1px solid var(--paper-edge);border-radius:6px;box-shadow:var(--shadow-paper)}.dossier-photo-col{width:100%}.dossier-photo-wrap{width:100%;border:1px solid var(--paper-border);padding:4px;background:#fff;box-shadow:0 2px 8px #00000014}.dossier-photo-wrap img{width:100%;height:140px;object-fit:cover;filter:sepia(.25);display:block}.dossier-photo-caption{font-size:.75rem;color:var(--ink-muted);padding:.4rem .2rem 0;text-align:center}.dossier-no-photo{height:160px;background:#eadfc9;border:1px solid var(--paper-edge);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-muted);text-align:center;padding:.55rem;overflow:hidden;box-shadow:inset 0 0 22px #4e362024}.dossier-ambience{display:block;width:100%;min-height:0;flex:1;object-fit:cover;object-position:center 43%;border:1px solid rgba(107,78,47,.35);filter:sepia(.16) saturate(.84)}.dossier-no-photo p{padding-top:.3rem;font-size:.68rem;line-height:1.25}.dossier-text-col{display:flex;flex-direction:column;justify-content:space-between}.dossier-kicker{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--ink-muted)}.dossier-date{color:var(--vermilion);font-weight:700}.dossier-text-col h3{font-size:1.4rem;color:var(--ink-primary);margin:.2rem 0 .5rem}.dossier-summary{font-size:.95rem;color:var(--ink-secondary);line-height:1.5;margin-bottom:.6rem}.dossier-facts{font-size:.82rem;color:var(--ink-muted);background:#f0e6d280;padding:.5rem .8rem;border-left:3px solid var(--gold-bronze);margin-bottom:.8rem}.dossier-facts b{color:var(--ink-primary)}.dossier-actions{display:flex;align-items:center;gap:.8rem}.vn-map-enter-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.6rem;background:var(--ink-primary);color:#fff;border:none;border-radius:4px;font-size:1rem;font-family:var(--font-serif);cursor:pointer;box-shadow:0 4px 12px #1e140a40;transition:transform .2s ease}.vn-map-enter-btn:hover{background:#100d0a;transform:translateY(-2px)}.vn-map-jump-btn{background:none;border:1px solid var(--paper-border);padding:.75rem 1rem;border-radius:4px;color:var(--ink-secondary);font-size:.88rem;cursor:pointer}.vn-event-screen{flex:1;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:1rem 1.25rem calc(1.2rem + var(--safe-bottom));max-width:1100px;width:100%;margin:0 auto}.vn-snapshot-frame{position:absolute;top:1rem;right:1.25rem;z-index:20}.snapshot-thumbnail{display:block;background:#fff;border:1px solid var(--paper-border);padding:4px;box-shadow:var(--shadow-paper);border-radius:3px;cursor:pointer;text-align:left;transition:transform .2s ease,box-shadow .2s ease;max-width:220px}.snapshot-thumbnail:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}.snapshot-thumbnail img{width:100%;height:100px;object-fit:cover;filter:sepia(.3);display:block;border-radius:2px}.snapshot-tag{display:flex;align-items:center;gap:.35rem;margin-top:.35rem;font-size:.72rem;color:var(--ink-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-seal{background:var(--vermilion);color:#fff;font-size:.65rem;padding:0 .2rem;border-radius:1px}.tag-zoom{margin-left:auto;color:var(--gold-bronze);font-weight:700}.vn-dialogue-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;margin-bottom:.5rem;z-index:25}.vn-tool-btn{padding:.25rem .65rem;background:#fffcf4e0;border:1px solid var(--paper-border);border-radius:3px;color:var(--ink-secondary);font-size:.76rem;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .18s ease}.vn-tool-btn:hover,.vn-tool-btn.is-active{background:#fff;color:var(--vermilion);border-color:var(--vermilion)}.vn-dialogue-box{position:relative;z-index:30;width:100%;background:repeating-linear-gradient(0deg,rgba(89,67,43,.016) 0 1px,transparent 1px 6px),radial-gradient(ellipse at 50% 20%,#fdf9f0fa,#f2e8d4fa);border:1px solid #bdab87;border-radius:2px;box-shadow:0 12px 34px #2d20123d,inset 0 0 30px #75573414;padding:1.6rem 2rem 1.4rem;cursor:pointer;transition:opacity .25s ease,transform .25s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.vn-dialogue-box.is-hidden{opacity:0;transform:translateY(20px);pointer-events:none}.vn-speaker-badge{display:flex;align-items:center;gap:.75rem;padding-bottom:.8rem;border-bottom:1px solid var(--paper-border);margin-bottom:1rem}.vn-speaker-badge.speaker-theme-default{padding-left:.15rem}.speaker-avatar-wrap{position:relative;width:3rem;height:3rem;flex-shrink:0;border-radius:50%;overflow:hidden;padding:2px;border:1px solid rgba(112,82,49,.48);background:#e4d6ba;box-shadow:0 2px 8px #33251633}.speaker-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:1px solid rgba(112,82,49,.22);background:#f4ecdc;filter:sepia(.12) saturate(.82) contrast(1.02)}.speaker-avatar-wrap .badge-seal{display:none!important}.badge-names{display:flex;flex-direction:column}.speaker-name{font-size:1.2rem;color:var(--ink-primary);font-family:var(--font-serif);line-height:1.2}.speaker-role{font-size:.78rem;color:var(--ink-muted)}.speaker-theme-zhu .speaker-avatar-img{border-color:#98734b}.speaker-theme-zhu .speaker-name{color:#9e2a22}.speaker-theme-zhu .badge-names{border-left:2px solid #98734b;padding-left:.5rem}.speaker-theme-shen .speaker-avatar-img{border-color:#827056}.speaker-theme-shen .speaker-name{color:#2b333a}.speaker-theme-shen .badge-names{border-left:2px solid #827056;padding-left:.5rem}.speaker-theme-zhou .speaker-avatar-img{border-color:#657c79}.speaker-theme-zhou .speaker-name{color:#244d5c}.speaker-theme-zhou .badge-names{border-left:2px solid #657c79;padding-left:.5rem}.speaker-theme-qi .speaker-avatar-img{border-color:#9a684b}.speaker-theme-qi .speaker-name{color:#7d4422}.speaker-theme-qi .badge-names{border-left:2px solid #9a684b;padding-left:.5rem}.speaker-theme-cheng .speaker-avatar-img{border-color:#687a57}.speaker-theme-cheng .speaker-name{color:#225736}.speaker-theme-cheng .badge-names{border-left:2px solid #687a57;padding-left:.5rem}.station-period-indicator{margin-left:auto;font-size:.8rem;color:var(--ink-muted);display:flex;align-items:center;gap:.4rem}.station-period-indicator i{font-style:normal}.vn-decree-overlay{position:fixed;inset:0;z-index:1000;background:#16100ab8;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;pointer-events:all;animation:decreeFadeIn .25s ease-out forwards}.decree-stamp-modal{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.2rem 2.8rem;background:radial-gradient(ellipse at 50% 30%,#faf3e4,#eee1c4 80%,#decfae);border:2px solid #8e6d42;border-radius:4px;box-shadow:0 12px 40px #00000073,inset 0 0 60px #64462826;max-width:90vw;width:380px}.decree-seal-box{margin-bottom:1.2rem;animation:stampThump .45s cubic-bezier(.175,.885,.32,1.275) forwards}.seal-outer-frame{display:inline-flex;padding:5px;border:3.5px solid #a82e24;border-radius:4px;box-shadow:0 0 12px #a82e2480;background:#a82e240d}.seal-inner-frame{display:flex;align-items:center;justify-content:center;padding:.6rem .9rem;border:1.5px solid #a82e24;background:#a82e24;color:#fff;border-radius:2px}.decree-seal-text{font-family:var(--font-serif);font-size:1.6rem;letter-spacing:.3rem;text-indent:.3rem;white-space:nowrap;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.decree-title{font-size:1.25rem;color:#3d2c18;letter-spacing:.08rem;margin-bottom:.4rem;font-family:var(--font-serif);font-weight:700}.decree-subtitle{font-size:.85rem;color:#7a5f3f;line-height:1.5;margin-bottom:1rem;font-style:italic}.decree-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;color:#a82e24;background:#a82e2414;border:1px solid rgba(168,46,36,.25);padding:.2rem .65rem;border-radius:12px;letter-spacing:.05rem}.decree-ink-dot{font-size:.6rem;animation:pulseDot 1.2s infinite ease-in-out}@keyframes decreeFadeIn{0%{opacity:0}to{opacity:1}}@keyframes stampThump{0%{transform:scale(2.6) rotate(-12deg);opacity:0}60%{transform:scale(.92) rotate(1deg);opacity:1}80%{transform:scale(1.04) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes pulseDot{0%,to{opacity:.4}50%{opacity:1}}.vn-dialogue-content{min-height:5.5rem}.event-kicker-title{font-size:1.05rem;color:var(--gold-bronze);font-family:var(--font-serif);margin-bottom:.45rem;letter-spacing:.05rem}.event-narrative-text{font-size:1.22rem;line-height:1.85;color:var(--ink-primary);font-family:var(--font-serif);letter-spacing:.02rem}.typewriter-content{display:inline}.typewriter-cursor{display:inline-block;width:.55rem;height:1.15rem;background-color:var(--vermilion);margin-left:3px;vertical-align:-2px;animation:cursorBlink .85s infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.vn-qte-card{display:flex;align-items:center;gap:1.2rem;background:#a82e2414;border:1px solid rgba(168,46,36,.35);border-radius:6px;padding:1rem 1.4rem;margin-top:1.2rem;animation:qteShake .6s infinite alternate}@keyframes qteShake{0%{transform:translate(0)}50%{transform:translate(-2px)}to{transform:translate(2px)}}.qte-countdown{display:flex;align-items:baseline;color:var(--vermilion)}.qte-num{font-size:2.4rem;font-weight:700;line-height:1}.qte-sec{font-size:.9rem;margin-left:.2rem}.qte-prompt{flex:1}.qte-prompt b{display:block;font-size:1.05rem;color:var(--vermilion)}.qte-prompt p{font-size:.85rem;color:var(--ink-secondary)}.vn-qte-action-btn{padding:.75rem 1.5rem;background:var(--vermilion);color:#fff;border:none;border-radius:4px;font-size:1.05rem;font-family:var(--font-serif);font-weight:700;cursor:pointer;box-shadow:0 4px 14px #a82e2466;transition:transform .15s ease}.vn-qte-action-btn:hover:not(:disabled){transform:scale(1.05)}.vn-choices-deck{margin-top:1.4rem;border-top:1px dashed var(--paper-border);padding-top:1rem}.choices-prompt-tag{font-size:.82rem;color:var(--ink-muted);margin-bottom:.8rem;letter-spacing:.05rem}.choices-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.vn-choice-slip{display:flex;align-items:center;gap:1rem;padding:.9rem 1.25rem;background:#fffcf5f2;border:1px solid var(--paper-edge);border-radius:4px;text-align:left;cursor:pointer;box-shadow:var(--shadow-paper);transition:all .18s ease}.vn-choice-slip:hover{background:#fff;border-color:var(--vermilion);transform:translate(4px);box-shadow:var(--shadow-card)}.choice-number{width:1.8rem;height:1.8rem;background:#8c694626;color:var(--ink-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:.95rem;font-weight:700;flex-shrink:0}.vn-choice-slip:hover .choice-number{background:var(--vermilion);color:#fff}.choice-body{flex:1}.choice-text{display:block;font-size:1.05rem;color:var(--ink-primary);line-height:1.35}.choice-note{display:block;font-size:.75rem;color:var(--ink-muted);margin-top:.2rem}.choice-seal-stamp{font-size:.78rem;color:var(--vermilion);border:1px solid rgba(168,46,36,.4);padding:.15rem .45rem;border-radius:2px;opacity:.7;font-family:var(--font-serif);white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.vn-choice-slip:hover .choice-seal-stamp{opacity:1;background:#a82e2414}.vn-advance-prompt{text-align:right;margin-top:.8rem;font-size:.82rem;color:var(--vermilion);font-family:var(--font-serif);letter-spacing:.05rem;animation:pulsePrompt 1.8s infinite ease-in-out}@keyframes pulsePrompt{0%,to{opacity:.6}50%{opacity:1}}.vn-progress-deck{display:flex;align-items:center;gap:.8rem;margin-top:1rem;padding-top:.6rem;border-top:1px solid rgba(120,95,70,.12)}.progress-track{flex:1;height:3px;background:#785f4626;border-radius:2px;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--vermilion);transition:width .3s ease}.progress-fraction{font-size:.75rem;color:var(--ink-muted)}.vn-backlog-modal{position:fixed;inset:0;z-index:100;background:#1e140aa6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem calc(1.5rem + var(--safe-bottom))}.vn-backlog-sheet{width:100%;max-width:680px;max-height:85vh;display:flex;flex-direction:column;background:#faf4e6;border:2px solid var(--paper-edge);border-radius:6px;box-shadow:var(--shadow-deep);overflow:hidden}.vn-backlog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem;background:#f5ecd8e6;border-bottom:1px solid var(--paper-border)}.backlog-title-wrap{display:flex;align-items:center;gap:.6rem}.backlog-seal{width:2rem;height:2rem;background:var(--vermilion);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-family:var(--font-serif);font-weight:700;border-radius:3px}.backlog-title-wrap h3{font-size:1.15rem;color:var(--ink-primary)}.backlog-title-wrap p{font-size:.75rem;color:var(--ink-muted)}.backlog-close-btn{background:none;border:1px solid var(--paper-border);width:2rem;height:2rem;border-radius:3px;cursor:pointer;color:var(--ink-secondary)}.vn-backlog-body{flex:1;overflow-y:auto;padding:1.4rem;display:flex;flex-direction:column;gap:1.4rem}.backlog-empty{text-align:center;padding:3rem 1rem;color:var(--ink-muted)}.backlog-empty-illustration{display:block;width:min(15rem,78%);height:6.5rem;margin:0 auto .9rem;object-fit:cover;object-position:center 42%;border:1px solid var(--paper-edge);box-shadow:var(--shadow-paper);filter:sepia(.18) saturate(.8);opacity:.92}.backlog-empty p{font-size:.95rem;letter-spacing:.04rem}.vn-sketch-caption{max-width:calc(100vw - 2rem)}.vn-loading-ornament{position:relative;width:3.2rem;height:3.2rem;margin-bottom:1.2rem;display:flex;align-items:center;justify-content:center;gap:.22rem}.vn-loading-ornament:before{content:"";position:absolute;inset:0;border:1px solid rgba(112,82,49,.5);border-top-color:var(--vermilion);border-radius:50%;animation:loadingInkTurn 3.6s linear infinite}.vn-loading-ornament span{width:2px;height:.8rem;background:var(--ink-muted);opacity:.68;transform:rotate(18deg)}.vn-loading-ornament span:nth-child(2){height:1.1rem;background:var(--vermilion)}.vn-loading-ornament span:nth-child(3){height:.62rem}@keyframes loadingInkTurn{to{transform:rotate(360deg)}}.vn-error-seal{width:3.5rem;height:3.5rem;background:var(--vermilion);color:#fff;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-family:var(--font-serif);margin-bottom:1.2rem;box-shadow:0 4px 14px #a82e2459}.backlog-empty-illustration{border-radius:2px}.backlog-empty p{color:var(--ink-muted)}.vn-backlog-body .backlog-empty{padding-top:2rem;padding-bottom:2rem}.vn-backlog-body .backlog-empty-illustration{height:7.5rem}.vn-backlog-body .backlog-empty p{margin-bottom:.6rem}.backlog-item{padding-bottom:1.2rem;border-bottom:1px dashed var(--paper-border)}.backlog-item-meta{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem;font-size:.8rem}.backlog-item-stage{background:#8c694626;color:var(--ink-secondary);padding:.1rem .45rem;border-radius:2px}.backlog-item-speaker{font-weight:700;color:var(--vermilion)}.backlog-item-text{font-size:1rem;color:var(--ink-primary);line-height:1.6}.backlog-item-choice{margin-top:.45rem;padding:.35rem .65rem;background:#f0e6d299;border-left:2px solid var(--vermilion);font-size:.82rem}.choice-tag{color:var(--ink-muted)}.vn-backlog-footer{padding:.6rem 1rem;background:#f5ecd8cc;border-top:1px solid var(--paper-border);text-align:center;font-size:.75rem;color:var(--ink-muted)}.vn-archive-screen{flex:1;padding:1.5rem 1.25rem calc(2rem + var(--safe-bottom));max-width:1200px;width:100%;margin:0 auto}.vn-archive-container{display:flex;flex-direction:column;gap:1.5rem}.vn-archive-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem;background:#fffcf5e6;border:1px solid var(--paper-edge);border-radius:4px}.archive-title-wrap{display:flex;align-items:center;gap:.8rem}.archive-seal{width:2.2rem;height:2.2rem;background:var(--vermilion);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-family:var(--font-serif);border-radius:3px}.archive-title-wrap h2{font-size:1.3rem;color:var(--ink-primary)}.archive-title-wrap p{font-size:.82rem;color:var(--ink-muted)}.vn-archive-back-btn{padding:.5rem 1rem;background:none;border:1px solid var(--paper-border);border-radius:4px;color:var(--ink-secondary);font-size:.88rem;cursor:pointer}.vn-archive-back-btn:hover{border-color:var(--vermilion);color:var(--vermilion)}.vn-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem}.vn-archive-card{background:#fff;border:1px solid var(--paper-border);padding:6px;border-radius:4px;cursor:pointer;text-align:left;box-shadow:var(--shadow-paper);transition:transform .2s ease,box-shadow .2s ease}.vn-archive-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}.card-photo-frame{position:relative;width:100%;height:160px;overflow:hidden;border-radius:2px}.card-photo-frame img{width:100%;height:100%;object-fit:cover;filter:sepia(.25);transition:transform .3s ease}.vn-archive-card:hover .card-photo-frame img{transform:scale(1.05)}.card-zoom-badge{position:absolute;bottom:.4rem;right:.4rem;background:#1e140ab3;color:#fff;font-size:.65rem;padding:.15rem .45rem;border-radius:2px}.card-caption-block{padding:.6rem .2rem .2rem}.card-group-tag{display:inline-block;font-size:.7rem;color:var(--vermilion);margin-bottom:.2rem}.card-title{display:block;font-size:.88rem;color:var(--ink-primary);line-height:1.4}.vn-ending-screen{flex:1;display:flex;justify-content:center;padding:2rem 1.25rem calc(3rem + var(--safe-bottom))}.vn-ending-scroll{width:100%;max-width:680px;background:radial-gradient(ellipse at 50% 10%,#faf4e6,#eee3c8 90%);border:2px solid var(--paper-edge);border-radius:6px;padding:2.4rem 2rem;box-shadow:var(--shadow-deep);text-align:center}.ending-top-seal{display:inline-block;padding:.3rem 1.4rem;background:var(--vermilion);color:#fff;font-family:var(--font-serif);font-size:1.15rem;letter-spacing:.2rem;border-radius:2px;margin-bottom:1.2rem;box-shadow:0 3px 8px #a82e2459}.ending-header{margin-bottom:1.8rem}.ending-kicker{font-size:.85rem;color:var(--ink-muted);letter-spacing:.1rem}.ending-header h1{font-size:2.2rem;color:var(--ink-primary);margin:.4rem 0;letter-spacing:.1rem}.ending-sub{font-size:1.05rem;color:var(--vermilion);font-family:var(--font-serif)}.ending-hero-photo{margin:1.5rem 0;border:1px solid var(--paper-border);padding:5px;background:#fff;box-shadow:var(--shadow-paper)}.ending-hero-photo img{width:100%;height:240px;object-fit:cover;filter:sepia(.3)}.photo-caption-bar{font-size:.78rem;color:var(--ink-muted);padding:.4rem 0}.ending-parchment-block,.ending-character-block,.ending-epilogue-block{position:relative;text-align:left;background:#fffcf5e6;border:1px solid var(--paper-edge);border-radius:4px;padding:1.4rem 1.6rem;margin-bottom:1.5rem}.block-seal{position:absolute;top:-.65rem;left:1.2rem;background:var(--ink-primary);color:#f5eedc;padding:.1rem .5rem;font-size:.72rem;font-family:var(--font-serif);border-radius:2px}.ending-parchment-block h3,.ending-epilogue-block h4{font-size:1.15rem;color:var(--ink-primary);margin-bottom:.8rem}.block-lines p{font-size:.95rem;color:var(--ink-secondary);line-height:1.7;margin-bottom:.6rem}.character-card-header .card-badge{font-size:.75rem;color:var(--gold-bronze);letter-spacing:.05rem}.character-card-header h2{font-size:1.5rem;color:var(--vermilion);margin:.2rem 0}.character-card-header .card-tone{font-size:.9rem;color:var(--ink-muted);margin-bottom:1rem}.ending-stats-ribbon{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;padding:.8rem 0;border-top:1px dashed var(--paper-border);text-align:center}.stat-cell strong{display:block;font-size:1.4rem;color:var(--ink-primary)}.stat-cell span{font-size:.75rem;color:var(--ink-muted)}.epilogue-item{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem;font-size:.9rem}.epilogue-stamp{color:var(--vermilion);font-weight:700;flex-shrink:0}.ending-actions-deck{display:flex;flex-direction:column;gap:.8rem;margin-top:2rem}.ending-primary-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.4rem;background:var(--ink-primary);color:#fff;border:none;border-radius:4px;font-size:1.1rem;font-family:var(--font-serif);cursor:pointer;box-shadow:0 4px 14px #1e140a40}.ending-secondary-btn{padding:.75rem 1rem;background:transparent;border:1px solid var(--paper-border);border-radius:4px;color:var(--ink-secondary);font-size:.92rem;cursor:pointer}.vn-photo-modal{position:fixed;inset:0;z-index:120;background:#140e08e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem}.modal-sheet{position:relative;max-width:880px;width:100%;max-height:90vh;background:#faf4e6;border:2px solid var(--paper-edge);border-radius:6px;padding:.8rem;display:flex;flex-direction:column;box-shadow:var(--shadow-deep)}.modal-close-btn{position:absolute;top:1rem;right:1rem;width:2.2rem;height:2.2rem;background:#1e140abf;color:#fff;border:none;border-radius:50%;font-size:1.1rem;cursor:pointer;z-index:10}.modal-photo-wrap{width:100%;max-height:68vh;overflow:hidden;background:#000;border-radius:3px;display:flex;align-items:center;justify-content:center}.modal-photo-wrap img{max-width:100%;max-height:68vh;object-fit:contain}.modal-caption-wrap{display:flex;align-items:center;gap:.8rem;padding:.8rem .4rem .2rem}.caption-seal{background:var(--vermilion);color:#fff;font-size:.72rem;padding:.2rem .4rem;border-radius:2px;font-family:var(--font-serif)}.modal-caption-wrap h4{font-size:1rem;color:var(--ink-primary)}.modal-caption-wrap p{font-size:.75rem;color:var(--ink-muted)}.vn-loading-screen,.vn-error-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;background:var(--paper-bg)}.vn-loading-screen p{font-size:1.1rem;color:var(--ink-secondary)}@media(min-width:861px){.vn-current-station{display:block}}@media(min-width:768px){.choices-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.vn-topbar{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.4rem;padding:calc(.4rem + var(--safe-top)) .8rem .45rem .8rem}.vn-topbar-primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;gap:.5rem}.vn-topbar-left{order:unset;min-width:0;gap:.4rem}.vn-brand-seal .seal-char{width:1.75rem;height:1.75rem;font-size:1.05rem}.vn-brand-seal .seal-text strong{font-size:.95rem;letter-spacing:.04rem}.vn-brand-seal .seal-text span,.vn-current-station{display:none}.vn-topbar-right{order:unset;gap:.25rem}.vn-topbar-right .vn-icon-button,.vn-topbar-right .vn-nav-button{padding:.25rem .42rem;font-size:.76rem;min-height:28px;gap:.2rem}.vn-topbar-right .vn-nav-button span{display:none}.vn-resources-deck{order:unset;width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;padding-top:.35rem;border-top:1px dashed rgba(160,130,95,.28);margin-top:.1rem}.vn-resource-chip{display:flex;align-items:center;padding:.28rem .35rem;gap:.35rem;background:#fffcf4d9;border:1px solid rgba(160,130,95,.3);border-radius:4px;box-shadow:0 1px 3px #3c2a180a;min-width:0}.chip-seal{width:1.25rem;height:1.25rem;min-width:1.25rem;font-size:.72rem;border-radius:2px}.chip-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chip-label{display:flex;align-items:baseline;justify-content:space-between;gap:.15rem;font-size:.72rem;white-space:nowrap}.chip-label .chip-name{display:inline-block;font-size:.68rem;color:var(--ink-secondary);letter-spacing:.02rem}.chip-label .chip-value{font-size:.78rem;font-weight:700;color:var(--ink-primary);font-family:var(--font-serif)}.chip-bar{width:100%;height:3.5px;margin-top:0;background:#78645029;border-radius:2px;overflow:hidden}}@media(max-width:360px){.chip-label .chip-name{display:none}.vn-topbar-right .vn-nav-button{padding:.2rem .32rem;font-size:.72rem}}@media(max-width:767px){.vn-home-screen{padding:1rem .8rem calc(1.5rem + var(--safe-bottom))}.vn-book-cover{padding:2rem 1.2rem 1.8rem}.vn-book-stitch{left:.8rem}.vn-cover-title-panel{padding:.8rem 1.4rem}.vn-cover-title-panel h1{font-size:2.2rem;letter-spacing:.25rem}.vn-route-screen{padding:.6rem .8rem calc(1rem + var(--safe-bottom))}.vn-map-board{min-height:280px}.vn-map-dossier{grid-template-columns:1fr;gap:.8rem;padding:1rem}.dossier-photo-wrap img{height:110px}.vn-event-screen{padding:.6rem .8rem calc(.8rem + var(--safe-bottom))}.vn-snapshot-frame{top:.4rem;right:.8rem}.snapshot-thumbnail{max-width:130px}.snapshot-thumbnail img{height:65px}.vn-dialogue-box{padding:1.2rem 1rem 1rem}.vn-speaker-badge{gap:.5rem;padding-bottom:.5rem;margin-bottom:.6rem}.speaker-avatar-wrap{width:2.3rem;height:2.3rem}.speaker-name{font-size:1.05rem}.station-period-indicator{font-size:.72rem}.event-narrative-text{font-size:1.06rem;line-height:1.75}.vn-choice-slip{padding:.75rem .9rem;gap:.6rem}.choice-text{font-size:.95rem}.vn-ending-scroll{padding:1.6rem 1.2rem}.ending-header h1{font-size:1.8rem}.ending-hero-photo img{height:160px}}.journey-transition-screen{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem calc(1.5rem + var(--safe-bottom));cursor:pointer;transition:opacity .35s ease-out;will-change:opacity;transform:translateZ(0)}.journey-transition-screen.is-fading-out{opacity:0;pointer-events:none}.jt-paper-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#faf4e6,#ede2c8 70%,#d8c8a6);opacity:.98;will-change:opacity}.jt-ink-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 40%,rgba(50,36,20,.45) 85%,rgba(25,16,8,.75) 100%),linear-gradient(to bottom,rgba(50,35,20,.3) 0%,transparent 25%,transparent 75%,rgba(40,25,12,.5) 100%);pointer-events:none}.jt-scroll-card{position:relative;z-index:10;width:100%;max-width:680px;background:radial-gradient(ellipse at 50% 15%,#fdfaf2,#f4ebd6 85%,#ebdcc0);border:2px solid var(--paper-edge);border-radius:8px;box-shadow:0 16px 48px #23160c47,0 2px 6px #00000014;padding:2.2rem 2.4rem 2rem;text-align:center;overflow:hidden;animation:jtCardUnfold .42s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity;transform:translateZ(0)}@keyframes jtCardUnfold{0%{opacity:0;transform:scale(.92) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.jt-march-banner{display:flex;align-items:center;justify-content:space-between;padding-bottom:.8rem;border-bottom:1px dashed var(--paper-border);margin-bottom:1.6rem}.banner-kicker{font-size:.85rem;color:var(--vermilion);font-weight:700;letter-spacing:.1rem;font-family:var(--font-serif)}.banner-period{font-size:.8rem;color:var(--ink-muted)}.jt-route-flow{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}.jt-station-node{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:1}.node-flag{width:1.6rem;height:1.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-family:var(--font-serif);font-weight:700}.jt-station-node.is-origin .node-flag{background:#8c6e5033;color:var(--ink-secondary);border:1px solid var(--paper-border)}.jt-station-node.is-destination .node-flag{background:var(--vermilion);color:#fff;border:1px solid var(--vermilion);box-shadow:0 0 10px #a82e2466}.node-name{font-size:1.15rem;color:var(--ink-primary);font-family:var(--font-serif);line-height:1.25}.jt-station-node.is-destination .node-name{color:var(--vermilion);font-size:1.3rem}.jt-animated-road{flex:2;display:flex;flex-direction:column;align-items:center;gap:.4rem}.road-line{position:relative;width:100%;height:4px;background:repeating-linear-gradient(90deg,rgba(168,46,36,.2) 0,rgba(168,46,36,.2) 6px,transparent 6px,transparent 12px);border-radius:2px;overflow:visible}.road-line:before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;background:linear-gradient(90deg,#534537,var(--vermilion));animation:roadLineGrow 1.5s cubic-bezier(.25,1,.5,1) forwards;transform-origin:left}@keyframes roadLineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.road-pulse-light{position:absolute;top:-4px;width:12px;height:12px;background:#fff;border:2px solid var(--vermilion);border-radius:50%;box-shadow:0 0 8px var(--vermilion);animation:roadPulseMove 1.6s ease-in-out infinite}@keyframes roadPulseMove{0%{left:0%;opacity:0}15%{opacity:1}85%{opacity:1}to{left:95%;opacity:0}}.road-meta{font-size:.76rem;color:var(--ink-muted);white-space:nowrap}.road-distance{color:var(--gold-bronze);font-weight:700}.jt-epigraph-box{padding:1rem 1.4rem;background:#f3e9d5a6;border-left:3px solid var(--gold-bronze);border-right:3px solid var(--gold-bronze);border-radius:3px;margin-bottom:1.6rem;text-align:left}.jt-epigraph-text{font-size:1.05rem;color:var(--ink-primary);font-family:var(--font-serif);line-height:1.8;letter-spacing:.05rem}.jt-seal-stamp{position:relative;display:inline-flex;align-items:center;justify-content:center;transform:scale(2.4);opacity:0;transition:transform .28s cubic-bezier(.18,.89,.32,1.28),opacity .25s ease;pointer-events:none}.jt-seal-stamp.is-stamped{transform:scale(1) rotate(-4deg);opacity:1}.seal-inner{min-width:4rem;width:auto;height:4rem;padding:0 .5rem;border:3px solid var(--vermilion);background:#a82e2414;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #a82e2459,inset 0 0 10px #a82e2433;white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.seal-inner span{font-size:1.8rem;font-family:var(--font-serif);font-weight:700;color:var(--vermilion);letter-spacing:.1rem;white-space:nowrap!important;word-break:keep-all!important;display:inline-block}.jt-seal-stamp.is-stamped .seal-ring{position:absolute;inset:-12px;border:2px solid var(--vermilion);border-radius:8px;opacity:0;animation:stampShockwave .5s ease-out forwards}@keyframes stampShockwave{0%{transform:scale(.85);opacity:.8}to{transform:scale(1.35);opacity:0}}.jt-skip-tip{margin-top:1.4rem;font-size:.78rem;color:var(--ink-muted);font-family:var(--font-serif);animation:pulsePrompt 1.8s infinite ease-in-out}.vn-map-svg path{stroke-dasharray:6 6;animation:mapInkFlow 30s linear infinite}@keyframes mapInkFlow{to{stroke-dashoffset:-200}}@media(max-width:767px){.jt-scroll-card{padding:1.5rem 1.1rem 1.2rem}.jt-route-flow{gap:.5rem;margin-bottom:1.2rem}.node-name{font-size:.95rem}.jt-station-node.is-destination .node-name{font-size:1.05rem}.road-meta{font-size:.68rem}.jt-epigraph-text{font-size:.92rem;line-height:1.65}.seal-inner{min-width:3.2rem;width:auto;height:3.2rem;padding:0 .4rem;white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.seal-inner span{font-size:1.4rem;white-space:nowrap!important;word-break:keep-all!important}}.dialogue-beat-counter{display:inline-block;padding:.15rem .55rem;background:#8f68341f;border:1px solid rgba(143,104,52,.28);border-radius:3px;color:var(--gold-bronze);font-size:.76rem;font-family:var(--font-serif);letter-spacing:.05rem}.vn-resolution-panel{display:flex;flex-direction:column;gap:.85rem;margin-top:.4rem}.resolution-chosen-pill{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .9rem;background:#a82e2414;border:1px solid rgba(168,46,36,.35);border-radius:4px;width:fit-content}.res-seal{width:1.4rem;height:1.4rem;background:var(--vermilion);color:#fff;border-radius:2px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:.82rem;font-weight:700}.res-choice-label{font-size:.95rem;color:var(--vermilion);font-family:var(--font-serif);font-weight:700}.resolution-effects-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .8rem;background:#f0e6d273;border:1px dashed var(--paper-border);border-radius:4px}.res-delta-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:3px;font-size:.82rem;font-family:var(--font-serif);font-weight:700}.res-delta-chip.is-pos{background:#3f55471f;color:#275237;border:1px solid rgba(63,85,71,.3)}.res-delta-chip.is-neg{background:#a82e241a;color:var(--vermilion);border:1px solid rgba(168,46,36,.3)}.res-chip-seal{font-family:var(--font-serif);font-size:.85rem}.res-flag-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;background:#a82e241f;color:var(--vermilion);border:1px solid var(--vermilion);border-radius:3px;font-size:.82rem;font-family:var(--font-serif);font-weight:700}.resolution-confirm-row{display:flex;justify-content:flex-end;margin-top:.5rem}.vn-resolution-confirm-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.65rem 1.4rem;background:var(--vermilion);color:#fff;border:none;border-radius:4px;font-size:1.02rem;font-family:var(--font-serif);font-weight:700;cursor:pointer;box-shadow:0 4px 14px #a82e2459;transition:all .2s ease}.vn-resolution-confirm-btn:hover{background:#bd3225;transform:translateY(-2px);box-shadow:0 6px 18px #a82e2473}.vn-passport-modal{position:fixed;inset:0;z-index:100;background:#1c140cb8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem calc(1.5rem + var(--safe-bottom))}.vn-passport-sheet{width:100%;max-width:820px;max-height:88vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 15%,#faf5e8,#eee2c7);border:2px solid var(--paper-edge);border-radius:8px;box-shadow:var(--shadow-deep);overflow:hidden;position:relative}.passport-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.4rem;background:#f3e9d5e0;border-bottom:2px solid var(--paper-border)}.passport-title-wrap{display:flex;align-items:center;gap:.75rem}.passport-top-seal{width:2.2rem;height:2.2rem;background:var(--vermilion);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.15rem;font-family:var(--font-serif);font-weight:700;border-radius:3px;box-shadow:0 2px 6px #a82e244d;flex-shrink:0}.passport-title-wrap h3{font-size:1.18rem;color:var(--ink-primary);margin:0;font-family:var(--font-serif)}.passport-title-wrap p{font-size:.75rem;color:var(--ink-muted);margin:.15rem 0 0}.passport-tab-switch{display:flex;background:#dccdb480;padding:3px;border-radius:4px;gap:3px}.passport-tab-switch .tab-btn{padding:.35rem .8rem;border:none;background:transparent;color:var(--ink-secondary);font-size:.82rem;font-family:var(--font-serif);border-radius:3px;cursor:pointer;transition:all .18s ease}.passport-tab-switch .tab-btn.is-active{background:#fff;color:var(--vermilion);font-weight:700;box-shadow:0 2px 6px #0000001a}.passport-close-btn{background:none;border:1px solid var(--paper-border);width:2rem;height:2rem;border-radius:3px;cursor:pointer;color:var(--ink-secondary);font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:all .18s ease}.passport-close-btn:hover{border-color:var(--vermilion);color:var(--vermilion)}.passport-body-stamps{flex:1;display:grid;grid-template-columns:1.15fr 1fr;overflow-y:auto;min-height:380px}.stamps-grid-col{padding:1.2rem;border-right:1px solid var(--paper-border)}.stamps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.stamp-cell{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.6rem .3rem;background:#fffcf5bf;border:1px solid var(--paper-border);border-radius:4px;cursor:pointer;transition:all .2s ease}.stamp-cell:hover{background:#fff;border-color:var(--gold-bronze);transform:translateY(-2px)}.stamp-cell.is-selected{background:#fff;border-color:var(--vermilion);box-shadow:0 0 0 2px #a82e2433}.stamp-box{width:3.2rem;height:3.2rem;border:2px dashed rgba(168,46,36,.35);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:all .2s ease}.stamp-cell.is-unlocked .stamp-box{border:2px solid var(--vermilion);background:#a82e240f}.stamp-cell.is-locked .stamp-box{border-color:#8c73554d;background:#8c73550d}.seal-char{font-size:1.4rem;font-family:var(--font-serif);font-weight:700;line-height:1}.stamp-cell.is-unlocked .seal-char{color:var(--vermilion)}.stamp-cell.is-locked .seal-char{color:var(--ink-faint)}.stamp-sub-tag{font-size:.62rem;color:var(--ink-muted);margin-top:.15rem}.stamp-station-name{font-size:.8rem;color:var(--ink-primary);font-family:var(--font-serif);text-align:center}.stamp-detail-col{padding:1.4rem;display:flex;flex-direction:column}.detail-card{display:flex;flex-direction:column;gap:1.1rem;height:100%}.detail-meta-row{display:flex;align-items:center;justify-content:space-between}.detail-period-tag{font-size:.8rem;color:var(--gold-bronze);font-family:var(--font-serif);padding:.15rem .5rem;background:#8f68341f;border-radius:2px}.detail-status-pill{font-size:.75rem;padding:.15rem .5rem;border-radius:2px}.detail-status-pill.is-ok{background:#a82e241f;color:var(--vermilion);font-weight:700}.detail-status-pill.is-pending{background:#8c735526;color:var(--ink-muted)}.detail-seal-display{display:flex;align-items:center;gap:1.1rem}.seal-large{min-width:4.2rem;width:auto;height:4.2rem;padding:0 .5rem;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap!important;word-break:keep-all!important}.seal-large.is-red{border:3px solid var(--vermilion);background:#a82e2414;color:var(--vermilion);box-shadow:0 4px 14px #a82e2440}.seal-large.is-red span{font-size:2.2rem;font-family:var(--font-serif);font-weight:700;white-space:nowrap!important;word-break:keep-all!important}.seal-large.is-gray{border:2px dashed rgba(140,115,85,.4);background:#8c735514;color:var(--ink-faint)}.seal-large.is-gray span{font-size:2rem;font-family:var(--font-serif);white-space:nowrap!important;word-break:keep-all!important}.detail-seal-display h4{font-size:1.25rem;color:var(--ink-primary);margin:0 0 .25rem;font-family:var(--font-serif)}.detail-station{font-size:.85rem;color:var(--ink-muted);margin:0}.detail-epigraph-box{padding:1rem 1.1rem;background:#fffcf5b3;border-left:3px solid var(--vermilion);border-radius:2px;flex:1}.epigraph-title{display:block;font-size:.82rem;color:var(--gold-bronze);font-family:var(--font-serif);margin-bottom:.4rem}.epigraph-content{font-size:.95rem;line-height:1.7;color:var(--ink-secondary);font-family:var(--font-serif);margin:0}.passport-body-waypoints{flex:1;padding:1.2rem;overflow-y:auto}.waypoints-list{display:flex;flex-direction:column;gap:.9rem}.waypoint-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.2rem;background:#fffcf5d9;border:1px solid var(--paper-border);border-radius:6px;transition:all .2s ease}.waypoint-card.is-visited{border-left:3px solid var(--vermilion)}.waypoint-card.is-unvisited{opacity:.85;border-left:3px dashed var(--gold-bronze)}.wp-seal-mark{width:2.4rem;height:2.4rem;border:2px solid var(--gold-bronze);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#8f683414}.waypoint-card.is-visited .wp-seal-mark{border-color:var(--vermilion);background:#a82e2414}.wp-seal-mark span{font-size:1.2rem;font-family:var(--font-serif);font-weight:700;color:var(--gold-bronze)}.waypoint-card.is-visited .wp-seal-mark span{color:var(--vermilion)}.wp-info{flex:1}.wp-title-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem}.wp-title-row strong{font-size:1.05rem;color:var(--ink-primary);font-family:var(--font-serif)}.wp-near-tag{font-size:.72rem;color:var(--gold-bronze);padding:.1rem .4rem;background:#8f68341a;border-radius:2px}.wp-snippet{font-size:.9rem;line-height:1.6;color:var(--ink-secondary);margin:.3rem 0 .5rem}.wp-bonus-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-muted)}.wp-bonus-tag b{color:var(--vermilion)}.wp-bonus-tag i{font-style:normal;color:var(--jade-green);font-weight:700}.wp-explore-jump-btn{padding:.45rem .85rem;background:none;border:1px solid var(--paper-border);border-radius:3px;color:var(--gold-bronze);font-size:.82rem;cursor:pointer;white-space:nowrap;align-self:center;transition:all .2s ease}.wp-explore-jump-btn:hover{border-color:var(--gold-bronze);background:#8f683414}.passport-footer{padding:.6rem 1rem;background:#f3e9d5bf;border-top:1px solid var(--paper-border);text-align:center;font-size:.75rem;color:var(--ink-muted)}.vn-map-waypoint{position:absolute;transform:translate(-50%,-50%);background:none;border:none;cursor:pointer;z-index:15;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:0;transition:transform .2s ease}.vn-map-waypoint:hover{transform:translate(-50%,-50%) scale(1.15);z-index:35}.waypoint-pin{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--gold-bronze);background:#faf3e2;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #50321433;transition:all .2s ease}.vn-map-waypoint.is-visited .waypoint-pin{border-color:var(--vermilion);background:#fff;box-shadow:0 2px 8px #a82e244d}.waypoint-seal-char{font-size:.72rem;font-family:var(--font-serif);font-weight:700;color:var(--gold-bronze);line-height:1;white-space:nowrap!important}.vn-map-waypoint.is-visited .waypoint-seal-char{color:var(--vermilion)}.waypoint-tag{padding:.08rem .35rem;background:#fefbf3f0;border:1px solid var(--paper-border);border-radius:2px;box-shadow:0 1px 3px #00000014;white-space:nowrap!important;word-break:keep-all!important;pointer-events:none}.waypoint-tag-label{font-size:.68rem;color:var(--ink-secondary);font-family:var(--font-serif);white-space:nowrap!important;word-break:keep-all!important}.vn-map-waypoint.is-visited .waypoint-tag-label{color:var(--vermilion);font-weight:700}.vn-map-waypoint:hover .waypoint-pin{transform:scale(1.2)}.vn-map-waypoint.is-unvisited .waypoint-pin{animation:waypointPulse 2.4s infinite ease-in-out}@keyframes waypointPulse{0%,to{transform:scale(1);box-shadow:0 0 #8f683466}50%{transform:scale(1.12);box-shadow:0 0 0 6px #8f683400}}.vn-waypoint-modal-backdrop{position:fixed;inset:0;z-index:105;background:#1e160ea6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem calc(1.5rem + var(--safe-bottom))}.vn-waypoint-modal-card{width:100%;max-width:540px;background:radial-gradient(ellipse at 50% 20%,#faf5e9,#eee1c4);border:2px solid var(--paper-edge);border-radius:8px;box-shadow:var(--shadow-deep);overflow:hidden}.wp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;background:#f3e9d5e0;border-bottom:1px solid var(--paper-border)}.wp-modal-title-group{display:flex;align-items:center;gap:.75rem}.wp-modal-seal{width:2.2rem;height:2.2rem;border:2px solid var(--gold-bronze);background:#8f68341a;color:var(--gold-bronze);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;font-family:var(--font-serif);font-weight:700}.wp-modal-title-group h3{font-size:1.15rem;color:var(--ink-primary);margin:0;font-family:var(--font-serif)}.wp-modal-title-group p{font-size:.75rem;color:var(--ink-muted);margin:.15rem 0 0}.wp-modal-close-btn{background:none;border:1px solid var(--paper-border);width:1.9rem;height:1.9rem;border-radius:3px;cursor:pointer;color:var(--ink-secondary)}.wp-modal-body{padding:1.3rem;display:flex;flex-direction:column;gap:1rem}.wp-modal-story p{font-size:1.02rem;line-height:1.75;color:var(--ink-primary);font-family:var(--font-serif);margin:0}.wp-modal-bonus-box{background:#fffcf5cc;border:1px dashed var(--paper-border);padding:.75rem 1rem;border-radius:4px}.bonus-pill{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.bonus-kicker{color:var(--ink-muted)}.bonus-pill strong{color:var(--vermilion)}.bonus-pill i{font-style:normal;color:var(--jade-green);font-weight:700}.wp-modal-footer{padding:.8rem 1.3rem;background:#f3e9d5bf;border-top:1px solid var(--paper-border);display:flex;justify-content:flex-end}.wp-modal-collect-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.3rem;background:var(--vermilion);color:#fff;border:none;border-radius:4px;font-size:.95rem;font-family:var(--font-serif);font-weight:700;cursor:pointer;box-shadow:0 3px 10px #a82e244d;transition:all .2s ease}.wp-modal-collect-btn:hover{background:#bd3225;transform:translateY(-2px)}.wp-modal-visited-state{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:.82rem;color:var(--jade-green)}.wp-modal-passport-link{background:none;border:1px solid var(--paper-border);padding:.35rem .75rem;border-radius:3px;color:var(--vermilion);cursor:pointer;font-size:.82rem}@media(max-width:767px){.passport-header{flex-wrap:wrap;gap:.6rem;padding:.8rem 1rem}.passport-tab-switch{order:3;width:100%;justify-content:center}.passport-body-stamps{grid-template-columns:1fr;min-height:auto}.stamps-grid-col{border-right:none;border-bottom:1px solid var(--paper-border);padding:.9rem}.stamps-grid{grid-template-columns:repeat(4,1fr);gap:.5rem}.stamp-box{width:2.6rem;height:2.6rem}.seal-char{font-size:1.15rem}.stamp-detail-col{padding:1rem}.seal-large{min-width:3.2rem;width:auto;height:3.2rem;padding:0 .4rem;white-space:nowrap!important;word-break:keep-all!important;flex-shrink:0}.seal-large.is-red span{font-size:1.6rem}.resolution-confirm-row{justify-content:stretch}.vn-resolution-confirm-btn{width:100%;justify-content:center}}
