:root{--ink: #f4ede1;--ink-dim: #b9ad9b;--paper: #ede3d1;--paper-ink: #2e2018;--panel-bg: rgba(20, 16, 14, .88);--subtitle-bg: rgba(0, 0, 0, .62);--accent: #f2a93b;--brass: #b8924a;--system-bg: #1b1d22;--system-line: #3a3f48;--danger: #d0584b;--radius: 10px;--font: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", system-ui, sans-serif;--subtitle-size: 28px}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0d0b0a;color:var(--ink);font-family:var(--font);overflow:hidden}#app{position:fixed;top:0;right:0;bottom:0;left:0}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#label-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}#hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}#hud button,#panel-layer,#action-bar{pointer-events:auto}#top-bar{position:absolute;top:12px;left:16px;right:16px;display:flex;align-items:center;gap:12px}#place-name{font-size:15px;color:var(--ink-dim)}#phase-name{font-size:16px;padding:6px 12px;background:var(--subtitle-bg);border-radius:999px}#phase-name:empty{display:none}#top-actions{margin-left:auto;display:flex;gap:8px}button{font-family:var(--font);font-size:15px;color:var(--ink);background:#2b2420;border:1px solid #5a4a3c;border-radius:8px;padding:8px 14px;cursor:pointer}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#241a10;border-color:var(--accent);font-weight:600}#objective{position:absolute;top:60px;left:16px;max-width:min(420px,calc(100% - 260px));padding:8px 14px;background:var(--panel-bg);border-left:3px solid var(--accent);border-radius:8px;font-size:16px;line-height:1.4}#objective:before{content:"목표";display:block;font-size:12px;color:var(--accent);font-weight:700;margin-bottom:2px}#minimap{position:absolute;top:64px;right:16px;width:200px;height:200px;border-radius:12px;border:1px solid #5a4a3c;background:#0c0a09c7}#prompt{position:absolute;z-index:1;left:50%;top:60%;transform:translate(-50%);padding:8px 16px;background:var(--subtitle-bg);border-radius:999px;font-size:16px}#toast{position:absolute;left:50%;top:64px;transform:translate(-50%);padding:10px 18px;background:var(--system-bg);border:1px solid var(--system-line);border-radius:8px;font-size:15px}#subtitle-area{position:absolute;left:50%;bottom:72px;transform:translate(-50%);width:min(900px,calc(100% - 32px))}#subtitle-list{display:flex;flex-direction:column;gap:6px}.subtitle{background:var(--subtitle-bg);padding:8px 14px;border-radius:8px;font-size:var(--subtitle-size);line-height:1.35}.subtitle .speaker{font-weight:700;margin-right:8px}.subtitle .speaker .gear{font-size:.6em;vertical-align:middle;margin-left:2px;opacity:.8}.subtitle.system{font-size:18px;color:var(--ink-dim);background:#1e2026cc;border-left:3px solid #7f8a99}.subtitle.action{border-left:3px solid var(--accent)}#action-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;gap:8px;padding:8px;background:var(--panel-bg);border-radius:var(--radius)}#action-bar[hidden],#action-bar:empty{display:none}#action-bar:not([hidden]):not(:empty)~#controls-hint{display:none}#controls-hint{position:absolute;left:16px;bottom:16px;font-size:13px;color:var(--ink-dim)}.name-tag{padding:2px 8px;border-radius:6px;background:#0009;font-size:13px;white-space:nowrap}.zone-tag{padding:2px 8px;border-radius:6px;background:#f2a93bd9;color:#241a10;font-size:12px;font-weight:600;white-space:nowrap}.zone-tag.locked{background:#787878cc;color:#eee}.zone-tag.seated-hidden{visibility:hidden}#panel-layer:empty{display:none}#panel-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;background:#00000059}.panel{width:min(720px,calc(100% - 32px));max-height:calc(100% - 96px);overflow:auto;background:var(--panel-bg);border:1px solid #4a3c30;border-radius:var(--radius);padding:20px 22px}.panel h2{margin:0 0 12px;font-size:22px}.panel h3{margin:18px 0 8px;font-size:16px;color:var(--accent)}.panel p,.panel li{font-size:16px;line-height:1.6}.panel .muted{color:var(--ink-dim);font-size:14px}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px -22px -20px;padding:12px 22px 16px;justify-content:flex-end;position:sticky;bottom:-20px;background:#16120f;border-top:1px solid #3a2f27}.panel.system .panel-actions{background:var(--system-bg);border-top-color:var(--system-line)}.panel.system{background:var(--system-bg);border-color:var(--system-line)}.card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.card{text-align:left;background:var(--paper);color:var(--paper-ink);border:1px solid #c9b99c;border-radius:8px;padding:12px;font-size:15px;line-height:1.4}.card:hover{border-color:var(--accent)}.card.used{opacity:.55}.card.selected{outline:3px solid var(--accent)}.card .card-sub{display:block;margin-top:6px;font-size:12px;color:#6b5a48}.evidence-content{white-space:pre-wrap;background:var(--paper);color:var(--paper-ink);padding:12px;border-radius:8px;font-size:15px}.role-card{background:var(--paper);color:var(--paper-ink);border-radius:8px;padding:16px}.role-card h3{color:#7a4a10}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#3a2f27;margin-right:6px}.tag.culprit{background:var(--danger);color:#fff}.board-card{cursor:default}.panel .speech{background:#00000059;padding:10px 14px;border-radius:8px;font-size:18px}.panel .speech .speaker{font-weight:700;margin-right:8px}body.panel-open #subtitle-area,body.panel-open #label-layer{visibility:hidden}.case-text{display:flex;flex-direction:column;gap:4px;line-height:1.6;font-size:16px}.case-text.inline{display:inline-flex;gap:0}.case-line{padding-left:12px;position:relative}.case-line:before{content:"";position:absolute;left:0;top:.72em;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.45}.case-text.inline .case-line{padding-left:0}.case-text.inline .case-line:before{display:none}.case-time{color:#9a4f00;background:#f2a93b38;padding:0 4px;border-radius:4px;font-variant-numeric:tabular-nums}.case-name{font-weight:700;color:#1f4f7a}.case-name-label{font-weight:500;font-size:.78em;color:#6b5a48;margin-left:3px}.panel .speech .case-time,.notebook .case-time{color:#ffcf8a}.panel .speech .case-name{color:#9fd0ff}.panel .speech .case-name-label{color:var(--ink-dim)}.evidence-card{background:var(--paper);color:var(--paper-ink);border-radius:8px;padding:12px 14px;margin:10px 0}.evidence-card-header{display:flex;align-items:center;gap:8px}.evidence-card-name{font-size:17px;font-weight:700}.evidence-card .tag{background:#d8c9ad;color:var(--paper-ink)}.evidence-card-source{font-size:13px;color:#6b5a48;margin:2px 0 8px}.evidence-card-point{display:flex;gap:8px;align-items:baseline;background:#9a4f001a;border-left:3px solid #b8721f;padding:6px 10px;border-radius:4px;margin-bottom:8px;font-weight:600}.evidence-card-point-label{flex:none;font-size:12px;color:#9a4f00}.cast-list{display:flex;flex-wrap:wrap;gap:6px}.cast-chip{background:#ffffff14;border:1px solid #4a3c30;border-radius:999px;padding:4px 12px;font-size:14px;display:flex;gap:6px}.cast-chip span{color:var(--ink-dim)}.testimony-item{margin:8px 0}.testimony-topic{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:#3a2f27;color:var(--ink-dim);margin-bottom:4px}.testimony-retracted{margin-top:4px;color:#ffcf8a}.panel.wide{width:min(1100px,calc(100% - 32px));background:#17120f}.notebook-tabs{display:flex;gap:6px;margin-bottom:12px}.notebook-tab.active{background:var(--accent);color:#241a10;border-color:var(--accent)}.notebook-memo{width:100%;font:inherit;font-size:16px;line-height:1.6;background:var(--paper);color:var(--paper-ink);border:1px solid #c9b99c;border-radius:8px;padding:12px;resize:vertical}.timeline-board{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px}@media(max-width:720px){.timeline-board{grid-template-columns:minmax(0,1fr)}}.timeline-column{background:#ffffff0a;border:1px solid #3a2f27;border-radius:8px;padding:10px 12px;min-height:240px}.timeline-column h3{margin-top:0}.timeline-source-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto}.timeline-source{background:var(--paper);color:var(--paper-ink);border-radius:6px;padding:8px 10px;cursor:grab;display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.4}.timeline-source small{color:#6b5a48;font-size:11px}.timeline-source span{color:#4d3c2e;font-size:13px}.timeline-source.placed{opacity:.45;cursor:default}.timeline-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-header button{font-size:13px;padding:4px 10px}.timeline-list{display:flex;flex-direction:column;gap:6px;min-height:160px;max-height:46vh;overflow:auto;border-left:2px solid var(--brass);padding:4px 0 4px 10px}.timeline-empty{color:var(--ink-dim);font-size:14px;border:2px dashed #4a3c30;border-radius:8px;padding:24px 12px;text-align:center}.timeline-entry{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px;align-items:start;background:var(--paper);color:var(--paper-ink);border-radius:6px;padding:8px;cursor:grab;position:relative}.timeline-entry:before{content:"";position:absolute;left:-16px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.timeline-entry.dragging{opacity:.4}.timeline-time{width:100%;font:inherit;font-size:14px;font-weight:700;color:#9a4f00;background:#f2a93b2e;border:1px solid transparent;border-radius:4px;padding:4px;text-align:center;font-variant-numeric:tabular-nums}.timeline-time:focus{border-color:#b8721f;outline:none}.timeline-text{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.4}.timeline-text span{color:#4d3c2e;font-size:13px}.timeline-text small{color:#6b5a48;font-size:11px}.timeline-remove{font-size:12px;padding:2px 8px;color:var(--paper-ink);background:transparent;border-color:#c9b99c}.timeline-drop-marker{height:4px;border-radius:2px;background:var(--accent)}.timeline-own{display:flex;gap:6px;margin-top:10px}.timeline-own input{flex:1;font:inherit;font-size:14px;padding:6px 10px;border-radius:6px;border:1px solid #4a3c30;background:#0000004d;color:var(--ink)}#sound-control{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;pointer-events:auto;background:#00000073;padding:6px 10px;border-radius:999px}#sound-control .sound-toggle{font-size:13px;padding:4px 10px;border-radius:999px}#sound-control .sound-toggle.muted{color:var(--ink-dim)}#sound-control .sound-volume{width:96px;accent-color:var(--accent)}body.panel-open #sound-control,body.panel-open #controls-hint{visibility:hidden}.panel.start{width:min(520px,calc(100% - 32px));text-align:center;background:#17120f}.panel.start h2{font-size:34px;letter-spacing:.08em;margin-bottom:4px}.panel.start .panel-actions{display:none}.start-tagline{color:var(--ink-dim);margin-top:0}.start-form{display:flex;flex-direction:column;gap:6px;text-align:left;margin:18px 0 14px}.start-label{font-size:13px;color:var(--ink-dim)}.start-nickname{font:inherit;font-size:18px;padding:10px 12px;border-radius:8px;border:1px solid #5a4a3c;background:#00000059;color:var(--ink)}.start-nickname:focus{outline:none;border-color:var(--accent)}.start-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.start-mode{display:flex;flex-direction:column;gap:4px;padding:14px;text-align:center}.start-mode b{font-size:18px}.start-mode span{font-size:12px;opacity:.8}.catalog-speech{margin-bottom:12px}.catalog-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.catalog-filter{font-size:13px;padding:4px 12px;border-radius:999px}.catalog-filter.active{background:var(--accent);color:#241a10;border-color:var(--accent)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.catalog-card{display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px 14px 14px 18px;background:var(--paper);color:var(--paper-ink);border:1px solid #c9b99c;border-left:6px solid var(--case-accent, var(--accent));border-radius:10px}.catalog-card:hover{border-color:var(--case-accent, var(--accent));transform:translateY(-1px)}.catalog-card-title{font-size:18px}.catalog-card-synopsis{font-size:13px;line-height:1.5;color:#4d3c2e;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.catalog-badges{display:flex;flex-wrap:wrap;gap:4px}.catalog-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#2e20181a;color:#4d3c2e}.catalog-badge.difficulty{color:#8a4b00;background:#f2a93b38;letter-spacing:.02em}.catalog-badge.ticket{background:#2f6b4a;color:#fff}.catalog-detail{background:var(--paper);color:var(--paper-ink);border-radius:10px;padding:16px 18px;border-top:6px solid var(--case-accent, var(--accent))}.catalog-detail h3{color:var(--paper-ink);font-size:22px;margin:0 0 8px}.catalog-detail p{color:var(--paper-ink)}.catalog-detail .muted{color:#6b5a48}.catalog-participation{font-weight:600}.catalog-detail-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px}.catalog-detail-actions button:not(.primary){color:var(--paper-ink);background:transparent;border-color:#c9b99c}.catalog-faq{display:flex;flex-direction:column;gap:8px}.catalog-faq-item{text-align:left}.puzzle-form{display:flex;gap:8px;margin:12px 0}.puzzle-input{flex:1;font:inherit;font-size:22px;letter-spacing:.2em;text-align:center;padding:10px 12px;border-radius:8px;border:1px solid #5a4a3c;background:#00000059;color:var(--ink)}.puzzle-input:focus{outline:none;border-color:var(--accent)}.puzzle-feedback{color:#ffb4a8}.puzzle-hint{color:#ffcf8a}.puzzle-hint-button{font-size:13px;padding:4px 10px}#story-clock{position:absolute;top:60px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:#0009;border:1px solid var(--brass);font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.story-scene-line{margin:6px 0}.ending-card{background:linear-gradient(135deg,#f2a93b2e,#f2a93b0a);border:1px solid var(--brass);border-radius:10px;padding:12px 16px;margin-bottom:8px}.ending-card h3{margin-top:0;font-size:20px}.catalog-badge.cleared{background:#6b4fa0;color:#fff}.score-line{font-weight:700;color:#ffcf8a;font-size:17px}.leaderboard-submit{margin:8px 0 4px}.leaderboard{margin-top:14px;border-top:1px solid #c9b99c;padding-top:10px}.leaderboard h4{margin:0 0 6px;color:var(--paper-ink)}.leaderboard-list{margin:0;padding-left:22px;color:var(--paper-ink);line-height:1.7}
