:root{--font-korean:Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}html{font-family:var(--font-korean);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}:root{--color-bg-deep:#0b1220;--color-bg-panel:#121b2e;--color-bg-panel-alt:#17233a;--color-border:#2a3a56;--color-teal:#33d6c0;--color-teal-dim:#1f8f80;--color-text:#eaf1f7;--color-text-dim:#a9b8cc;--color-warning:#f2b134;--color-danger-text:#ffdede;--color-danger-bg:#4a2430;--focus-ring:3px solid var(--color-teal);--radius-md:10px;--radius-lg:16px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg-deep);color:var(--color-text);min-width:320px;margin:0}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}a{color:var(--color-teal)}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.scene-root{background-color:var(--color-bg-deep);background-position:50%;background-size:cover;flex-direction:column;flex:1;align-items:center;min-height:100vh;display:flex;position:relative}.scene-overlay{z-index:1;background:linear-gradient(#0b12208c 0%,#0b1220d1 100%);flex-direction:column;flex:1;width:100%;max-width:1600px;padding:20px clamp(16px,4vw,48px) 40px;display:flex;position:relative}.scene-placeholder-bg{background:linear-gradient(135deg,#16233c 0%,#0d1626 60%,#0a3a35 100%)}.scene-stage{border-radius:var(--radius-lg);width:100%;box-shadow:0 0 0 1px var(--color-border);background:linear-gradient(135deg,#16233c 0%,#0d1626 60%,#0a3a35 100%);margin:16px 0;position:relative;overflow:hidden}.scene-stage-image{width:100%;height:auto;display:block}.scene-stage-placeholder{width:100%}.scene-stage-hotspots{position:absolute;inset:0}.panel{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);padding:20px 24px}.panel-alt{background:var(--color-bg-panel-alt)}.text-dim{color:var(--color-text-dim)}.pill{border:1px solid var(--color-border);color:var(--color-teal);background:#33d6c014;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;display:inline-flex}.pill.status-analyzed{color:#7dffb0;background:#3cc8781a;border-color:#2f5d43}.pill.status-found{color:var(--color-warning);background:#f2b1341a;border-color:#5d4a1f}.btn{border:1px solid var(--color-border);background:var(--color-bg-panel-alt);color:var(--color-text);border-radius:var(--radius-md);min-width:44px;min-height:44px;padding:12px 20px;font-size:1rem;transition:transform .12s,background .12s}.btn:hover{background:#1c2a45}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-teal);color:#06251f;border-color:var(--color-teal);font-weight:700}.btn-primary:hover{background:#4fe4cf}.btn-danger-outline{color:var(--color-danger-text);border-color:#7a3a44}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn-primary[disabled]{background:var(--color-bg-panel-alt);color:var(--color-text-dim);border-color:var(--color-border)}select{color:var(--color-text);background:var(--color-bg-panel-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);box-sizing:border-box;width:100%;max-width:100%;min-height:44px;padding:10px 12px;font-family:inherit;font-size:1rem}select:focus-visible{outline:var(--focus-ring);outline-offset:2px}select option{color:var(--color-text);background:var(--color-bg-panel-alt)}select option:disabled{color:var(--color-text-dim)}input[type=checkbox],input[type=radio]{accent-color:var(--color-teal);flex-shrink:0;width:18px;height:18px}.hotspot-btn{border:2px solid var(--color-teal);min-width:44px;min-height:44px;color:var(--color-teal);background:#121b2ebf;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #33d6c01f}.hotspot-btn:after{content:"?";font-size:1.1rem}.hotspot-btn.is-found{border-color:var(--color-warning);color:var(--color-warning);box-shadow:0 0 0 4px #f2b1341f}.hotspot-btn.is-found:after{content:"!"}.hotspot-btn.is-analyzed{color:#7dffb0;border-color:#7dffb0;box-shadow:0 0 0 4px #7dffb01f}.hotspot-btn.is-analyzed:after{content:"✓"}.hotspot-btn:hover,.hotspot-btn:focus-visible{background:#121b2ef2}.modal-backdrop{z-index:50;background:#040810b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:720px;max-height:90vh;padding:24px;overflow-y:auto}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.clue-thumb{aspect-ratio:4/3;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#060c16;width:100%}.disclaimer-badge{color:var(--color-text-dim);border:1px dashed var(--color-border);border-radius:8px;padding:6px 10px;font-size:.78rem;display:inline-block}.progress-header{border-bottom:1px solid var(--color-border);z-index:20;background:#060b14d9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px clamp(16px,4vw,48px);display:flex;position:sticky;top:0}.rotate-warning{display:none}@media (width<=600px) and (orientation:portrait){.rotate-warning{z-index:100;background:var(--color-bg-deep);color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex;position:fixed;inset:0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card-list{flex-direction:column;gap:12px;display:flex}.card-list li{list-style:none}.timeline-drag-handle{width:44px;height:44px;color:var(--color-text-dim);background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:flex}.timeline-drag-handle:active{cursor:grabbing}.timeline-drag-handle:focus-visible{outline:var(--focus-ring);outline-offset:2px}.timeline-card.is-dragging{opacity:.5;border-color:var(--color-teal);box-shadow:0 0 0 2px var(--color-teal-dim)}.timeline-drop-indicator{background:var(--color-teal);border-radius:2px;height:3px;margin:-6px 0 3px}.timeline-move-btns{opacity:0;pointer-events:none;transition:opacity .15s}.timeline-card:hover .timeline-move-btns,.timeline-card:focus-within .timeline-move-btns{opacity:1;pointer-events:auto}.feedback-box{border-radius:var(--radius-md);border:1px solid var(--color-border);padding:14px 16px}.feedback-box.is-wrong{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:#7a3a44}.feedback-box.is-correct{color:#cdffdf;background:#3cc8781f;border-color:#2f5d43}@media (width>=1280px){.scene-overlay{padding-left:48px;padding-right:48px}}.location-stage-wrap{justify-content:center;width:100%;display:flex}.location-stage-wrap .scene-stage{width:min(100%,177.683vh - 266.525px);margin-left:auto;margin-right:auto}.location-frame{pointer-events:none;flex-direction:column;justify-content:center;gap:4px;padding:clamp(4px,1.1%,14px) clamp(8px,2%,18px);font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;display:flex;position:absolute;overflow:hidden}.location-frame p{color:var(--color-text-dim);text-shadow:0 1px 3px #000000a6;word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:clamp(12px,.9vw,17px);line-height:1.3}.location-frame-title{color:var(--color-text);text-shadow:0 1px 3px #000000b3;word-break:keep-all;overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 2px;font-size:clamp(16px,1.25vw,22px);font-weight:700;display:-webkit-box;overflow:hidden}.location-frame-desc{color:#d7e2ee;-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.location-text-warning{color:var(--color-warning)!important}.location-topbar{text-align:center;justify-content:center;align-items:center}.location-topbar p{color:var(--color-text);text-shadow:0 1px 3px #000000b3;background:#04081059;border-radius:999px;padding:4px 14px;font-size:clamp(13px,1vw,18px)}.location-info-sub p{font-size:clamp(11px,.8vw,15px)}.location-btn{text-align:center;min-width:44px;min-height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:1px 2px;font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:clamp(11px,.85vw,16px);font-weight:600;line-height:1.15;transition:filter .15s;display:flex;position:absolute;top:0;left:0;overflow:visible;transform:translate(-50%,-50%)}.location-btn-label{text-shadow:0 0 6px #78c8ff8c,0 1px 3px #000c;pointer-events:none;word-break:keep-all;overflow-wrap:break-word}.location-btn-lock{pointer-events:none;font-size:.75em;line-height:1}.location-btn:hover,.location-btn:focus-visible{filter:brightness(1.35)saturate(1.15)}.location-btn:focus-visible{outline:none}.location-btn.is-selected .location-btn-label{color:var(--color-teal)}.location-btn.is-locked .location-btn-label{color:#7c8aa3;text-shadow:0 1px 3px #000c}.location-btn.is-locked{filter:brightness(.75)}.location-btn.is-locked:hover,.location-btn.is-locked:focus-visible{filter:brightness(.95)}.clue-modal-frame-wrap{aspect-ratio:1672/941;border-radius:var(--radius-md);background-color:#0a1120;background-position:50%;background-size:cover;width:100%;margin-bottom:12px;position:relative;overflow:hidden}.clue-modal-slot{box-sizing:border-box;flex-direction:column;padding:clamp(1px,.3vw,4px) clamp(4px,1vw,12px);font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;display:flex;position:absolute;overflow:hidden}.clue-modal-slot p,.clue-modal-slot span{word-break:keep-all;overflow-wrap:break-word;margin:0}.clue-modal-image-slot{justify-content:center;align-items:center;padding:clamp(6px,1.5vw,20px)}.clue-modal-image-slot img{object-fit:contain;max-width:100%;max-height:100%}.clue-modal-label{color:var(--color-text-dim);margin-bottom:1px;font-size:clamp(10px,.85vw,13px)}.clue-modal-value{color:var(--color-text);font-size:clamp(11px,.95vw,14px);line-height:1.3}.clue-modal-scroll{overflow-y:auto}.clue-modal-slot-inline{flex-flow:row;justify-content:center;align-items:baseline;gap:6px;padding:0 clamp(4px,1vw,12px)}.clue-modal-slot-inline .clue-modal-label{white-space:nowrap;flex-shrink:0;margin-bottom:0}.clue-modal-slot-inline .clue-modal-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.clue-modal-reliability-btn{box-sizing:border-box;color:var(--color-text-dim);cursor:pointer;text-align:center;background:0 0;border:none;justify-content:center;align-items:center;min-width:0;min-height:0;padding:clamp(2px,.6vw,6px) clamp(3px,.8vw,8px);font-size:clamp(11px,.9vw,14px);font-weight:600;display:flex;position:absolute}.clue-modal-reliability-btn[aria-pressed=true]{color:var(--color-teal)}.clue-modal-action-btn{box-sizing:border-box;color:#eafffb;cursor:pointer;text-align:center;text-shadow:0 1px 3px #0009;background:0 0;border:none;justify-content:center;align-items:center;padding:clamp(2px,.6vw,6px) clamp(4px,1vw,10px);font-size:clamp(11px,.95vw,14px);font-weight:700;display:flex;position:absolute}.clue-modal-action-btn[disabled]{color:#eafffb73;cursor:not-allowed}.clue-modal-memo-input{box-sizing:border-box;color:var(--color-text);background:0 0;border:none;padding:0 clamp(6px,1.2vw,16px);font-family:inherit;font-size:clamp(11px,.95vw,14px);position:absolute}.clue-modal-memo-input::placeholder{color:var(--color-text-dim)}.clue-modal-memo-input:focus-visible{outline:var(--focus-ring);outline-offset:2px}.clue-modal-close-btn{color:var(--color-text);cursor:pointer;text-shadow:0 1px 3px #0009;background:0 0;border:none;justify-content:center;align-items:center;font-size:clamp(18px,1.6vw,26px);font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%)}.clue-modal-close-btn:hover,.clue-modal-close-btn:focus-visible{color:var(--color-teal)}.clue-modal-close-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.frame-stage{aspect-ratio:1672/941;border-radius:var(--radius-lg);width:100%;box-shadow:0 0 0 1px var(--color-border);background-color:#0a1120;background-position:50%;background-size:cover;position:relative;overflow:hidden}.frame-slot{flex-direction:column;gap:2px;font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;display:flex;position:absolute;overflow:hidden}.frame-slot-title{color:var(--color-text);word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:clamp(11px,1vw,15px);font-weight:700}.frame-slot-body{color:var(--color-text-dim);word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:clamp(10px,.85vw,13px);line-height:1.35;overflow-y:auto}.frame-btn{cursor:pointer;color:var(--color-text);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;padding:2px 4px;font-family:inherit;display:flex;position:absolute;overflow:hidden}.frame-btn:hover,.frame-btn:focus-visible{border-color:var(--color-teal)}.frame-btn .frame-btn-name{color:var(--color-text);word-break:keep-all;overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(9px,.8vw,12px);display:-webkit-box;overflow:hidden}.frame-btn .frame-btn-status{color:var(--color-teal);font-size:clamp(8px,.7vw,10px)}.frame-tabs{flex-wrap:wrap;gap:8px;display:flex}
