:root{--ink:#17233d;--night:#08122d;--gold:#ffd369;--paper:#fff8de;--accent:#8d5cf6}*{box-sizing:border-box}body{margin:0;background:#07122b;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.game-shell{min-height:100vh;background:#07122b}.scene{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden}.scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07122b22 30%,#07122bcc)}.scene-content{position:relative;z-index:1;width:min(1180px,94vw);min-height:100vh;padding:28px 0;display:flex;flex-direction:column}.scene-title{color:#fff;text-shadow:0 2px 10px #000;margin:0;font-size:clamp(1.5rem,3vw,2.4rem)}.scene-subtitle{color:#fff;margin:.25rem 0 0;text-shadow:0 2px 8px #000;max-width:50rem}.ai-credit{position:fixed;z-index:50;bottom:11px;left:12px;border:1px solid #ffffff63;border-radius:999px;background:#07122bd9;color:#fff;padding:5px 10px;font:600 11px/1 system-ui;text-transform:lowercase;letter-spacing:.04em}.map-actions{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px;margin:auto 0 35px;max-width:680px}.map-actions button,.primary,.choice,.close{border:0;cursor:pointer;border-radius:16px;padding:15px 18px;font:700 1rem/1.2 inherit;box-shadow:0 8px 22px #0005}.map-actions button{background:#fff9e8e8;color:#2b213b;text-align:left}.map-actions button:hover,.primary:hover,.choice:hover{transform:translateY(-2px);filter:brightness(1.04)}.map-actions span{display:block;font-size:.8rem;opacity:.72;margin-top:4px}.back{align-self:flex-start;background:#07122bc9;color:#fff;border:1px solid #ffffff88;border-radius:999px;padding:8px 13px;cursor:pointer}.location-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:auto 0 20px}.location-actions button{min-height:105px;border:1px solid #ffffff99;border-radius:18px;background:#0b1737d9;color:#fff;cursor:pointer;padding:16px;text-align:left;font:700 1rem inherit;box-shadow:0 8px 24px #0006}.location-actions span{display:block;font-weight:500;font-size:.86rem;opacity:.85;margin-top:7px}.progress{display:flex;gap:7px;margin:15px 0}.progress i{width:12px;height:12px;border-radius:99px;border:1px solid #fff;background:#ffffff44}.progress i.done{background:var(--gold)}.modal{position:fixed;z-index:40;inset:0;padding:20px;background:#020817c9;display:grid;place-items:center}.modal-card{position:relative;width:min(960px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);border-radius:22px;padding:clamp(20px,4vw,42px);box-shadow:0 20px 60px #000a}.modal-card h2{margin:0 42px 10px 0}.modal-card p{line-height:1.55}.close{position:absolute;right:14px;top:14px;width:36px;height:36px;padding:0;background:#2a3350;color:#fff}.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:20px 0}.card{background:#fff;border:2px solid #e6d59e;border-radius:14px;padding:15px;line-height:1.35}.pair{cursor:pointer}.pair.selected{outline:4px solid #9a7aff}.pair.matched{background:#dcf7d9;border-color:#4d9c4d}.answer-list{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.choice{background:#e9ddff;color:#32205e;padding:9px 12px;font-size:.92rem}.choice.selected{outline:3px solid #5932bd}.fill-line{font-size:1.06rem;line-height:2.25}.blank{display:inline-block;min-width:95px;margin:0 3px;border-bottom:3px solid #6840be;color:#4b2599;font-weight:800;text-align:center}.sort-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dropzone{min-height:210px;border:3px dashed #91a6c6;border-radius:16px;padding:13px;background:#fff}.dropzone h3{margin:0 0 10px}.drag-item{display:block;width:100%;text-align:left;background:#efe8ff;color:#2a2358;border:0;border-radius:10px;margin:7px 0;padding:10px;cursor:pointer;font:inherit}.drag-item.active{outline:3px solid #6b42d4}.feedback{font-weight:800;margin:16px 0;min-height:1.4em}.success{color:#167033}.error{color:#a42a2a}.video-placeholder{border-radius:16px;background:#17233d;color:#fff;padding:30px;text-align:center}.video-placeholder strong{display:block;color:var(--gold);font-size:1.2rem;margin-bottom:8px}.final{margin:auto 0;background:#08122bdc;border:1px solid #ffffff66;border-radius:22px;padding:clamp(22px,5vw,52px);color:#fff;max-width:620px}.final input{display:block;width:100%;margin:15px 0;border:0;border-radius:12px;padding:14px;font:1.15rem inherit}.primary{background:var(--gold);color:#30220a}.end-card{background:#fff8dedb;padding:25px;border-radius:18px;color:#24213e;text-align:center}.end-card h2{font-size:2rem}@media(max-width:640px){.map-actions,.location-actions,.activity-grid,.sort-columns{grid-template-columns:1fr}.scene-content{padding:18px 0}.location-actions button{min-height:82px}.modal{padding:10px}.modal-card{max-height:calc(100vh - 20px);border-radius:16px;padding:20px}.fill-line{font-size:1rem}}
.ai-credit{text-transform:none}
.image-scene{background:#050a18}.image-scene::after{display:none}.scene-stage{position:relative;width:min(100vw,calc(100vh * 1.7777778));aspect-ratio:1200/675;overflow:hidden;background:#050a18;box-shadow:0 22px 60px #0009}.scene-stage>img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.hotspot{position:absolute;border:0;background:transparent;cursor:pointer;padding:0;z-index:2}.hotspot:hover,.hotspot:focus-visible{background:#ffe37d24;outline:3px solid #ffe37da8;outline-offset:-3px;border-radius:12px}.scene-return{position:fixed;z-index:5;top:16px;left:18px;background:#07122bc9;color:#fff;border:1px solid #ffffff88;border-radius:999px;padding:8px 13px;cursor:pointer;font:700 14px system-ui}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.storyteller{position:absolute;z-index:4;border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 7px 8px #0009);transition:transform .18s,filter .18s}.storyteller img{display:block;width:100%;height:auto}.storyteller:hover,.storyteller:focus-visible{transform:scale(1.05);filter:drop-shadow(0 0 12px #ffe278)}.storyteller--map{left:-1%;bottom:-3%;width:20%}.storyteller--room{right:1%;top:1%;width:14%}@media(max-width:700px){.storyteller--map{width:29%}.storyteller--room{width:21%}}
