/* 双生之旅: a quiet interface surrounding consequential, tense stories. */
.fate-panel{max-width:960px;margin:45px auto;padding:34px;background:linear-gradient(135deg,#fbfaf2,#eef1e8);border:1px solid #d2daca;border-radius:18px;box-shadow:0 24px 65px #23433417;animation:comic-reveal .55s ease both;scroll-margin-top:100px}.fate-panel>header{display:flex;align-items:center;justify-content:space-between}.fate-panel>header button{padding:8px;border:0;background:transparent}.fate-panel h2{font:500 clamp(24px,3vw,32px)/1.65 "Jingjie Serif",serif;color:#2d473b;margin:22px 0 12px}.fate-lead{font-size:13px;line-height:1.9;color:#53695b}.fate-deck,.fate-mode{border:0;padding:0;margin:26px 0}.fate-deck>legend,.fate-mode>legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.fate-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.fate-card{position:relative;display:flex;flex-direction:column;min-height:240px;padding:24px 20px;background:#fcfbf6;border:1px solid #d3dccd;border-radius:5px 5px 20px 5px;cursor:pointer;box-shadow:3px 5px 0 #dfe5d9;transition:transform .35s,border-color .35s,box-shadow .35s,background .35s;animation:fate-unfold .6s ease backwards}.fate-card:nth-of-type(2){animation-delay:.07s}.fate-card:nth-of-type(3){animation-delay:.14s}.fate-card:nth-of-type(4){animation-delay:.21s}.fate-card:nth-of-type(5){animation-delay:.28s}.fate-card input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}.fate-card:has(input:focus-visible){outline:2px solid #3a6852;outline-offset:4px}.fate-card:hover{transform:translateY(-5px);border-color:#829d88;box-shadow:3px 10px 0 #d3ddcd}.fate-card.selected{transform:translateY(-6px);background:linear-gradient(155deg,#f8f9e9,#e0e9d6);border-color:#64866e;box-shadow:3px 9px 0 #c2d1bc,0 12px 30px #395b4420}.fate-card-number{font:16px "Jingjie Serif",serif;color:#7c9079}.fate-card-symbol{align-self:center;color:#6e8c70;margin:10px 0 20px}.fate-card-symbol .ui-icon{width:32px;height:32px}.fate-card strong{font:500 19px/1.65 "Jingjie Serif",serif;color:#2f493a}.fate-card-description{display:block;font-size:12px;line-height:1.9;color:#566c5a;margin:12px 0 18px}.fate-card small{font-size:10px;color:#6a7b66;margin-top:auto}.fate-card-check{position:absolute;right:17px;top:18px;opacity:0;color:#466b4e;transform:scale(.5);transition:opacity .3s,transform .3s}.fate-card.selected .fate-card-check{opacity:1;transform:scale(1)}.fate-selected{padding:15px 0;display:flex;gap:15px;align-items:center;border-top:1px solid #d4ddcf}.fate-selected>span{font-size:11px;color:#657b66}.fate-selected>strong{font:500 17px/1.8 "Jingjie Serif",serif;color:#35503b}.fate-intention{font-size:12px;color:#63745f;margin:12px 0 28px}.fate-mode{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.fate-mode label{position:relative;cursor:pointer}.fate-mode input{position:absolute;opacity:0}.fate-mode span{display:block;border:1px solid #d0d9c9;border-radius:20px;padding:8px 13px;font-size:12px}.fate-mode input:checked+span{background:#dfe8d7;border-color:#8fa184;color:#365339}.fate-mode input:focus-visible+span{outline:2px solid #3a6852;outline-offset:2px}.fate-submit{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.fate-submit .journey-next{display:flex;gap:12px;align-items:center}.fate-aftermath{position:relative;isolation:isolate;min-height:70vh;display:grid;place-items:center;overflow:hidden;border-radius:10px;animation:comic-reveal .65s ease both}.fate-aftermath>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:comic-camera 20s ease-in-out infinite alternate;z-index:-2}.fate-aftermath-veil{position:absolute;inset:0;background:linear-gradient(90deg,#102b24ed,#182b2bbf);z-index:-1}.fate-aftermath-copy{max-width:760px;padding:65px 45px;color:#f9f4e8;animation:fate-unfold .8s ease both}.fate-aftermath-copy .atelier-kicker{color:#d3dfc9}.fate-aftermath-copy h1{font:500 36px/1.7 "Jingjie Serif",serif;color:#fff7e7;margin:24px 0}.fate-aftermath-copy p{font:400 21px/2.1 "Jingjie Serif",serif;color:#f1efdf;margin:20px 0 35px}.fate-aftermath-copy .journey-next{background:#eeeede;color:#284633;border:0}.fate-aftermath-copy small{display:block;color:#c6d1c0;font-size:11px;margin-top:20px}@keyframes fate-unfold{from{opacity:0;transform:perspective(900px) rotateX(8deg) translateY(16px)}to{opacity:1;transform:perspective(900px) rotateX(0deg) translateY(0)}}@media(max-width:800px){.fate-deck{grid-template-columns:repeat(2,minmax(0,1fr))}.fate-panel{padding:26px}}@media(max-width:500px){.fate-panel{padding:20px 14px}.fate-deck{gap:12px}.fate-card{padding:18px 14px;min-height:230px}.fate-card strong{font-size:17px}.fate-card-symbol{margin:8px 0 15px}.fate-submit{flex-direction:column;align-items:stretch}.fate-submit button{justify-content:center}.fate-aftermath-copy{padding:45px 25px}.fate-aftermath-copy h1{font-size:28px}.fate-aftermath-copy p{font-size:18px}}@media(prefers-reduced-motion:reduce){.fate-panel,.fate-card,.fate-aftermath,.fate-aftermath>img,.fate-aftermath-copy{animation:none!important;transition:none!important}.fate-card:hover,.fate-card.selected{transform:none}}
[data-view="journeys"]{max-width:1240px;margin:auto;padding:30px 28px 80px}.journey-intro{text-align:center;margin:30px auto 48px}.journey-intro h1{font-family:"Jingjie Serif",serif;font-size:clamp(34px,4vw,58px);font-weight:500;line-height:1.55;letter-spacing:.04em;margin:18px 0}.journey-intro p{color:#4e615c;line-height:1.9}.journey-fine{font-size:12px;line-height:1.8;color:#5a6964}.journey-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.journey-book{position:relative;isolation:isolate;border-radius:6px 6px 28px 6px;overflow:hidden;min-height:460px;box-shadow:0 18px 40px #253c3620;border:1px solid #d5ddd4;transition:transform .5s,box-shadow .5s}.journey-book>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s}.journey-book:hover{transform:translateY(-7px);box-shadow:0 28px 50px #253c362c}.journey-book:hover>img{transform:scale(1.07)}.book-shade{position:absolute;inset:0;background:linear-gradient(0deg,#101b1bf0,transparent 90%)}.book-copy{position:absolute;bottom:32px;left:26px;right:26px;color:#fff8ed}.book-copy>span,.invitation-copy>span{font-size:12px;letter-spacing:.17em}.book-copy h2{color:#fff8ed;font-family:"Jingjie Serif",serif;font-size:27px;font-weight:500;line-height:1.7}.book-copy p{color:#e4e4dc;font-size:13px;line-height:1.9;min-height:48px}.book-copy button{display:flex;gap:15px;align-items:center;background:#f7f3e9ee;color:#253c36;border:0;padding:13px 18px;border-radius:5px;width:100%;justify-content:space-between}.journey-history{margin-top:60px}.journey-history h2{font-family:"Jingjie Serif",serif;font-weight:500}.journey-history-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9e0d6;padding:20px 0;gap:15px}.journey-history-row>a{display:flex;gap:24px;align-items:center;flex-wrap:wrap;text-decoration:none;color:#314c44}.journey-history-row span{font-size:13px;color:#5d6e66}.journey-invitation{display:grid;grid-template-columns:1fr 1fr;background:#faf8f1;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px #203d3020}.journey-invitation>img{width:100%;height:100%;min-height:620px;object-fit:cover}.invitation-copy{padding:48px 38px}.invitation-copy>a{display:block;margin-bottom:36px;font-size:13px}.invitation-copy h1{font:500 34px/1.65 "Jingjie Serif",serif}.invitation-copy p{line-height:2;margin:24px 0}.invitation-copy form label{margin:30px 0}.journey-reader{--journey-accent:#6a8a80}.journey-reader.rose{--journey-accent:#a56f91}.journey-reader.gold{--journey-accent:#9e865b}.journey-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:12px;margin-bottom:18px}.journey-toolbar>a{display:flex;gap:8px;align-items:center;text-decoration:none}.journey-toolbar>span{color:#566960}.journey-toolbar button{font-size:12px;background:transparent}.journey-progress{display:flex;gap:7px;max-width:180px;margin:18px auto 24px}.journey-progress>span{height:3px;flex:1;background:#dce1d6}.journey-progress .lit{background:var(--journey-accent)}.comic-spread{max-width:920px;margin:auto}.comic-panel{position:relative;overflow:hidden;background:#fcfaf4;border:1px solid #ccd5c8;border-radius:3px;box-shadow:8px 8px 0 #e3e7db,0 16px 45px #24433815;animation:comic-reveal .65s ease both}.establishing{margin:0;aspect-ratio:1.95}.establishing>img{width:100%;height:100%;object-fit:cover;animation:comic-camera 16s ease-in-out infinite alternate;filter:saturate(.85)}.stage-1 .establishing>img{object-position:60% 35%}.stage-2 .establishing{aspect-ratio:2.8}.stage-2 .establishing>img{object-position:72% 50%}.establishing:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#101b27cc,transparent 85%);pointer-events:none}.establishing figcaption{position:absolute;left:6%;bottom:12%;right:8%;z-index:2;color:#fff8ee}.establishing figcaption>span{font-size:12px;letter-spacing:.14em;color:#eceadf}.establishing h1{font:500 clamp(22px,3vw,35px)/1.65 "Jingjie Serif",serif;color:#fff8ee;margin:14px 0 0;text-shadow:0 2px 12px #111}.comic-number{position:absolute;right:28px;top:20px;z-index:2;color:#ffffffb3;font:32px "Jingjie Serif",serif}.comic-gutter{display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.1em;color:#758078;padding:25px 5px}.comic-gutter i{flex:1;height:1px;background:#d2dacb}.event-panel{padding:30px 38px;max-width:740px;margin:0 0 26px auto}.comic-label{font-size:11px;color:#61746a;letter-spacing:.13em}.event-panel>p,.reaction-copy>p{font-family:"Jingjie Serif",serif;font-size:19px;line-height:2.05;color:#273c36;margin:16px 0}.event-panel details{font-size:12px;color:#52655b;margin-top:20px}.event-panel details p{line-height:1.9}.reaction-panel{display:grid;grid-template-columns:125px 1fr;padding:30px 35px;gap:30px;max-width:780px;margin:0 auto 20px 0;border-left:3px solid var(--journey-accent)}.reaction-portrait{display:flex;flex-direction:column;align-items:center;gap:13px;font-size:12px;color:#4a6258;padding-top:18px}.reaction-portrait img{width:94px;height:116px;object-fit:cover;border-radius:3px;filter:saturate(.8);border:5px solid #fff;box-shadow:0 5px 15px #27433322;transform:rotate(-3deg)}.reaction-copy>p{font-size:17px;white-space:pre-wrap}.choice-chip{display:inline-block;font-size:12px;border-bottom:1px solid var(--journey-accent);padding:7px 0;color:#476057}.journey-reader-actions{text-align:center;max-width:850px;margin:35px auto 30px}.journey-next{background:#36574c;color:#fff8ec;border:1px solid #36574c;border-radius:5px;padding:14px 28px;letter-spacing:.06em}.journey-pause{display:block;font-size:12px;color:#52675d;margin-bottom:18px}.journey-choices{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.journey-utility{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;margin-top:35px;font-size:11px;color:#62746a}.journey-utility button{font-size:12px}.journey-feedback-form{max-width:700px;background:#faf8f2;border:1px solid #d1dacf;padding:32px;margin:40px auto;border-radius:12px;animation:comic-reveal .5s ease}.journey-feedback-form h2{font:500 25px "Jingjie Serif",serif}.journey-feedback-form label{display:block;margin:20px 0;font-size:13px}.journey-feedback-form label select,.journey-feedback-form textarea{width:100%;margin-top:8px}.journey-feedback-form>p{font-size:12px;color:#5b6e63;line-height:1.9}.journey-feedback-form>div{display:flex;gap:15px}.journey-generating{padding:8px 0;align-self:center}.journey-generating h3{font:500 19px/1.8 "Jingjie Serif",serif}.journey-generating p{font-size:12px;color:#5c6d61;line-height:1.9}.story-loading-spinner{display:block;width:28px;height:28px;border:1px solid #d1dacf;border-top-color:var(--journey-accent);border-radius:50%;position:static;flex:none;box-sizing:border-box;transform:none;opacity:1;animation:story-loading-rotate .9s linear infinite}.comic-weather{position:absolute;inset:-15%;pointer-events:none;z-index:1;opacity:.25}.weather-rain{background:repeating-linear-gradient(105deg,transparent 0 44px,#dfe8ed55 45px,transparent 46px 92px);animation:comic-rain 1.7s linear infinite}.weather-glass{background:radial-gradient(ellipse at 70% 30%,#f6d3ed66,transparent 55%);animation:comic-glow 5s ease infinite alternate}.weather-clock{background:radial-gradient(ellipse at 10% 60%,#f5c76955,transparent 40%);animation:comic-glow 4s ease infinite alternate}.journey-end-cover{position:relative;min-height:440px;overflow:hidden;border-radius:8px}.journey-end-cover>img{position:absolute;width:100%;height:100%;object-fit:cover;animation:comic-camera 20s ease-in-out infinite alternate}.journey-end-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#142721ee,#14272155)}.journey-end-cover>div{position:relative;z-index:1;padding:90px 50px 45px;color:#fff8ef}.journey-end-cover h1{font:500 clamp(26px,3vw,40px)/1.7 "Jingjie Serif",serif;color:#fff8ef}.journey-end-cover p{color:#e4e7df;line-height:2;max-width:680px}.journey-end-cover span{font-size:12px;letter-spacing:.15em}.journey-review-head{margin:50px auto 35px;max-width:800px}.journey-review-head h2,.journey-calibration h2{font:500 26px/1.8 "Jingjie Serif",serif}.journey-review-head p,.journey-calibration p{font-size:13px;line-height:1.9;color:#50685b}.journey-recollection{max-width:800px;margin:auto}.journey-recollection article{display:flex;gap:25px;padding:25px 0;border-bottom:1px solid #d2dbcf}.recollection-index{font:36px "Jingjie Serif",serif;color:#789287;padding-top:12px}.journey-recollection h3{font:500 20px/1.8 "Jingjie Serif",serif}.journey-recollection p{line-height:1.95;color:#334c40}.journey-recollection details{font-size:12px;color:#567061}.journey-recollection blockquote{border-left:2px solid #88a392;padding-left:18px;font-size:14px;line-height:1.9}.journey-calibration{max-width:800px;margin:45px auto;padding:30px;background:#edf1e6;border-radius:12px}.journey-calibration .actions{margin-top:20px}@keyframes comic-camera{from{transform:scale(1.01) translateX(-.4%)}to{transform:scale(1.09) translateX(.4%)}}@keyframes comic-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes comic-rain{from{transform:translateY(-16px)}to{transform:translateY(16px)}}@keyframes comic-glow{from{opacity:.12}to{opacity:.5}}@keyframes story-loading-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(max-width:850px){.journey-shelf{gap:14px}.journey-book{min-height:380px}.book-copy{left:18px;right:18px;bottom:24px}.book-copy h2{font-size:22px}.journey-invitation{grid-template-columns:1fr}.journey-invitation>img{height:260px;min-height:0}.invitation-copy{padding:30px}.journey-toolbar>span{display:none}}@media(max-width:600px){[data-view="journeys"]{padding:20px 16px 60px}.journey-intro{margin:20px auto 35px}.journey-shelf{grid-template-columns:1fr;gap:24px}.journey-book{min-height:330px}.book-copy{left:25px;right:25px}.book-copy h2{font-size:27px}.journey-history-row>a{gap:6px;flex-direction:column;align-items:flex-start}.establishing{aspect-ratio:1.25}.stage-2 .establishing{aspect-ratio:1.65}.establishing h1{font-size:24px}.event-panel{padding:22px}.event-panel>p{font-size:17px}.reaction-panel{grid-template-columns:1fr;padding:22px;gap:8px}.reaction-portrait{flex-direction:row;align-items:center;padding:0}.reaction-portrait img{width:44px;height:55px;border-width:2px}.reaction-copy>p{font-size:17px}.comic-gutter{font-size:9px;gap:8px}.comic-gutter>span:last-child{max-width:130px}.journey-feedback-form{padding:22px}.journey-end-cover>div{padding:65px 25px 35px}.journey-calibration{padding:23px}.journey-recollection article{gap:16px}}@media(prefers-reduced-motion:reduce){.journey-reader *,.journey-book,.journey-book>img,.journey-end-cover>img{animation:none!important;transition:none!important}.journey-book:hover{transform:none}.journey-book:hover>img{transform:none}}

.comic-insert{margin:0 0 28px auto;width:62%;height:200px;position:relative}.comic-insert img{width:100%;height:100%;object-fit:cover;animation:comic-camera 18s ease-in-out infinite alternate}.comic-insert:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#15202880,transparent 70%)}.comic-insert>span{position:absolute;bottom:16px;right:20px;font-size:11px;letter-spacing:.1em;color:#fff8ed;z-index:1}@media(max-width:600px){.comic-insert{width:86%;height:150px}}

/* Quiet recap of the committed route, including observer interventions. */
.journey-chapter-note{margin:22px 0;padding-top:12px;border-top:1px solid currentColor;text-align:left;max-width:640px}
.journey-chapter-note>span{display:block;font-size:10px;letter-spacing:.1em;margin-bottom:5px;opacity:.72}
.journey-chapter-note>small{display:block;font-size:12px;line-height:1.85;font-family:var(--ui-font, sans-serif);font-weight:400}
.fate-aftermath-copy .journey-chapter-note{color:#e8e4d9;border-top-color:#ffffff30}
.journey-recollection .journey-chapter-note{color:var(--secondary,#526659);border-top-color:var(--line,#d2dbcf);margin-top:12px}

@media(prefers-reduced-motion:reduce){.story-loading-spinner{animation:none}}
.decision-options-panel{padding:26px;background:color-mix(in srgb,var(--surface,#faf9f3) 85%,transparent)}
.story-observed-options{display:grid;gap:12px;margin-top:18px}
.story-observed-option{position:relative;isolation:isolate;display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border:1px solid var(--line,#d9e2d7);border-radius:13px;background:#ffffff69;overflow:hidden}
.story-observed-option h3{font:500 15px/1.7 var(--ui-font,system-ui);margin:0;color:var(--text,#304b40)}
.story-observed-option p{font-size:12px;line-height:1.8;margin:6px 0 0;color:var(--secondary,#6a796f)}
.option-index{font:italic 12px/2 Georgia,serif;opacity:.5;flex:none}
.option-picked-mark{margin-left:auto;color:var(--journey-accent,#6a8a80);flex:none}
.story-observed-option.is-picked{border-color:var(--journey-accent,#6a8a80);background:color-mix(in srgb,var(--journey-accent,#6a8a80) 9%,#fffdf6)}
.story-observed-option.choice-revealing{animation:story-choice-heartbeat .7s ease both}
.story-observed-option.choice-revealing::after{content:'';position:absolute;z-index:-1;left:50%;top:50%;width:80px;height:80px;border:1px solid var(--journey-accent,#6a8a80);border-radius:50%;pointer-events:none;animation:story-choice-water 1s .55s ease-out both}
@keyframes story-choice-heartbeat{0%,100%{transform:scale(1)}22%{transform:scale(1.018)}38%{transform:scale(1)}53%{transform:scale(1.01)}75%{transform:scale(1)}}
@keyframes story-choice-water{0%{opacity:.55;transform:translate(-50%,-50%) scale(.1)}100%{opacity:0;transform:translate(-50%,-50%) scale(9,4)}}
.reaction-copy [data-reaction-text]{min-height:1.8em;white-space:pre-wrap}
.reaction-copy .is-writing::after{content:'';display:inline-block;width:2px;height:1em;margin-left:4px;vertical-align:-.1em;background:var(--journey-accent,#6a8a80);animation:story-writing-cursor .85s steps(1) infinite}
@keyframes story-writing-cursor{50%{opacity:0}}
.reaction-show-all{font-size:11px;padding:6px 10px;margin:0 0 12px;background:transparent;border:1px solid var(--line,#d9e2d7)}
@media(max-width:600px){.decision-options-panel{padding:20px}.story-observed-option{padding:15px;gap:10px}.story-observed-option h3{font-size:14px}}
@media(prefers-reduced-motion:reduce){.story-observed-option,.story-observed-option::after,.is-writing::after{animation:none!important}}
.reaction-show-all[hidden]{display:none!important}
