:root{--journey-ink:#f4efe3;--journey-muted:#b6c1b8;--journey-brass:#d9ba78;--journey-brass-hi:#f1d89e;--journey-deep:#071a20;--journey-panel:#0c272d;--journey-line:#cbb77b55}
#journey-root{position:fixed;inset:0;z-index:300;color:var(--journey-ink);font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;overflow:auto;isolation:isolate}#journey-root[hidden]{display:none}.journey-scrim{position:fixed;inset:0;background:radial-gradient(circle at 72% 35%,#31565b44,transparent 42%),linear-gradient(115deg,#06161be8 0%,#081d23c9 46%,#04101780 100%);z-index:-1}.journey-scrim:after{content:"";position:absolute;inset:0;opacity:.14;background-image:linear-gradient(120deg,transparent 0 47%,#e5c988 48% 48.3%,transparent 49%),linear-gradient(30deg,transparent 0 47%,#e5c988 48% 48.3%,transparent 49%);background-size:42px 42px;mask-image:linear-gradient(90deg,#000,transparent 65%)}.journey-content{min-height:100%;display:grid;place-items:center;padding:clamp(24px,5vw,72px)}.journey-title{position:relative;width:min(1240px,100%);min-height:min(760px,calc(100vh - 56px));display:grid;grid-template-columns:minmax(0,1.18fr) minmax(260px,.62fr);align-items:center;gap:clamp(30px,8vw,120px);padding:clamp(22px,4vw,64px)}.title-copy{max-width:680px}.journey-kicker{margin:0 0 16px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:var(--journey-brass);font-weight:600}.tiny-diamond{display:inline-block;width:8px;height:8px;transform:rotate(45deg);background:var(--journey-brass);margin-right:10px;box-shadow:0 0 20px #e2c17b99}.title-series{font-size:14px;letter-spacing:.18em;color:#c0d1c8;margin:0 0 22px}.journey-title h1{font-family:Georgia,"STSong",serif;font-weight:400;line-height:.95;font-size:clamp(62px,10vw,142px);letter-spacing:.08em;margin:0;color:#f4ead2;text-shadow:0 8px 35px #0008}.journey-title h1 span{display:block;color:var(--journey-brass-hi);font-size:.7em;margin-left:1.7em;margin-top:.18em}.journey-title h1 i{display:block;font:normal 12px/1.5 "Microsoft YaHei";letter-spacing:.45em;color:#adc0b9;margin:28px 0 0 2.6em}.title-intro{font-size:16px;line-height:2;color:#d4dfd8;letter-spacing:.08em;margin:30px 0 34px}.title-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.journey-primary,.journey-window button,.journey-title button{font:inherit;color:#e7e9dc;background:#14343b;border:1px solid #9bad9c66;border-radius:5px;padding:11px 17px;cursor:pointer;transition:transform .2s,background .2s,border-color .2s;display:inline-flex;align-items:center;gap:10px}.journey-primary{color:#12272c;background:linear-gradient(120deg,var(--journey-brass),var(--journey-brass-hi));border-color:#f0d696;font-weight:700;box-shadow:0 8px 30px #0004}.journey-primary:hover,.journey-title button:hover,.journey-window button:hover{transform:translateY(-2px);border-color:var(--journey-brass-hi);background:#28505a}.journey-primary:hover{background:linear-gradient(120deg,#e3c886,#f8dfaa)}button:disabled{opacity:.36;cursor:not-allowed;transform:none!important}.journey-primary img,.journey-window button img{width:16px;height:16px;filter:invert(1);}.journey-primary img{filter:invert(.1)}.title-nav{display:flex;flex-wrap:wrap;gap:3px 20px}.title-nav button,.journey-link{background:transparent;border:0;color:#bdccc2;padding:6px 0;font-size:12px;letter-spacing:.08em}.title-nav button:hover,.journey-link:hover{color:var(--journey-brass-hi);transform:none}.latest-summary{font-size:12px;color:#e4d6af;letter-spacing:.06em}.latest-summary small{display:block;color:#99ada5;margin-top:5px}.title-location{align-self:end;border-left:1px solid var(--journey-line);padding:8px 0 8px 28px;max-width:290px;color:#b4c9c0}.title-location span{font-size:10px;letter-spacing:.24em;color:var(--journey-brass)}.title-location strong{display:block;font-family:Georgia,"STSong",serif;font-weight:400;font-size:28px;line-height:1.45;color:#eee4ca;margin:22px 0}.title-location p{font-size:12px;line-height:2;letter-spacing:.1em}.location-rule{height:1px;background:var(--journey-line);margin:26px 0}.title-location small{font-size:9px;letter-spacing:.15em;color:#879f99}.title-footer{position:absolute;bottom:5px;left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);display:flex;justify-content:space-between;color:#7e9691;font-size:10px;letter-spacing:.08em}.journey-window{width:min(960px,100%);background:linear-gradient(135deg,#102e35f2,#081d24f5);border:1px solid #d3ba7a66;box-shadow:0 28px 90px #0009;padding:clamp(24px,4vw,52px);border-radius:12px;backdrop-filter:blur(22px)}.journey-window header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #93a79b33;padding-bottom:20px;margin-bottom:28px}.journey-window h1{font-family:Georgia,"STSong",serif;font-weight:400;font-size:clamp(30px,5vw,52px);margin:0;letter-spacing:.08em;color:#eee4ca}.journey-window h2{font-family:Georgia,"STSong",serif;font-weight:400;color:#e9dbb6;letter-spacing:.06em}.journey-close{background:transparent!important;border:0!important;color:#b5c8c0!important;font-size:12px!important}.journey-close img{width:14px;filter:invert(.8)}.journey-description{color:#b9cbc1;line-height:1.8}.journey-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.journey-slot{border:1px solid #94a78f38;border-radius:8px;background:#ffffff04;overflow:hidden;display:flex;flex-direction:column}.journey-slot.is-current{border-color:#d5b87399;box-shadow:inset 0 0 0 1px #d5b87333}.slot-art{height:120px;position:relative;background:linear-gradient(160deg,#315c5a,#132d34 55%,#0d2028);overflow:hidden}.slot-landscape{position:absolute;inset:25% -10% -30%;background:linear-gradient(150deg,transparent 40%,#1b554d 41% 53%,transparent 54%),linear-gradient(20deg,transparent 40%,#875d3b 41% 50%,transparent 51%);transform:skewY(-8deg)}.slot-number{position:absolute;left:12px;top:9px;color:#f0d99e;font:18px Georgia,serif}.slot-current{position:absolute;right:10px;top:10px;background:#d6b875;color:#182d31;padding:3px 6px;border-radius:3px;font-size:9px}.slot-copy{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}.slot-copy h2{font-size:19px;margin:0}.slot-copy p{margin:0;color:#b5c6bd;font-size:12px;line-height:1.65}.slot-copy small{color:#829b94;font-size:10px}.slot-summary{min-height:38px;color:#d4dfd7!important}.slot-copy .journey-primary{margin-top:auto;justify-content:center}.slot-tools{display:flex;gap:11px;flex-wrap:wrap}.slot-tools button{background:transparent;border:0;padding:3px 0;color:#91aaa0;font-size:10px}.danger-text{color:#d28c81!important}.journey-tabs{display:flex;gap:8px;margin:12px 0 22px}.journey-tabs button[aria-pressed=true]{background:var(--journey-brass);color:#132b31}.journey-footnote{color:#748f8a;font-size:10px;line-height:1.8;margin:24px 0 0}.pause-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px}.pause-chapter{border-left:2px solid var(--journey-brass);padding-left:20px}.pause-chapter h2{font-size:30px;margin:14px 0}.pause-chapter p{color:#b4c7be;line-height:1.8}.pause-chapter small{color:#809a93;font-size:11px}.journey-seal{display:grid;place-items:center;width:50px;height:50px;border:1px solid #d3b67699;border-radius:50%;color:var(--journey-brass);font:23px Georgia,serif}.pause-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}.pause-actions button{justify-content:flex-start}.pause-actions .quiet{margin-top:15px;background:transparent;border:0;color:#a8b9b1}.journey-settings{display:grid;gap:22px}.journey-settings>div{padding:18px;border:1px solid #94a78f33;border-radius:8px;background:#ffffff03}.journey-settings h2{font-size:19px;margin:0 0 8px}.journey-settings p{color:#aabdb4;font-size:12px;line-height:1.7}.journey-settings label{display:flex;justify-content:space-between;color:#d9dfd7;font-size:12px;margin:12px 0 4px}.journey-settings input{width:100%;accent-color:var(--journey-brass)}.journey-controls{display:flex;gap:18px;flex-wrap:wrap;color:#8da6a0;font-size:11px;margin-top:22px}.journey-controls kbd{border:1px solid #9bad9c55;padding:2px 5px;border-radius:3px;color:#e5d4a3}.diary-layout{display:grid;grid-template-columns:200px 1fr;gap:34px}.chapter-list{display:grid;gap:9px;align-content:start}.chapter-list>div{display:flex;gap:10px;padding:10px;color:#708b87;opacity:.6;border-left:1px solid #76908a44}.chapter-list>div.current,.chapter-list>div.complete{opacity:1;border-left-color:var(--journey-brass);color:#e4d4a4}.chapter-list span{font:18px Georgia,serif}.chapter-list small,.chapter-list strong{display:block}.chapter-list strong{font-size:12px;margin-top:3px}.chapter-list small{font-size:9px}.diary-pages h2{font-size:34px;margin:10px 0}.diary-pages>p{color:#b6c8bf;line-height:1.8}.diary-goals{display:grid;gap:8px;border-top:1px solid #94a78f33;border-bottom:1px solid #94a78f33;padding:14px 0}.diary-goals>div{display:flex;gap:10px;align-items:center;color:#d7dfd4;font-size:12px}.diary-goals small{margin-left:auto;color:#849f97}.diary-goals .goal-done{color:#a1d19f}.diary-pages h3{font-size:13px;letter-spacing:.15em;color:var(--journey-brass);font-weight:500;margin-top:26px}.diary-memories{display:grid;gap:7px}.diary-memories p{display:flex;gap:16px;margin:0;color:#c4d0c7;font-size:12px}.diary-memories time{color:#8ea9a0;min-width:55px}.about-copy{max-width:650px;color:#b9cbc1;line-height:1.95}.about-lead{font:30px/1.5 Georgia,"STSong",serif;color:#eedfb7}.about-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.about-tags span{padding:6px 10px;border:1px solid #c1ab7244;color:#cdbd91;font-size:10px}.story-layout{min-height:100%;width:min(1120px,100%);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(18px,4vw,58px)}.story-top{display:flex;justify-content:space-between;align-items:center;color:#adbbb3;font-size:11px;letter-spacing:.12em}.story-top p{color:#e1ce98}.story-top button{background:transparent;border:0;color:#a9b9b2;font-size:11px}.story-caption{margin-top:10vh;color:#c9b77f;font-size:12px;letter-spacing:.1em}.story-dialogue{display:grid;grid-template-columns:75px 1fr minmax(190px,.4fr);gap:28px;align-items:center;margin:8vh 0}.speaker-medallion{display:grid;place-items:center;width:62px;height:62px;border:1px solid #d9ba78;border-radius:50%;color:#e6cb8b;font:30px Georgia,serif;background:#0b2b31aa}.story-speaker{color:#dcc487;font-size:13px;letter-spacing:.16em}.story-speaker small{display:block;color:#93aaa2;font-size:10px;letter-spacing:.04em;margin-top:5px}.story-text h1{font:400 clamp(27px,4.5vw,55px)/1.55 Georgia,"STSong",serif;color:#f1ead7;margin:16px 0}.story-progress{display:flex;gap:5px}.story-progress span{width:34px;height:2px;background:#9ba99d55}.story-progress span.read{background:var(--journey-brass)}.story-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.story-actions button{justify-content:center}.story-actions .journey-link{justify-content:center;margin-top:4px}.story-note{font-size:10px;color:#859e97;border-top:1px solid #a1ad9b33;padding-top:16px;letter-spacing:.05em}.journey-confirm{position:fixed;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 36px));padding:28px;background:#102d34;border:1px solid #d4b87699;box-shadow:0 24px 80px #000b;border-radius:9px}.journey-confirm h2{font:25px Georgia,"STSong",serif;color:#f0dfb6}.journey-confirm p{color:#b5c8be;line-height:1.75;font-size:13px}.journey-confirm>div{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.journey-danger{background:#6c3534!important;border-color:#d58d83!important}.journey-message{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#0a242cf2;border:1px solid #d2b67355;padding:9px 15px;border-radius:5px;font-size:11px;color:#e4d5ae}.journey-busy{position:fixed;inset:0;display:grid;place-items:center;background:#07171ddd;color:#e4d5ae;letter-spacing:.15em}.journey-live{position:fixed;left:-10000px}.journey-concealed{opacity:0!important;pointer-events:none!important}.reduce-motion *, .reduce-motion *:before, .reduce-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.journey-dock{position:fixed;top:18px;right:18px;z-index:20;display:flex;gap:6px}.journey-dock button{background:#102c34dd;border:1px solid #849b9155;color:#e0d4af;padding:8px 10px;border-radius:5px;font-size:10px}.journey-dock img{width:14px;vertical-align:middle;filter:invert(.85)}#chapter-name{color:#d7bc7b}
@media(max-width:760px){.journey-title{grid-template-columns:1fr;align-content:center;gap:30px;min-height:100vh;padding:25px}.title-location{display:none}.journey-title h1{font-size:clamp(60px,19vw,100px)}.title-footer{position:static;display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.journey-slots{grid-template-columns:1fr}.pause-layout,.diary-layout{grid-template-columns:1fr;gap:24px}.chapter-list{grid-template-columns:repeat(5,1fr)}.chapter-list>div{border-left:0;border-bottom:1px solid #76908a44;padding:8px 3px;display:block}.chapter-list strong{font-size:9px}.chapter-list small{font-size:8px}.story-layout{padding:20px}.story-dialogue{grid-template-columns:48px 1fr;gap:12px;margin:8vh 0}.story-actions{grid-column:1/-1}.story-text h1{font-size:29px}.journey-content{padding:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Shared interaction treatment across the title, dialogue and modal surfaces. */
#journey-root button{font-family:inherit;touch-action:manipulation}
.story-actions button,.journey-confirm button{font:inherit;color:#e7e9dc;background:#14343b;border:1px solid #9bad9c66;border-radius:5px;padding:12px 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px}
#journey-root .journey-primary{color:#172a2e;background:linear-gradient(115deg,#cfaf6d,#f0d89e);border:1px solid #f2dca8;font-weight:600;box-shadow:0 8px 30px #0003}
#journey-root .journey-primary:hover{background:linear-gradient(115deg,#e3c481,#f8e7b9);transform:translateY(-2px)}
#journey-root .journey-primary img{filter:brightness(.18)}
#journey-root button:focus-visible,.journey-dock button:focus-visible,#journey-root input:focus-visible{outline:2px solid #f5dca0;outline-offset:5px}
#journey-root .journey-link{background:transparent;border:0;color:#b9c9bd;box-shadow:none;font-size:11px;padding:8px 0}
.first-journey{color:#a8bdb4;font-size:12px;letter-spacing:.08em}
.slot-art img{width:100%;height:100%;object-fit:cover;display:block}
.slot-landscape{inset:0;transform:none;background:url('./assets/ui/journey-village.svg') center 60% / cover no-repeat;opacity:.75}
.slot-art:after{content:"";position:absolute;inset:0;background:linear-gradient(#071e2740,transparent 50%,#071e2740);pointer-events:none}
.slot-number,.slot-current{z-index:1}
.view-prologue .journey-scrim,.view-replay .journey-scrim{background:linear-gradient(0deg,#04131bf5 0%,#061b23b8 36%,#071b2220 74%,#071b2277)}
.view-prologue .journey-scrim:after,.view-replay .journey-scrim:after,.view-pause .journey-scrim:after{opacity:.035}
.view-prologue .journey-content,.view-replay .journey-content{height:100%;padding:clamp(16px,3.5vw,50px)}
.story-layout{width:min(1250px,100%);padding:16px 24px;min-height:100%;gap:22px}
.story-top{gap:16px}.story-top button{cursor:pointer;padding:10px 0}
.story-caption{margin-top:auto;padding-top:24vh}
.story-dialogue{grid-template-columns:62px minmax(0,1fr) 190px;gap:24px;margin:4vh 0 2vh;align-items:start}
.story-text h1{font-size:clamp(25px,2.5vw,38px);line-height:1.7;letter-spacing:.03em;margin:14px 0 22px}
.story-actions{align-self:end;margin-bottom:8px}.story-actions button{font-size:12px}
.story-note{line-height:1.8;padding-top:14px}
.journey-dock{top:18px;right:205px;left:365px;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;pointer-events:none}
.journey-dock button{pointer-events:auto;min-height:36px;cursor:pointer;white-space:nowrap;backdrop-filter:blur(12px)}
.chapter-chip{max-width:280px;padding:8px 15px;border-left:1px solid #d0b16b70;background:linear-gradient(90deg,#0b242be0,#0b242b99);border-radius:0 6px 6px 0;margin-right:5px}
#chapter-name{display:block;font-size:12px;letter-spacing:.06em;line-height:1.6}
#save-status{display:block;font-size:9px;line-height:1.6;color:#9bb7ad;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journey-window,.journey-slot,.story-text{min-width:0}
.journey-message{z-index:6;max-width:calc(100vw - 32px);line-height:1.7}
.has-confirm .journey-content{filter:brightness(.48);pointer-events:none}
.journey-confirm{max-height:calc(100dvh - 40px);overflow:auto}
@media(max-width:1100px){.journey-dock{left:365px;right:190px}.chapter-chip{width:100%;max-width:290px;margin:0}.journey-dock button{font-size:9px;padding:6px 8px}}
@media(max-width:760px){
  .journey-dock{top:12px;right:12px;left:auto;width:145px;justify-content:flex-end}
  .chapter-chip{max-width:145px;padding:6px 9px}#chapter-name{font-size:10px}#save-status{font-size:8px}
  .journey-dock button{min-height:36px;padding:7px;flex:1;font-size:9px}.journey-dock img{width:12px}
  .journey-title{min-height:calc(100dvh - 30px);padding:20px 14px;gap:20px}
  .journey-title h1{font-size:clamp(60px,19vw,100px)}.title-intro{font-size:14px;margin:26px 0}
  .title-nav{gap:8px 20px}.title-nav button{min-height:36px}.title-footer{font-size:9px;line-height:1.8}
  .journey-window{padding:24px 20px}.journey-window header{gap:12px}.journey-window h1{font-size:28px}
  .view-prologue .journey-content,.view-replay .journey-content{padding:16px}
  .story-layout{padding:8px 3px;gap:16px}.story-top{font-size:9px;gap:8px}.story-top button{font-size:10px;min-width:60px}
  .story-caption{padding-top:16vh;font-size:11px;line-height:1.8}
  .story-dialogue{grid-template-columns:40px minmax(0,1fr);gap:14px;margin:10px 0}
  .speaker-medallion{width:38px;height:38px;font-size:21px}.story-speaker{font-size:12px;margin:0}
  .story-text h1{font-size:24px;line-height:1.65;margin:12px 0 20px}
  .story-actions{grid-column:2;gap:8px;align-self:auto;margin:0}.story-actions button{min-height:44px}
  .story-note{font-size:9px}.slot-art{height:130px}.slot-tools button{min-height:36px;font-size:11px}
  .journey-slot .slot-summary{min-height:0}.chapter-list{gap:4px}.diary-pages h2{font-size:27px}
}
@media(max-height:620px) and (min-width:761px){.journey-title{min-height:500px}.journey-content{padding:20px}.journey-title h1{font-size:80px}.title-intro{margin:20px 0}.story-caption{padding-top:10vh}.story-text h1{font-size:26px}}
.culture-notes{margin-top:28px;padding-top:6px;border-top:1px solid #93a79b33}.culture-notes h3 span{display:inline-grid;place-items:center;border:1px solid #bda66c77;border-radius:50%;min-width:25px;height:25px;margin-left:8px}.culture-notes>p{color:#a2b8ae;font-size:12px;line-height:1.8}.culture-card{padding:14px 16px;margin:10px 0;border:1px solid #9bad8e33;border-radius:6px;background:#ffffff04}.culture-card summary{display:flex;align-items:center;gap:14px;cursor:pointer;color:#e6d4a7;font-size:13px;list-style:none}.culture-card summary:after{content:'＋';margin-left:auto;color:#95b3a9}.culture-card[open] summary:after{content:'−'}.culture-card summary span{color:#9bb7ae;font-size:11px}.culture-card p{color:#b8cbc0;font-size:12px;line-height:1.9}.culture-card a{display:block;color:#abbd9d;font-size:10px;line-height:1.8;text-underline-offset:3px}.culture-card summary:focus-visible,.culture-card a:focus-visible{outline:2px solid #d6b875;outline-offset:5px}
