/* Fabriksuniverset. Tekst og arbejdsformularer har deres egne rolige flader. */
:root { --night:#0e191d; --night-panel:#17262a; --night-line:#344346; --cream:#f1e9d6; --signal:#f2c66a; --display:Impact,'Arial Narrow',sans-serif; }
html { scroll-padding-top:18px; }
body { background:var(--night); color:var(--cream); }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.13; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E"); z-index:-1; }
button,a { touch-action:manipulation; }
button:focus-visible,a:focus-visible { outline-color:var(--signal); }
.masthead { padding:12px 32px; min-height:60px; background:#0b1418; border-bottom:1px solid #ffffff12; }
.brand { font:700 16px/1.15 var(--sans); gap:10px; }
.brand-mark { border-radius:3px; border:1px solid #b89b5d; background:var(--signal); color:#142329; font:19px var(--display); width:35px; height:35px; transform:skew(-4deg); }
.brand small { font-size:7px; letter-spacing:1.1px; margin-top:4px; color:#9aa8a3; }
.edition { color:var(--signal); font-size:9px; }
.header-right a { color:#d2ddd5; font-size:10px; }
.button.primary { background:var(--signal); border-color:var(--signal); color:#1c2a28; box-shadow:0 3px 0 #a27f39; }
.button.primary:hover { background:#ffdb87; }
.button svg { width:18px; height:18px; }
.notice { position:fixed; z-index:100; top:70px; left:50%; transform:translateX(-50%); width:min(90vw,680px); margin:0; box-shadow:0 10px 40px #0008; }
.skip { z-index:200; color:#203027; }
.site-footer { color:#8faaa0; border-top:1px solid var(--night-line); margin-top:20px; max-width:1600px; }

/* Første skærm er en scene. Spiladgangen åbner, når spilleren vælger sin plads. */
.entry { position:relative; isolation:isolate; max-width:none; padding:40px max(4vw,32px) 24px; display:flex; flex-direction:column; justify-content:space-between; gap:28px; min-height:calc(100svh - 60px); overflow:hidden; align-items:start; }
.entry-backdrop { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; z-index:-3; }
.entry::before { content:''; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,#09171ded 0%,#0c1d2380 34%,#08171c08 62%,#0b171c11 100%),linear-gradient(0deg,#0c191ef5 0%,transparent 42%); }
.entry::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#07131966,transparent 20%); }
.entry-intro { max-width:none; width:100%; padding-top:5px; }
.entry-intro>.eyebrow { color:#d8dfce; font-size:10px; letter-spacing:2px; }
.live-dot { background:var(--signal); box-shadow:0 0 16px #f2c66a99; }
.entry-title { margin:26px 0 17px; }
.entry-kicker { display:inline-block; border:1px solid #efdfb766; border-left:3px solid var(--signal); padding:5px 10px; text-transform:uppercase; letter-spacing:3px; color:#e1d4b6; font-size:10px; background:#152b2f99; transform:skew(-4deg); }
.entry h1 { font:clamp(72px,7.8vw,134px)/.91 var(--display); text-transform:uppercase; margin:16px 0 0; letter-spacing:-1px; color:#f7f1df; text-shadow:4px 4px 0 #071a20,0 8px 38px #0009; transform:rotate(-2deg); transform-origin:left center; }
.entry h1 em { color:var(--signal); font-style:normal; font-weight:inherit; }
.entry .lead { color:#e9e4d6; font-size:16px; line-height:1.65; text-shadow:0 2px 8px #000; margin-top:22px; }
.entry-meta { color:#c4d0c6; padding:20px 0; border:0; gap:8px 18px; font-size:9px; }
.entry-meta span::before { content:'+'; color:var(--signal); margin-right:6px; }
.entry-launch { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:5px; max-width:660px; }
.entry-launch .button { min-width:160px; justify-content:space-between; font-size:12px; }
.entry-launch .secondary { background:#112831cc; color:#efead5; border-color:#a8b78c99; backdrop-filter:blur(10px); }
.entry-resume { background:none; color:#ccd4be; border:0; font-size:10px; padding:10px; text-decoration:underline; text-underline-offset:4px; }
.entry-roles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:30px; width:min(600px,53vw); }
.entry-role { padding:0; min-width:0; position:relative; overflow:hidden; min-height:128px; border:1px solid #cfc29b55; border-radius:4px; background:#1b3031; color:var(--cream); text-align:left; transition:transform .2s,border-color .2s; box-shadow:0 4px 24px #0004; }
.entry-role>img { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; opacity:.65; transition:opacity .2s,transform .3s; }
.entry-role::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0b171ef2 0%,#13232666 55%,transparent); }
.entry-role>span { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:128px; padding:14px; z-index:1; }
.entry-role small { font-size:8px; letter-spacing:.9px; text-transform:uppercase; color:var(--signal); }
.entry-role strong { font:23px/1.1 var(--display); margin-top:7px; text-transform:uppercase; letter-spacing:.2px; }
.entry-role em { font-size:10px; font-style:normal; color:#c0ccc3; margin-top:4px; }
.entry-role.selected { border-color:var(--signal); box-shadow:inset 0 -3px 0 var(--signal),0 8px 25px #0005; }
.entry-role.selected::before { content:'✓'; position:absolute; z-index:2; right:9px; top:9px; background:var(--signal); color:#10252b; border-radius:50%; width:21px; height:21px; display:grid; place-items:center; font-size:12px; }
.entry-role:hover { transform:translateY(-4px); border-color:var(--signal); }
.entry-role:hover>img { opacity:1; transform:scale(1.04); }
.entry-panel { color:var(--ink); background:#f4efe4; border:1px solid #f8ebc755; border-top:3px solid var(--signal); border-radius:5px; box-shadow:0 14px 70px #0007; position:fixed; inset:0; margin:auto; padding:37px 0 0; width:min(450px,calc(100vw - 32px)); max-height:calc(100svh - 36px); overflow-y:auto; }
.entry-panel::before { content:'Din adgang til fabrikken'; position:absolute; left:24px; top:12px; text-transform:uppercase; font-size:8px; letter-spacing:1.5px; color:#747b66; }
.entry-panel::backdrop { background:#06171dba; backdrop-filter:blur(8px); }
.entry-close { position:absolute; right:12px; top:5px; width:29px; height:29px; padding:0; font-size:24px; line-height:1; color:#374b3a; border:0; background:none; }
.entry-feedback { margin:0 24px 17px; color:#7d4827; background:#f8e5cb; padding:12px; border:1px solid #d5b585; font-size:12px; border-radius:3px; }
.entry-form { padding:23px 26px 20px; }
.entry-form h2 { font:30px/1.1 var(--display); text-transform:uppercase; margin:8px 0 10px; }
.entry-form>p { font-size:12px; margin-bottom:14px; }
.entry-form label { margin-top:12px; }
.entry-form input,.entry-form select { min-height:42px; padding:10px 12px; font-size:12px; border-radius:3px; }
.entry-form>.button { margin-top:19px; }
.entry-form .quiet-box { margin-top:18px; padding:11px 13px; font-size:10px; }
.entry-form .quiet-box p { font-size:10px; }
.tabs button { font-size:10px; padding:15px 6px; }
.tabs button[aria-selected=true] { border-color:#ad8438; background:#f2c66a26; }
.resume-panel { padding:14px 26px; }
.resume-panel>div { max-height:135px; overflow:auto; }
.server-status { padding:0 26px 17px; font-size:9px; }
.entry-footer { width:100%; color:#adbdb3; border-color:#e3dac22b; padding-top:15px; font-size:9px; }

/* Navigation og rundestyring giver plads til det illustrerede arbejdsbord. */
.game { max-width:1660px; padding:14px 32px 30px; }
.room-top { gap:24px; padding:0 0 13px; }
.room-top h1 { font:600 17px/1.4 var(--sans); margin:2px 0 0; }
.room-top .eyebrow { color:#97b4a9; font-size:8px; letter-spacing:1.1px; }
.room-top .text-button { color:#b6c9c0; font-size:10px; }
.room-code { gap:0 10px; }
.room-code>span,.room-code small { color:#94ada2; font-size:8px; }
.room-code button { color:var(--signal); background:#1f3031; border-color:#63715b; font-size:13px; padding:5px 9px; letter-spacing:2px; }
.game-status { color:var(--ink); border-radius:4px; }
.phase-strip { margin:0 0 12px; background:#152529; border:1px solid var(--night-line); border-radius:3px; }
.phase { padding:8px 14px; border-color:var(--night-line); color:#819b92; font-size:10px; }
.phase span { color:#c0cdb8; border-color:#465d52; border-radius:3px; width:19px; height:19px; font-size:8px; }
.phase.active { background:#28372c; color:var(--signal); box-shadow:inset 0 -2px var(--signal); }
.phase.active span { color:#172820; background:var(--signal); border-color:var(--signal); }
.phase.done { color:#becfc0; }
.timer { padding:7px 13px; font-family:monospace; font-size:13px; color:#e7dfc8; }
.timer small { color:#90a698; font:8px var(--sans); }
.game-toolbar { display:flex; align-items:center; gap:15px; margin-bottom:15px; position:sticky; top:0; padding:7px 0; background:#0e191df2; backdrop-filter:blur(10px); z-index:25; }
.workspace-tabs { flex:1; overflow:visible; gap:5px; border:0; }
.workspace-tabs button { color:#a6bbb0; font-size:10px; border:1px solid transparent; border-radius:4px; padding:11px 15px; display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; background:#142429; }
.workspace-tabs button[aria-selected=true] { color:var(--signal); border-color:#ab8d4e; background:#2b3428; font-weight:600; box-shadow:inset 0 -2px var(--signal); }
.workspace-tabs button:hover { background:#22393b; color:#f1e9d6; }
.workspace-tabs span { font-size:inherit; padding:0; }
.workspace-tabs b { font-size:8px; font-weight:500; margin-left:3px; color:var(--signal); }
.nav-icon { display:flex; align-items:center; }
.nav-icon svg { width:19px; height:19px; }
.session-controls { flex:0 0 auto; align-self:stretch; border:1px solid #465b51; border-radius:4px; background:#15252a; }
.session-controls>summary { display:flex; align-items:center; list-style:none; gap:8px; padding:12px 14px; color:#c1caba; font-size:10px; cursor:pointer; }
.session-controls>summary::-webkit-details-marker { display:none; }
.session-controls>summary::after { content:'+'; color:var(--signal); font-size:16px; margin-left:5px; }
.session-controls[open]>summary::after { content:'−'; }
.host-controls { color:var(--ink); background:#f3eee3; margin:0; border:0; border-radius:4px; }
.session-controls[open] .host-controls { position:absolute; top:55px; right:0; width:min(670px,90vw); box-shadow:0 20px 60px #0009; border:1px solid #d2bd81; }
.workspace { grid-template-columns:180px minmax(0,1fr); gap:20px; }
.sidebar { gap:18px; }
.mini-map { border:1px solid #6b785e; padding:0; border-radius:4px; position:relative; overflow:hidden; color:var(--cream); background:#172b2f; text-align:left; height:164px; }
.mini-map img { width:100%; height:100%; object-fit:cover; }
.mini-map::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0b181cee,transparent 85%); }
.mini-map>span { position:absolute; left:12px; right:10px; bottom:12px; z-index:1; }
.mini-map b { font-size:11px; display:block; }
.mini-map small { display:block; font-size:9px; color:var(--signal); margin-top:3px; }
.mini-map:hover img { filter:brightness(1.13); }
.mission,.mission.blue,.mission.amber { border:0; border-left:2px solid var(--desk-accent); background:#192d3099; padding:15px; }
.mission .eyebrow { color:#97afa2; font-size:8px; }
.mission h2 { font:24px/1 var(--display); text-transform:uppercase; color:#e4e7d4; margin:9px 0 13px; }
.mission p { color:#a9bcb0; font-size:11px; }
.mission .text-button { color:var(--signal); font-size:9px; margin-top:14px; padding:0; }
.players-panel { background:transparent; color:#a4b9ac; padding:0 4px; font-size:11px; }
.players-panel summary { font-size:10px; cursor:pointer; }
.player-name { color:#d2dace; font-size:10px; }
.player-name small { color:#829b8d; }
.players-panel>p { color:#98aea0; border-color:var(--night-line); }
.archive-link { color:#93ada0; border-color:var(--night-line); font-size:9px; }
.panel { padding:0; scroll-margin-top:85px; }
.panel:not(#home-panel):not(#world-panel) { background:#f1ece2; color:var(--ink); border:1px solid #506351; border-radius:5px; padding:26px; }
.panel-heading h2 { font:32px/1.05 var(--display); text-transform:uppercase; }
.panel:not(#home-panel):not(#world-panel) .panel-heading { border-bottom:1px solid #d5d7c8; padding-bottom:22px; }

/* Genstandene er tilgængelige knapper oven på scenen. */
.workspace-overview { display:block; padding:0; margin:0; border:0; background:transparent; }
.work-scene,.location-scene { position:relative; isolation:isolate; aspect-ratio:16/9; overflow:hidden; border:1px solid #a6905b88; border-radius:5px; background:#1b3030; color:var(--cream); box-shadow:0 16px 35px #0005; }
.scene-art { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.scene-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,#071b21b3 0%,transparent 30%,transparent 75%,#07171ac9 100%),linear-gradient(90deg,#06171c33,transparent 60%); }
.scene-heading { position:absolute; left:26px; top:24px; right:180px; text-shadow:0 2px 18px #000; }
.scene-heading .eyebrow { color:#e8d6b2; font-size:9px; letter-spacing:2px; }
.scene-heading h2 { font:clamp(36px,4.4vw,70px)/1 var(--display); margin:8px 0; text-transform:uppercase; color:#fff3d7; text-shadow:2px 3px 0 #071921,0 2px 20px #0009; }
.scene-heading p { color:#e3d5b6; font-size:10px; letter-spacing:.7px; }
.scene-stage { position:absolute; right:18px; top:20px; background:#0f2229da; color:var(--signal); padding:7px 11px; font-size:9px; border:1px solid #bfa66a66; border-radius:3px; backdrop-filter:blur(10px); }
.scene-hotspots { position:absolute; inset:0; }
.scene-hotspot { position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; color:var(--cream); background:none; border:0; padding:0; min-width:110px; transition:filter .15s; }
.hotspot-symbol { position:relative; display:grid; place-items:center; background:#0d212bdc; width:40px; height:40px; border:1px solid var(--signal); border-radius:50%; box-shadow:0 0 0 4px #09202955,0 4px 14px #0009; backdrop-filter:blur(5px); color:var(--signal); }
.hotspot-symbol::before { content:''; position:absolute; inset:-7px; border:1px solid #f2c66a55; border-radius:50%; animation:scene-pulse 4s ease-out infinite; }
.hotspot-symbol svg { width:21px; height:21px; }
.hotspot-label { margin-top:8px; padding:5px 9px; border:1px solid #788c7077; background:#0b202be8; color:#f7ecd3; border-radius:3px; font-size:10px; font-weight:600; white-space:nowrap; box-shadow:0 4px 10px #0006; }
.hotspot-label small { display:none; white-space:normal; font-size:9px; font-weight:400; color:#c3d3be; width:130px; margin-top:4px; }
.scene-hotspot:hover .hotspot-symbol,.scene-hotspot:focus-visible .hotspot-symbol { color:#12262b; background:var(--signal); transform:translateY(-3px); }
.scene-hotspot:hover .hotspot-label small,.scene-hotspot:focus-visible .hotspot-label small { display:block; }
.scene-hotspot:focus-visible { outline:0; }
.scene-hotspot:focus-visible .hotspot-label { outline:3px solid var(--signal); outline-offset:3px; }
.scene-footer { position:absolute; left:22px; right:16px; bottom:14px; display:flex; justify-content:space-between; align-items:center; gap:12px; pointer-events:none; }
.scene-footer>span { color:#d7d6bb; font-size:9px; text-shadow:0 1px 8px #000; }
.scene-footer i,.map-legend i { display:inline-block; background:var(--signal); width:5px; height:5px; border-radius:50%; margin-right:7px; }
.guide-shortcut { display:flex; gap:8px; align-items:center; color:var(--signal); border:1px solid #d2b16588; border-radius:3px; padding:8px 10px; background:#10252beb; font-size:9px; pointer-events:auto; }
.guide-shortcut svg { width:16px; height:16px; }
.guide-shortcut:hover { background:#293728; }
.mission-brief { background:#23332c; border:1px solid #667459; border-left:3px solid var(--signal); color:var(--cream); margin:15px 0 26px; padding:17px 20px; gap:18px; border-radius:4px; }
.mission-number { color:var(--signal); font:38px var(--display); width:auto; background:none; border:0; }
.mission-brief .eyebrow { color:#c6b88d; font-size:8px; }
.mission-brief h3 { color:#f2e9d0; font:23px var(--display); text-transform:uppercase; margin:3px 0 5px; }
.mission-brief p { color:#c3d0bf; font-size:11px; line-height:1.6; }
.mission-brief small { color:#8fa594; font-size:8px; }
.mission-brief .button { background:var(--signal); border-color:var(--signal); color:#23302a; font-size:10px; min-height:39px; }
.section-title h2,.cast-heading h2 { font:24px/1.1 var(--display); text-transform:uppercase; color:#e9e5d2; }
.section-title .eyebrow,.cast-heading .eyebrow { color:#879e8e; font-size:8px; margin-bottom:7px; }
.cast-heading { display:flex; justify-content:space-between; align-items:end; gap:15px; margin:0 0 13px; }
.cast-heading .text-button { color:#b2c2ab; font-size:9px; }
.role-cast { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:30px; }
.cast-card { display:flex; align-items:center; gap:12px; border:1px solid #395449; background:#182d2f; color:var(--cream); min-width:0; text-align:left; padding:0 12px 0 0; border-radius:4px; overflow:hidden; transition:background .2s,transform .2s; }
.cast-image { flex:0 0 78px; height:91px; overflow:hidden; position:relative; }
.cast-image img { width:100%; height:100%; object-fit:cover; object-position:67% 30%; }
.cast-copy { min-width:0; flex:1; }
.cast-copy .eyebrow { color:#b9a778; font-size:7px; letter-spacing:.8px; }
.cast-copy strong { display:block; font-size:12px; margin:5px 0 3px; line-height:1.3; overflow-wrap:anywhere; }
.cast-copy small { color:#94ad9d; font-size:8px; display:block; }
.cast-action { color:var(--signal); flex:0 0 17px; }
.cast-action svg { width:17px; height:17px; }
.cast-card.own-role { border-color:#657c52; }
.cast-card:hover { background:#2a4139; transform:translateY(-2px); }
.home-panel .badge,#activity-count { color:#adc1a8; border-color:#4f654b; background:#172d29; font-size:8px; }
#home-panel>.learning-hint { color:#8fa797; font-size:10px; }
.learning-path { gap:12px; margin-bottom:30px; }
.learning-step { background:#182b2d; border:1px solid #3b5145; border-radius:4px; padding:17px; box-shadow:none; }
.learning-step.started { background:#20332c; border-color:#667b52; }
.learning-step .step-number { border:1px solid #746e4b; color:var(--signal); background:#273a2c; border-radius:3px; }
.learning-step h3 { color:#e9e6d2; font-size:13px; }
.learning-step p { color:#9db39f; font-size:11px; }
.learning-step .step-link { color:var(--signal); font-size:10px; }
.home-columns { gap:20px; }
.home-inbox,.practice { background:#ece7db; color:var(--ink); padding:22px; border:1px solid #8e9876; border-radius:4px; }
.home-inbox .section-title h2,.practice h2 { font:24px var(--display); text-transform:uppercase; color:var(--ink); }
.home-inbox .section-title { align-items:start; }
.inbox-preview { background:#fbf8ee; border:1px solid #d2d6c3; border-left:2px solid #8b976d; border-radius:3px; padding:15px; }
.inbox-preview .eyebrow { font-size:8px; letter-spacing:.6px; }
.practice .practice-question { background:#faf7ee; border-color:#d7d6c4; }

/* Kortet fører ind i miljøerne og videre til det faktiske kildegrundlag. */
#world-panel .panel-heading { margin:4px 0 16px; }
#world-panel .panel-heading h2 { color:#f2e7c9; font-size:36px; }
#world-panel .panel-heading .eyebrow { color:#a0b59c; font-size:9px; }
#world-panel .panel-heading>.button { color:#d1ddc7; background:#233634; border-color:#688264; font-size:10px; }
#world-panel>.panel-intro,#world-intro { color:#a6b8a0; font-size:12px; }
.factory-map { border:1px solid #8b8963; border-radius:5px; overflow:hidden; box-shadow:0 15px 40px #0005; }
.factory-map>img { filter:saturate(.84) brightness(.85); }
.map-heading { position:absolute; top:20px; left:24px; font:33px var(--display); text-transform:uppercase; text-shadow:2px 2px 0 #132c28,0 2px 15px #000; color:#fbefd1; pointer-events:none; }
.map-heading small { display:block; font:9px var(--sans); letter-spacing:1.3px; text-transform:uppercase; margin-top:2px; }
.map-pin { transform:translate(-50%,-50%); min-height:44px; min-width:44px; border:0; background:transparent; }
.map-pin>span { background:#0b2630e6; border:1px solid var(--signal); color:var(--signal); width:39px; height:39px; box-shadow:0 0 0 4px #142a2988,0 3px 12px #0009; }
.map-pin>strong { font:600 9px var(--sans); border:1px solid #87937288; background:#0b2430ee; color:#f5e7c3; border-radius:3px; padding:6px 9px; }
.map-pin:hover>span,.map-pin.selected>span { color:#162728; background:var(--signal); }
.map-legend { position:absolute; right:18px; bottom:17px; color:#f4e4c1; background:#142c2cdd; padding:7px 10px; font-size:9px; border:1px solid #a1976477; }
.location-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.location-list button { display:flex; position:relative; align-items:center; gap:12px; overflow:hidden; min-width:0; padding:0 12px 0 0; border:1px solid #436044; background:#1b3032; color:#e7e5cc; text-align:left; border-radius:4px; }
.location-list img { width:84px; height:97px; object-fit:cover; object-position:67% 38%; flex-shrink:0; }
.location-list .location-thumb-copy { display:flex; flex:1; flex-direction:column; align-items:start; width:auto; height:auto; margin:0; background:none; border:0; }
.location-thumb-copy small { font-size:7px; color:var(--signal); text-transform:uppercase; letter-spacing:.4px; }
.location-thumb-copy strong { font-size:11px; margin:5px 0 3px; }
.location-thumb-copy>span { font-size:8px; width:auto; height:auto; margin:0; color:#94ac99; border:0; background:none; }
.location-list button>b { font-size:14px; color:var(--signal); }
.location-list button:hover { background:#2d4335; border-color:var(--signal); }
.location-list button.selected { background:#263c31; color:var(--cream); border-color:#bda568; }
.location-detail { margin:0; padding:0; border:0; background:transparent; }
.location-breadcrumb { display:flex; justify-content:space-between; align-items:center; gap:8px; color:#a6b6a2; margin:0 0 15px; }
.location-breadcrumb button { background:none; border:0; color:#d3d6b6; font-size:10px; padding:5px 0; }
.location-breadcrumb>span { color:#7f9b8c; font-size:9px; }
.location-scene { animation:scene-enter .35s ease-out both; }
.location-scene .scene-shade { background:linear-gradient(180deg,#071b21b3,transparent 35%,transparent 45%,#08191be3); }
.location-person { position:absolute; left:25px; right:25px; bottom:37px; display:flex; align-items:center; gap:16px; }
.location-person-number { width:43px; height:43px; border:1px solid #e5ca75aa; color:var(--signal); font:23px var(--display); display:grid; place-items:center; border-radius:3px; background:#142c2cbf; flex-shrink:0; }
.location-person>div { flex:1; text-shadow:0 2px 8px #000; }
.location-person h3 { font:28px/1.1 var(--display); color:#f3e7c4; }
.location-person p { font-size:10px; color:#d5dac2; margin-top:5px; }
.location-person small { font-size:9px; color:#aec1a7; display:block; margin-top:4px; }
.location-person .button { font-size:10px; padding:10px 14px; }
.scenery-label { position:absolute; right:15px; bottom:10px; font-size:7px; color:#a3b7a8; letter-spacing:1px; text-transform:uppercase; }
.location-content { padding:25px; margin-top:16px; border:1px solid #7e8d6a; background:#eee9df; color:var(--ink); border-radius:4px; scroll-margin-top:85px; }
.location-intro { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:25px; }
.location-intro>p { font-size:13px; padding:10px 0; }
.source-question { margin:0; background:#e1e4d5; padding:15px; border-left:2px solid #ac8a43; }
.source-question strong { font-size:10px; text-transform:uppercase; letter-spacing:.7px; }
.source-question p { font-size:12px; }
.location-sources { gap:15px; margin-top:16px; }
.location-sources article { background:#fffbf1; border-color:#ccd0bc; border-radius:4px; padding:21px; }
.location-sources article h3 { font:24px var(--display); text-transform:uppercase; }
.source-context { color:#687660; font-size:10px; margin-top:20px; }
.back-to-work { color:#435a3d; margin-top:20px; }
.contact-stage { display:none; color:var(--ink); }
#game[data-panel=feed] .contact-stage { display:block; margin:0 0 18px; }
.contact-stage.is-active { display:block; position:fixed; bottom:24px; right:24px; width:min(470px,calc(100vw - 36px)); z-index:70; margin:0; border-color:#bba56c; box-shadow:0 15px 50px #0008; }
.contact-dialog { background:#172b2f; color:var(--cream); border:1px solid #ccb578; border-radius:6px; padding:26px; width:min(640px,calc(100vw - 32px)); max-height:90svh; box-shadow:0 24px 80px #000b; }
.contact-dialog::backdrop { background:#07151cca; backdrop-filter:blur(6px); }
.dialog-heading { display:flex; gap:15px; align-items:start; justify-content:space-between; }
.dialog-heading .eyebrow { color:#bfa871; font-size:8px; }
.dialog-heading h2 { font:34px/1 var(--display); text-transform:uppercase; margin-top:9px; color:#f4e5bf; }
.dialog-heading>button { background:none; border:1px solid #6c8263; border-radius:3px; color:#dbd6b9; width:34px; height:34px; font-size:24px; line-height:1; flex-shrink:0; }
.contact-dialog>p { color:#a5b9a3; font-size:12px; margin:18px 0; }
#contact-choices { display:grid; gap:12px; }
#contact-choices .cast-card { padding-right:20px; }
#contact-choices .cast-image { height:108px; flex-basis:112px; }
#contact-choices .cast-copy strong { font-size:16px; }
#contact-choices .cast-copy small { font-size:10px; }
#contact-choices .cast-copy .eyebrow { font-size:9px; }
.contact-dialog>small { color:#849e8c; display:block; font-size:9px; margin-top:18px; }
@keyframes scene-pulse { 0%,100% { opacity:0; transform:scale(.92); } 20% { opacity:.6; } 70% { opacity:0; transform:scale(1.28); } }
@keyframes scene-enter { from { opacity:.4; transform:translateY(7px); } to { opacity:1; transform:none; } }

@media (min-width:1700px) { .entry { padding-top:75px; } .entry-intro { padding-top:30px; } .entry-roles { margin-top:40px; } }
@media (max-width:1150px) {
  .entry { padding:30px 30px 22px; gap:26px; }
  .entry h1 { font-size:clamp(72px,8.6vw,110px); }
  .entry-role>span { padding:10px; }.entry-role strong { font-size:19px; }.entry-role small { font-size:7px; }
  .workspace { grid-template-columns:150px minmax(0,1fr); gap:16px; }.mini-map { height:135px; }
  .workspace-tabs button { padding:9px; font-size:9px; gap:6px; }.session-controls>summary { padding:12px 10px; font-size:9px; }
  .scene-heading { top:20px; left:20px; }.scene-heading h2 { font-size:48px; }
  .cast-card { gap:8px; padding-right:8px; }.cast-image { flex-basis:55px; }.cast-action { display:none; }
  .learning-path { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .entry { display:flex; flex-direction:column; padding:35px 24px 20px; gap:25px; }
  .entry[data-mode=solo] .entry-panel { order:initial; }
  .entry-backdrop { height:650px; object-position:70% 0; }
  .entry::before { background:linear-gradient(0deg,#0e191d 0%,#0e191d 38%,#0d1f2655 66%,#0b17277a 100%),linear-gradient(90deg,#0b172ccc,transparent); }
  .entry-intro { max-width:none; width:100%; padding-top:0; }.entry-title { margin-top:25px; }.entry h1 { font-size:clamp(74px,11vw,108px); }
  .entry .lead { font-size:16px; margin-top:25px; }.entry-roles { width:100%; max-width:680px; }.entry-role { min-height:130px; }.entry-role>span { min-height:130px; }
  .entry-panel { width:min(450px,calc(100vw - 32px)); max-width:450px; margin:auto; }.entry-footer { width:100%; }
  .workspace { display:flex; flex-direction:column; gap:25px; }.main-workspace { width:100%; order:0; }.sidebar { width:100%; order:1; display:grid; grid-template-columns:150px 1fr 1fr; gap:18px; }.archive-link { grid-column:1/-1; }
  .game { padding:14px 20px 35px; }.work-scene { aspect-ratio:16/9; }.scene-heading h2 { font-size:52px; }
  .game-toolbar { flex-wrap:wrap; gap:8px; }.session-controls { flex:1; max-width:none; }.session-controls>summary { padding:8px 12px; }.session-controls[open] .host-controls { top:100%; width:100%; }
  .workspace-tabs { min-width:100%; }.workspace-tabs button { flex:1; font-size:10px; }
  .role-cast { gap:10px; }.cast-image { flex-basis:75px; }.location-person h3 { font-size:24px; }
}
@media (max-width:620px) {
  .masthead { padding:10px 16px; min-height:55px; }.brand { font-size:13px; }.brand small { font-size:6px; max-width:180px; }.brand-mark { width:31px; height:31px; font-size:16px; }.header-right a { font-size:9px; }
  .entry { padding:26px 18px 18px; }.entry-intro>.eyebrow { font-size:7px; letter-spacing:1.2px; }.entry-backdrop { height:550px; object-position:68% 0; }
  .entry::before { background:linear-gradient(0deg,#0e191d 0%,#0e191d 37%,#09192222 81%,#0c1830aa 100%),linear-gradient(90deg,#0b172cbf,transparent 95%); }
  .entry-title { margin-top:23px; }.entry-kicker { font-size:8px; letter-spacing:2px; }.entry h1 { font-size:clamp(60px,16.8vw,100px); letter-spacing:-.7px; text-shadow:3px 3px 0 #071a20,0 5px 15px #000b; }
  .entry .lead { font-size:14px; margin-top:26px; }.entry-meta { font-size:8px; gap:7px 10px; padding:15px 0; }.entry-roles { gap:7px; margin-top:8px; }
  .entry-role,.entry-role>span { min-height:127px; }.entry-role>span { padding:9px 7px; }.entry-role small { font-size:6px; letter-spacing:.2px; }.entry-role strong { font-size:17px; line-height:1.05; }.entry-role em { font-size:8px; }.entry-role.selected::before { width:16px; height:16px; font-size:9px; top:6px; right:6px; }
  .entry-panel { border-radius:4px; }.entry-form { padding:23px; }.entry-form h2 { font-size:28px; }.entry-form input,.entry-form select { font-size:13px; min-height:45px; }.tabs button { font-size:9px; padding:15px 8px; }.entry-footer { font-size:9px; }.entry-launch { gap:9px; }.entry-launch .button { min-width:145px; font-size:10px; min-height:43px; padding:11px 13px; }.entry-resume { padding:7px 0; font-size:9px; }
  .game { padding:13px 12px 95px; }.room-top { gap:12px; flex-wrap:wrap; padding-bottom:12px; }.room-top h1 { font-size:16px; }.room-top .eyebrow { font-size:7px; }.room-top .text-button { width:auto; margin-left:auto; font-size:9px; }.room-code { margin-left:auto; }.room-code>span { display:none; }.room-code small { font-size:7px; max-width:70px; }.room-code button { font-size:11px; padding:5px 7px; letter-spacing:1px; }
  .phase-strip { grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:8px; }.phase { padding:7px 5px; flex-direction:row; gap:5px; font-size:8px; }.phase span { width:17px; height:17px; flex-shrink:0; }.timer { display:flex; justify-content:space-between; align-items:center; grid-column:1/-1; padding:5px 9px; font-size:11px; }.timer small { font-size:8px; }
  .game-toolbar { margin-bottom:10px; z-index:60; position:relative; padding:0; background:transparent; backdrop-filter:none; }.workspace-tabs { position:fixed; left:0; right:0; bottom:0; min-width:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; z-index:60; background:#0c1a20f7; backdrop-filter:blur(15px); padding:7px 5px max(8px,env(safe-area-inset-bottom)); border-top:1px solid #87966b; box-shadow:0 -8px 35px #0006; }
  .workspace-tabs button { padding:6px 2px; min-height:50px; flex-direction:column; gap:3px; border-radius:3px; font-size:8px; background:none; }.workspace-tabs .nav-icon svg { width:20px; height:20px; }.workspace-tabs b { font-size:7px; margin-left:1px; }.session-controls { width:100%; }.session-controls>summary { padding:7px 10px; font-size:9px; }.session-controls .nav-icon svg { width:15px; height:15px; }.session-controls[open] .host-controls { top:38px; width:100%; }.host-controls { padding:16px; }
  .workspace { gap:22px; }.panel { scroll-margin-top:10px; }.panel:not(#home-panel):not(#world-panel) { padding:19px 16px; }.panel-heading h2 { font-size:28px; }.panel-heading .eyebrow { font-size:8px; }.panel-heading { gap:12px; }.panel-heading .badge { font-size:8px; }.feed-card,.message-form { padding:16px; }.feed { max-height:55svh; }.sources-grid { grid-template-columns:1fr; }
  .work-scene { aspect-ratio:auto; padding-top:80%; display:flex; flex-direction:column; overflow:visible; border-color:#6e7752; }.work-scene .scene-art { height:0; min-height:0; aspect-ratio:16/9; height:100%; max-height:calc(100% - 193px); object-fit:cover; border-radius:4px 4px 0 0; object-position:55% 40%; }.work-scene .scene-shade { bottom:193px; border-radius:4px 4px 0 0; background:linear-gradient(180deg,#061b21dd,transparent 55%,#14282988); }
  .scene-heading { left:17px; top:17px; right:15px; }.scene-heading .eyebrow { font-size:7px; letter-spacing:1px; }.scene-heading h2 { font-size:44px; margin:7px 0; }#game[data-role=director] #workspace-overview .scene-heading h2 { font-size:clamp(31px,9.7vw,43px); }.scene-heading p { font-size:9px; max-width:200px; }.scene-stage { top:auto; bottom:209px; right:12px; font-size:8px; padding:5px 8px; }
  .scene-hotspots { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#45604855; padding:1px; border-top:1px solid #8d9667; }.scene-hotspot { position:relative; left:auto; top:auto; transform:none; flex-direction:column; justify-content:center; min-width:0; min-height:76px; background:#14282b; gap:7px; padding:7px 3px; }.scene-hotspot:last-child { grid-column:span 2; }.hotspot-symbol { width:26px; height:26px; border:0; box-shadow:none; background:none; backdrop-filter:none; }.hotspot-symbol::before { display:none; }.hotspot-symbol svg { width:22px; height:22px; }.hotspot-label { font-size:9px; margin:0; padding:0; border:0; background:none; box-shadow:none; }.hotspot-label small,.scene-hotspot:hover .hotspot-label small,.scene-hotspot:focus-visible .hotspot-label small { display:none; }.scene-hotspot:hover { background:#2a4232; }
  .scene-footer { position:relative; bottom:auto; left:auto; right:auto; background:#17292a; padding:9px 11px; min-height:39px; gap:8px; }.scene-footer>span { font-size:7px; }.guide-shortcut { padding:5px 7px; font-size:8px; }.guide-shortcut svg { width:13px; height:13px; }
  .mission-brief { margin:13px 0 23px; padding:16px; display:grid; grid-template-columns:30px 1fr; gap:10px; }.mission-number { font-size:29px; }.mission-brief p { font-size:11px; }.mission-brief h3 { font-size:22px; }.mission-brief .button { grid-column:2; justify-self:start; margin-top:5px; font-size:9px; padding:8px 10px; min-height:35px; }.mission-brief small { display:block; margin-top:6px; line-height:1.6; }
  .cast-heading h2,.section-title h2 { font-size:23px; }.cast-heading .eyebrow,.section-title .eyebrow { font-size:7px; }.cast-heading .text-button { font-size:8px; }.role-cast { grid-template-columns:1fr; gap:9px; margin-bottom:25px; }.cast-card { padding-right:15px; gap:13px; }.cast-image { flex-basis:86px; height:81px; }.cast-copy strong { font-size:13px; }.cast-copy .eyebrow { font-size:8px; }.cast-copy small { font-size:9px; }.cast-action { display:block; }
  .section-title { align-items:start; gap:12px; }.section-title #activity-count { font-size:7px; padding:5px; flex-shrink:1; min-width:100px; line-height:1.5; }.learning-path { grid-template-columns:1fr 1fr; gap:10px; }.learning-step { padding:13px; }.learning-step h3 { font-size:12px; }.learning-step p { font-size:10px; }.learning-step .step-link { font-size:9px; }.home-columns { grid-template-columns:1fr; }.home-inbox,.practice { padding:19px; }
  .sidebar { grid-template-columns:110px 1fr; align-items:start; }.mini-map { height:115px; }.mini-map b { font-size:9px; }.mini-map small { font-size:7px; }.mini-map>span { left:8px; bottom:8px; }.mission { padding:12px; }.mission h2 { font-size:21px; }.mission p { font-size:10px; }.players-panel { grid-column:1/-1; padding:10px; background:#192e2e; }.players-panel ul { display:block; }.archive-link { font-size:10px; }
  #world-panel .panel-heading h2 { font-size:31px; }#world-panel .panel-heading .eyebrow { font-size:8px; }#world-intro { font-size:11px; }.map-heading { font-size:24px; top:12px; left:14px; }.map-heading small { font-size:7px; }.map-pin>span { width:29px; height:29px; font-size:9px; }.map-pin>strong { display:none; }.map-legend { font-size:7px; right:9px; bottom:9px; padding:5px 7px; }.factory-map>img { min-height:315px; object-fit:cover; }.factory-map { aspect-ratio:3/2; }.factory-map>img { width:100%; height:100%; min-height:0; object-fit:fill; }
  .location-list { grid-template-columns:1fr 1fr; gap:8px; }.location-list button { padding:0; display:block; }.location-list img { width:100%; height:93px; object-position:65% 25%; }.location-list .location-thumb-copy { padding:10px; }.location-thumb-copy small { font-size:6px; }.location-thumb-copy strong { font-size:10px; line-height:1.3; }.location-thumb-copy>span { font-size:8px; }.location-list button>b { position:absolute; top:7px; right:8px; background:#112b2bd9; padding:0 4px; border-radius:3px; }
  .location-breadcrumb>span { display:none; }.location-breadcrumb button { font-size:9px; }.location-scene { aspect-ratio:auto; height:440px; }.location-scene .scene-art { height:100%; object-fit:cover; object-position:66% 35%; }.location-scene .scene-heading h2 { font-size:clamp(31px,9.5vw,39px); }.location-scene .scene-shade { background:linear-gradient(180deg,#071e24c9,transparent 32%,transparent 40%,#071b21f2 85%); }.location-person { left:16px; right:16px; bottom:33px; align-items:start; flex-wrap:wrap; gap:10px; }.location-person-number { width:34px; height:34px; font-size:20px; }.location-person>div { flex:1; min-width:220px; }.location-person h3 { font-size:25px; }.location-person small { font-size:9px; }.location-person .button { margin-left:44px; font-size:9px; padding:9px 12px; }.location-content { padding:18px; }.location-intro { grid-template-columns:1fr; gap:15px; }.location-sources { grid-template-columns:1fr; }.location-sources article { padding:18px; }.location-sources article h3 { font-size:23px; }
  .contact-stage.is-active { right:12px; bottom:85px; width:calc(100vw - 24px); }.contact-dialog { padding:22px; }.dialog-heading h2 { font-size:29px; }#contact-choices .cast-image { flex-basis:83px; height:93px; }#contact-choices .cast-copy strong { font-size:14px; }.contact-dialog>p { font-size:11px; }.site-footer { padding:22px 18px 85px; margin:0; font-size:9px; }
}
@media (max-width:360px) { .entry h1 { font-size:57px; }.brand small { max-width:145px; }.phase { font-size:7px; }.scene-heading h2 { font-size:39px; }.learning-path { grid-template-columns:1fr; }.scene-footer>span { max-width:140px; }.location-person>div { min-width:180px; } }
@media (min-width:901px) and (max-height:800px) { .entry { padding-top:25px; gap:20px; }.entry-intro { padding-top:0; }.entry-title { margin-top:18px; }.entry h1 { font-size:90px; }.entry .lead { margin-top:17px; font-size:15px; }.entry-meta { padding:13px 0; }.entry-roles { margin-top:22px; }.entry-role,.entry-role>span { min-height:110px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }.entry-role:hover,.cast-card:hover { transform:none; } }
