/* DCC-i immersive visual layer. All gameplay and readable forms remain semantic HTML. */
body{background:radial-gradient(ellipse at 85% 0,#352149 0,transparent 45%),linear-gradient(#151122 0,#21182f 600px,#f2eef6 1300px);background-color:#f2eef6}
header{background:#171122f5;border-bottom:1px solid #bda17355;padding-top:18px;padding-bottom:18px}
.mark{border-color:#c0a472;color:#f3e5c9;border-radius:10px;font-size:1.5rem}
.mark span{color:#85d5c8}.brand small{color:#d4c3e4}.edition{color:#cab384;letter-spacing:1.5px}
main{max-width:1320px;margin-top:18px;padding:0 32px}
#connection{color:#b5e9dd;font-size:.75rem;letter-spacing:.3px;margin-bottom:8px}
#notice:not(:empty){background:#e5f5ef;color:#174b42;font-size:.85rem;padding:10px 16px;border:1px solid #b4d9ce}
.hero.scene-hero{min-height:480px;isolation:isolate;position:relative;display:flex;align-items:center;background-color:#171125;background-image:none;background-size:cover;background-position:center;border:1px solid #c0a47270;border-radius:20px;margin:20px 0 28px;padding:58px 54px 78px;overflow:hidden;box-shadow:0 24px 70px #08050f33}
.scene-copy{position:relative;max-width:600px;z-index:1}.scene-hero .eyebrow{font-size:.63rem;letter-spacing:2.4px;color:#d6c39f}.room-marker{display:flex;align-items:center;gap:10px;font-size:.6rem;letter-spacing:2px;color:#bce5dc;margin-top:22px}.room-marker>span{font-size:1.35rem;line-height:1;color:#d6be8d}
.scene-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(2.5rem,4.8vw,4.6rem);line-height:1.04;letter-spacing:-1.5px;max-width:580px;margin:15px 0 20px;color:#fff9ed;text-wrap:balance}.scene-hero p{font-size:.85rem;line-height:1.75;color:#e4ddec;max-width:390px;margin:8px 0}.scene-hero .scene-tagline{font-weight:700;color:#fff5df;font-size:.95rem;margin-top:0}.scene-bottom{position:absolute;bottom:22px;left:54px;right:35px;display:flex;justify-content:space-between;gap:14px;border-top:1px solid #d8c29a40;padding-top:16px;color:#dec89f;font-size:.55rem;letter-spacing:2px}
.arrival-intro{margin:40px auto 26px;text-align:center;color:#fff5e4;max-width:650px}.small-label{font-size:.63rem;letter-spacing:2px;font-weight:700;color:#b9e6dc}.arrival-intro h2{color:#fff5e4;font-family:Georgia,'Times New Roman',serif;font-size:2.1rem;font-weight:400;margin:12px 0}.arrival-intro p{color:#d6cde1;font-size:.87rem}
.card{border-color:#dbd2e2;border-radius:16px;box-shadow:0 10px 30px #1d122411}.card.accent{border-top:3px solid #087f7a}.card>h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:1.8rem}
button,.button{border-radius:8px;font-size:.85rem;padding:13px 20px;box-shadow:0 3px 8px #2416380d}button:hover{filter:brightness(1.15)}button.secondary{border-color:#d8cde4}.toolbar{color:#f3e9ff;background:#21182be6;border:1px solid #d2bd9055;border-radius:12px;padding:12px 18px}.toolbar .code,.toolbar .timer{color:#f0d8a9}.toolbar .badge{background:#234942;color:#d2fff1;border:1px solid #549a88}.toolbar .code{font-size:1.4rem;margin-left:10px;letter-spacing:.16em}.toolbar .timer{font-size:1.6rem}#timerstate{font-size:.8rem}
.steps{margin:16px 0 22px;gap:9px;color:#dcd0e9}.steps li{border-color:#6b5b79;font-size:.6rem;line-height:1.6;padding-top:9px;min-width:0}.steps li.current{color:#fff6df;border-color:#c7a86f}.steps li.done{border-color:#5faf9d}
.room-nav{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.room-nav button{display:flex;align-items:center;gap:12px;margin:0;background:#f5f1f8;color:#38215d;border:1px solid #d5c9e1;text-align:left;padding:12px 16px;min-height:70px;font-size:.75rem}.room-nav button[aria-pressed=true]{background:#38215d;color:#fff;border-color:#c4a778;box-shadow:inset 0 -3px #c4a778}.room-nav small{display:block;letter-spacing:1.6px;font-size:.52rem;margin-bottom:4px}.room-number{font-size:1.5rem;font-family:Georgia,serif;color:#087f7a}.room-nav button[aria-pressed=true] .room-number{color:#e9cf99}
.case-layout{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:30px;align-items:start;margin:12px 0 25px}.case-portrait{margin:0;overflow:hidden;border-radius:12px;border:1px solid #baa17b;background:#29214f}.case-portrait img{display:block;max-width:100%;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.case-portrait figcaption{padding:14px 16px;font-size:.7rem;letter-spacing:1.5px;color:#fff0d5;font-weight:700}.case-portrait figcaption span{display:block;font-size:.6rem;letter-spacing:.4px;color:#d7c4e6;font-weight:400;margin-top:3px}.case-text h3{font-family:Georgia,serif;font-weight:400;font-size:1.8rem;margin-top:12px}.file-label{display:block;color:#625078;font-size:.62rem;font-weight:800;letter-spacing:1.5px}.case-text .quote{font-family:Georgia,serif;font-size:1.2rem;background:#f6f1e9;border-color:#aa8556;margin:20px 0}.evidence-file{background:linear-gradient(120deg,#fffcf7,#f4eee6);border:1px solid #dbcbb4;border-left:4px solid #087f7a;border-radius:4px 13px 13px 4px;padding:23px;margin:15px 0;box-shadow:3px 4px 0 #e6dccc}.evidence-file h3{margin-top:12px;font-family:Georgia,serif;font-size:1.35rem}.evidence-file .file-label{color:#56736a}.evidence-file p{max-width:850px}
.sealed-identity{border:1px solid #b59a6e;border-radius:16px;padding:35px;text-align:center;background:radial-gradient(ellipse at 50% 0,#4d2b65,#21152f);color:#e7d1a5;margin:24px auto;max-width:500px;box-shadow:inset 0 0 0 8px #ffffff05,0 10px 25px #2511391a}.sealed-identity>span{display:block;font-size:.65rem;letter-spacing:3px;margin:18px 0 8px}.sealed-identity p{font-size:.85rem;color:#e2d4ee}.wax-seal{width:85px;height:85px;margin:auto;border-radius:50%;background:radial-gradient(circle at 35% 25%,#96517a,#512743 75%);border:4px double #c0859b;box-shadow:0 0 0 5px #4a2047,0 10px 20px #0c081c88;display:grid;place-items:center;font-family:Georgia,serif;font-size:3.5rem;color:#f6d4c3}.secret{position:relative;border:1px solid #b99b67;background:linear-gradient(135deg,#28213e,#3b3454);text-align:center;max-width:600px;padding:35px;margin:24px auto;box-shadow:inset 0 0 0 7px #ffffff05}.secret[data-role=traitor]{background:linear-gradient(135deg,#30213e,#632b57)}.role-emblem{font-size:3rem;color:#d4ba88;line-height:1.3}.secret h3{font-size:1.4rem;font-family:Georgia,serif;letter-spacing:2px;margin:15px 0}.secret p{color:#f4eaf9}.secret:empty{display:none}
body[data-mode=presentation] .scene-hero{min-height:65vh}.reading-width{max-width:780px}footer{color:#4d425b}
html.accessibility-simplified body{background:#f3eef8!important}html.accessibility-simplified .scene-hero{background:#29214f!important;min-height:0!important;padding:30px!important}html.accessibility-simplified .scene-bottom{display:none!important}html.accessibility-simplified #connection,html.accessibility-simplified .steps{color:#38215d!important}html.accessibility-simplified .arrival-intro,html.accessibility-simplified .arrival-intro h2,html.accessibility-simplified .arrival-intro p,html.accessibility-simplified .small-label{color:#38215d!important}html.accessibility-simplified .sealed-identity{background:#29214f!important}html.accessibility-simplified .wax-seal{background:#553080!important}html.accessibility-readable-font .scene-hero h1,html.accessibility-readable-font .card>h2,html.accessibility-readable-font .case-text h3{font-family:Arial,sans-serif!important}
@media(max-width:900px){main{padding:0 20px}.hero.scene-hero{padding:40px 32px 70px;min-height:430px;background-position:60% center}.scene-copy{max-width:470px}.scene-bottom{left:32px}.scene-hero h1{max-width:470px}.case-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.room-nav button{flex:1 1 140px}}
@media(max-width:600px){header{padding:15px 17px}.brand small{font-size:.52rem}.mark{font-size:1.2rem}main{padding:0 14px}.hero.scene-hero{min-height:450px;padding:30px 24px 65px;background-position:63% center;background-image:none}.scene-hero h1{font-size:2.8rem;letter-spacing:-1px}.scene-hero .eyebrow{font-size:.53rem;letter-spacing:1.5px}.scene-hero p{max-width:300px}.scene-bottom{left:24px;right:24px;font-size:.45rem;letter-spacing:1px}.scene-bottom span:last-child{display:none}.arrival-intro h2{font-size:1.8rem}.case-layout{grid-template-columns:1fr}.case-portrait{max-width:250px;margin:0 auto}.room-nav{gap:7px}.room-nav button{flex-basis:44%;font-size:.7rem;padding:10px;gap:8px}.toolbar{padding:12px;gap:10px}.toolbar .code{font-size:1.1rem;margin-left:0;display:block}.toolbar .timer{font-size:1.4rem}.steps{gap:5px}.sealed-identity{padding:25px}.scene-hero .room-marker{margin-top:20px}.steps li{font-size:.7rem}}
@media print{body{background:#fff!important}.scene-hero{background:none!important;min-height:0!important;border:0!important;padding:10px!important;box-shadow:none!important}.scene-hero h1,.scene-hero p,.scene-hero .eyebrow{color:#242138!important}.room-marker,.scene-bottom,.sealed-identity,.role-emblem{display:none!important}.toolbar{background:#fff!important;color:#242138!important;border:0}.toolbar .code,.toolbar .timer{color:#242138!important}.case-portrait{max-width:150px}.case-layout{grid-template-columns:150px 1fr}.arrival-intro{display:none}}

/* Supplied Expo logo is preserved in full, including its white background. */
.expo-logo{width:132px;height:auto;aspect-ratio:3/2;object-fit:contain;background:#fff;border:1px solid #d8cba9;border-radius:10px;padding:4px;display:block;flex-shrink:0}.brand{gap:18px}.sealed-identity:has(~ .secret:not(:empty)){display:none}
@media(max-width:600px){.expo-logo{width:94px;padding:3px;border-radius:7px}.brand{gap:12px}.brand strong{font-size:.78rem;max-width:220px;display:block;line-height:1.4}}

/* Live scene images come from the shared visual registry, including revisited rooms. */
.scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.scene-hero::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(16,11,30,.9),rgba(16,11,30,.56) 43%,rgba(16,11,30,.06) 77%);pointer-events:none}.scene-copy,.scene-bottom{z-index:2}.room-entry{margin-top:18px;border:1px solid #d4b885;background:#f0dfbc;color:#2c1a42;box-shadow:0 5px 20px #07030d33;text-decoration:none}.room-entry:hover{background:#fff1cf}.room-entry:focus-visible{outline:3px solid #8df2df;outline-offset:4px}.scene-hero .live-stage-note{font-size:.75rem;color:#bdece1;padding-left:12px;border-left:2px solid #73bdad}#room-content{scroll-margin-top:20px}#room-content:focus{outline-offset:6px}
html.accessibility-simplified .scene-art,html.accessibility-simplified .scene-hero::before{display:none!important}
html.accessibility-high-contrast .scene-art,html.accessibility-contrast-light .scene-art,html.accessibility-contrast-dyslexia .scene-art,html.accessibility-contrast-yellow .scene-art{display:none!important}
@media(max-width:900px){.scene-art{object-position:60% center}}
@media(max-width:600px){.scene-art{object-position:63% center}.scene-hero::before{background:linear-gradient(90deg,rgba(16,11,30,.94),rgba(16,11,30,.65) 75%,rgba(16,11,30,.35))}.room-entry{font-size:.8rem}.scene-hero .live-stage-note{font-size:.7rem}}
@media print{.scene-art,.scene-hero::before,.room-entry{display:none!important}}

#teams-status{color:#dac8ec;font-size:.72rem;margin:6px 0}body[data-teams-theme=contrast] .scene-art{display:none!important}body[data-teams-theme=contrast] .scene-hero{background:#000!important;border-color:#fff!important}body[data-teams-theme=contrast] .scene-hero::before{display:none!important}body[data-teams-theme=contrast] .card{background:#fff;color:#111;border:2px solid #000}

body[data-mode=landing] .grid{display:block;max-width:780px;margin:auto}.card[hidden]{display:none!important}.entry-switch{text-align:center;padding:10px}.entry-switch a{color:#38215d;background:#f4edf8;border-radius:8px;padding:10px 18px}body[data-mode=landing] .entry-switch a{display:inline-block}
