:root{color-scheme:light;--ink:#f5f6f8;--ink-soft:#fff;--paper:#181a1f;--paper-dim:#68707c;--line:#dfe3e8;--signal:#2563eb;--safe:#16805c;--danger:#d34545;--panel:#fff;--panel-raised:#f8f9fb;--shadow:#161c281a;--terra-blue-soft:#edf3ff;--terra-blue-hover:#1d4ed8;--terra-canvas:#eef0f3;--terra-radius:8px;background:var(--ink);color:var(--paper);font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,sans-serif}body{background:var(--ink);color:var(--paper)}body:before{display:none}::selection{color:#102149;background:#cfe0ff}a{color:var(--signal)}.app-shell{width:min(1320px,100% - 48px)}.masthead{border-color:var(--line);min-height:72px;padding:16px 0}.masthead h1{color:#111318;letter-spacing:-.04em;font-family:Pretendard,Noto Sans KR,sans-serif;font-size:1.45rem;font-weight:750}.eyebrow,.kicker,.rail-label,footer span{color:var(--signal);letter-spacing:.1em;margin-bottom:5px;font:700 .67rem/1.2 Pretendard,Noto Sans KR,sans-serif}.status-chip{border-color:var(--line);min-height:34px;color:var(--paper-dim);background:#fff;border-radius:999px;padding:7px 11px;box-shadow:0 1px 2px #161c280a}.status-dot{background:var(--safe);box-shadow:none}footer{border-color:var(--line);color:var(--paper-dim);padding:18px 0 22px}footer strong{color:var(--paper-dim);font-size:.75rem;font-weight:500}.auth-workspace{max-width:1000px;margin:0 auto;padding:clamp(64px,10vh,112px) 0;display:block}.auth-workspace>.rail{display:none}.auth-layout{grid-template-columns:minmax(0,1.18fr) minmax(300px,.72fr);align-items:center;gap:clamp(56px,9vw,112px)}.briefing h2{color:#111318;letter-spacing:-.065em;word-break:keep-all;max-width:660px;margin-bottom:24px;font-family:Pretendard,Noto Sans KR,sans-serif;font-size:clamp(2.7rem,5vw,4.5rem);font-weight:760;line-height:1.02}.briefing .lead{color:#555d68;max-width:580px;font-size:1rem;line-height:1.8}.checks,.checks>div{border-color:var(--line)}.checks dt{color:#252931}.checks dd{color:var(--paper-dim)}.auth-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:30px;box-shadow:0 18px 50px #171f2d14}.auth-card-heading{border-color:var(--line)}.auth-card h3{color:#17191e;font-family:inherit;font-size:1.35rem;font-weight:700}.auth-card p,.auth-message{color:var(--paper-dim)}.button{letter-spacing:-.01em;border:1px solid #0000;border-radius:7px;min-height:40px;padding:9px 15px;font-size:.82rem;font-weight:650;transition:background-color .12s,border-color .12s,color .12s,transform .12s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #2563eb3d}.button.primary{border-color:var(--signal);background:var(--signal);color:#fff}.button.primary:hover:not(:disabled){border-color:var(--terra-blue-hover);background:var(--terra-blue-hover);color:#fff}.button.secondary,.button.quiet{border-color:var(--line);color:#2d333c;background:#fff}.button.secondary:hover:not(:disabled),.button.quiet:hover:not(:disabled){color:#17191e;background:#f7f8fa;border-color:#b9c1cc}.button.danger{color:#b52d2d;background:#fff5f5;border-color:#efc8c8}.button.compact-button{min-height:32px;padding:6px 10px;font-size:.75rem}.button:disabled{color:#9aa1ab;background:#eef0f3;border-color:#e5e8ec}input,select,textarea,.work-form input,.work-form select,.work-form textarea,.play-form input,.play-form select,.play-form textarea{color:#20242b;background:#fff;border:1px solid #d6dbe2;border-radius:6px}input::placeholder,textarea::placeholder,.work-form input::placeholder,.work-form textarea::placeholder,.play-form input::placeholder,.play-form textarea::placeholder{color:#a0a6af}input:focus-visible,select:focus-visible,textarea:focus-visible,.work-form input:focus-visible,.work-form select:focus-visible,.work-form textarea:focus-visible,.play-form input:focus-visible,.play-form select:focus-visible,.play-form textarea:focus-visible{border-color:var(--signal)}.signed-workspace{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:clamp(36px,5vw,72px);padding:42px 0 64px}.lobby-workspace{grid-template-columns:minmax(0,1fr);padding-top:24px}.lobby-workspace .workspace-main{width:100%;max-width:1180px;margin:0 auto}.lobby-workspace .session-strip{margin-bottom:14px}.signed-workspace .rail{border:0;align-self:start;padding:6px 16px 18px 0;position:sticky;top:24px}.rail ol{color:#69717c;gap:3px;padding-top:10px;font-size:.82rem}.rail li{padding:0}.rail li:before{display:none}.rail a,.rail li>span{border-radius:6px;padding:8px 10px;line-height:1.35}.rail a:hover{color:#20242a;background:#eceff3;text-decoration:none}.rail li.active a,.rail li a[aria-current=location]{background:var(--terra-blue-soft);color:#174fb8;font-weight:700}.rail li.unavailable{color:#b0b5bd}.rail li.rail-context{border-color:var(--line);color:#7a828d;padding:12px 10px 0}.rail-context strong{color:#343941}.session-strip{border:1px solid var(--line);border-radius:var(--terra-radius);background:#fff;min-height:58px;padding:10px 14px}.identity-record,.identity-record.compact{border-color:var(--line)}.identity-record strong{color:#20242b}.identity-record span,.capability-badge{color:var(--paper-dim)}.capability-badge.enabled{color:#167451;background:#f0faf6;border-color:#b9ddcf}.workspace-heading{border-color:var(--line);align-items:end;padding:34px 0 24px}.workspace-heading h2{color:#15171c;letter-spacing:-.055em;max-width:650px;font-family:inherit;font-size:clamp(2rem,4vw,3.35rem);font-weight:760;line-height:1.08}.workspace-heading>p{color:var(--paper-dim);font-size:.88rem}.lobby-workspace .workspace-heading{grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr);gap:clamp(24px,4vw,52px);margin-bottom:18px;padding:22px 0 18px}.lobby-workspace .workspace-heading h2{max-width:13ch;font-size:clamp(1.9rem,3.2vw,2.7rem)}.workspace-panel,.play-desk{border-color:var(--line);background:#fff}.lobby-workspace .workspace-panel{background:0 0;border:0;gap:18px}.workspace-switcher{border:1px solid var(--line);background:var(--line);border-radius:8px;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;padding:1px;display:grid;overflow:hidden}.workspace-switcher button{color:#69717c;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:0;align-content:center;gap:3px;min-height:64px;padding:10px 14px;display:grid}.workspace-switcher button:hover{background:#f7f8fa}.workspace-switcher button[aria-current=page]{box-shadow:inset 0 -3px 0 var(--terra-blue);color:#1f4f9f}.workspace-switcher strong{color:#252a31;font-size:.84rem}.workspace-switcher span{font-size:.68rem}.workspace-view[hidden],.gm-studio[hidden],.player-boundary[hidden]{display:none!important}.workspace-view{gap:18px;min-width:0;display:grid}.work-form,.collection,.moderation-desk,.character-desk,.operations-desk{border-color:var(--line);background:#fff}.operations-desk{color:var(--paper);margin-top:0}.operations-heading{border-color:var(--line);background:#fff}.operations-heading h3,.operations-subheading h4,.current-session-heading strong{color:#20242a;font-family:inherit;font-weight:700}.operations-heading>p,.operations-campaign-bar label,.session-start-form>label,.operations-state,.session-empty p,.authority-note,.session-history-heading,.trash-empty,.safe-boundary-note p{color:var(--paper-dim)}.operations-notice p{color:#176e51;background:#f0faf6;border-color:#b9ddcf}.operations-notice p.error{color:#a93636;background:#fff5f5;border-color:#efc9c9}.operations-campaign-bar{border-color:var(--line);background:#f7f8fa}.operations-campaign-bar select,.session-start-form input{color:#20242a;background:#fff;border-color:#cfd5dc;border-radius:6px}.operations-campaign-bar select:focus-visible,.session-start-form input:focus-visible{border-color:var(--terra-blue);box-shadow:0 0 0 3px #2563eb24}.operations-authority{color:#69717c;background:#fff;border-color:#cfd5dc}.operations-authority.gm{color:#167451;background:#f0faf6;border-color:#b9ddcf}.session-ledger,.trash-ledger,.campaign-trash-ledger,.asset-trash-ledger{border-color:var(--line);background:#fff}.operations-subheading{border-color:var(--line)}.operations-subheading>span{color:#7a828d}.operations-state.error{color:var(--danger)}.current-session-card{border-color:var(--line);background:#f8f9fb;border-radius:6px}.current-session-card.active{border-color:#b9cdf7;border-left-color:var(--terra-blue);background:#f4f7ff}.current-session-heading span,.session-history-list li.active em{color:var(--terra-blue)}.session-empty>span{color:#8a929c}.session-empty strong,.session-facts dd,.session-history-list strong,.trash-list strong{color:#30353d}.session-facts,.session-facts>div+div{border-color:var(--line)}.session-facts dt,.session-history-list li>span,.session-history-list small,.trash-list small,.session-history-list em{color:#747d88}.session-history-list li,.trash-list li{border-color:var(--line);background:#f8f9fb;border-radius:6px}.session-history-list li.active{background:#f4f7ff;border-color:#b9cdf7}.safe-boundary-note{border-color:#b9ddcf;border-left-color:var(--safe);background:#f0faf6;border-radius:6px}.safe-boundary-note strong,.trash-empty span{color:#167451}.trash-kind{color:#626b76;background:#fff;border-color:#d7dce2;border-radius:4px}@media (width<=620px){.session-facts>div+div{border-color:var(--line)}}.collection-heading,.play-desk-heading,.play-column-heading{border-color:var(--line)}.collection-heading h3,.play-desk-heading h3,.play-column-heading h4,.play-history-heading h5{color:#20242a;font-family:inherit;font-weight:700}.record-card{border-color:var(--line);padding:20px 0}.record-index{background:var(--terra-blue-soft);color:#2a5eb9;border-color:#d8e4fb}.record-card strong,.record-title-line strong{color:#22262d}.record-card p,.record-card small,.collection-state,.safe-payload,.workspace-notice{color:var(--paper-dim)}.workspace-notice{background:#f5f8ff;border-color:#cad8f2}.workspace-notice.error,.play-state.error{color:#b23232;background:#fff6f6;border-color:#efcece}.route-workspace,.room-workspace{background:var(--ink)}.vtt-room-heading{border:1px solid var(--line);border-radius:var(--terra-radius);background:#fff;min-height:62px;padding:10px 14px}.vtt-room-heading h2{color:#17191e;letter-spacing:-.025em;font-family:inherit;font-weight:720}.campaign-preparation-notice{color:#526079;background:#f2f6ff;border-color:#bed0f2;border-radius:6px}.campaign-preparation-notice strong{color:#2455af}.vtt-app-shell,.vtt-app-shell .room-workspace{background:var(--terra-canvas)}.app-shell.vtt-app-shell{width:100%;max-width:none;margin:0}.vtt-app-shell .room-workspace{grid-template-columns:minmax(0,1fr)}.vtt-app-shell .vtt-room-heading>div{min-width:0}.vtt-app-shell .vtt-room-heading h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-workspace .play-desk{background:0 0}.realtime-control-bar,.vtt-room-status-bar{border:1px solid var(--line);border-radius:var(--terra-radius);background:#fff}.realtime-status strong,.vtt-room-indicators strong{color:#30353d}.realtime-status span,.vtt-room-indicators small,.realtime-control-bar p{color:var(--paper-dim)}.vtt-room-indicators,.vtt-room-indicators>span+span{border-color:var(--line)}.vtt-gm-mode-controls,.vtt-right-tabs{border-color:var(--line);background:#f1f3f6;border-radius:7px}.vtt-gm-mode-controls button,.vtt-right-tabs button{color:#69717c;border-radius:5px;font-size:.72rem}.vtt-gm-mode-controls button[aria-pressed=true],.vtt-right-tabs button[aria-selected=true]{color:#20242a;background:#fff;box-shadow:0 1px 3px #161c281f}.vtt-session-shell{grid-template:"tools board right"minmax(0,1fr)/280px minmax(480px,1fr) 360px;gap:8px;transition:grid-template-columns .16s}.vtt-session-shell:not(.prepare-mode){grid-template-columns:minmax(560px,1fr) 360px;grid-template-areas:"board right"}.vtt-session-shell:not(.prepare-mode) .vtt-left-tools,.vtt-session-shell:not(.settings-open) .scene-board-grid{display:none}.vtt-settings-panel{background:#fff;min-height:100%}.vtt-settings-panel>.vtt-left-tools{width:100%;min-width:0;box-shadow:none;border:0;border-radius:0;display:block}.vtt-settings-panel .vtt-left-tools details{border-bottom:1px solid var(--line)}.vtt-left-tools,.vtt-board-pane,.vtt-right-panel,.vtt-session-shell .handout-desk,.vtt-session-shell .media-desk{border-color:var(--line);background:#fff;border-radius:6px}.vtt-left-tools details{border-color:var(--line)}.vtt-left-tools summary{color:#343a43;min-height:40px;padding:11px 12px;font-size:.75rem}.vtt-left-tools summary:hover{background:#f5f7f9}.vtt-left-tools details>p,.vtt-drawer-record,.vtt-drawer-link{color:var(--paper-dim);font-size:.69rem}.vtt-drawer-record strong{color:#252a31}.room-asset-dropzone,.room-map-controls,.room-scene-create,.room-scene-edit,.room-token-create,.room-token-editor,.room-deck-card,.room-deck-management,.room-deck-management-list article,.room-character-choice,.room-command-item,.handout-entry,.handout-management-entry,.media-state-card{border-color:var(--line);color:#30353d;background:#f8f9fb;border-radius:6px}.room-asset-card,.room-scene-card{border-color:var(--line);background:#fff}.room-asset-card strong,.room-scene-select strong,.room-scene-trash-list span,.room-token-heading strong,.room-token-editor header strong,.room-token-controllers legend,.room-scene-heading strong,.room-scene-trash h5{color:#30353d}.room-asset-dropzone label,.room-asset-filters span,.room-map-controls label>span,.room-map-controls>strong,.room-scene-create label,.room-scene-edit label,.room-token-create label,.room-token-editor label,.room-deck-management label,.room-deck-card-picker{color:#5f6772;font-size:.67rem}.vtt-board-pane{box-shadow:0 5px 18px #161c2814}.vtt-board-pane .play-column-heading,.vtt-right-panel .play-column-heading,.vtt-session-shell .handout-desk>.play-column-heading,.vtt-session-shell .media-desk>.play-column-heading{background:#fff}.scene-stage-frame,.scene-stage-placeholder,.scene-board-world{background-color:#e9ecf0}.scene-stage-placeholder{color:#7f8791;letter-spacing:.04em;font-family:inherit;font-size:.78rem}.board-camera-toolbar{background:#fffffff0;border-color:#ffffffb8;border-radius:7px;box-shadow:0 5px 18px #161c2829}.board-camera-toolbar button{color:#343a43;background:#eef1f4;border-radius:5px}.board-camera-toolbar output{color:#525a65}.vtt-right-panel-body{background:#fff}.vtt-right-panel-body>.handout-media-grid{background:#fff;border:0;grid-template-columns:minmax(0,1fr);gap:0;display:grid}.vtt-right-panel-body .handout-desk,.vtt-right-panel-body .media-desk{border:0;border-bottom:1px solid var(--line);background:#fff;grid-area:auto;width:auto;min-width:0}.vtt-right-panel-body .media-desk{display:grid;overflow:visible}.vtt-right-panel-body .media-desk>*,.vtt-right-panel-body .personal-media-controls,.vtt-right-panel-body .media-state-card,.vtt-right-panel-body .media-gm-only{width:auto;min-width:0}.vtt-right-panel-body .media-gm-controls fieldset{grid-template-columns:minmax(0,1fr)}.vtt-right-panel .play-column{min-height:100%}.vtt-participants{z-index:20;position:relative}.vtt-participants summary{border:1px solid var(--line);color:#30353d;cursor:pointer;background:#fff;border-radius:7px;align-items:center;min-height:36px;padding:5px 10px 5px 7px;list-style:none;display:flex}.vtt-participants summary::-webkit-details-marker{display:none}.vtt-participants summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;margin-left:8px;transition:transform .14s;transform:translateY(-2px)rotate(45deg)}.vtt-participants[open] summary:after{transform:translateY(2px)rotate(225deg)}.vtt-participant-stack{margin-right:8px;padding-left:8px;display:flex}.vtt-participant-stack i{background:#dbe3ef;border:2px solid #fff;border-radius:50%;width:20px;height:20px;margin-left:-8px;box-shadow:0 0 0 1px #cfd6df}.vtt-participant-stack i:nth-child(2){background:#d8eadf}.vtt-participant-stack i:nth-child(3){background:#eadfcf}.vtt-participant-popover{border:1px solid var(--line);background:#fff;border-radius:8px;width:240px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 36px #161c2829}.vtt-participant-popover p{border-radius:5px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;padding:8px;display:grid}.vtt-participant-popover p:hover{background:#f5f7f9}.vtt-participant-popover small{color:var(--paper-dim)}.vtt-right-panel .chat-column{flex-direction:column;height:100%;display:flex}.room-communication-column{grid-template-rows:auto minmax(180px,1fr) auto;height:100%;min-height:0;display:grid}.room-timeline-shell{border:0;min-height:0;overflow-y:auto}.room-timeline{gap:10px;margin:0;padding:12px;list-style:none;display:grid}.room-timeline>li{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;margin:0}.room-timeline .dice-3d-stage{display:none}.room-timeline .dice-result{grid-template-columns:72px minmax(0,1fr)}.room-timeline .dice-total{min-height:66px}.room-composer{border-top:1px solid var(--line);background:#fbfcfd}.room-composer-switch{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 10px 0;display:grid}.room-composer-switch button{color:#69717c;background:0 0;border:0;border-bottom:2px solid #0000;min-height:34px;font-weight:650}.room-composer-switch button[aria-selected=true]{border-bottom-color:var(--signal);color:var(--signal)}.room-composer-form{background:0 0;border:0;gap:8px;padding:10px;display:grid}.room-composer-form textarea{resize:vertical;min-height:72px}.room-composer-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dice-preset-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.dice-preset-button{color:#343a43;background:#fff;border:1px solid #d8dde5;border-radius:6px;place-items:center;min-width:0;height:40px;padding:7px;display:grid}.dice-preset-button:hover{background:#f5f8ff;border-color:#9fb7e5}.dice-preset-button.selected{border-color:var(--signal);background:var(--signal);color:#fff}.dice-preset-button svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;overflow:visible}.vtt-right-panel .chat-column>.play-column-heading{order:0}.vtt-right-panel .chat-column>.play-history{flex:auto;order:1;min-height:180px;overflow-y:auto}.vtt-right-panel .chat-column>.play-form{border-top:1px solid var(--line);background:#fbfcfd;order:2}.vtt-right-panel .chat-form textarea{resize:vertical;min-height:74px}.play-form,.play-history{border-color:var(--line)}.play-form label>span,.play-history-heading span,.play-form small,.play-state,.chat-body{color:var(--paper-dim)}.roll-entry,.chat-entry{border-color:var(--line)}.roll-entry-heading strong,.chat-entry-heading strong{color:#2a2f36}.visibility-mark,.chat-entry-heading span{color:#5f6772;border-color:#cfd5dc;border-radius:4px}.visibility-mark.public{color:#167451;background:#f0faf6;border-color:#a9d5c3}.visibility-mark.secret,.visibility-mark.blind,.visibility-mark.gm_only,.chat-entry.whisper .chat-entry-heading span{color:#2455af;background:#f2f6ff;border-color:#c8d6f2}.dice-result{grid-template-columns:88px minmax(0,1fr)}.dice-3d-stage{isolation:isolate;background:#f3f6fb;border:1px solid #dce3ee;border-radius:8px;grid-column:1/-1;height:142px;position:relative;overflow:hidden}.dice-3d-canvas{width:100%;height:100%;display:block}.dice-3d-fallback{z-index:-1;color:#2559b7;place-items:center;font-size:2.35rem;font-weight:780;display:grid;position:absolute;inset:0}.dice-3d-stage[data-rendered=true] .dice-3d-fallback{display:none}.dice-total{background:#f7f9fc;border-color:#cfd9ea;border-radius:6px}.dice-total span{color:#6f7782}.dice-total strong{color:#2156b3;font-family:inherit;font-weight:760}.dice-terms li{border-color:var(--line)}.dice-terms span{color:#858c96}.dice-terms strong{color:#343a43}.coc-outcome{border-color:var(--safe);background:#f0faf6;border-radius:4px}.coc-outcome span,.coc-outcome strong{color:#167451}.receipt-copy{color:#4c6288;background:#f4f7fc;border-color:#cbd7ed}.room-character-choice[aria-pressed=true]{border-color:var(--signal);background:var(--terra-blue-soft)}.vtt-unread-badge{color:#fff;background:#e24c4c}.vtt-session-shell .media-desk{background:#fff}.campaign-preparation-notice,.workspace-notice,.route-error,.settings-card{border-radius:var(--terra-radius)}@media (width<=1100px) and (width>=901px){.vtt-session-shell{grid-template-columns:240px minmax(380px,1fr) 320px}.vtt-session-shell:not(.prepare-mode){grid-template-columns:minmax(460px,1fr) 320px}}@media (width<=900px){.app-shell{width:min(100% - 28px,760px)}.auth-layout{grid-template-columns:1fr;gap:42px}.briefing h2{font-size:clamp(2.4rem,10vw,4rem)}.signed-workspace{grid-template-columns:1fr;padding-top:24px}.signed-workspace .rail{padding:0;position:static}.workspace-switcher,.rail ol{grid-template-columns:repeat(3,minmax(0,1fr))}.vtt-session-shell{grid-template:"tools""board"minmax(420px,70vh)"right"minmax(420px,auto)/1fr}.vtt-session-shell:not(.prepare-mode){grid-template:"board"minmax(420px,70vh)"right"minmax(420px,auto)/1fr}}@media (width<=620px){.app-shell{width:min(100% - 20px,520px)}.workspace-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.masthead{min-height:62px}.eyebrow{display:none}.auth-workspace{padding:48px 0}.auth-card{padding:22px}.checks,.rail ol{grid-template-columns:1fr}.workspace-heading{padding-top:36px}.lobby-workspace .workspace-heading{grid-template-columns:1fr;gap:12px;padding:18px 0 14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}