/* 新体验只作用于游戏及结果页；研究报告不引入本文件。 */
.departure-card { display: grid; grid-template-columns: 1.12fr 1fr; column-gap: 1rem; align-items: center; }
.departure-copy { position: relative; z-index: 1; }
.departure-copy h2 { font-size: clamp(1.8rem,3vw,2.5rem); line-height: 1.45; letter-spacing: -.025em; }
.departure-copy .step-label { font-size: .72rem; letter-spacing: .09em; }
.departure-line { font-size: 1.05rem; line-height: 1.9; margin: 1rem 0 1.6rem; color: var(--muted); }
.departure-start { min-width: 180px; justify-content: space-between; }
.departure-start span { font-size: 1.4rem; line-height: 1; }
.departure-report { display: block; width: fit-content; font-size: .85rem; margin-top: .9rem; color: var(--muted); text-underline-offset: .25em; }
.departure-art { position: relative; height: 320px; min-width: 0; isolation: isolate; }
.departure-orbit { position: absolute; width: 230px; height: 230px; border-radius: 50%; top: 35px; left: 50%; transform: translateX(-50%); background: #e8eeeb; }
.door-caption { position: absolute; top: 2px; right: 22px; font-size: .62rem; font-weight: 700; letter-spacing: .16em; color: var(--muted); }
.room-door { position: absolute; width: 137px; height: 242px; right: 28px; top: 29px; border: 7px solid #aab8c7; border-bottom: 0; background: var(--navy); box-shadow: 6px 0 0 var(--surface),7px 0 0 var(--line); }
.room-door::before { content: ''; position: absolute; inset: 13px; border: 1px solid #d9e3df80; }
.room-number { position: absolute; left: 42px; top: 32px; color: #fff1e6; border: 1px solid #fff1e680; width: 40px; height: 40px; display: grid; place-items: center; font: 28px Georgia,serif; }
.room-lock { position: absolute; top: 130px; left: 16px; width: 10px; height: 29px; background: #ffe1c5; border-radius: 2px; }
.room-lock::after { content: ''; position: absolute; top: 11px; left: 2px; height: 4px; width: 22px; background: #fff8ed; box-shadow: 0 2px 3px #82320f55; }
.room-threshold { position: absolute; bottom: -5px; left: -12px; right: -12px; height: 5px; background: var(--navy); }
.pending-key { position: absolute; left: 2px; bottom: 18px; width: 188px; padding: 19px 20px 13px; transform: rotate(-9deg); background: #f4e9dc; border: 0; border-radius: 8px; box-shadow: 0 12px 26px #293b421a; z-index: 2; }
.key-label { display: block; color: var(--muted); font-size: .56rem; letter-spacing: .2em; }
.pending-key strong { display: block; margin: .7rem 0 1rem; font-size: 1.08rem; color: var(--navy); }
.key-rule { display: block; height: 1px; background: #d9cbb9; }
.key-bottom { display: flex; justify-content: space-between; align-items: center; font-size: .63rem; color: var(--muted); padding-top: .6rem; }
.key-bottom i { font-style: normal; font-size: 1.3rem; color: var(--amber-text); }
.art-floor { position: absolute; bottom: 42px; left: 0; right: 0; border-top: 1px solid var(--line); z-index: -1; }
.departure-route { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3,1fr); list-style: none; padding: 1.4rem 0 0; margin: 2rem 0 0; border-top: 1px solid var(--line); gap: .6rem; }
.departure-route li { position: relative; }
.departure-route li:not(:last-child)::after { content: '→'; position: absolute; right: .5rem; top: .2rem; color: #bc8464; }
.departure-route span { display: block; color: var(--amber-text); font: italic 1rem Georgia,serif; margin-bottom: .35rem; }
.departure-route strong { font-size: .8rem; font-weight: 600; }
@media(max-width:600px) {
 .departure-card { grid-template-columns: 1fr; }
 .departure-copy h2 { font-size: 1.9rem; }
 .departure-line { margin: .8rem 0 1.1rem; }
 .departure-art { height: 260px; width: 280px; max-width: 100%; margin: 1.2rem auto 0; }
 .room-door { height: 205px; top: 20px; }
 .room-number { top: 22px; }
 .room-lock { top: 108px; }
 .departure-orbit { width: 210px; height: 210px; top: 20px; }
 .art-floor { bottom: 30px; }
 .pending-key { bottom: 4px; }
 .departure-route { margin-top: 1.2rem; }
 .departure-route strong { font-size: .72rem; }
 .departure-route li:not(:last-child)::after { right: .1rem; }
}
[hidden] { display: none !important; }
.journey-hero { padding-top: 3.6rem; }
.journey-hero h1 { color: var(--ink); }
.game-hud,.phone,.result-card { background: var(--navy); }
.hero-deck { margin: 1.3rem 0 0; font-size: clamp(1.3rem,3vw,1.7rem); font-weight: 700; }
.journey-hero { border-top: 0; }
.journey-hero .lede { max-width: 790px; font-size: 1.08rem; }
.hero-note { margin-bottom: 1.3rem; }
.hero-note summary { cursor: pointer; }
.game-hud { position: sticky; top: 72px; z-index: 30; display: flex; align-items: center; gap: 1.5rem; padding: .8rem 1.2rem; background: var(--navy); color: white; box-shadow: var(--shadow); margin-bottom: 1rem; }
.game-hud > div:first-child { flex: 1; }
.hud-label { display: block; font-size: .7rem; color: var(--on-dark); }
.game-hud strong { font-size: .9rem; }
.hud-anger { width: 130px; color: var(--anger); }
.hud-anger b { font: 700 2rem Georgia,serif; margin-left: .5rem; }
.hud-track { height: 3px; background: #ffffff30; overflow: hidden; }
.hud-track i { display: block; height: 100%; background: var(--anger); transition: width .5s ease; }
.game-hud button { border: 1px solid #ffffff60; background: transparent; color: white; padding: .6rem; font-size: .8rem; cursor: pointer; }
.score-toast { position: sticky; top: 158px; z-index: 31; width: fit-content; margin: 0 auto; background: var(--amber-soft); color: var(--amber-text); font-weight: 700; border-radius: 4px; height: 0; opacity: 0; pointer-events: none; }
.score-pop { animation: score-toast 4s ease both; }
@keyframes score-toast { 0% { opacity:0; transform:translateY(-8px); } 10%,80% { opacity:1; padding:.55rem 1rem; height:auto; transform:translateY(0); } 100% { opacity:0; height:0; } }
.stage { scroll-margin-top: 170px; }
.call { display: block; }
.phone { display: flex; gap: .8rem; align-items: center; padding: .7rem 1rem; min-height: 0; margin-bottom: 1rem; }
.phone .phone-icon { width: 36px; height: 36px; margin: 0; }
.phone .hotel-name { font-size: 1rem; }
.phone .wave { display: none; }
.transcript { max-height: 44vh; min-height: 120px; overflow-y: auto; overscroll-behavior: contain; padding: .7rem .3rem; scroll-padding-block: .8rem; }
.bubble { max-width: 88%; margin-bottom: .8rem; border-radius: 12px 12px 12px 2px; font-size: 1rem; animation: bubble-enter .25s ease both; }
.bubble-you { border-radius: 12px 12px 2px 12px; }
.bubble-scene { max-width: 100%; }
.is-speaking { outline: 2px solid var(--amber); outline-offset: 2px; }
.voice-tools { margin-top: .35rem; }
.voice-tools:has(.voice-status:empty) { min-height: 0; }
.moves { margin-top: .6rem; }
.moves legend { font-size: .85rem; color: var(--muted); }
.move-list { gap: .5rem; }
.move-list button { border-radius: 8px; font-size: .95rem; text-align: left; padding: .8rem 1rem; line-height: 1.6; min-height: 48px; transition: background .15s, transform .15s; }
.move-list button:hover { transform: translateX(3px); }
.move-list button:active { transform: scale(.99); }
@keyframes bubble-enter { from { opacity: 0; transform: translateY(8px); } to { opacity:1; transform:translateY(0); } }
.result-card h2 { font-size: clamp(1.8rem,5vw,2.7rem); }
.result-title { display: inline-block; background: var(--amber-soft); color: var(--amber-text); padding: .3rem .9rem; border-radius: 2rem; font-weight: 800; margin: 0; }
.result-motto { font-size: 1.3rem; font-weight: 700; }
.result-line { color: inherit; opacity: .9; }
.result-actions { margin: 1.2rem 0; }
.review-details { margin: 1.4rem 0 2rem; border-block: 1px solid var(--line); padding: 1rem 0; }
.review-details > summary { font-weight: 700; cursor: pointer; }
.share-sheet { max-width: min(540px,94vw); padding: 1.3rem; border: 1px solid var(--navy); color:var(--ink); border-radius: 14px; }
.share-sheet::backdrop { background:#30251f99; }
.share-sheet img { display:block; max-height:65vh; margin:auto; }
.share-sheet textarea { width:100%; min-height:150px; padding:.8rem; font:inherit; border:1px solid var(--line); margin:.8rem 0; }
.share-sheet h2 { font-size:1.4rem; }
.share-sheet .button-row { margin-top:1rem; }
.challenge-cta { display:block; text-align:center; margin-bottom:1.2rem; font-size:1.15rem; }
.result-standalone { max-width:760px; }
@media(max-width:760px) {
 .journey-hero { padding-top:2.2rem; }
 .journey-layout { display:block; }
 .itinerary { margin-top:1.5rem; }
 .game-hud { top:64px; gap:.6rem; padding:.6rem .8rem; }
 .game-hud strong { max-width:140px; display:block; line-height:1.4; }
 .hud-anger { width:90px; flex-shrink:0; }
 .hud-anger b { font-size:1.7rem; }
 .score-toast { top:145px; font-size:.85rem; max-width:95%; }
 .stage { padding:1rem; min-height:350px; }
 .stage h2 { font-size:1.4rem; }
 .transcript { max-height:38vh; }
 .bubble { max-width:94%; }
 .result-actions > * { width:100%; justify-content:center; }
 .hotel-grid { grid-template-columns:1fr; }
 .hotel-card { padding:1.1rem; }
 .anger-meter strong { font-size:5rem; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
 .score-pop { opacity:1; height:auto; padding:.4rem .6rem; }
}
