:root{--navy:#142533;--ink:#263743;--muted:#74818a;--paper:#f3f5f5;--line:#e0e6e7;--accent:#e99033;--green:#218a77;--room:#f5ac48;font-family:'Pretendard','Malgun Gothic','Apple SD Gothic Neo',sans-serif;color:var(--ink);font-synthesis:none;font-size:15px}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,a,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #45abc6;outline-offset:3px}button{border:0;border-radius:5px;transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}small{font-size:.85rem}h1,h2,h3,p{margin:0}.topbar{height:74px;display:flex;align-items:center;padding:0 30px;gap:26px;background:white;border-bottom:1px solid var(--line)}.brand{font-size:1.2rem;font-weight:750;display:flex;align-items:center;gap:12px;white-space:nowrap}.brand small{font-weight:500;color:var(--muted);margin-left:12px;border-left:1px solid var(--line);padding-left:14px}.brand-mark{width:31px;height:34px;display:grid;place-items:center;background:var(--accent);color:white;clip-path:polygon(20% 0,100% 0,80% 100%,0 100%);font-weight:800}.version{font-size:.83rem;color:var(--muted)}.top-actions{display:flex;gap:12px;align-items:center;margin-left:auto}.connection{font-size:.83rem;display:flex;align-items:center;gap:7px;white-space:nowrap}.connection i,.scene-label i{width:7px;height:7px;border-radius:50%;background:#9aabb6}.connection.online i{background:#258d75}.connection.offline i{background:#d85b4e}.quiet{background:#f0f3f4;color:var(--ink);padding:9px 12px;font-size:.85rem}.icon-button{width:29px;height:29px;background:#edf1f2;border-radius:50%;font-weight:700}.workspace{display:grid;grid-template-columns:178px minmax(0,1fr) 350px;min-height:calc(100vh - 74px)}.rail{border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column;background:#ecf0f1}.rail-label{font-size:.8rem;color:var(--muted);margin:0 0 24px 12px;letter-spacing:.08em}.room-nav{display:flex;gap:11px;padding:16px 11px;margin-bottom:9px;border-radius:7px;position:relative;color:#80909a;align-items:center}.room-nav.active{background:white;color:var(--navy);box-shadow:0 3px 14px #14253308}.room-nav.active:before{content:'';height:23px;width:3px;background:var(--accent);position:absolute;left:-18px}.room-num{font-size:.88rem;line-height:1;font-weight:700;border:1px solid #b8c5cd;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;flex-shrink:0}.active .room-num{background:var(--navy);border-color:var(--navy);color:white}.room-nav.done .room-num{background:var(--green);color:white;border-color:var(--green)}.room-nav strong{font-size:.9rem;display:block}.room-nav small{display:block;margin-top:4px;font-size:.76rem}.rail-bottom{margin-top:auto;padding:45px 10px 0}.rail-bottom p{font-size:.83rem;margin:16px 0 6px}.rail-bottom small{color:var(--muted);font-size:.75rem}.studio{font-size:.64rem;letter-spacing:.1em;margin-top:30px;color:#909da5}.mini-schematic{display:flex;gap:3px}.mini-schematic span{width:22px;height:23px;border:1px solid #acb9c1;border-top:3px solid #acb9c1}.mini-schematic span:first-child{border-color:var(--accent)}.experience{padding:29px 30px 26px;min-width:0}.room-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px;align-items:center}.eyebrow{font-size:.76rem;font-weight:650;letter-spacing:.09em;color:var(--muted)}h1{font-size:1.9rem;font-weight:760;margin-top:9px;letter-spacing:-.045em}.room-heading p{color:#72808b;font-size:.9rem;margin-top:10px;line-height:1.5}.clock{text-align:right;flex-shrink:0}.clock>span{display:block;color:var(--muted);font-size:.75rem}.clock strong{display:block;font-size:1.7rem;letter-spacing:.02em;margin:4px 0;font-variant-numeric:tabular-nums}.clock small{font-size:.72rem;background:#e8edea;color:#528473;display:inline-block;padding:4px 8px;border-radius:3px}.scene-wrap{height:420px;border-radius:9px;background:#142533;position:relative;overflow:hidden;border:1px solid #243747}#scene{height:100%;width:100%}#scene canvas{display:block;width:100%;height:100%;touch-action:none}.scene-top,.scene-bottom{position:absolute;left:19px;right:19px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:12px}.scene-top{top:16px}.scene-bottom{bottom:16px;font-size:.75rem;color:#a9bdca}.scene-label{font-size:.75rem;display:flex;gap:7px;align-items:center;color:#b6c9d4}.scene-label i{background:var(--room)}.scene-button{pointer-events:auto;background:#233848;color:#cad7df;padding:8px 10px;font-size:.74rem}.scene-badge{border:1px solid #405767;border-radius:3px;padding:4px 7px;color:#afc1ce;white-space:nowrap}.scene-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:18px 24px;background:#142533ed;color:white;text-align:center;border:1px solid #d1a056;border-radius:5px;max-width:85%;line-height:1.7}.role-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0 26px}.role-card{background:white;border:1px solid var(--line);padding:14px 12px;text-align:left;display:grid;grid-template-columns:26px 1fr;column-gap:7px;row-gap:7px;color:var(--ink)}.role-card.selected{border-color:var(--accent);box-shadow:inset 0 2px var(--accent)}.role-avatar{background:#edf1f3;color:#647986;border-radius:4px;width:25px;height:25px;display:grid;place-items:center;font-weight:750;font-size:.85rem}.selected .role-avatar{background:#fff0dc;color:#9c651e}.role-card strong{font-size:.78rem;align-self:center}.role-card small{grid-column:2;font-size:.7rem;color:var(--muted)}.role-card .status{grid-column:1 / -1;font-size:.72rem;color:#698377;display:flex;align-items:center;gap:5px}.status i{width:5px;height:5px;border-radius:50%;background:#82949b}.status.complete i{background:var(--green)}.lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px}.section-line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px}.section-line h2{font-size:.91rem}.section-line span{font-size:.72rem;color:var(--muted)}.log{max-height:135px;overflow:auto}.log-row{display:grid;grid-template-columns:45px 20px 1fr;gap:8px;font-size:.73rem;line-height:1.6;padding:4px 0}.log-row time{color:#97a3ab;font-variant-numeric:tabular-nums}.log-row b{font-size:.7rem;color:var(--accent)}.log-row span{color:#667580}.empty-log{font-size:.79rem;color:#95a2ab;line-height:1.7;padding-top:8px}.progress-track{height:5px;background:#dae1e4;border-radius:3px;overflow:hidden;margin-top:17px}.progress-track>div{height:100%;width:0;background:var(--accent);transition:width .4s}#team-summary{font-size:.8rem;color:#71818b;line-height:1.6;margin:13px 0}.operator-row{display:flex;flex-wrap:wrap;gap:6px}.operator-row button{font-size:.74rem;padding:7px 9px;background:#e4eaec;color:#59717f}.operator-row .danger{background:#fbe6e3;color:#b25549}.operator-row .next{background:var(--navy);color:white}.task-panel{background:white;border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0}.panel-top{padding:28px 24px 20px;border-bottom:1px solid var(--line)}#role-selector{display:flex;gap:5px;margin:14px 0 12px}.role-tab{flex:1;background:#f2f4f5;color:#80909b;min-height:37px;font-weight:700}.role-tab.selected{background:var(--navy);color:white}.role-tab:disabled{opacity:1}.actor-status{font-size:.76rem;color:var(--muted);line-height:1.6}.mission{padding:24px;flex:1;max-height:calc(100vh - 230px);overflow:auto}.mission h2{font-size:1.17rem;line-height:1.5;letter-spacing:-.035em}.mission p{color:#74848e;font-size:.87rem;line-height:1.75;margin:10px 0 19px}.mission-kicker{font-size:.72rem;color:#a56e2c;text-transform:uppercase;letter-spacing:.07em;margin-bottom:9px;display:flex;justify-content:space-between}.primary{width:100%;background:var(--accent);color:#fff;padding:13px 16px;font-size:.92rem;font-weight:700;min-height:46px}.primary:hover{background:#d87e22}.secondary{width:100%;margin-top:9px;background:#edf2f4;padding:13px;color:#455f70;min-height:44px}.options{display:grid;gap:9px;margin:16px 0}.option{display:flex;align-items:center;gap:9px;padding:13px 12px;border:1px solid #dce4e8;min-height:47px;border-radius:5px;background:white;color:var(--ink);font-size:.85rem;text-align:left;line-height:1.5}.option:hover{border-color:var(--accent);background:#fffbf5}.option.selected{border-color:var(--accent);background:#fff5e7}.option-dot{border:1px solid #b4c2ca;height:14px;width:14px;border-radius:50%;flex-shrink:0}.option.selected .option-dot{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px #fff5e7}.mission-note{border-left:3px solid #dde6e9;background:#f5f7f8;padding:12px 13px;font-size:.76rem;line-height:1.7;color:#738590;margin-top:18px}.panel-foot{font-size:.7rem;display:flex;align-items:center;gap:6px;color:#9ba7af;padding:17px 24px;border-top:1px solid var(--line)}.source-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.queue{margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.queue h3{font-size:.78rem;margin-bottom:10px;color:#83939e}.queue-item{font-size:.78rem;padding:9px 0;display:flex;align-items:center;gap:8px}.queue-item span{color:#9aa8b1;margin-left:auto;font-size:.7rem}.queue-item i{width:13px;height:13px;border:1px solid #bcc9d0;border-radius:50%;flex-shrink:0}.queue-item.complete i{background:var(--green);border-color:var(--green)}.queue-item.complete{color:#8d9ba3}.queue-item.active{color:#a46c27}.gear-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.83rem;border-bottom:1px solid var(--line);padding:12px 0}.gear-row button{padding:6px 9px;font-size:.73rem;background:#fff0dc;color:#a26724}.gear-row .owned{color:var(--green);font-size:.74rem}.gear-list{margin:13px 0 20px}.stock-choice{display:flex;gap:8px;padding:8px 0;font-size:.82rem;align-items:center}.stock-choice input{width:18px;height:18px;accent-color:var(--accent)}.timer-bar{height:6px;background:#e8edf0;margin:18px 0 13px;border-radius:3px;overflow:hidden}.timer-bar div{background:var(--accent);height:100%}.timer-label{font-size:.8rem;color:#778b97}.success-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#e6f4ef;color:var(--green);font-size:1.4rem;margin-bottom:18px}.score-summary{padding:16px;background:#f4f6f7;margin:20px 0;border-radius:5px;font-size:.85rem;line-height:1.8}.score-summary strong{font-size:1.5rem;display:block}.penalty-list{font-size:.76rem;line-height:1.8;color:#8a7770;max-height:130px;overflow:auto}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:13px 24px;border-radius:7px;z-index:20;font-size:.87rem;box-shadow:0 4px 20px #0003;max-width:90%;line-height:1.5}dialog{border:0;border-radius:10px;padding:27px;width:min(620px,92vw);color:var(--ink);box-shadow:0 15px 65px #0004}dialog::backdrop{background:#102331a0;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.modal-heading h2{font-size:1.15rem}#modal-body{max-height:70vh;overflow:auto;line-height:1.8;font-size:.9rem}#modal-body p{margin:12px 0;color:#718490}.note-list{padding-left:20px}.note-list li{margin-bottom:12px}.invite-row{border-top:1px solid var(--line);padding:11px 0;display:flex;gap:12px;align-items:center}.invite-row b{width:62px;font-size:.85rem}.invite-row input{min-width:0;flex:1;padding:9px;border:1px solid var(--line);border-radius:4px;font-size:.75rem}.invite-row button{background:#eef2f3;padding:9px;font-size:.75rem}.form-field{width:100%;border:1px solid #dce3e7;border-radius:5px;padding:12px;margin:9px 0 15px}.quick-view{font-size:.75rem;margin-top:15px;color:#8799a4}.waiting-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:20px 0}.waiting-grid span{background:#edf1f3;padding:14px 8px;text-align:center;border-radius:4px;font-size:.82rem}.waiting-grid .ok{color:var(--green);background:#e5f3ed}.display-mode .workspace{grid-template-columns:178px minmax(0,1fr)}.display-mode .task-panel{display:none}.display-mode .scene-wrap{height:56vh}.display-mode .role-cards{margin-bottom:20px}.display-mode .role-card{pointer-events:none}.display-mode .topbar #new-session{display:none}.fallback{color:#d1dae0;padding:100px 30px;text-align:center;font-size:.95rem;line-height:1.8}
@media(min-width:1600px){.workspace{grid-template-columns:195px minmax(0,1fr) 390px}.experience{padding:36px 42px}.scene-wrap{height:490px}.mission{padding:28px}.panel-top{padding:34px 28px}.role-card{padding:17px}}
@media(max-width:1150px){.workspace{grid-template-columns:124px minmax(0,1fr) 300px}.rail{padding:25px 10px}.room-nav{gap:7px;padding:13px 6px}.room-nav strong{font-size:.8rem}.room-num{width:25px;height:25px}.rail-label{margin-left:6px}.experience{padding:26px 19px}.room-heading p{font-size:.82rem}.scene-wrap{height:355px}.role-cards{gap:6px}.role-card{padding:10px 7px;grid-template-columns:22px 1fr}.role-avatar{width:21px;height:21px}.role-card strong{font-size:.71rem}.mission{padding:20px}.panel-top{padding:25px 20px}.lower-grid{gap:16px;grid-template-columns:1fr}.activity{order:2}.mission{max-height:none}.topbar{padding:0 20px}.version{display:none}.rail-bottom{padding-left:4px}.studio{font-size:.6rem}}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr) 300px}.rail{display:none}.room-heading{gap:9px}.room-heading h1{font-size:1.6rem}.room-heading p{font-size:.78rem}.clock strong{font-size:1.35rem}.scene-wrap{height:330px}.role-cards{grid-template-columns:repeat(2,1fr);margin-bottom:20px}.display-mode .workspace{grid-template-columns:1fr}.brand small{display:none}.connection{font-size:.75rem}.top-actions{gap:7px}.topbar{padding:0 16px}}
@media(max-width:650px){.topbar{height:62px}.brand{font-size:1rem;gap:7px}.brand-mark{width:25px;height:29px}.connection{max-width:80px;overflow:hidden}.top-actions .quiet{font-size:.72rem;padding:7px}.workspace{display:flex;flex-direction:column}.experience{padding:23px 16px 16px}.room-heading{margin-bottom:18px}.room-heading h1{font-size:1.55rem}.room-heading p{font-size:.82rem;max-width:240px}.scene-wrap{height:320px}.scene-label{font-size:.65rem}.scene-top,.scene-bottom{left:12px;right:12px}.scene-bottom{font-size:.66rem}.scene-badge{display:none}.role-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:20px}.role-card{display:flex;flex-direction:column;align-items:flex-start;padding:9px 7px;gap:5px}.role-card strong{font-size:.68rem;align-self:flex-start}.role-card small{display:none}.role-card .status{font-size:.65rem}.lower-grid{grid-template-columns:1fr}.log{max-height:90px}.task-panel{border:0;border-top:1px solid var(--line)}.panel-top{padding:22px 20px 12px}.mission{padding:20px;max-height:none}#role-selector{margin:10px 0}.role-tab{min-height:43px}.activity{display:none}.panel-foot{padding:15px 20px}.queue{margin-top:18px}.mission p{font-size:.93rem}.option{font-size:.92rem}.brand small{display:none}.room-progress{display:none}.display-mode .room-progress{display:block}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Player guidance: situation, next action, and one active role. */
.briefing{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:12px}.briefing-label{font-size:.74rem;color:#9b641c;font-weight:750;margin-bottom:7px}.briefing p{font-size:.95rem;line-height:1.7;color:#344d5c}.room-goal{font-size:.79rem;line-height:1.7;border-top:1px solid var(--line);padding-top:10px;margin-top:10px;color:#5c7381}.room-goal b{color:#233c4c;margin-right:8px}.next-action{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:#fff2de;border:1px solid #f0ce9e;border-radius:8px;margin-bottom:14px}.next-action small{display:block;color:#9f6219;font-size:.76rem;margin-bottom:4px}.next-action strong{font-size:1.05rem;line-height:1.5;color:#4a3216}.next-action button{flex-shrink:0;padding:9px 11px;font-size:.76rem;background:#fff;color:#83581e;border:1px solid #e9cca7}.guided-mode #role-selector,.guided-mode .role-cards,.guided-mode .queue{display:none}.guided-mode .actor-status{margin-top:12px;font-size:.9rem;color:#1d5265;font-weight:700}.guided-mode .mission h2{font-size:1.3rem}.action-hint{font-size:.82rem;line-height:1.65;color:#4d6c7d;background:#f1f6f7;border-radius:5px;padding:12px;margin-top:14px}.operator-details{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.operator-details summary{font-size:.8rem;color:#768a97;cursor:pointer}.operator-details .lower-grid{margin-top:16px}.room-progress{margin-top:18px}.how-to{padding-left:22px;font-size:.88rem;line-height:2;color:#485e6c;margin:10px 0 22px}.mission{max-height:none}.guided-mode .scene-wrap{height:360px}.guided-mode .panel-top{padding-bottom:20px}.guided-mode .room-heading{margin-bottom:16px}
@media(max-width:850px){.briefing{padding:13px}.briefing p{font-size:.88rem}.next-action{padding:12px}.next-action strong{font-size:.9rem}}
@media(max-width:650px){.workspace{display:grid;grid-template-columns:1fr}.experience{display:contents}.room-heading{order:1;padding:18px 16px 0}.briefing{order:2;margin:0 16px 10px}.next-action{order:3;margin:0 16px 12px}.scene-wrap,.guided-mode .scene-wrap{order:4;height:230px;margin:0 16px 12px}.task-panel{order:5}.role-cards{order:6;margin:15px 16px}.room-progress{order:7;display:block;padding:0 16px}.operator-details{order:8;margin:18px 16px}.room-goal{font-size:.74rem}.operator-details .activity{display:block}.panel-foot{padding-bottom:20px}}
