.design-banner{padding:9px 16px;text-align:center;background:#321f2b;color:#ffd79b;border-bottom:1px solid #a7703f;font:10px monospace;letter-spacing:1px}body{background:radial-gradient(ellipse at top,#402b3d,#190e21 55%,#130d19)}.haunt-panel{background:linear-gradient(140deg,#382432ed,#201321f5);border-color:#97624177;box-shadow:inset 0 1px #d7aa5e22,0 8px 35px #0004}.haunt-hero{border-color:#bf7d4777;box-shadow:0 0 45px #d37d2414}.panel-heading,.section-kicker{color:#ffc573}.haunt-actions .play-button,.event-ledger .play-button{background:linear-gradient(125deg,#ffe19a,#ffa638);color:#2c180f}.game-shell{border:3px solid #a87242;box-shadow:inset 0 0 0 1px #efc37a66,0 0 60px #0009;background:#231421;border-radius:12px}.game-top{background:linear-gradient(#3b2530,#261823);border-bottom:1px solid #ad744855}.game-wordmark{color:#ffe0a5}.game-hud{background:linear-gradient(#211424f2,#211424bb);border-bottom:1px solid #bb8b4c55}.game-hud b{color:#ffce75}.game-help,.touch-controls{background:#261a25}.touch-controls button{border-color:#a7794855;background:#3a2932;color:#ffd28e}.touch-controls button:hover{background:#594030}.mission-hud{background:#2b1d29;color:#dcedbc;border-color:#9b734f66}.results{background:#221523f5}.results h2{color:#ffd395}.guest-button{border-color:#c99252;color:#ffe2ae;background:#352332}.costume-cards button[aria-pressed=true]{border-color:#ffc06c;box-shadow:0 0 22px #ffb44b26}.event-mission{background:linear-gradient(120deg,#593242,#332236)}@media(max-width:650px){.design-banner{font-size:8px;letter-spacing:.3px;padding:8px}.game-shell{border-width:2px}}
/* Illustrated story reader: artwork stays separate from the playable renderer. */
#campaign-modal{width:min(1200px,97vw);padding:28px;background:linear-gradient(145deg,#24132e,#100b18)}.campaign-top h2{font-size:38px}.campaign-layout{grid-template-columns:225px minmax(0,1fr);gap:24px}.act-levels{grid-template-columns:1fr;gap:4px}.level-node{display:flex;align-items:center;gap:10px;text-align:left;min-height:0;padding:10px;border-radius:5px}.level-node:before{display:none!important}.level-node strong{font:700 18px var(--display);min-width:23px;color:#f4bb70}.level-node span{font:10px/1.45 var(--sans, sans-serif);white-space:normal;margin:0;color:#d9c5e1}.level-node.selected{transform:none;box-shadow:none;background:#4a273d}.act-group{margin-bottom:22px}#chapter-card{position:static;min-width:0;padding:0 25px 25px;border-top:0;border:1px solid #65415c;background:#1b1025;border-radius:10px;overflow:hidden}#chapter-card h3{font-size:36px;line-height:1.12;margin-top:12px}#chapter-story{font-size:16px;line-height:1.85;color:#f0e3ed;margin:20px 0}.story-art{margin:0 -25px 24px}.story-art a{display:block;position:relative;min-height:100px;background:#100c18}.story-art img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.story-art a span{position:absolute;bottom:12px;right:12px;background:#160d24db;border:1px solid #b17e55;color:#ffe3ae;font:9px monospace;padding:9px;border-radius:5px}.story-art figcaption{font:9px/1.7 monospace;color:#c7a7b9;padding:10px 20px;border-bottom:1px solid #64415b}.objective-box small{font-size:0}.objective-box small:after{content:'THE NEXT LITTLE TWIST';font:9px monospace;color:#e8bd83}.objective-box p{font-size:13px}.story-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:22px;margin-top:20px;border-top:1px solid #62415c}.story-navigation button{background:#352139;border:1px solid #80576d;color:#ffe0a8;border-radius:5px;padding:12px;font:10px monospace}.story-navigation button:disabled{opacity:.35;cursor:default}.story-navigation span{font:10px monospace;color:#d8b6d8}.campaign-top .close-modal{position:sticky;float:right;top:0;z-index:4;background:#24142f;border-radius:50%;width:36px;height:36px}.event-level{margin-bottom:12px}@media(max-width:700px){#campaign-modal{padding:18px 12px}.campaign-layout{grid-template-columns:1fr;gap:12px}#campaign-map{max-height:160px;overflow:auto;border:1px solid #65415c;padding:10px;border-radius:8px}.act-levels{grid-template-columns:repeat(2,minmax(0,1fr))}.level-node{padding:8px}.level-node span{font-size:9px}.act-group h3{font-size:9px}#chapter-card{padding:0 16px 20px;margin:0}#chapter-card h3{font-size:28px}#chapter-story{font-size:14px}.story-art{margin:0 -16px 20px}.story-art figcaption{font-size:8px;padding:9px 14px}.story-navigation button{font-size:9px;padding:10px 8px}.campaign-top h2{font-size:30px}}
#campaign-modal .campaign-top .close-modal{position:absolute;top:15px;right:15px;float:none}#campaign-modal .campaign-top h2{font-size:32px;margin:9px 0}#campaign-modal .campaign-top{padding-bottom:10px}.campaign-layout{grid-template-columns:185px minmax(0,1fr);padding-top:18px}#event-level{padding:12px;font:12px monospace;min-height:0}.story-collection{display:block;text-align:center;margin-top:20px;color:#efbd83;font:10px monospace}@media(max-width:700px){.campaign-layout{grid-template-columns:1fr}#campaign-modal .campaign-top h2{font-size:28px}.story-art img{object-fit:contain}}
#chapter-story.story-prose{font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.95;color:#f0e6ef;max-width:66ch;margin:25px auto 35px}#chapter-story.story-prose p{margin:0 0 1.25em}#chapter-story.story-prose .story-opening{font-size:1.12em;color:#ffdda8}#chapter-place{line-height:1.8;letter-spacing:.3px}#chapter-card{scroll-margin-top:20px}.story-navigation{position:relative}#chapter-card .objective-box small:after{content:'THE NEXT PAGE'}@media(max-width:700px){#chapter-story.story-prose{font-size:16px;line-height:1.9}#chapter-place{font-size:9px}}
