/* All visual extensions are scoped to this game; the shared engine is untouched. */
:root{--bg:#100e14;--panel:rgba(24,20,31,.93);--gold:#e9bb68;--gold2:#ffe2a5;--sans:Arial,'Segoe UI',sans-serif}
.theatre.mbox{background:linear-gradient(155deg,#272335,#15141e)}
.theatre .paper{color:#302316;text-shadow:none;gap:8px;overflow:auto;justify-content:flex-start;padding:10px;font:500 clamp(15px,1.8vw,19px)/1.5 Arial,sans-serif}
.theatre .paper>div{width:100%}.theatre-note{margin:.25em 0;padding:4px 8px}.theatre .paper:has(.theatre-note){background:#ffedcbd9;border-radius:8px}
.theatre .readout{text-align:center;font-weight:700;color:var(--gold2);min-height:28px;letter-spacing:.04em}
.poster-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%}
.fragment{font:inherit;text-align:left;background:#fff4dce8;border:2px dashed #956536;border-radius:5px;padding:12px;cursor:pointer;color:#302316;box-shadow:2px 4px 9px #50301328}
.fragment p{margin:6px 0}.fragment[aria-pressed=true]{border:3px solid #295e57;background:#dce9d9}.fragment strong{font-size:.85em}
.theatre-select{width:100%;background:#fff2d5;color:#292019;border:1px solid #967044;padding:9px;border-radius:7px;min-height:44px;font:inherit}
.select-label{display:grid;gap:4px;text-align:left;font-size:15px;min-width:0}.select-label>span{font-weight:bold}
.shadow-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%}.shadow-pair>div{height:100%;display:flex;flex-direction:column;min-width:0}
.caption{margin:0 0 6px;font-weight:700}.projection{flex:1;position:relative;min-height:100px;background:#fff2cb99;overflow:hidden;border:1px solid #a98d64;border-bottom:4px solid #957445}
.projection>i{position:absolute;height:100%;border-left:1px dashed #8c795c55;top:0}.projection img{position:absolute;height:40%;width:32%;object-fit:contain;object-position:bottom;bottom:7%;transform-origin:center bottom}
.silhouette{filter:brightness(0);opacity:.88}.shadow-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}
.puppet-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.puppet-gallery>div{display:grid;justify-items:center;text-align:center;padding:8px;background:#fff1;border-radius:10px}.puppet-gallery img{height:105px;width:100%;object-fit:contain}
.theatre [aria-pressed=true].btn{outline:3px solid #90d6ba;outline-offset:2px}
.cast-table{display:grid;gap:12px;margin:auto 0}.cast-row{display:grid;grid-template-columns:24px 1fr 1fr;gap:10px;align-items:center}.cast-row>b{font-size:24px}
.clue-list{border-left:3px solid var(--gold);padding:0 18px;margin-top:16px}.clue-list p{margin:8px 0}
.colour-screen{position:relative;isolation:isolate;height:100%;min-height:160px;border-radius:45%;box-shadow:0 0 30px #ffd77866;overflow:hidden}
.colour-puppet{position:absolute;inset:9% 20%;width:60%;height:82%;object-fit:contain;opacity:.78;filter:grayscale(1)}
.colour-tint{position:absolute;inset:0;mix-blend-mode:multiply;opacity:.8}.revealed{position:absolute;inset:auto 0 8%;font-size:clamp(30px,6vw,64px);color:#fff;text-shadow:0 2px 4px #000,1px 0 #000,-1px 0 #000;background:#0009;line-height:1.3}
.score{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:auto 0}.score span{display:grid;border:2px solid #846241;border-radius:8px;padding:8px;background:#fff4df}.score small{font:14px Arial}.score b{font:700 clamp(22px,4vw,46px) Georgia}.score-title{font:bold clamp(17px,2.5vw,28px) Georgia;letter-spacing:.06em}
.spot.hid::after{content:'☾';font:18px Georgia;width:20px;height:22px;margin:-11px 0 0 -10px;color:#ffe3a3;background:none!important;box-shadow:none!important}.spot.hid:hover::after{width:20px;height:22px;margin:-11px 0 0 -10px}.spot.hid.done::after{opacity:1;animation:none;color:#b9e5cb}
.theatre .field{width:min(240px,100%);text-align:center;letter-spacing:8px}
@media(max-width:650px){.theatre.mbox{padding:16px 10px}.theatre .cu{aspect-ratio:auto;min-height:460px;background-size:100% 100%}.theatre .paper{left:15%!important;top:20%!important;width:70%!important;height:62%!important;padding:5px;font-size:15px}.poster-grid{grid-template-columns:1fr;gap:6px}.fragment{padding:7px;font-size:14px}.fragment p{margin:3px 0}.shadow-controls{grid-template-columns:1fr}.puppet-gallery img{height:80px}.puppet-gallery small{font-size:11px}.cast-row{grid-template-columns:20px 1fr;gap:5px}.cast-row .select-label:last-child{grid-column:2}.cast-table{gap:8px}.select-label{font-size:13px}.theatre-select{padding:5px}.score{gap:3px}.score span{padding:4px}.score b{font-size:25px}}
@media print{.diploma{background:white!important}.diploma *{color:#251a12!important}}
