/* MysterySpark visual evidence edition */
.game-body{background:#e8eff3}.game-layout{max-width:1350px;grid-template-columns:220px minmax(0,1fr)}.chapter{scroll-margin-top:110px}#case-main{min-width:0;scroll-margin-top:110px}.chapter h1,.chapter h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.035em}.chapter h1{font-size:clamp(2.3rem,5vw,4rem)}.portrait{display:block;position:relative;overflow:hidden;aspect-ratio:354.8 / 590;background:#09283c}.portrait img{position:absolute;width:500%;height:auto;max-width:none;top:-22.034%;pointer-events:none}.portrait-0 img{left:0}.portrait-1 img{left:-100%}.portrait-2 img{left:-200%}.portrait-3 img{left:-300%}.portrait-4 img{left:-400%}.cast-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid #b1c3ce;border-radius:15px;overflow:hidden;margin:24px 0;background:#09283c;color:#fff}.cast-preview>div{text-align:center;border-right:1px solid #4c5e62}.cast-preview>div:last-child{border:0}.cast-preview>div>span:last-child{display:block;padding:9px 2px;font-size:.875rem}.people-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.person-card{padding:0;overflow:hidden;border:1px solid #98afbd;background:#09283c;color:#f7f1e7;align-self:start}.person-card:last-child{grid-column:auto}.person-card>.portrait{aspect-ratio:354.8/590}.person-card>h3,.person-card>.file-label{margin:14px 18px}.person-card>.file-label{color:#f9ce76;font-size:.875rem}.person-card h3{font-family:Georgia,serif;font-size:1.45rem}.statement{margin-top:16px;border-top:1px solid #365267;padding:16px 18px}.statement summary{color:#a8e4f0}.statement p{margin-bottom:0}.reference-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:#eaf1f4;padding:16px;border-radius:12px;margin:22px 0}.reference-row figure{margin:0;display:flex;align-items:center;gap:12px}.reference-row img{width:90px;max-width:40%;border-radius:8px}.reference-row figcaption{font-size:.875rem;font-weight:750}.inspection-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.inspection-card{margin:0;padding:14px;border:1px solid #bfd0d9;background:#fdfbf5;box-shadow:0 8px 15px #0a253508}.inspect-image{display:block;border:0;padding:0;background:#08283f;color:#e4f5ff;width:100%;cursor:zoom-in;border-radius:10px;overflow:hidden}.inspect-image img{width:100%;display:block;max-height:340px}.inspect-image span{display:block;padding:12px;font-size:.875rem;font-weight:700}.inspection-card .file-label{margin-bottom:12px}.small-note{font-size:.875rem;color:#536b7a}.contact-sheet{background:#0b2b41;color:#c8e7ef;padding:26px;border-radius:12px;margin:16px 0;border:1px solid #426477;display:grid;gap:12px}.contact-sheet strong{font:3rem Georgia,serif;color:#f9d589}.contact-sheet small{font:1rem system-ui}.contact-sheet p{margin:0;font-size:1.125rem}.camera-label{font-size:.875rem;letter-spacing:.09em}.evidence-timeline{border-left:3px solid #1c6985;margin:24px 10px 6px;padding-left:22px;display:grid;gap:12px}.evidence-timeline details{position:relative;background:#edf4f7;border:1px solid #c4d5de;border-radius:9px;padding:16px}.evidence-timeline details:before{content:'';position:absolute;left:-30px;top:23px;width:11px;height:11px;border-radius:50%;background:#ffd27b;border:2px solid #1c6985}.evidence-timeline summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.evidence-timeline summary span{font-size:.875rem;color:#386076}.evidence-timeline time{font-weight:800}.evidence-timeline p{margin-bottom:0}.museum-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#09283f;border:8px solid #17394d;border-radius:14px;padding:18px;margin:24px 0}.map-room{min-height:95px;border:2px solid #6392a8;background:#124159;color:#eaf9ff;padding:15px 8px;border-radius:5px;cursor:pointer;display:grid;place-content:center;gap:8px}.map-room:first-child{grid-column:2}.map-room small{font-size:.875rem}.map-room span{font-weight:750;font-size:.875rem}.map-room[aria-pressed=true]{border-color:#ffce70;background:#245769}.map-corridor{grid-column:1/-1;text-align:center;font-size:.875rem;color:#bad8e8;padding:2px}.map-corridor span,.map-corridor b{display:block}.map-corridor b{font-size:1.5rem;color:#ffd176}.room-detail{min-height:110px;background:#e8f1f6;padding:18px;border-left:4px solid #dba846}.occupant{display:inline-flex;align-items:center;gap:12px;margin:8px 20px 8px 0;font-weight:750}.mini-portrait{width:55px;flex-shrink:0;border-radius:8px}.mechanism-lab{background:#09273c;border-radius:14px;padding:20px;color:#e9f7ff;margin:20px 0}.machine-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.875rem}.machine-head>span{color:#b4d0df}.machine-head strong{color:#ffd27b}.mechanism-lab svg{width:100%;display:block;max-height:400px;margin:14px auto}.mechanism-lab .lab-controls{display:flex;gap:12px;flex-wrap:wrap}.mechanism-lab .secondary{font-size:.875rem;padding:12px 16px}.mechanism-lab .secondary:disabled{opacity:.65}.mechanism-lab p{margin-bottom:0}.recovery-stamp{display:flex;gap:24px;align-items:center;border:1px solid #adc4d2;padding:16px;background:#eef4f6;margin:20px 0}.recovery-stamp img{width:130px;max-width:35%}.recovery-stamp strong{font-size:1.25rem}.message-evidence{border-top:5px solid #bc913a}.message-evidence blockquote{background:#f6efdf;padding:24px;border-radius:0 12px 12px 0}.accusation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.accusation-grid legend{margin-bottom:18px}.accusation-grid .choice{align-items:center;margin:0;padding:10px;gap:10px}.accusation-grid .choice:last-child{grid-column:1/-1}.reveal-person{display:flex;gap:24px;align-items:center;background:#09283f;color:#fff;border-radius:15px;overflow:hidden;margin:24px 0;padding-right:20px}.reveal-person>.portrait{width:170px;max-width:40%;flex-shrink:0}.reveal-person h3{font:2rem Georgia,serif}.reveal-person .file-label{color:#ffce70}dialog{width:min(620px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:1px solid #7899ac;border-radius:16px;padding:22px;background:#f5f8fa;color:#102e42}dialog::backdrop{background:#00111ce6}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-heading h2{font-size:1.4rem}dialog>img{display:block;width:100%;height:55dvh;object-fit:contain}.game-footer{border-top:1px solid #bfced7}button:focus-visible,summary:focus-visible{outline:3px solid #d5961d;outline-offset:4px}@media(max-width:1000px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.game-layout{grid-template-columns:1fr}.case-sidebar{position:static}.reference-row figure{display:block}.reference-row img{max-width:100%;width:85px}.reference-row figcaption{margin-top:8px}.museum-map{padding:10px;gap:8px;border-width:4px}.map-room{padding:10px 4px}.inspection-grid{gap:10px}.inspection-card{padding:8px}.inspection-card .file-label{font-size:.875rem}.evidence-timeline{margin-inline:0;padding-left:17px}.evidence-timeline details:before{left:-25px}.recovery-stamp{gap:14px}.accusation-grid{grid-template-columns:1fr}.accusation-grid .choice:last-child{grid-column:auto}.mechanism-lab{padding:12px}}@media(max-width:400px){.people-grid{gap:10px}.person-card>h3{font-size:1.2rem;margin:12px}.person-card>.file-label{margin:12px}.statement{padding:12px}.map-room small{font-size:.875rem}.cast-preview>div>span:last-child{font-size:.875rem}.reference-row{padding:10px;gap:10px}.reveal-person{gap:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* v0.4: press evidence and architectural floor plan */
.press-photo{margin:20px 0;border:1px solid #b4c5cf;background:#faf7ee;padding:12px;border-radius:12px}.press-enlarge{display:block;width:100%;padding:0;border:0;border-radius:7px;background:#09283c;overflow:hidden;cursor:zoom-in;color:#f6dfaa}.press-enlarge img{display:block;width:100%;height:auto}.press-enlarge>span{display:block;padding:12px;font-size:.875rem;font-weight:700}.press-photo figcaption{padding:16px 8px 4px}.press-photo figcaption>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.press-photo time{font-weight:800;color:#143d54}.press-photo figcaption p{margin:8px 0 0;font-size:.875rem;color:#466071}.floorplan-evidence{margin:22px 0;border:1px solid #a7bfcb;border-radius:14px;overflow:hidden;background:#09283f}.plan-heading{display:flex;flex-direction:column;gap:6px;padding:20px 24px;color:#f8e2b1}.plan-heading>span{font-size:.875rem;letter-spacing:.09em}.plan-heading>strong{font:1.35rem Georgia,serif;color:#f1f8ff}.plan-scroll{overflow-x:auto;background:#eef3ee}.floorplan-canvas{position:relative;min-width:660px}.floorplan-canvas>img{width:100%;height:auto;display:block}.floor-hotspot{position:absolute;border:2px solid transparent;background:transparent;cursor:pointer;border-radius:6px;padding:0}.floor-hotspot:hover,.floor-hotspot[aria-pressed=true]{border-color:#b0811a;background:#dca94219}.floor-hotspot:focus-visible{outline:3px solid #0d6688;outline-offset:-4px}.floor-hotspot>span{position:absolute;bottom:7px;right:9px;font-size:.875rem;font-weight:700;background:#113e51;color:#fff;border-radius:4px;padding:5px 9px;opacity:0}.floor-hotspot:hover>span,.floor-hotspot:focus-visible>span{opacity:1}.hotspot-prep{left:7%;top:10%;width:85%;height:33%}.hotspot-reception{left:7%;top:60%;width:29%;height:31%}.hotspot-sound{left:39%;top:60%;width:24%;height:31%}.hotspot-stage{left:65%;top:60%;width:27%;height:31%}.floorplan-room-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px}.floorplan-room-buttons button{background:#15445d;border:1px solid #78a3b6;color:#edf9ff;border-radius:8px;padding:12px;text-align:left;cursor:pointer;font-size:1rem}.floorplan-room-buttons button[aria-pressed=true]{border-color:#ffce70;background:#315b66}.floorplan-evidence .plan-legend{color:#c4dce7;font-size:.875rem;padding:0 20px 18px;margin:0}.plan-mobile-note{display:none;color:#d4e7ee;font-size:.875rem;padding:0 20px 14px;margin:0}.plan-scroll:focus-visible{outline:3px solid #efbf61;outline-offset:-3px}@media(max-width:900px){.plan-mobile-note{display:block}.floorplan-room-buttons{padding:14px;gap:8px}.floorplan-room-buttons button{font-size:.875rem}.plan-heading{padding:18px}.press-photo{padding:8px}}

/* v0.4.1: true enlargement in a full-window, scrollable viewer */
#inspection-dialog{box-sizing:border-box;width:calc(100vw - 24px);max-width:none;height:calc(100dvh - 24px);max-height:none;padding:18px;margin:auto;overflow:hidden;border-radius:12px}
#inspection-dialog[open]{display:flex;flex-direction:column;gap:12px}
#inspection-dialog .dialog-heading{flex-shrink:0;gap:12px}
#inspection-dialog .dialog-heading h2{margin:0;font-size:1.25rem}
.zoom-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}
.zoom-toolbar .secondary{padding:8px 16px;min-height:44px}
.zoom-toolbar output{min-width:55px;text-align:center;font-weight:700;font-size:1rem}
.zoom-toolbar>span{font-size:.875rem;color:#456071}
#inspection-viewport{flex:1;min-height:0;overflow:auto;background:#061c2c;border-radius:8px;overscroll-behavior:contain;outline-offset:-4px}
#inspection-viewport>img{display:block;max-width:none;width:auto;height:auto;max-height:none;object-fit:initial;margin-inline:auto}
#inspection-caption{flex-shrink:0;font-size:.875rem;line-height:1.4;margin:0;max-height:15dvh;overflow:auto}
@media(max-width:600px){#inspection-dialog{padding:10px;gap:8px}.zoom-toolbar{gap:6px}.zoom-toolbar>span{flex-basis:100%}#inspection-dialog .dialog-heading h2{font-size:1rem}.dialog-heading #close-inspection{padding:9px 14px}}
