@font-face{font-family:Pretendard;src:url('/assets/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{font-family:Pretendard,'Malgun Gothic',sans-serif}button,input,textarea{font-family:inherit}blockquote,.card-caption>span,.identity-copy blockquote,.mission-body blockquote{font-family:inherit;font-style:normal}button{font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.2px}.muted,.fine{font-size:13px}.entry .eyebrow,.entry details{font-size:12px}.entry label,.check{font-size:14px}.entry .muted{font-size:14px}footer{font-size:12px}.game-mode{overflow:hidden;height:100dvh}.game-mode>header,.game-mode>footer{display:none}.game-mode #app{display:block;padding:0;margin:0;max-width:none;height:100dvh}.game-shell{display:grid;grid-template-rows:64px minmax(0,1fr);height:100%;overflow:hidden}.game-topbar{max-width:none;margin:0;padding:0 16px;min-height:0;height:64px;display:flex;align-items:center;gap:20px;background:#141e22;border-bottom:1px solid #48534a}.compact-brand{display:flex;align-items:center;gap:10px;font:34px Georgia,serif;color:#d2b372;white-space:nowrap}.compact-brand span{font:600 16px Pretendard,sans-serif;letter-spacing:1px;color:#f0e6cd}.top-stats{display:flex;gap:22px;white-space:nowrap}.top-stats>span{font-size:13px;color:#acb7b3}.top-stats b{font-size:19px;color:#f1eddc;margin-left:6px;font-variant-numeric:tabular-nums}.top-stats .at-risk,.top-stats .at-risk b{color:#e6bf79}.top-stats .critical{padding:6px 8px;border:1px solid #cb8e78;background:#5a292b}.top-stats .critical,.top-stats .critical b{color:#ffbba2}.phase-badge{font-size:13px;font-weight:650;padding:7px 11px;border:1px solid #6a785e;border-radius:4px;color:#d3dfbc;white-space:nowrap}.phase-SUPPLY{color:#e1c583;border-color:#9b824d}.phase-RESCUE{color:#ffbca6;border-color:#9f6754}.phase-RESULT{color:#aad3e0;border-color:#5b8594}.top-actions{display:flex;gap:8px;margin-left:auto;align-items:center}.top-actions button{padding:8px 11px;font-size:13px;white-space:nowrap}.top-actions #copy b{font-size:12px;letter-spacing:.4px;margin-left:5px;font-family:inherit}.game-grid{display:grid;grid-template-columns:minmax(180px,18%) minmax(0,1fr) minmax(300px,28%);grid-template-rows:minmax(0,1fr) 234px;gap:12px;padding:12px;min-height:0;overflow:hidden}.game-panel{min-width:0;min-height:0;border:1px solid #3a4947;background:#182429;border-radius:6px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid #3a4947;height:51px;flex:none}.panel-heading h2{font-size:16px;font-weight:650;margin:0;letter-spacing:-.3px}.panel-heading h2 small{font-size:13px;color:#aeb9ab;margin-left:6px}.panel-heading>span{font-size:12px;color:#a4b3aa;white-space:nowrap}.crew-panel{grid-column:1;grid-row:1;display:flex;flex-direction:column}.crew-list{list-style:none;margin:0;padding:4px 10px;overflow:auto;flex:1;min-height:0;scrollbar-width:thin}.crew-list li{display:flex;align-items:center;gap:9px;min-height:37px;padding:6px 2px;border-bottom:1px solid #aabb9a12}.online-dot{width:7px;height:7px;border-radius:50%;flex:none;background:#6d7978}.online-dot.is-online{background:#b8d28d;box-shadow:0 0 0 2px #a7c07c15}.crew-person{min-width:0;flex:1}.crew-person strong{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.crew-person strong span{color:#d4b97c}.crew-person strong small{font-size:11px;color:#c6cdb5}.crew-person>span{display:block;font-size:12px;color:#acb9b0;line-height:1.35;margin-top:2px}.crew-done{font-size:12px;color:#8c9d96;white-space:nowrap}.crew-done.is-done{color:#d3dba9}.crew-bottom{padding:10px;border-top:1px solid #3b4a43;display:flex;flex-direction:column;gap:7px}.crew-bottom button{font-size:12px;padding:7px 8px}.event-panel{grid-column:2;grid-row:1;overflow:auto;scrollbar-width:thin;position:relative;background:#1b292d}.incident-banner{height:116px;background-image:url('/assets/missions-v2.png');background-size:300% 300%;position:relative;isolation:isolate;padding:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex:none}.incident-banner:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b1419f0,#0b141955);z-index:-1}.incident-banner span{font-size:12px;color:#e2c994;font-weight:600}.incident-banner h2{font-size:26px;font-weight:700;color:#fbf2de;margin:6px 0 0;line-height:1.2}.incident-banner button{padding:6px 9px;background:#10202899;border-color:#a6aa8477;font-size:12px}.event-objectives{padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#e8e2d1;color:#263f38;border-bottom:1px solid #9c9f83}.event-objectives>div>span{font-size:12px;font-weight:600;color:#536456}.required-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.sum-chip{display:inline-flex;align-items:center;gap:7px;font-size:14px;background:#263b3d;border:1px solid #5d7875;padding:6px 9px;border-radius:4px;color:#d5e4d7;line-height:1.2;white-space:nowrap}.sum-chip b{font-size:21px;font-weight:750;font-variant-numeric:tabular-nums}.res-0{border-color:#a2716a;color:#f0c5bd}.res-1{border-color:#a5925b;color:#eddda8}.res-2{border-color:#6d9ca7;color:#b1dce9}.res-3{border-color:#8b88af;color:#d1ceee}.res-4{border-color:#81a274;color:#c1ddb0}.event-objectives .sum-chip{background:#f5f0e3;border-color:#a8b6a2;color:#314b3b}.event-objectives .sum-chip b{font-size:25px}.event-objectives .res-0{color:#8c483f}.event-objectives .res-1{color:#725822}.event-objectives .res-2{color:#235a69}.event-objectives .res-3{color:#514c7e}.event-objectives .res-4{color:#45692c}.damage-badge{border-left:1px solid #b6bda8;padding-left:18px;white-space:nowrap}.damage-badge span{display:block;font-size:12px}.damage-badge strong{display:block;font-size:25px;color:#9e4f3d;line-height:1.2;margin-top:7px}.phase-instruction{padding:14px 16px 7px}.phase-instruction strong{font-size:16px;font-weight:650;color:#e6dfbf}.phase-instruction p{font-size:13px;color:#b0bfb3;margin:6px 0 0;line-height:1.5}.phase-instruction.paused strong{color:#f0c486}.submission-progress{padding:7px 16px 13px}.submission-progress>span{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#aebdb2;margin-bottom:7px}.submission-progress b{font-weight:550;color:#dfdbb8}progress{display:block;width:100%;height:6px;accent-color:#cfb778;border:0;border-radius:3px;background:#3b514a}progress::-webkit-progress-bar{background:#3b514a;border-radius:3px}progress::-webkit-progress-value{background:#c5b27b;border-radius:3px}.inline-story{margin:0 16px 12px;padding:8px 0 0;font-size:14px;border-color:#4a5b4e}.inline-story summary{font-size:13px;color:#c8cbb0}.inline-story p,.inline-story blockquote{font-size:14px;font-family:inherit;font-style:normal;line-height:1.7;margin:12px 0;color:#bbc8b8}.inline-story blockquote{padding-left:12px;border-left:2px solid #ad9c65}.round-result{padding:12px 16px;border-left:3px solid #aaba7a;background:#23372f}.round-result h3{font-size:19px;font-weight:700;margin:0 0 8px;letter-spacing:-.5px;color:#d6e7b7}.round-result.result-failure{background:#342b29;border-left-color:#c08c73}.round-result.result-failure h3{color:#f0b99e}.round-result table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums;line-height:1.35}.round-result th,.round-result td{padding:6px 7px;border-bottom:1px solid #acbca322;text-align:right}.round-result th:first-child{text-align:left}.round-result thead th{font-size:12px;color:#b6c4b4;font-weight:500}.round-result .shortage{color:#ffc0a3;font-weight:650}.round-result .met{color:#c3dda5}.round-result p{font-size:14px;margin:10px 0 4px;line-height:1.5}.round-result p b{font-size:16px;font-weight:650}.round-result p span{font-size:13px;color:#c2c5ad}.round-result>small{font-size:12px;color:#adbaad}.result-actions{position:sticky;bottom:0;padding:10px 16px;background:#17272df5;border-top:1px solid #3b5146;z-index:2}.result-actions button{padding:9px 18px;font-size:14px}.result-actions p{font-size:14px;margin:0}.chat-panel{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;position:relative}.chat-panel #messages{flex:1;min-height:0;height:auto;padding:6px 16px;overflow-y:auto;scrollbar-width:thin}.chat-panel #messages .chat-message{margin:12px 0 18px;overflow-wrap:anywhere}.chat-message>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.chat-panel #messages .chat-message strong{font-size:13px;color:#e3c99b;font-weight:650}.chat-panel #messages .chat-message time{font-size:12px;color:#9caea4}.chat-panel #messages .chat-message p{font-size:15px;line-height:1.65;color:#e0e8de;margin:5px 0 0;white-space:pre-wrap}.chat-panel #messages .system-message{font-size:12px;line-height:1.5;padding:8px 10px;margin:12px 0;background:#263a36;border:1px solid #51614b66;border-radius:3px;color:#bccbab;text-align:center}.chat-placeholder{font-size:14px;color:#adb9ad;line-height:1.8}.chat-panel #chat-form{flex:none;display:flex;gap:8px;padding:12px;margin:0;border-top:1px solid #475748;background:#142227}.chat-panel #chat-input{min-width:0;resize:none;flex:1;border:1px solid #607064;border-radius:4px;padding:10px;font-size:14px;line-height:1.5;background:#101b1f;color:#eef0e5;outline:none}.chat-panel #chat-input:focus{border-color:#d2b875;box-shadow:0 0 0 2px #d2b87522}.chat-panel #chat-form button{padding:10px 12px;font-size:14px;border-radius:4px;color:#e6c98c}.new-messages{flex:none;align-self:center;font-size:13px;padding:5px 15px;background:#cbb77e;color:#172b26;border:0;margin:4px 0 8px}.hand-panel{grid-column:1/3;grid-row:2;display:grid;grid-template-rows:33px minmax(0,1fr) 53px;padding:7px 12px 0;background:#15252a}.hand-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.hand-heading h2{font-size:15px;font-weight:650;margin:0}.hand-heading h2 small{font-size:13px;font-weight:400;color:#b0bdb0;margin-left:6px}.hand-heading>span{font-size:12px;color:#b1bca9}.hand-cards{display:flex;gap:10px;align-items:center;overflow-x:auto;overflow-y:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:#78816b transparent;padding:4px 2px 8px;overscroll-behavior:contain}.game-mode .card{flex:none;width:102px;height:135px;min-width:0;max-width:none;padding:4px;display:grid;grid-template-rows:32px minmax(0,1fr) 20px;gap:0;border-radius:6px;box-shadow:0 4px 10px #0005}.game-mode .card-top{height:32px;padding:0 4px 4px;border-color:#a39a7c}.game-mode .card-top>span{font-size:13px}.game-mode .card-top b{font:750 28px/1 Pretendard,sans-serif}.game-mode .resource-art{height:100%;width:100%;border-radius:2px;background-size:500% auto;min-height:0}.game-mode .card-caption{display:none}.game-mode .card-bottom{padding:2px 3px;margin:0;min-height:0;height:20px;border-color:#b0a488}.game-mode .card-bottom>span:first-child{font-size:7px;letter-spacing:0}.game-mode .card-check{font-size:12px;height:16px;width:16px}.game-mode .card.selected,.game-mode .card:hover:not(:disabled){transform:translateY(-3px)}.game-mode .card.selected{outline:2px solid #e0ba70;outline-offset:1px}.game-mode .empty-deck{padding:10px;margin:auto;border:0}.game-mode .empty-deck>span{display:none}.game-mode .empty-deck p{font-size:14px;margin:0}.game-mode .empty-deck small{font-size:12px}.hand-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 0;border-top:1px solid #43574a;min-height:0}.hand-toolbar #selected-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;margin:0;min-width:0;line-height:1.3}.hand-toolbar #selected-summary strong{font-weight:550;white-space:nowrap}.hand-toolbar .sum-list{display:flex;gap:6px;flex-wrap:wrap}.hand-toolbar .sum-chip{font-size:13px;padding:4px 6px;gap:5px}.hand-toolbar .sum-chip b{font-size:17px}.hand-toolbar #selected-summary small{font-size:12px;color:#a2b5a3;display:inline-block;margin-left:4px}.hand-toolbar>button{white-space:nowrap;min-width:140px;padding:10px 15px;font-size:15px;flex:none}.mobile-tabs{display:none}.game-mode .lobby-banner{height:120px;background-image:url('/assets/missions-v2.png');background-size:300% 300%;margin-bottom:18px}.lobby-brief{padding:0 16px 16px}.lobby-brief .lobby-banner{margin-left:-16px;margin-right:-16px}.lobby-brief h2{font-size:26px;font-weight:700}.lobby-brief p{font-size:14px;color:#c4cdbb;line-height:1.65}.lobby-actions{display:flex;gap:8px;flex-wrap:wrap}.lobby-actions button{font-size:14px;padding:9px 13px}.lobby-guide{border-top:1px solid #44574a;padding-top:14px}.final-report{padding:16px}.final-report h2{font-size:28px;font-weight:700}.final-report>p{font-size:14px}.final-report>.round-result{margin:16px 0}.game-mode .score-table b{font:700 24px Pretendard,sans-serif}.game-mode .score-table small{font-size:13px}
/* Dialogs remain independent of the scrolling panels. */
#game-dialog{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #a89564;border-radius:8px;background:#1a2b2d;color:#e7eddf;box-shadow:0 20px 90px #000c;overflow:hidden}#game-dialog::backdrop{background:#050c12c9;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px;background:#172326;border-bottom:1px solid #536149}.modal-heading h2{font-size:21px;font-weight:700;margin:0;letter-spacing:-.6px}.modal-heading button{font-size:18px;padding:4px 10px;background:transparent;border:0}.modal-body{padding:22px;max-height:calc(100dvh - 120px);overflow:auto;scrollbar-width:thin}.modal-body p,.modal-body blockquote{font:400 15px/1.8 Pretendard,sans-serif}.modal-body button{font-size:14px}.modal-body hr{border:0;border-top:1px solid #52624b;margin:20px 0}.modal-body>.warning,.modal-body>#pause{margin:8px 12px 8px 0}.modal-body>button:disabled{display:block;margin-top:10px}.modal-body .confirm-count{font-size:17px;margin-top:0}.confirm-count b{font-size:24px;margin-left:12px}.confirm-totals{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.confirm-totals .sum-chip{font-size:18px;padding:12px 18px}.confirm-totals .sum-chip b{font-size:28px}.confirm-warning{padding:14px;border:1px solid #9a835c;background:#70613a22;color:#ebcd95;font-size:14px!important}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.modal-actions button{min-width:100px}.modal-body .identity-section{margin:0}.modal-body .identity-section>.section-title{display:none}.modal-body .identity-cards{grid-template-columns:1fr 1fr}.modal-body .identity-card{padding:18px}.modal-body .identity-copy h3{font-family:Pretendard,sans-serif;font-size:26px;font-weight:700}.modal-body .identity-copy>.eyebrow{font-family:Pretendard,sans-serif;font-size:11px}.modal-body .identity-copy>p:not(.eyebrow){font-size:14px}.modal-body .identity-copy blockquote{font:400 14px/1.65 Pretendard,sans-serif}.modal-body .identity-copy>small{font-size:12px}.modal-body .objective>span{font-size:12px}.modal-body .objective p{font-size:14px}.modal-body .role-heading .card-tag,.modal-body .role-heading button{font-size:12px}.modal-body .job-card{display:block}.modal-body .portrait{width:100%;height:auto;aspect-ratio:1.4;/* artwork remains a compact portrait panel */}.modal-body .job-card .identity-copy{display:block}.modal-body .job-card .identity-copy>h3{margin:12px 0}.ability-status{border-top:1px solid #53634c;padding-top:20px;margin-top:24px}.ability-status h3{font-size:18px;font-weight:650}.ability-status p{font-size:14px}.story-modal-art{height:220px;background-image:url('/assets/missions-v2.png');background-size:300% 300%;margin:-22px -22px 22px}.modal-body details{font-size:14px}.modal-body details summary{font-size:15px}.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}
@media(min-width:1600px){.game-grid{grid-template-rows:minmax(0,1fr) 262px;gap:16px;padding:16px}.game-mode .card{width:118px;height:160px;grid-template-rows:36px minmax(0,1fr) 22px}.game-mode .card-top{height:36px}.incident-banner{height:160px}.incident-banner h2{font-size:28px}.crew-list li{min-height:45px}.crew-person strong{font-size:15px}.crew-person>span{font-size:13px}.hand-panel{grid-template-rows:36px minmax(0,1fr) 58px}.hand-toolbar #selected-summary{font-size:16px}.hand-toolbar .sum-chip{font-size:15px}.hand-toolbar .sum-chip b{font-size:20px}.event-objectives{padding:20px}.phase-instruction{padding:20px}.phase-instruction strong{font-size:18px}.phase-instruction p{font-size:15px}.submission-progress{padding:10px 20px 18px}.round-result table{font-size:15px}.round-result th,.round-result td{padding:9px}.round-result h3{font-size:22px}.game-topbar{padding:0 22px;gap:28px}.top-actions button{font-size:14px}.inline-story{font-size:15px}}
@media(min-width:901px) and (max-height:720px){.game-grid{grid-template-rows:minmax(0,1fr) 214px}.game-mode .card{height:116px}.hand-panel{grid-template-rows:30px minmax(0,1fr) 50px}.incident-banner{height:90px}.crew-bottom{padding:6px}.crew-bottom button{padding:5px}.game-topbar{gap:14px}.compact-brand span{font-size:14px}}
@media(max-width:1100px) and (min-width:901px){.game-topbar{gap:12px;padding:0 12px}.compact-brand span{display:none}.top-stats{gap:12px}.top-actions button{font-size:12px;padding:8px}.top-actions #copy b{display:none}.history-shortcut{display:none}.game-grid{grid-template-columns:180px minmax(0,1fr) 300px}.hand-toolbar #selected-summary{font-size:13px}.hand-toolbar>button{min-width:120px}.hand-toolbar .sum-chip{font-size:12px}}
@media(max-width:900px){.game-shell{grid-template-rows:100px minmax(0,1fr) 56px}.game-topbar{height:100px;display:grid;grid-template-columns:1fr auto;grid-template-rows:40px 40px;gap:4px 10px;padding:8px 12px}.compact-brand{grid-column:1;grid-row:1;font-size:28px;gap:7px}.compact-brand span{font-size:14px}.top-stats{grid-column:1;grid-row:2;gap:15px}.top-stats>span{font-size:12px}.top-stats b{font-size:17px;margin-left:4px}.phase-badge{grid-column:2;grid-row:2;font-size:12px;padding:5px 8px;justify-self:end}.top-actions{grid-column:2;grid-row:1;gap:5px}.top-actions button{font-size:12px;padding:6px 8px}.top-actions #copy b,.top-actions .history-shortcut{display:none}.game-grid{display:block;position:relative;padding:8px;overflow:hidden}.game-grid>[data-screen]{display:none;height:100%}.game-grid[data-tab=event]>.event-panel{display:block}.game-grid[data-tab=crew]>.crew-panel{display:flex}.game-grid[data-tab=chat]>.chat-panel{display:flex}.game-grid[data-tab=hand]>.hand-panel{display:grid}.mobile-tabs{display:flex;align-items:stretch;gap:4px;background:#15242a;border-top:1px solid #4a5c4c;padding:4px 6px max(4px,env(safe-area-inset-bottom));min-height:0}.mobile-tabs button{flex:1;padding:8px 4px;font-size:13px;border:0;border-radius:4px;background:transparent;color:#aebfb0;position:relative;white-space:nowrap}.mobile-tabs button.active{background:#c8ad71;color:#182d26;font-weight:650}.unread-badge{display:inline-grid;place-items:center;margin-left:4px;min-width:17px;height:17px;border-radius:10px;background:#c67a55;color:white;font-size:11px}.hand-panel{padding:12px;grid-template-rows:auto minmax(0,1fr) auto}.hand-heading{align-items:flex-start;gap:9px;padding:2px 0 12px;flex-wrap:wrap}.hand-heading h2{font-size:18px}.hand-heading>span{font-size:12px}.hand-cards{align-items:center;gap:12px}.game-mode .card{width:140px;height:205px;grid-template-rows:43px minmax(0,1fr) 25px;padding:6px}.game-mode .card-top{height:43px}.game-mode .card-top>span{font-size:15px}.game-mode .card-top b{font-size:32px}.game-mode .card-bottom{height:25px}.game-mode .card-bottom>span:first-child{font-size:9px}.game-mode .card-check{width:19px;height:19px;font-size:14px}.hand-toolbar{flex-direction:column;align-items:stretch;padding:12px 0 2px;gap:12px}.hand-toolbar #selected-summary{font-size:15px;min-height:30px}.hand-toolbar .sum-chip{font-size:14px}.hand-toolbar .sum-chip b{font-size:20px}.hand-toolbar>button{width:100%;font-size:16px;padding:14px}.crew-person strong{font-size:15px}.crew-person>span{font-size:13px}.crew-list li{min-height:47px}.crew-done{font-size:13px}.crew-bottom button{font-size:14px;padding:12px}.incident-banner{height:160px}.incident-banner h2{font-size:25px}.incident-banner button{font-size:12px}.event-objectives{padding:16px}.event-objectives .sum-chip b{font-size:27px}.phase-instruction{padding:18px 16px 10px}.phase-instruction p{font-size:14px;line-height:1.65}.submission-progress{padding:12px 16px}.inline-story summary{font-size:14px}.chat-panel #chat-form{padding-bottom:max(12px,env(safe-area-inset-bottom))}.modal-body .identity-cards{grid-template-columns:1fr}.modal-heading{padding:14px 16px}.modal-heading h2{font-size:19px}.modal-body{padding:18px}.modal-body .identity-card{padding:18px}.modal-body .portrait{width:160px;height:160px;aspect-ratio:1;margin-bottom:16px}.story-modal-art{margin:-18px -18px 18px}.round-result th,.round-result td{padding:9px 6px}.round-result>small{font-size:12px}}
@media(prefers-reduced-motion:no-preference){.round-result{animation:result-in .2s ease-out}@keyframes result-in{from{opacity:.5}to{opacity:1}}}
.role-illustration{height:170px;flex:none;background-image:linear-gradient(0deg,#152521bb,#15252122),url("/assets/missions-v2.png");background-size:100% 100%,300% 300%;position:relative;margin:0 0 18px;border:1px solid #7c815f;display:grid;place-items:center}.role-illustration>span{font:64px Georgia,serif;color:#f1dfab;border:1px solid #d4bd7b88;border-radius:50%;width:104px;height:104px;display:grid;place-items:center;background:#13231e88}.role-illustration.scene-2{background-position:center,100% 0}.role-illustration.scene-3{background-position:center,0 50%}.role-illustration.scene-4{background-position:center,50% 50%}.role-illustration.scene-5{background-position:center,100% 50%}.role-illustration.scene-6{background-position:center,0 100%}.role-illustration.scene-7{background-position:center,50% 100%}.role-illustration.scene-8{background-position:center,100% 100%}
/* v0.4: preserve atlas aspect ratios and enhance existing panels. */
.atlas-art{display:block;width:100%;height:100%;overflow:hidden}
.incident-banner,.story-modal-art,.game-mode .lobby-banner,.modal-body .portrait,.role-illustration,.game-mode .resource-art{background-image:none}
.incident-banner{height:190px;display:block;padding:0;overflow:hidden}
.incident-banner>.atlas-art{position:absolute;inset:0;z-index:-2}
.incident-banner:before{z-index:-1;background:linear-gradient(180deg,#07111518 0%,#071115c9 36%,#071115f5 100%)}
.incident-copy{height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:16px 18px;position:relative}
.incident-copy h2{font-size:27px;font-weight:750;line-height:1.2;margin:5px 0 8px;text-shadow:0 2px 10px #000}
.incident-story{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;max-width:76ch;font-size:14px;line-height:1.6;color:#e1e8df;text-shadow:0 1px 4px #000}
.incident-copy .story-more{align-self:flex-start;font-size:12px;color:#e8d8b0;border:0;border-bottom:1px solid #aa9f7977;border-radius:0;background:transparent;padding:3px 0;margin-top:7px}
.event-objectives{padding:12px 16px}.event-objectives .sum-chip{padding:7px 10px;gap:7px;border-width:1px;box-shadow:0 2px 0 #58634b15}.event-objectives .res-0{background:#f4e5dc;border-color:#b99587}.event-objectives .res-1{background:#f3e9cd;border-color:#b7a16d}.event-objectives .res-2{background:#dfedf0;border-color:#87a9b0}.event-objectives .res-3{background:#e6e3f1;border-color:#a39bbe}.event-objectives .res-4{background:#e5eddb;border-color:#9eb28a}.event-objectives .sum-chip b{font-size:27px}.resource-symbol{font-size:15px;opacity:.85}.hand-toolbar .resource-symbol{font-size:12px}
.phase-instruction{padding:12px 16px 7px;border-left:3px solid #c7ae73;margin:8px 12px 0;background:#c6ac6a0a}.phase-instruction strong{font-size:16px;color:#f3e7bd;font-weight:700}.phase-instruction p{color:#c0cbbf;font-size:13px}.submission-progress{padding-top:9px;padding-bottom:10px}.submission-progress>span{color:#c3cdbf}
.crew-list li{padding:8px 2px;min-height:56px}.crew-person strong{font-size:14px;font-weight:650;margin-bottom:5px}.crew-person .job-badge{font:650 13px/1.3 Pretendard,sans-serif;display:inline-block;max-width:100%;text-align:left;padding:4px 7px;background:#bdab6d14;border:1px solid #9c916155;color:#e2d3a5;white-space:normal;overflow-wrap:anywhere}.crew-person .job-badge:hover,.crew-person .job-badge:focus-visible{background:#bca66b2b;border-color:#c8af71;color:#fff0bd}.bot-label{font-size:11px;color:#b2bfb1;margin-left:5px}
#job-tooltip{position:fixed;inset:auto;margin:0;width:min(300px,calc(100vw - 16px));padding:16px 18px;border:1px solid #c5ad70;border-radius:6px;background:#15272b;color:#e7eddf;box-shadow:0 12px 40px #0008;pointer-events:auto}
#job-tooltip strong{font-size:18px;color:#ead8a5}#job-tooltip p{font-size:14px;line-height:1.65;margin:8px 0}#job-tooltip small{font-size:12px;color:#bdc8bb}.ability-unavailable{font-size:13px!important;color:#d6c290;border:1px solid #9a8b584d;padding:10px;border-radius:4px}
.public-job-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start}.public-job-card h3{font-size:26px;font-weight:750;margin-bottom:12px}.public-job-art{aspect-ratio:3/4;overflow:hidden;border:1px solid #9c9066;border-radius:4px}.public-job-card p{font-size:15px}
.modal-body .portrait,.modal-body .role-illustration{position:relative;width:min(100%,210px);height:auto;aspect-ratio:3/4;margin:0 auto 18px;overflow:hidden;border-radius:4px;background:none;flex:none}.modal-body .portrait .atlas-art,.modal-body .role-illustration .atlas-art{position:absolute;inset:0}.modal-body .role-heading{margin-bottom:14px}.role-illustration>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:48px;width:84px;height:84px}.modal-body .portrait .card-tag{z-index:1}.modal-body .identity-cards{align-items:start}.modal-body .identity-card{height:auto}.modal-body .identity-copy>p:not(.eyebrow){color:inherit}.modal-body .job-card .identity-copy>small{color:#5c665a}.modal-body .role-card .identity-copy>small{color:#b5c0ad}.modal-body .objective>span{color:#d4c58c}.modal-body .job-card blockquote{color:#615841}
.story-modal-art{overflow:hidden}.game-mode .lobby-banner{position:relative;overflow:hidden}
.game-mode .resource-art{position:relative;overflow:hidden}.game-mode .resource-art .atlas-art{position:absolute;inset:0}.game-mode .card{transition:transform 180ms ease,border-color 180ms ease,box-shadow 180ms ease;transform-origin:center bottom}.game-mode .card.selected{transform:translateY(-5px);outline:2px solid #e0ba70;box-shadow:0 6px 14px #0008,0 0 0 4px #d9b56b18}.game-mode .card.selected .card-check{background:#274f46;color:#fff}.game-mode .card-top>span{font-weight:650}.game-mode .card-bottom>span:first-child{font-size:8px;color:#5c6053}.game-mode .card:disabled{opacity:.78}.hand-cards{gap:12px;padding-top:8px;padding-bottom:10px}.hand-toolbar #selected-summary small{color:#bac9b6}.chat-panel #messages .chat-message time{color:#b0bdb4}.round-result{animation:none}
@media(hover:hover){.game-mode .card:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 7px 17px #0008}.game-mode .card.selected:hover:not(:disabled){transform:translateY(-6px)}}
@media(min-width:1600px){.incident-banner{height:230px}.incident-copy{padding:22px}.incident-copy h2{font-size:30px}.incident-story{font-size:15px;line-height:1.7}}
@media(min-width:901px) and (max-height:720px){.incident-banner{height:170px}.incident-copy{padding:12px 16px}.incident-copy h2{font-size:24px}.incident-story{font-size:13px}.phase-instruction{margin-top:6px;padding-top:8px}.phase-instruction p{display:none}}
@media(max-width:900px){.incident-banner{height:240px}.incident-copy{padding:16px}.incident-copy h2{font-size:25px}.incident-story{-webkit-line-clamp:3;font-size:14px}.event-objectives{padding:14px}.required-chips{gap:6px}.event-objectives .sum-chip{padding:7px 8px;font-size:14px}.event-objectives .sum-chip b{font-size:25px}.phase-instruction{margin:10px 10px 0;padding:14px 12px 10px}.phase-instruction p{font-size:14px}.submission-progress{padding:14px}.public-job-card{display:block}.public-job-art{width:180px;margin:0 auto 20px}.modal-body .portrait,.modal-body .role-illustration{width:190px;height:auto;aspect-ratio:3/4}.modal-body .identity-card{padding:18px}.crew-person .job-badge{padding:7px 9px;font-size:14px}}
@media(prefers-reduced-motion:no-preference){
 .motion-enter .game-topbar{animation:soft-arrive 180ms both}
 .motion-enter .crew-panel{animation:soft-arrive 200ms 35ms both}
 .motion-enter .event-panel{animation:soft-arrive 220ms 70ms both}
 .motion-enter .chat-panel{animation:soft-arrive 220ms 105ms both}
 .motion-enter .hand-panel{animation:soft-arrive 240ms 140ms both}
 .event-enter>.atlas-art{animation:incident-reveal 260ms both}
 .event-enter h2{animation:soft-arrive 200ms both}
 .event-enter .incident-story{animation:soft-arrive 220ms 40ms both}
 .objectives-enter{animation:soft-arrive 220ms 80ms both}
 .phase-flash{animation:phase-glow 260ms ease-out}
 .chat-new{animation:soft-arrive 180ms both}
 .done-new{animation:status-glow 230ms ease-out}
 .result-new.result-success{animation:success-glow 280ms ease-out}
 .result-new.result-failure{animation:failure-glow 280ms ease-out}
 .survivor-change{display:inline-block;animation:survivor-glow 280ms ease-out}
 @keyframes soft-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
 @keyframes incident-reveal{from{opacity:.4;transform:scale(1.015)}to{opacity:1;transform:none}}
 @keyframes phase-glow{from{background:#b7a06235}to{background:#c6ac6a0a}}
 @keyframes status-glow{from{color:#fff3c5;transform:translateY(-2px)}to{transform:none}}
 @keyframes success-glow{from{box-shadow:inset 0 0 0 2px #bfdb8b;background:#39543e}to{box-shadow:inset 0 0 0 0 transparent;background:#23372f}}
 @keyframes failure-glow{from{box-shadow:inset 0 0 0 2px #dc9b83;background:#593531}to{box-shadow:inset 0 0 0 0 transparent;background:#342b29}}
 @keyframes survivor-glow{from{color:#ffc0a3;transform:translateY(-2px)}to{transform:none}}
}
@media(prefers-reduced-motion:reduce){.game-shell *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.game-mode .card:hover:not(:disabled){transform:none}.game-mode .card.selected{transform:none}}

.modal-body .identity-card>.role-heading{min-height:28px}.modal-body .job-card>.role-heading .card-tag{color:#4a584a;border-color:#a5a58c;font-size:12px}.modal-body .job-card .identity-copy blockquote{color:#615841}.modal-body .role-card .identity-copy blockquote{color:#dfcf9c}
.game-mode .card-bottom>span:first-child{display:none}.game-mode .card-bottom{justify-content:flex-end}

/* v0.5: a compact voyage strip and a supply overlay over the existing layout. */
.round-track{display:flex;gap:3px;list-style:none;padding:0;margin:0;flex:1;max-width:380px;min-width:220px}.round-track li{flex:1;text-align:center;border-top:2px solid #465552;color:#9eafa7;padding-top:3px;font-size:12px;line-height:1.1}.round-track li>span:first-child{font-weight:650}.round-track b{display:block;height:14px;font-size:13px;margin-top:2px}.round-track small{display:block;color:#d5bb80;font-size:10px;margin-top:2px}.round-track .won{border-color:#92bea0;color:#b7e1c1}.round-track .lost{border-color:#ca8a7b;color:#efb2a3}.round-track .current{border-color:#e1c07c;background:#d1b06d15;color:#ffdfa1;border-radius:2px}.game-topbar{gap:12px}.game-topbar .compact-brand span{font-size:14px}.top-stats{gap:12px}.top-actions{gap:5px}.top-actions button{padding:8px}.top-actions #copy b{display:none}
.supply-dialog{width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 28px);border-color:#b49a61;background:radial-gradient(ellipse at top,#304344,#15252b 65%)}#game-dialog::backdrop{background:#040b12b8;backdrop-filter:blur(7px)}.supply-dialog .modal-body{max-height:calc(100dvh - 135px)}.supply-cards{display:flex;gap:20px;justify-content:center;overflow:auto;padding:16px 8px 20px}.supply-cards .card{flex:0 0 160px;width:160px;height:238px}.supply-cards .resource-art{height:95px}.supply-cards .card-caption>span{display:block}.supply-cards .card-top b{font-size:32px}.supply-dialog #supply-summary{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;min-height:48px}.supply-dialog #supply-confirm{display:block;margin:12px auto 0;min-width:230px}.supply-note{font-size:13px!important;color:#bcc8bd!important;text-align:center}.private-intel{margin-top:20px;padding:16px;border:1px solid #8b9f95;border-radius:5px;background:#12272b}.private-intel small{color:#c5cfbf}.modal-body select{display:block;width:100%;padding:12px;background:#13242a;color:#eee5ce;border:1px solid #7d8e80;border-radius:4px;margin:10px 0}.rulebook{max-width:66ch;margin:auto}.rulebook h3{font-size:21px;color:#ead4a2;margin:30px 0 12px;line-height:1.5}.rulebook h3:first-of-type{font-size:30px;margin-top:10px}.rulebook p{font-size:16px;line-height:1.95;color:#d4dfd6}.rulebook blockquote{font-style:normal;color:#d5bd89;line-height:1.8;border-left:2px solid #b9a169;padding-left:18px;margin:30px 0}
@media(min-width:901px) and (max-width:1450px){.compact-brand span{display:none}.game-topbar{gap:10px}.round-track{min-width:210px;max-width:320px}.phase-badge{font-size:12px;padding:6px}.top-actions button{font-size:12px;padding:7px}.top-stats b{font-size:17px}.history-shortcut{display:none}}
@media(max-width:900px){.game-shell{grid-template-rows:124px minmax(0,1fr)!important}.game-topbar{height:124px!important;display:flex!important;flex-wrap:wrap;align-content:center;gap:8px!important;padding:8px 10px!important}.game-topbar .compact-brand span{display:none}.game-topbar .top-stats{gap:10px}.game-topbar .top-stats b{font-size:16px}.game-topbar .phase-badge{font-size:11px;padding:5px}.game-topbar .top-actions{margin-left:auto;gap:4px}.game-topbar .top-actions button{font-size:11px;padding:6px}.game-topbar .top-actions #copy,.game-topbar .top-actions .history-shortcut,.game-topbar .top-actions [data-modal=settings]{display:none}.round-track{order:10;flex:0 0 100%;max-width:none;min-width:0;height:44px}.round-track li{font-size:12px}.supply-dialog .modal-heading{gap:8px;padding:14px}.supply-dialog .modal-heading h2{font-size:18px}.supply-dialog .modal-heading button{font-size:12px;white-space:nowrap}.supply-cards{gap:12px;justify-content:flex-start}.supply-cards .card{flex-basis:144px;width:144px;height:228px}.supply-dialog .modal-body{padding:16px}.rulebook h3:first-of-type{font-size:25px}}

.supply-cards .resource-art{height:100%}.supply-reopen{position:fixed;z-index:15;right:26px;bottom:254px;padding:12px 20px;border:1px solid #d5b577;background:#30413a;color:#ffdfa1;box-shadow:0 6px 24px #0008;font-weight:700}.supply-dialog .card{grid-template-rows:36px minmax(0,1fr) 22px}
@media(max-width:900px){.supply-reopen{bottom:72px;right:12px;font-size:13px;padding:10px 14px}}

@media(min-width:901px){.supply-reopen{display:none}}

/* Inline incident dialogue and local hand sorting. */
.incident-dialogue{margin:8px 0 0;font:500 13px/1.5 Pretendard,sans-serif;font-style:normal;color:#e6c991;text-shadow:0 1px 4px #000;flex-shrink:0}.hand-sort{margin:0 0 0 auto;flex:none}.hand-sort select{font:500 12px Pretendard,sans-serif;color:#e7d7ae;background:#15272c;border:1px solid #8b815e;border-radius:4px;padding:5px 8px;max-width:150px}.hand-sort select:focus-visible{outline:2px solid #dec482;outline-offset:2px}.hand-heading>span{margin-left:auto}.hand-heading{gap:10px}.incident-copy>h2,.incident-copy>span{flex-shrink:0}
@media(max-width:900px){.incident-banner{height:270px}.incident-dialogue{font-size:13px}.hand-sort{margin-left:auto}.hand-heading>span{flex-basis:100%;order:3;margin-left:0}.hand-heading .hand-sort{order:2}}

/* Phone/tablet workspace. Desktop panels retain their existing layout. */
.mobile-menu-button,.mobile-hand-context,.mobile-event-action{display:none}
.mobile-supply-shortcut{display:none}
.mobile-menu-grid{display:grid;gap:12px}.mobile-menu-grid>p{margin-top:0}.mobile-menu-grid strong{color:#e5c888;letter-spacing:1px}.mobile-menu-grid>button{min-height:48px;text-align:left;padding:12px 16px}
@media(max-width:900px){
 .game-mode,.game-mode #app{height:var(--phone-height,100dvh)}
 .game-shell{grid-template-rows:calc(130px + env(safe-area-inset-top)) minmax(0,1fr) calc(64px + env(safe-area-inset-bottom))!important}
 .game-topbar{height:auto!important;display:grid!important;grid-template-columns:24px minmax(0,1fr) auto;grid-template-rows:44px 22px 40px;gap:6px 8px!important;padding:calc(8px + env(safe-area-inset-top)) 12px 4px!important;align-content:start}
 .compact-brand{grid-column:1;grid-row:1;font-size:28px}.game-topbar .top-stats{grid-column:2;grid-row:1;gap:10px}.top-stats>span{font-size:11px}.game-topbar .top-stats b{font-size:17px;margin-left:3px}.top-stats .critical{padding:3px}
 .game-topbar .top-actions{grid-column:3;grid-row:1;gap:6px;margin:0}.game-topbar .top-actions>button{display:none}.game-topbar .top-actions>[data-modal=rulebook],.game-topbar .top-actions>.mobile-menu-button{display:block;min-width:44px;min-height:44px;font-size:13px;padding:6px}.game-topbar .phase-badge{grid-column:1/-1;grid-row:2;justify-self:start;font-size:12px;padding:2px 7px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
 .round-track{grid-column:1/-1;grid-row:3;width:100%;height:40px;gap:4px}.round-track li{font-size:11px}.round-track b{height:12px;font-size:12px}.round-track small{font-size:10px}
 .game-grid{padding:8px 8px 4px}.game-panel{border-radius:10px}.mobile-tabs{height:100%;padding:5px 8px calc(5px + env(safe-area-inset-bottom));gap:6px}.mobile-tabs button{min-height:48px;font-size:14px;font-weight:600;border-radius:8px}.mobile-tabs button.active{box-shadow:inset 0 1px #eedba5}
 .event-panel{overscroll-behavior:contain}.incident-banner{height:auto;min-height:245px}.incident-copy{padding:18px 16px;min-height:245px}.incident-copy h2{font-size:25px}.incident-story{font-size:14px;-webkit-line-clamp:unset;display:block;line-height:1.7}.incident-dialogue{font-size:13px;line-height:1.6}.incident-banner:before{background:linear-gradient(180deg,#07111550,#071115e8 55%,#071115fa)}
 .event-objectives{padding:14px 12px;gap:10px}.damage-badge{padding-left:10px}.damage-badge strong{font-size:24px}.required-chips{gap:5px}.event-objectives .sum-chip{padding:6px;font-size:13px;gap:4px}.event-objectives .sum-chip b{font-size:23px}.phase-instruction{padding:12px 10px 10px;margin:10px 10px 0}.phase-instruction p{font-size:13px}.submission-progress{padding:12px}.submission-progress>span{font-size:12px}
 .mobile-event-action{display:block;padding:10px 12px 14px}.mobile-event-action button{width:100%;min-height:46px;font-size:15px}.result-actions button,.lobby-actions button{min-height:44px}.lobby-brief h2{font-size:25px}.lobby-actions{display:grid;grid-template-columns:1fr 1fr}.lobby-actions #start{grid-column:1/-1}
 .hand-panel{padding:10px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:0}.hand-heading{padding:0 0 8px;align-items:center;gap:6px}.hand-heading h2{font-size:17px}.hand-heading>span{display:none}.hand-sort select{min-height:44px;font-size:13px;max-width:160px}
 .mobile-hand-context{display:block;border:1px solid #6e7c614d;border-radius:6px;background:#203331;padding:9px 10px;margin-bottom:6px}.mobile-hand-context>strong{display:block;color:#e7d4a4;font-size:13px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-hand-context>div{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.mobile-hand-context .sum-chip{font-size:12px;padding:4px 5px;gap:3px}.mobile-hand-context .sum-chip b{font-size:17px}.mobile-hand-risk{font-size:11px;color:#efb5a0;margin-left:auto}.mobile-hand-context>span{font-size:13px;color:#bcc8b5}
 .hand-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start;align-items:start;overflow-x:hidden;overflow-y:auto;padding:8px 4px 12px;scrollbar-width:thin;touch-action:pan-y}.game-mode .hand-cards .card{width:100%;min-width:0;height:210px;max-width:none;padding:6px;grid-template-rows:36px minmax(0,1fr) 22px}.hand-cards .card-top{height:36px}.hand-cards .card-top>span{font-size:14px}.hand-cards .card-top b{font-size:30px}.game-mode .hand-cards .card.selected{transform:translateY(-2px)}.hand-cards .empty-deck{grid-column:1/-1;padding:32px 12px}
 .hand-toolbar{padding:9px 0 0;gap:8px;background:#15252a}.hand-toolbar #selected-summary{font-size:13px;max-height:76px;overflow:auto;gap:5px;min-height:25px}.hand-toolbar .sum-chip{font-size:12px;padding:4px 5px}.hand-toolbar .sum-chip b{font-size:17px}.hand-toolbar>button{min-height:48px;font-size:15px;padding:12px}.hand-toolbar #selected-summary small{font-size:12px}
 .chat-panel .panel-heading{height:46px;padding:10px 14px}.chat-panel #messages{padding:4px 14px;overscroll-behavior:contain}.chat-panel #chat-input{font-size:16px;padding:10px;line-height:1.4}.chat-panel #chat-form{padding:10px;align-items:stretch}.chat-panel #chat-form button{min-height:44px;min-width:48px}.crew-list li{min-height:66px}.crew-person .job-badge{min-height:36px;padding:7px 10px}.crew-bottom button{min-height:44px}
 #game-dialog{width:calc(100vw - 20px);max-height:calc(var(--phone-height,100dvh) - 24px);display:none;flex-direction:column}.game-mode #game-dialog[open]{display:flex}.modal-heading{flex:none;min-height:60px;padding:10px 14px}.modal-heading h2{font-size:19px}.modal-heading button{min-height:44px;min-width:44px}.modal-body,.supply-dialog .modal-body{min-height:0;max-height:none;overflow:auto;padding:16px;overscroll-behavior:contain}.modal-body input,.modal-body select{font-size:16px}.modal-actions{position:sticky;bottom:-16px;background:#1a2b2df5;padding:12px 0}.modal-actions button{min-height:48px;flex:1}.supply-dialog .modal-heading h2{font-size:17px}.supply-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;padding:12px 2px}.game-mode .supply-cards .card{width:100%;min-width:0;height:180px;padding:4px;grid-template-rows:32px minmax(0,1fr) 20px}.supply-cards .card-top{height:32px;padding:0 1px}.supply-cards .card-top>span{font-size:11px}.supply-cards .card-top b{font-size:25px}.supply-dialog #supply-summary{gap:6px;min-height:35px;font-size:13px}.supply-dialog #supply-confirm{min-width:0;width:100%;min-height:48px}.supply-dialog .modal-body>p{font-size:14px;line-height:1.6}.supply-note{font-size:12px!important}.supply-reopen{bottom:calc(76px + env(safe-area-inset-bottom));min-height:44px;right:16px}
 .game-mode #toast{bottom:calc(80px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);font-size:14px}
 body:not(.game-mode)>header{padding:12px 16px;min-height:64px}body:not(.game-mode)>header .brand{font-size:30px}body:not(.game-mode)>header .brand span{font-size:15px}body:not(.game-mode)>header .pill{font-size:11px}
 body:not(.game-mode) #app{display:flex;flex-direction:column;padding:16px;gap:16px}.entry{order:0;width:100%;padding:24px;margin:0}.entry h2{font-size:27px}.entry label{font-size:15px}.entry input:not([type=checkbox]){font-size:16px;min-height:48px}.entry button{min-height:48px;font-size:15px}.entry .eyebrow{font-size:10px}.hero{order:1;min-height:380px;margin:0}.hero-copy{padding:28px}.hero h1{font-size:35px}.hero .lead{font-size:15px}.hero .stats{margin:18px 0;gap:26px}.hero-caption{display:none}body:not(.game-mode)>footer{padding:16px;font-size:11px}
}
@media(min-width:600px) and (max-width:900px){.hand-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.game-mode .hand-cards .card{height:230px}.supply-cards{max-width:550px;margin:auto}.game-mode .supply-cards .card{height:220px}}
@media(max-width:360px){.game-topbar{padding-left:8px!important;padding-right:8px!important;gap:6px 4px!important;grid-template-columns:20px minmax(0,1fr) auto}.game-topbar .top-stats{gap:6px}.game-topbar .top-stats b{font-size:15px}.game-topbar .top-actions{gap:3px}.game-topbar .top-actions>button{font-size:12px!important}.game-mode .hand-cards .card{height:185px}.event-objectives .sum-chip{font-size:12px}.event-objectives .sum-chip b{font-size:20px}}
@media(max-width:900px) and (max-height:500px){.game-shell{grid-template-rows:60px minmax(0,1fr) 54px!important}.game-topbar{grid-template-rows:44px!important;padding-top:6px!important}.game-topbar .round-track,.game-topbar .phase-badge{display:none}.mobile-tabs{padding-top:2px;padding-bottom:2px}.mobile-tabs button{min-height:44px}.game-mode .hand-cards .card{height:155px}.hand-panel{grid-template-rows:auto minmax(0,1fr) auto}.mobile-hand-context{display:none}.hand-toolbar{flex-direction:row}.hand-toolbar>button{width:auto;min-width:130px}.incident-copy{min-height:200px}.supply-cards{max-width:390px}.game-mode .supply-cards .card{height:140px}}
@media(max-width:900px){.supply-reopen{display:none}.game-shell:has(.mobile-supply-shortcut){grid-template-rows:calc(152px + env(safe-area-inset-top)) minmax(0,1fr) calc(64px + env(safe-area-inset-bottom))!important}.game-topbar:has(.mobile-supply-shortcut){grid-template-rows:44px 44px 40px}.mobile-supply-shortcut{display:block;grid-column:2/4;grid-row:2;justify-self:end;min-height:44px;padding:8px 14px;font-size:13px;color:#efcf8c;background:#2a3d35;border-color:#b39b60}.game-topbar:has(.mobile-supply-shortcut) .phase-badge{grid-column:1/3;align-self:center;justify-self:start}}
@media(max-width:900px) and (max-height:500px){.game-shell:has(.mobile-supply-shortcut){grid-template-rows:60px minmax(0,1fr) 54px!important}.game-topbar:has(.mobile-supply-shortcut){grid-template-columns:24px 1fr auto auto;grid-template-rows:44px}.mobile-supply-shortcut{grid-row:1;grid-column:3}.game-topbar:has(.mobile-supply-shortcut) .top-actions{grid-column:4}}
/* v0.8: clear selection, reversible submission, crew progress and chat bubbles. */
.game-mode .card.selected{outline:4px solid #61f5da;outline-offset:2px;box-shadow:0 0 0 7px #61f5da35,0 8px 20px #0009;transform:translateY(-5px)}
.game-mode .card.selected .card-check{background:#07554b;color:#fff;box-shadow:0 0 0 2px #61f5da;font-weight:800}
.game-mode .card.pending-card{opacity:1;outline:3px dashed #eac47c;outline-offset:1px;box-shadow:0 0 0 5px #eac47c16}
.game-mode .pending-card .card-check{width:auto;padding:0 4px;background:#302713;color:#ffe3a4;font-size:11px;white-space:nowrap}
.hand-toolbar .cancel-submission{background:#203c3c;border:2px solid #67d8ca;color:#d8fff7;min-width:110px}
.submission-crew{display:flex;flex-wrap:wrap;gap:5px;list-style:none;padding:0;margin:8px 0 0;max-height:90px;overflow:auto}
.submission-crew li{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #526068;border-radius:5px;background:#18262d;color:#d0d9dd;min-width:0;font-size:12px}
.submission-crew strong{max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submission-crew small{font-size:11px;color:#c2cdd2}
.submission-crew .is-done{border-color:#5dc6ab;background:#183c35;color:#a7ffdc}.submission-crew .is-done small{color:#a7ffdc}
.crew-person .remove-bot{font-size:11px;padding:3px 7px;margin-top:4px;color:#ffc5b5;border-color:#9e6e60;background:#302c2a}
.chat-panel #messages .chat-message{display:flex;gap:8px;align-items:flex-start;border:0;padding:0;margin:0 0 16px;background:none;min-width:0}
.chat-avatar{display:grid;place-items:center;width:34px;height:42px;flex:0 0 34px;overflow:hidden;border:1px solid #8d8664;border-radius:7px;background:#263b40;color:#e4d29f;font-size:23px}.chat-avatar .atlas-art{width:100%;height:100%}
.chat-panel #messages .chat-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:calc(100% - 42px);gap:4px}
.chat-panel #messages .chat-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.chat-panel #messages .chat-meta strong{font-size:14px;color:#f4e6bb;font-weight:750;overflow-wrap:anywhere}.chat-meta small{font-size:11px;color:#becfc9}
.chat-panel #messages .chat-bubble{margin:0;padding:9px 11px;border:1px solid #4c6368;border-radius:2px 12px 12px 12px;background:#263b43;color:#f0f4ef;font-size:14px;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap;max-width:100%}
.chat-panel #messages .chat-content time{font-size:11px;color:#b8c9c5}
.chat-panel #messages .chat-message.is-mine{flex-direction:row-reverse}.chat-panel #messages .is-mine .chat-content{align-items:flex-end}.chat-panel #messages .is-mine .chat-meta{justify-content:flex-end}.chat-panel #messages .is-mine .chat-bubble{background:#d4bd7d;border-color:#e7d59d;color:#182c2e;border-radius:12px 2px 12px 12px}
@media(max-width:900px){.hand-toolbar:has(.cancel-submission){display:grid;grid-template-columns:1fr 1fr}.hand-toolbar:has(.cancel-submission) #selected-summary{grid-column:1/-1}.hand-toolbar:has(.cancel-submission)>button{min-width:0}.submission-crew{max-height:110px}.game-mode .card.selected{outline-width:4px}.crew-person .remove-bot{min-height:36px}}
.game-mode .hand-cards{padding:16px 10px 14px;align-items:start}
/* Keep lift + outline inside the scrolling viewport, even on short desktops. */
@media(min-width:901px){.game-mode .hand-cards .card{max-height:100%;min-height:0}}
/* Mobile browser bars may stay visible: fit the game to the visible area itself. */
@media(max-width:900px){
 body.game-mode{position:fixed;inset:0;width:100%;height:var(--phone-height,100dvh);min-height:0;overflow:hidden;overscroll-behavior:none}
 body.game-mode #app{position:fixed;top:var(--phone-top,0px);left:0;width:100%;height:var(--phone-height,100dvh);min-height:0;overflow:hidden}
 .game-shell{min-height:0}
}
/* Incident focus: persistent status + a quiet beacon, without moving the story. */
.stage-cue{--cue-color:#e5c680;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(ellipse at center,#20383bf5,#071217f5);color:var(--cue-color);overflow:hidden}.cue-content{position:relative;text-align:center;padding:24px;max-width:90vw}.cue-symbol{display:block;font-size:72px;font-weight:700;line-height:1.2}.cue-content h2{font-size:32px;margin:14px 0;font-weight:750;letter-spacing:-1px}.cue-content p{font-size:16px;line-height:1.7;color:#e1e8df;margin:0}.cue-skip{margin-top:22px;background:transparent;border:1px solid #abbda966;color:#e1e8df;padding:8px 18px}.cue-orbit{position:absolute;width:min(70vw,480px);aspect-ratio:1;border:1px solid currentColor;border-radius:50%;opacity:.16;box-shadow:0 0 0 25px #c6d6b508,0 0 0 70px #c6d6b505}.cue-success{--cue-color:#a4e2be}.cue-failure{--cue-color:#f0a28f;background:radial-gradient(ellipse at center,#422b2bf5,#130f17f5)}.cue-supply{--cue-color:#9cdce7;background:radial-gradient(ellipse at center,#254149f5,#08151df5)}.cue-round .cue-symbol{font-size:64px;font-variant-numeric:tabular-nums}.arrival-note{color:#dfd3b5;font-size:15px}.arrival-cards .section-title{display:none}.arrival-cards .identity-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.arrival-cards .identity-card{min-width:0}.arrival-cards .portrait,.arrival-cards .role-illustration{width:100%;max-width:150px;height:auto;aspect-ratio:3/4;margin:0 auto 12px}.arrival-cards .identity-copy h3{font-size:23px}.arrival-cards .identity-copy p,.arrival-cards .identity-copy blockquote{font-size:13px;line-height:1.6}.arrival-cards .eyebrow{display:none}#close-arrival{display:block;width:100%;margin-top:16px;min-height:44px}
@media(prefers-reduced-motion:no-preference){.stage-cue{animation:cue-screen 180ms ease-out both}.cue-content{animation:cue-arrive 350ms ease-out both}.cue-orbit{animation:cue-ring 1200ms ease-out both}.cue-supply .cue-symbol{animation:cue-dock 450ms ease-out both}@keyframes cue-screen{from{opacity:0}to{opacity:1}}@keyframes cue-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes cue-ring{from{opacity:0;transform:scale(.7)}to{opacity:.16;transform:scale(1.05)}}@keyframes cue-dock{from{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}}
@media(max-width:900px){.stage-cue{top:var(--phone-top,0px);height:var(--phone-height,100dvh);bottom:auto}.cue-content h2{font-size:26px}.cue-content p{font-size:14px}.cue-symbol{font-size:58px}.arrival-cards .identity-cards{gap:8px}.modal-body .arrival-cards .identity-card{padding:10px}.arrival-cards .identity-copy h3{font-size:18px}.arrival-cards .identity-copy p,.arrival-cards .identity-copy blockquote,.arrival-cards .identity-copy small{font-size:12px;line-height:1.5}.arrival-cards .role-heading{gap:3px;flex-wrap:wrap}.arrival-cards .card-tag{font-size:11px}.arrival-cards .role-heading button{font-size:11px;padding:4px}.arrival-cards .objective{padding:8px}}
.supply-interlude{padding:24px;background:linear-gradient(145deg,#403a28,#1b3030);min-height:100%}.supply-interlude h2{font-size:27px;color:#ffe0a0;margin:12px 0}.supply-interlude p{font-size:15px;line-height:1.7;color:#d5ded0}.supply-interlude>strong{display:block;padding:14px 0;color:#e9cd8c}.supply-interlude .submission-progress{padding:20px 0}.round-track .supply-step{color:#e3c783;border-top-style:dashed;flex:1.25}.round-track .supply-step>span:first-child{font-size:10px}
@media(max-width:900px){.round-track{gap:2px}.game-mode .hand-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;padding:14px 7px;align-content:start}.game-mode .hand-cards .card{height:auto;aspect-ratio:3/4.5;padding:3px;grid-template-rows:26px minmax(0,1fr) 18px;max-height:none}.game-mode .hand-cards .card-top{height:26px;padding:0;gap:1px}.game-mode .hand-cards .card-top>span{font-size:10px;white-space:nowrap;letter-spacing:-.5px}.game-mode .hand-cards .card-top b{font-size:23px}.game-mode .hand-cards .card-bottom{height:18px}.game-mode .hand-cards .card-bottom>span:first-child{display:none}.game-mode .hand-cards .card-check{width:16px;height:16px;font-size:11px}.supply-interlude{padding:18px}.supply-interlude h2{font-size:24px}}
.event-panel.event-is-active{border-color:#d5b676;box-shadow:inset 0 0 0 1px #d5b67655,0 0 15px #d5b67616}
.incident-signal{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:9px;min-height:38px;padding:9px 14px;border-bottom:1px solid #786c4e;background:#25302c;color:#e7d4a9}
.incident-signal strong{font-size:14px;font-weight:750;white-space:nowrap}.signal-hint{margin-left:auto;font-size:12px;color:#ddd4bd;text-align:right;line-height:1.4}
.signal-light{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:#8e9690;flex:none}
.signal-active{background:linear-gradient(100deg,#4a3b20,#28362f 70%);color:#ffe1a0}.signal-active .signal-light{background:#ffd482}.signal-active .signal-light:after{content:'';position:absolute;inset:-4px;border:1px solid #ffe0a3;border-radius:50%;pointer-events:none}
@media(prefers-reduced-motion:no-preference){.signal-active .signal-light:after{animation:incident-beacon 2.8s ease-out infinite}.signal-arrive{animation:incident-notice 450ms ease-out}@keyframes incident-beacon{0%{opacity:.65;transform:scale(.65)}75%,100%{opacity:0;transform:scale(1.65)}}@keyframes incident-notice{from{background:#745b2e}to{background:#29362e}}}
@media(max-width:900px){.incident-signal{padding:9px 12px;gap:8px;min-height:42px}.incident-signal strong{font-size:13px}.signal-hint{font-size:11px;max-width:52%;word-break:keep-all}}
@media(min-width:901px) and (max-height:800px){.incident-signal{min-height:30px;padding:5px 14px}.incident-signal+.incident-banner{height:140px}.incident-signal+.incident-banner .incident-copy{padding:8px 16px}.incident-signal+.incident-banner h2{margin:4px 0 6px}.incident-signal+.incident-banner .incident-dialogue{margin-top:5px}}
