@charset "UTF-8";
:root{color-scheme:dark;--bg:#111510;--panel:#1b2219;--line:#36412e;--text:#ecefe3;--muted:#a4b096;--orange:#f4965a;--green:#b0c68a;--red:#df8976;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:16px/1.5 "Pretendard","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible{outline:2px solid #ffc090;outline-offset:2px}h2,h3,p{margin:0}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.eyebrow{font:12px var(--mono);letter-spacing:1px;color:var(--muted)}.micro{font-size:12px;line-height:1.8;color:var(--muted);margin-top:15px}.pill{display:inline-block;padding:3px 8px;background:#2c3823;border:1px solid #465537;color:#bfd0a7;font-size:12px;border-radius:4px}.pill.red{color:#f0b0a0;background:#442c22;border-color:#754936}.full{width:100%;margin-top:16px!important}.icon-btn{width:34px;height:34px;display:inline-grid;place-items:center;background:transparent;border-radius:5px;color:var(--muted);padding:6px}.icon-btn:hover{background:#35432b;color:var(--text)}.icon-btn.active{color:var(--orange)}
.site-header{height:56px;border-bottom:1px solid #303a29;background:#161c13}.header-inner{max-width:1180px;padding:0 18px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.brand>b{font:24px Impact,"Arial Narrow",sans-serif;letter-spacing:.8px}.brand>b>span{color:var(--orange)}.brand-symbol{width:31px;height:32px;display:grid;place-items:center;border-radius:4px;background:var(--orange);color:#182012}.brand-symbol .icon{width:25px;height:25px}.session-clock{display:flex;align-items:center;gap:9px;font-family:var(--mono)}.session-clock>.icon{width:18px;height:18px;color:#aabd8e}.session-clock small{font-size:12px;color:#98a986}.session-clock b{font-size:20px;font-weight:500}.header-btn{display:flex;align-items:center;gap:6px;background:#222e1b;border:1px solid #455336;border-radius:5px;font-size:13px;padding:7px 10px}.header-btn .icon{width:16px;height:16px}.header-btn:hover{border-color:#94a678}.game-shell{max-width:1180px;height:calc(100dvh - 56px);min-height:540px;margin:auto;padding:12px 18px 14px;display:flex;flex-direction:column;gap:10px}.situation-bar{display:flex;align-items:center;gap:20px;min-height:37px;flex-shrink:0;padding:6px 12px;background:#24291d;border:1px solid #3e4530;border-radius:5px;font-size:13px}.survivor-count{display:flex;gap:7px;align-items:center;white-space:nowrap}.survivor-count .icon{width:16px;height:16px;color:#b1c192}.survivor-count b{font:19px var(--mono)}.survivor-count small{font-size:12px;color:#7e906c}.zone-countdown{display:flex;align-items:center;gap:7px;color:#cfbea0;font-size:13px}.zone-countdown .icon{color:var(--orange);width:15px;height:15px}.zone-countdown b{font:15px var(--mono);color:var(--orange)}.zone-countdown.critical{color:#f0a58c}.mode-label{margin-left:auto;font-size:12px;color:#94a17e;white-space:nowrap}
.player-strip{display:flex;align-items:center;gap:24px;padding:8px 12px;min-height:61px;flex-shrink:0;background:#1b2417;border:1px solid #36452b;border-radius:6px}.player-identity{background:transparent;display:flex;align-items:center;gap:10px;min-width:180px;text-align:left;padding:0}.player-identity>span{display:flex;flex-direction:column;gap:2px}.player-identity b{font-size:16px;font-weight:600}.player-identity small{font-size:12px;color:#c9bd9b}.portrait{background:#25301f url('/assets/survivor-portraits.png') var(--px,0%) var(--py,0%)/300% 200%;width:80px;height:90px;border:1px solid #536144;border-radius:5px;flex-shrink:0}.mini-portrait{width:38px;height:42px}.compact-vitals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;flex:1}.meter-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:5px}.meter-label>span{display:flex;align-items:center;gap:6px;color:#c5d0b5}.meter-label b{font:16px var(--mono)}.meter-label .icon{width:15px;height:15px}.meter-track{height:5px;border-radius:3px;overflow:hidden;background:#34412b}.meter-track i{display:block;height:100%;background:#b1c789;transition:width .18s}.health{color:#b8cf94}.stamina{color:#d3b47a}.hunger{color:#9cbcb1}.health .meter-track i{background:#b1c789}.stamina .meter-track i{background:#c4a16b}.hunger .meter-track i{background:#8cb0a2}
.arena{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:16px}.map-panel{display:flex;flex-direction:column;min-height:240px;min-width:0;overflow:hidden}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 12px;border-bottom:1px solid var(--line);min-height:41px;flex-shrink:0;font-size:14px}.map-heading>span{display:flex;align-items:center;gap:7px}.map-heading>span>.icon{color:#aabc91;width:17px;height:17px}.map-heading small{font-size:12px;color:#94a781;margin-left:7px}.map-heading>div{display:flex;align-items:center;gap:1px}.board-area{flex:1;min-height:0;container-type:size;display:grid;place-items:center;padding:5px 10px 5px 5px}.map-wrap{width:min(100%,calc(100dvh - 250px));width:min(100cqw,100cqh);aspect-ratio:1;display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:18px minmax(0,1fr);min-width:0;min-height:0}.x-axis{grid-column:2;display:grid;grid-template-columns:repeat(9,1fr)}.y-axis{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(9,1fr)}.x-axis span,.y-axis span{display:grid;place-items:center;color:#9daf89;font:12px var(--mono)}.island-map{grid-column:2;grid-row:2;aspect-ratio:1;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));background:linear-gradient(#10201422,#07100d33),url('/assets/island-map.png') center/cover;border:1px solid #617151;border-radius:3px;overflow:hidden;isolation:isolate}.map-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;background:#14201113;padding:0;border:0;border-right:1px solid #cad8b526;border-bottom:1px solid #cad8b526;color:#d4dfc5;transition:background .15s,box-shadow .15s}.map-cell:disabled{opacity:1;cursor:default}.map-cell.sea{background:#0815179c;border-color:#9fb8ad10}.map-cell.land:hover{background:#d4eaaa26;box-shadow:inset 0 0 0 1px #deeed5a0;z-index:2}.map-cell.adjacent{background:#f3ab6830;box-shadow:inset 0 0 0 1px #eab374a6}.map-cell.current,.map-cell.selected{background:#eb914732;box-shadow:inset 0 0 0 2px var(--orange);z-index:3}.map-cell.restricted{background:repeating-linear-gradient(135deg,#a7443c50,#a7443c50 4px,#ad514435 4px,#ad514435 10px);border-color:#dc7d7040}.map-cell.upcoming{background:#f2a24a38;outline:1px dashed #dba661;outline-offset:-3px}.poi-icon{display:grid;place-items:center;background:#17271ec7;border:1px solid #b4c99580;padding:4px;border-radius:4px;color:#e3ecd4}.poi-icon .icon{width:20px;height:20px}.poi-label{font-size:12px;white-space:nowrap;background:#101b12c9;line-height:1.4;margin-top:2px;padding:0 2px;border-radius:2px;color:#e0e9d3}.you-pin{width:27px;height:27px;display:grid;place-items:center;color:#1c2516;background:var(--orange);border-radius:50%;box-shadow:0 0 0 4px #f6ad653a}.you-pin .icon{width:18px;height:18px;stroke-width:2}.you-label{font-size:12px;color:#ffe0bb;font-weight:600;text-shadow:0 1px 3px #000;margin-top:1px}.adj-marker{font:21px var(--mono);color:#fbd2a5d0}.zone-cross{position:absolute;right:2px;top:0;font:15px var(--mono);color:#e79b818c}.map-legend{display:flex;align-items:center;justify-content:center;gap:20px;min-height:30px;padding:4px 10px;flex-shrink:0;font-size:12px;color:#a8ba95;border-top:1px solid #2e3b25}.map-legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.map-legend i{width:7px;height:7px;display:block}.legend-you{background:var(--orange);border-radius:50%}.legend-next{border:1px solid #d3a575}.legend-danger{background:#c4775e}.legend-drop{background:#7dbfc2}.drop-icon{background:#143338;border-color:#7ad2cf;color:#b6eeea}
.control-deck{display:grid;grid-template-rows:auto minmax(160px,1fr) 64px 52px;gap:12px;min-height:0;align-content:start}.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px;background:#242d1d;border:1px solid #465136;border-radius:6px}.selected-info{display:flex;align-items:center;gap:10px;padding:0;background:none;text-align:left;min-width:0}.selected-info>span:last-child{display:flex;flex-direction:column;gap:2px}.selected-info b{font-size:17px;font-weight:600}.selected-info small{font-size:12px;color:#9aad83}.sector{font:17px var(--mono);color:var(--orange);background:#3d3420;border:1px solid #665031;padding:8px 7px;border-radius:4px}.start-controls{display:flex;align-items:center;gap:4px;width:100%}.start-controls .primary-btn{flex:1}.selection-bar>.primary-btn{width:100%}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:5px;min-height:41px;padding:9px 12px;font-size:14px;font-weight:600;white-space:nowrap}.primary-btn{background:var(--orange);color:#251e14;border:1px solid #f5a26c}.primary-btn:not(:disabled):hover{background:#ffb17a}.secondary-btn{background:#29371f;color:#c6d5b2;border:1px solid #566b3e}.secondary-btn:not(:disabled):hover{background:#3c4d2e}.primary-btn .icon,.secondary-btn .icon{width:17px;height:17px}.primary-btn small,.secondary-btn small{font-size:12px;opacity:.85;font-weight:400}.action-area{min-height:0}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,1fr);gap:10px;height:100%}.action-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:15px;background:#242e1e;border:1px solid #445638;border-radius:6px;text-align:left}.action-card:not(:disabled):hover{background:#34472a;border-color:#9bb87a}.action-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.action-top .icon{width:25px;height:25px;color:#b7cf98}.action-top small{font:14px var(--mono);color:#b2c396}.action-card>b{font-size:18px;font-weight:600}.action-effect{font-size:13px;color:#a5b88d}.latest-event{display:flex;align-items:center;gap:9px;text-align:left;width:100%;padding:8px 11px;background:#202b1b;border:1px solid #3b4f2e;border-radius:5px;min-width:0;color:#bacaab}.latest-event>span{color:#94ac7c}.latest-event .icon{width:17px;height:17px}.latest-event p{font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all;overflow-wrap:anywhere}.latest-event.danger{border-color:#755039;color:#edb590;background:#31271c}.latest-event.loot{color:#bdd995}.utility-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.utility-nav>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#1c2618;border:1px solid #3d4d30;border-radius:5px;padding:5px;font-size:12px;color:#b6c6a2}.utility-nav>button:hover{color:var(--orange);border-color:#92845c}.utility-nav .icon{width:18px;height:18px}.utility-nav small{font:12px var(--mono);color:var(--orange)}
.recovery-box{height:100%;padding:20px 17px;display:flex;flex-direction:column;justify-content:center;gap:22px;border:1px solid #758452;border-radius:7px;background:#2b3721}.recovery-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.recovery-top>span{display:flex;align-items:center;gap:9px;color:#d4e4b5}.recovery-top b{font-size:18px;font-weight:550}.recovery-top>strong{font:25px var(--mono);color:var(--orange)}.recovery-progress{display:block;width:100%;height:8px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:#455337;color:#bad190}.recovery-progress::-webkit-progress-bar{background:#455337;border-radius:8px}.recovery-progress::-webkit-progress-value{background:#bad190;border-radius:8px}.recovery-progress::-moz-progress-bar{background:#bad190;border-radius:8px}.recovery-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.recovery-bottom>span{font-size:14px;color:#cad9b6;line-height:1.8}.recovery-bottom small{font-size:12px;color:#9aae81}.combat-box{height:100%;display:flex;flex-direction:column;justify-content:center;padding:18px 14px;background:#30281d;border:1px solid #835838;border-radius:7px;gap:15px}.enemy-row{display:flex;align-items:center;gap:10px}.enemy-portrait{width:45px;height:52px;border-color:#8a6e45}.enemy-row>div:nth-child(2){display:flex;flex-direction:column;flex:1;gap:4px;min-width:0}.enemy-row small{color:#e1b784;font-size:12px}.enemy-row b{font-size:17px;font-weight:600;display:flex;align-items:baseline;gap:8px}.enemy-row b>span{font-size:12px;color:#c4b290;font-weight:400}.enemy-hp{font:16px var(--mono);display:flex;align-items:center;gap:4px;color:#edb494}.enemy-hp .icon{width:14px;height:14px}.enemy-track{background:#5c412e}.enemy-track i{background:#e6a07a}.combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.combat-note{font-size:12px;color:#c9ac85}
.game-dialog{position:fixed;margin:auto;padding:22px;width:min(500px,calc(100% - 28px));max-height:calc(100dvh - 36px);overflow:auto;color:var(--text);background:#1e291b;border:1px solid #5d7349;border-radius:10px;box-shadow:0 25px 90px #000a;scrollbar-width:thin;scrollbar-color:#566c40 transparent}.game-dialog::backdrop{background:#050b08d1;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #3d4e30;padding-bottom:12px;margin-bottom:17px}.dialog-top h2{font-size:21px;line-height:1.5;font-weight:600;letter-spacing:-.4px}.dialog-top>.icon-btn{flex-shrink:0}.dialog-lead{font-size:15px;color:#b1c39f;line-height:1.85;word-break:keep-all}.sheet-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;color:#d1debc;margin:20px 0 9px}.sheet-caption>span{font-size:12px;font-weight:400;color:#a3b98b}.sheet-caption .icon{width:14px;height:14px}.sheet-notice{padding:10px 12px;border:1px solid #7b5d35;border-radius:5px;background:#39321f;color:#e0c192;font-size:14px;line-height:1.7;margin-bottom:12px}.supply,.bag-weapon{display:flex;align-items:center;gap:11px;border-bottom:1px solid #3c4e30;padding:13px 0}.supply>div,.bag-weapon>div{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.supply b,.bag-weapon b{font-size:15px;font-weight:550}.supply small,.bag-weapon small{font-size:12px;color:#a2b78d}.supply em{font:13px var(--mono);color:#d4c19a;margin-left:4px}.weapon-icon{width:39px;height:41px;display:grid;place-items:center;background:#304127;border:1px solid #51653d;border-radius:5px;color:#c1d4a5;flex-shrink:0}.small-btn{min-height:36px;padding:6px 11px;background:#354828;border:1px solid #66824b;border-radius:4px;font-size:13px;white-space:nowrap}.small-btn:not(:disabled):hover{background:#516c3a}.bag-weapon.equipped{color:#e4c795}.profile-card{display:flex;align-items:center;gap:17px}.profile-card h3{font-size:28px;letter-spacing:1px}.profile-card p{font-size:14px;color:var(--muted)}.trait{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#2d3c24;border:1px solid #516540;border-radius:5px;margin:17px 0}.trait>.icon{color:#bdd497;width:17px;height:17px;margin-top:3px}.trait>span{display:flex;flex-direction:column;gap:4px}.trait b{font-size:15px;font-weight:500}.trait small{font-size:13px;color:#aabd93}.profile-vitals{display:flex;flex-direction:column;gap:16px;margin:20px 0}.profile-equipment{display:flex;align-items:center;gap:12px;padding:12px;background:#34341f;border:1px solid #61613b;border-radius:5px}.profile-equipment>.icon{width:26px;height:26px;color:#d8ca9b}.profile-equipment>span{display:flex;flex-direction:column;gap:4px}.profile-equipment b{font-size:15px;font-weight:500}.profile-equipment small{font-size:13px;color:#c4bf9f;line-height:1.7}.log-entry{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid #33472a;color:#acbf98}.log-entry time{font:12px var(--mono);color:#879f70;flex-shrink:0}.log-entry p{font-size:14px;line-height:1.75;overflow-wrap:anywhere}.log-entry.loot,.log-entry.success{color:#c3dd9f}.log-entry.danger{color:#eaaa86}.log-entry.combat{color:#dfc392}.location-detail{display:flex;align-items:center;gap:15px}.terrain-symbol{display:grid;place-items:center;width:50px;height:54px;flex-shrink:0;background:#354929;border:1px solid #5e7946;border-radius:6px;color:#c5dca9}.terrain-symbol .icon{width:30px;height:30px}.location-detail p{font-size:15px;color:#b1c59d;line-height:1.9}.location-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.guide-steps{display:flex;flex-direction:column;gap:18px;margin:22px 0}.guide-steps b{font-size:16px;font-weight:550;color:#e1cc9b}.guide-steps p{font-size:14px;line-height:1.9;color:#aabe94;margin-top:6px}.guide-extra{border:1px solid #4f6938;background:#2b3d22;padding:10px 13px;border-radius:6px}.guide-extra p{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.8;padding:4px 0;color:#b8cda1}.guide-extra .icon{width:16px;height:16px;margin-top:4px}.result-dialog{text-align:center}.result-dialog .dialog-top{text-align:left}.result-emblem{display:grid;place-items:center;width:65px;height:65px;margin:25px auto 12px;border:1px solid #99793f;border-radius:50%;color:#e8bc73;background:#433b23}.result-emblem .icon{width:30px;height:30px}.result-rank{display:flex;flex-direction:column;gap:3px;margin-bottom:16px}.result-rank strong{font:60px Impact,"Arial Narrow",sans-serif;color:#edcd8e}.result-rank span{font-size:14px;color:#b5c29d}.result-stats{display:grid;grid-template-columns:1fr 1.4fr 1fr;border:1px solid #465f34;border-radius:5px;margin-top:20px}.result-stats>span{display:flex;flex-direction:column;align-items:center;gap:5px;padding:13px 5px;font-size:12px;color:#9eb986;border-right:1px solid #465f34}.result-stats>span:last-child{border:0}.result-stats b{font-size:16px;color:#d9e6c5;font-weight:550}
@media(max-width:900px){.arena{grid-template-columns:minmax(0,1fr) 286px;gap:12px}.control-deck{gap:9px}.game-shell{padding:10px 12px;gap:8px}.compact-vitals{gap:16px}.player-identity{min-width:155px}.map-heading small{display:none}.poi-label{display:none}.poi-icon{padding:3px}.poi-icon .icon{width:17px;height:17px}.mode-label{display:none}.action-card{padding:13px}}
@media(max-width:680px){.site-header{height:46px}.header-inner{padding:0 11px;gap:10px}.brand{gap:6px}.brand>b{font-size:20px;letter-spacing:.5px}.brand-symbol{width:25px;height:27px}.brand-symbol .icon{width:21px;height:21px}.session-clock{gap:5px}.session-clock>.icon{display:none}.session-clock small{font-size:12px}.session-clock b{font-size:17px}.header-btn{padding:6px;min-height:32px}.header-btn>span{display:none}.game-shell{height:calc(100dvh - 46px);min-height:580px;padding:6px 9px max(7px,env(safe-area-inset-bottom));gap:6px}.situation-bar{min-height:30px;padding:4px 9px;gap:12px;font-size:12px}.survivor-count{gap:5px}.survivor-count .icon{width:14px;height:14px}.survivor-count b{font-size:16px}.survivor-count small{font-size:12px}.zone-countdown{font-size:12px;gap:5px;margin-left:auto}.zone-countdown b{font-size:14px}.zone-countdown .icon{width:13px;height:13px}.player-strip{min-height:47px;padding:5px 8px;gap:12px}.player-identity{min-width:0;gap:6px;max-width:104px;flex:0 0 96px}.mini-portrait{width:27px;height:32px}.player-identity b{font-size:13px}.player-identity small{font-size:12px;max-width:67px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-vitals{gap:10px}.meter-label{font-size:12px;gap:3px;margin-bottom:4px;align-items:baseline}.meter-label>span{gap:0}.compact-vitals .meter-label .icon{display:none}.meter-label b{font-size:13px}.meter-track{height:4px}.arena{display:flex;flex-direction:column;gap:6px;min-height:0}.map-panel{flex:1;min-height:221px;border-radius:5px}.map-heading{min-height:28px;padding:0 7px;font-size:12px}.map-heading>span{gap:5px}.map-heading>span>.icon{width:14px;height:14px}.map-heading small{display:inline;font-size:12px;margin-left:1px}.map-heading .icon-btn{width:27px;height:27px;padding:5px}.map-heading .icon-btn .icon{width:16px;height:16px}.board-area{padding:3px 8px 3px 3px}.map-wrap{grid-template-columns:16px minmax(0,1fr);grid-template-rows:16px minmax(0,1fr)}.x-axis span,.y-axis span{font-size:12px}.poi-icon{padding:2px;border-radius:3px}.poi-icon .icon{width:15px;height:15px}.poi-label{display:none}.you-pin{width:21px;height:21px;box-shadow:0 0 0 3px #f6ad653a}.you-pin .icon{width:14px;height:14px}.you-label{display:none}.adj-marker{font-size:18px}.zone-cross{font-size:13px}.map-legend{min-height:21px;gap:15px;font-size:12px;padding:2px 7px}.map-legend i{height:6px;width:6px}.control-deck{display:flex;flex-direction:column;gap:6px;flex-shrink:0;min-height:0}.selection-bar{padding:5px 7px;min-height:45px;gap:7px;flex-wrap:nowrap;border-radius:5px}.selected-info{gap:7px;flex:1}.selected-info b{font-size:14px}.selected-info small{font-size:12px;line-height:1.3}.sector{font-size:14px;padding:5px;border-radius:3px}.selection-bar>.primary-btn{width:auto;min-width:112px}.start-controls{width:auto;gap:1px;flex-shrink:0}.start-controls .icon-btn{width:27px;height:30px;padding:5px}.start-controls .icon-btn .icon{width:15px;height:15px}.primary-btn,.secondary-btn{font-size:13px;min-height:33px;padding:6px 9px;gap:5px}.primary-btn .icon,.secondary-btn .icon{width:15px;height:15px}.action-area{min-height:76px}.action-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:6px}.action-card{min-height:76px;padding:6px 8px;gap:2px;border-radius:5px;justify-content:center}.action-top{gap:3px;margin-bottom:1px}.action-top .icon{width:17px;height:17px}.action-top small{font-size:12px}.action-card>b{font-size:14px}.action-effect{font-size:12px;white-space:nowrap}.latest-event{min-height:36px;height:36px;padding:3px 8px;gap:7px}.latest-event .icon{width:14px;height:14px}.latest-event p{font-size:12px;line-height:1.35;-webkit-line-clamp:2;word-break:normal}.utility-nav{gap:6px;min-height:35px}.utility-nav>button{flex-direction:row;gap:5px;padding:6px 2px;font-size:12px;border-radius:4px;min-height:35px}.utility-nav .icon{width:15px;height:15px}.utility-nav small{font-size:12px}.recovery-box{padding:8px 10px;gap:7px;min-height:104px;border-radius:5px}.recovery-top{gap:8px}.recovery-top>span{gap:6px}.recovery-top>span>.icon{width:17px;height:17px}.recovery-top b{font-size:14px}.recovery-top>strong{font-size:20px}.recovery-progress{height:6px}.recovery-bottom{gap:6px;flex-wrap:nowrap}.recovery-bottom>span{font-size:12px;line-height:1.5}.recovery-bottom small{font-size:12px}.recovery-bottom .secondary-btn{min-height:31px;font-size:12px;padding:5px 9px}.combat-box{padding:8px 10px;gap:6px;min-height:113px;border-radius:5px}.enemy-portrait{width:30px;height:35px}.enemy-row{gap:8px}.enemy-row>div:nth-child(2){gap:0}.enemy-row small{font-size:12px}.enemy-row b{font-size:14px;gap:7px}.enemy-row b>span{font-size:12px}.enemy-hp{font-size:14px}.enemy-hp .icon{width:12px;height:12px}.combat-actions{gap:8px}.combat-actions .primary-btn,.combat-actions .secondary-btn{min-height:32px;padding:5px 8px}.combat-note{font-size:12px;line-height:1.25}.game-dialog{padding:17px;width:calc(100% - 22px);max-height:calc(100dvh - 24px);border-radius:9px}.dialog-top{margin-bottom:14px;padding-bottom:10px}.dialog-top h2{font-size:20px}.profile-vitals .meter-label{font-size:14px}.profile-vitals .meter-label b{font-size:16px}.profile-vitals .meter-track{height:5px}.full{min-height:41px;font-size:14px}.sheet-caption{font-size:14px}.sheet-caption>span{font-size:12px}.supply,.bag-weapon{gap:9px}.supply b,.bag-weapon b{font-size:14px}.small-btn{font-size:13px}.result-stats b{font-size:15px}}
@media(max-width:370px){.brand>b{font-size:18px}.header-inner{gap:6px}.player-identity{flex-basis:76px}.mini-portrait{display:none}.compact-vitals{gap:8px}.player-strip{gap:8px}.action-card{padding:6px}.action-effect{font-size:12px}.action-top .icon{width:15px;height:15px}.map-legend{gap:11px}.sector{display:none}.selected-info small{font-size:12px}.selection-bar>.primary-btn{min-width:103px}.utility-nav>button{gap:3px}.utility-nav .icon{width:14px;height:14px}}
@media(max-height:560px) and (min-width:681px){.game-shell{height:auto;min-height:0}.arena{min-height:365px}.map-wrap{width:min(100cqw,100cqh)}.player-strip{min-height:52px}.control-deck{grid-template-rows:auto 150px 45px 42px;gap:7px}.action-card{padding:8px}.action-card>b{font-size:15px}.action-top{margin-bottom:0}.action-top .icon{width:19px;height:19px}.action-effect{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Rooms and tactics share the existing compact play surface. */
.multiplayer-entry{border-color:#829960;color:#d5e4bc}.intel-icon{color:#ffe0aa;border-color:#efa85c;background:#5a371be6}.text-action{display:inline-flex;align-items:center;gap:5px;padding:4px 0;background:transparent;color:#d8c795;font-size:12px;text-decoration:underline;text-underline-offset:4px}.text-action .icon{width:15px;height:15px}.combat-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:25px}.combat-tools>span{font-size:11px}.enemy-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enemy-row b>span{flex-shrink:0}.lobby-label{font-size:13px;color:var(--muted)}.lobby-shell{min-height:calc(100dvh - 56px);padding:24px 14px;display:grid;place-items:center}.lobby-card{padding:28px;width:min(640px,100%);box-shadow:0 16px 60px #0003}.lobby-intro h1{font-size:28px;letter-spacing:-1px;line-height:1.4;margin:8px 0}.lobby-intro p{font-size:14px;color:var(--muted)}.room-code-block{display:flex;align-items:center;gap:12px;background:#27341f;border:1px solid #5a7042;padding:14px;border-radius:7px;margin:18px 0 12px}.room-code-block>span{font-size:12px;color:var(--muted)}.room-code{background:none;padding:4px 0;color:var(--orange);font:26px var(--mono);letter-spacing:3px}.room-code-block>.small-btn{margin-left:auto;font-size:12px}.room-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-bottom:10px}.room-heading small{font-size:12px;color:var(--muted)}.room-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.roster-member{display:flex;align-items:center;gap:7px;padding:10px 8px;background:#25321f;border:1px solid #3e5130;border-radius:5px;min-width:0}.roster-member b{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-member b em{font-style:normal;color:var(--orange);font-size:11px}.roster-member small{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.roster-member.eliminated{opacity:.5}.online-dot{width:6px;height:6px;background:#6a7361;border-radius:50%;flex-shrink:0}.online-dot.online{background:#b7d78c;box-shadow:0 0 7px #b7d78c40}.lobby-rule{display:flex;align-items:center;justify-content:center;gap:7px;padding:14px 0 0;color:#b1c69a;font-size:13px}.lobby-rule .icon{width:17px;height:17px}.lobby-footer{display:flex;justify-content:space-between;margin-top:15px;gap:10px}.mp-error{font-size:13px;color:#efbe90;line-height:1.6;overflow-wrap:anywhere}.mp-error:not(:empty){padding:9px 0}.multiplayer-form{display:flex;flex-direction:column;margin-top:20px}.multiplayer-form label{font-size:13px;color:#d2dfbd;margin:6px 0}.multiplayer-form input,.copy-field{font:inherit;font-size:16px;color:var(--text);background:#121c10;border:1px solid #5a7046;border-radius:5px;min-height:45px;padding:10px 12px;width:100%;outline-offset:3px}.multiplayer-form input:focus,.copy-field:focus{outline:2px solid var(--orange)}.multiplayer-form input::placeholder{color:#839573;font-size:14px}.form-divider{margin:23px 0 13px;display:flex;align-items:center;gap:13px;color:var(--muted);font-size:12px}.form-divider:before,.form-divider:after{content:'';height:1px;background:#465d34;flex:1}.join-row{display:flex;gap:8px}.join-row input{min-width:0;text-transform:uppercase;letter-spacing:4px;font-family:var(--mono)}.join-row button{min-width:76px}.copy-field{margin-top:18px}.tactic-card{border:1px solid #536a3e;background:#293a20;padding:15px;border-radius:6px;margin:16px 0}.tactic-card>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tactic-card b{font-size:16px}.tactic-card>div>span{font-size:12px;color:var(--muted);margin-left:auto}.tactic-card p{font-size:14px;line-height:1.8;color:#b5c89e;margin-top:10px}
@media(max-width:680px){.header-inner{gap:6px}.session-clock small{display:none}.multiplayer-entry span{display:inline;font-size:12px}.multiplayer-entry .icon{width:14px;height:14px}.lobby-shell{min-height:calc(100dvh - 46px);padding:12px 10px}.lobby-card{padding:17px}.lobby-intro h1{font-size:24px}.lobby-intro p{font-size:13px}.room-code-block{padding:10px;gap:8px}.room-code{font-size:22px;letter-spacing:2px}.room-code-block>span{font-size:11px}.room-code-block>.small-btn{padding:6px;font-size:11px}.roster-member{gap:5px;padding:9px 7px;flex-wrap:wrap}.roster-member small{font-size:11px}.room-roster{gap:6px}.combat-tools{min-height:22px}.combat-tools .text-action{padding:2px 0}.combat-tools>span{font-size:11px}.lobby-label{font-size:12px}.tactic-card>div>span{width:100%;margin-left:0}}

.armory-dialog{width:min(760px,calc(100% - 28px))}.armory-lead{font-size:14px;color:var(--muted);line-height:1.7}.armory-filters{display:flex;gap:6px;margin:16px 0}.armory-filters button{flex:1;background:#293820;border:1px solid #4e633b;border-radius:5px;font-size:13px;min-height:38px;padding:6px;color:#c0d1aa}.armory-filters button.active{background:#4d4329;border-color:#c89459;color:#ffe0b5}.armory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.armory-weapon{padding:13px;background:#24301e;border:1px solid #49613b;border-radius:6px;display:flex;flex-direction:column;gap:8px;min-width:0}.armory-weapon-heading{display:flex;align-items:center;gap:9px}.armory-weapon-heading>div{display:flex;flex-direction:column;min-width:0;gap:2px}.armory-weapon-heading b{font-size:15px;line-height:1.4;overflow-wrap:anywhere}.armory-weapon-heading .weapon-icon{width:34px;height:37px}.armory-weapon-heading .weapon-icon .icon{width:23px;height:23px}.rarity-text{font-size:11px;line-height:1.5;font-style:normal;font-weight:400}.rarity-text.rarity-common{color:#b4c6a1}.rarity-text.rarity-uncommon{color:#94cec8}.rarity-text.rarity-rare{color:#e6be7f}.weapon-icon.rarity-uncommon{border-color:#548b86;color:#b4e4da}.weapon-icon.rarity-rare{border-color:#a98547;color:#edd2a2;background:#3d3823}.armory-weapon.rarity-rare{border-color:#8c713f}.armory-weapon.rarity-uncommon{border-color:#527f70}.armory-stats{font-size:12px;color:#d5dfc9;line-height:1.8}.weapon-traits{color:#d4bf8e!important;font-size:12px;line-height:1.65}.armory-description{font-size:13px;color:#b0c49c;line-height:1.75}.armory-location{font-size:11px;color:#8fa77b;line-height:1.6;margin-top:auto}.owned-label{margin-left:auto;align-self:flex-start;font-style:normal;font-size:10px;color:#e6ba7b;white-space:nowrap}.armory-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px}.armory-pager>span{color:var(--muted);font-size:12px}.bag-weapon b .rarity-text{margin-left:3px;font-size:11px}.bag-weapon>div{gap:4px}.bag-weapon small{line-height:1.65}
@media(max-width:680px){.armory-dialog{padding:14px;width:calc(100% - 20px)}.armory-grid{gap:7px}.armory-weapon{padding:10px;gap:7px}.armory-weapon-heading{gap:6px;flex-wrap:wrap}.armory-weapon-heading .weapon-icon{width:27px;height:30px}.armory-weapon-heading .weapon-icon .icon{width:19px;height:19px}.armory-weapon-heading b{font-size:14px}.armory-description{font-size:12px;line-height:1.7}.armory-stats{font-size:12px}.armory-filters{margin:12px 0}.armory-filters button{font-size:12px}.owned-label{display:none}.bag-weapon{gap:8px}.bag-weapon .weapon-icon{width:32px;height:36px}.bag-weapon .small-btn{padding:6px 8px}.bag-weapon .weapon-traits{font-size:11px}}

/* Expanded island and the crafting workbench. */
.x-axis{grid-template-columns:repeat(var(--map-size,9),minmax(0,1fr))}.y-axis{grid-template-rows:repeat(var(--map-size,9),minmax(0,1fr))}.island-map{grid-template-columns:repeat(var(--map-size,9),minmax(0,1fr));grid-template-rows:repeat(var(--map-size,9),minmax(0,1fr));background-size:var(--map-scale,100%);background-position:var(--map-x,50%) var(--map-y,50%)}.map-zoom{font-size:12px;min-height:32px;padding:4px 7px;border:1px solid #64704f;border-radius:4px;background:#293321;color:#e0d2b0;white-space:nowrap}.map-overview .poi-label,.map-overview .you-label{display:none}.map-overview .poi-icon{padding:1px}.map-overview .poi-icon .icon{width:16px;height:16px}.map-overview .you-pin{width:22px;height:22px}.resource-marker{position:absolute;top:1px;left:2px;font-size:12px;line-height:1;color:#dcacff;text-shadow:0 1px 3px #111}.legend-resource{color:#dcacff}.utility-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.utility-nav>.craft-entry{border-color:#8f6faa;color:#e0c4f2;background:#322b3d}.rarity-epic,.rarity-text.rarity-epic{color:#dcb4ff}.rarity-legendary,.rarity-text.rarity-legendary{color:#ffca76}.weapon-icon.rarity-epic{color:#e0baff;border-color:#9f6bc0;background:#382b42}.weapon-icon.rarity-legendary{color:#ffcd7a;border-color:#d69b40;background:#463521}.armory-weapon.rarity-epic{border-color:#8f60ad}.armory-weapon.rarity-legendary{border-color:#c88b36}.craft-lead{font-size:14px;line-height:1.8;color:#becbab}.craft-lead>span{font-weight:650}.craft-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.craft-card{padding:15px;background:#232d20;border:1px solid #8861a5;border-top:3px solid #ac7ccd;border-radius:7px;display:flex;flex-direction:column;gap:10px;min-width:0}.craft-card.rarity-legendary{border-color:#a97935;border-top-color:#e5af55}.craft-card .rarity-text{font-size:12px}.craft-stats{font-size:13px;line-height:1.8;color:#d9e2ce}.craft-card .weapon-traits{font-size:13px;min-height:22px}.recipe-ingredients{display:grid;gap:7px;flex:1}.recipe-ingredient{padding:8px 10px;background:#141e11;border:1px solid #465639;border-radius:5px;color:#c2cfb1}.recipe-ingredient>div{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}.recipe-ingredient>div>span{display:flex;align-items:center;gap:7px}.recipe-ingredient .icon{width:15px;height:15px}.recipe-ingredient b{font-weight:550}.recipe-ingredient strong{font:14px var(--mono)}.recipe-ingredient>small{display:block;font-size:12px;color:#91a67d;margin:3px 0 0 22px;line-height:1.6}.recipe-ingredient.has-item{border-color:#6e8751;color:#cce8a7}.recipe-ingredient.missing-item strong{color:#e8a184}.craft-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:3px}.craft-card-actions>button{min-width:0;font-size:13px;white-space:normal;padding:7px 5px}.craft-problem{font-size:12px;color:#e9ad8e;line-height:1.65}.craft-ready{font-size:12px;color:#c9e7a7}.craft-tracked{display:flex;align-items:center;gap:9px;padding:10px 12px;margin-top:13px;border:1px solid #89649c;background:#362d3c;border-radius:5px;color:#dfc8ed}.craft-tracked>span{flex:1;font-size:12px}.craft-tracked b{display:block;font-size:14px}.craft-tracked .text-action{font-size:13px}.craft-progress{border-color:#a97bc1;background:#312b36}.craft-progress .recovery-top>span{color:#e2c6f3}.craft-progress .recovery-progress::-webkit-progress-value{background:#c195df}.craft-progress .recovery-progress::-moz-progress-bar{background:#c195df}.gather-box{margin-top:20px;padding:13px;background:#192216;border:1px solid #597246;border-radius:6px}.gather-box>b{font-size:14px;color:#d6e4c3}.gather-box>p{font-size:12px;color:#a4b692;line-height:1.8;margin:5px 0 10px}.gather-box>div{display:flex;flex-wrap:wrap;gap:7px}.gather-box .small-btn{font-size:14px}.gather-box .small-btn>span{color:#b8cea0;font-size:12px;margin-left:4px}.material-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.material-row{padding:10px;background:#25331f;border:1px solid #435b34;border-radius:5px;min-width:0}.material-row>span{display:flex;align-items:center;gap:6px;font-size:14px}.material-row b{font-weight:500}.material-row em{margin-left:auto;font:14px var(--mono);color:#e2ca97}.material-row .icon{width:16px;height:16px}.material-row small{display:block;margin-top:5px;font-size:12px;line-height:1.7;color:#a6bd91}.location-materials{font-size:14px;line-height:1.8;margin-top:15px;color:#ceb0e2}.empty-craft{grid-column:1/-1;padding:25px 16px;font-size:14px;color:#b4c7a0;line-height:1.9;border:1px dashed #68814c;border-radius:6px}.discard-weapon{flex-shrink:0;width:25px;height:32px}.discard-weapon .icon{width:14px;height:14px}.armory-filters{flex-wrap:wrap}.armory-filters>button{min-width:60px}.armory-weapon .rarity-text{font-size:12px}.recovery-top>span{min-width:0}.recovery-top b{overflow-wrap:anywhere}.room-roster{max-height:48dvh;overflow:auto}.recovery-top>strong{flex-shrink:0}
@media(max-width:680px){.craft-grid{grid-template-columns:1fr;gap:10px}.craft-card{padding:12px;gap:8px}.craft-card .armory-weapon-heading{flex-wrap:nowrap}.craft-card .armory-weapon-heading .weapon-icon{width:35px;height:38px}.craft-card .armory-weapon-heading b{font-size:16px}.recipe-ingredients{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.recipe-ingredient{padding:7px}.recipe-ingredient>small{margin-left:0}.recipe-ingredient>div>span{gap:4px}.recipe-ingredient b{font-size:14px}.recipe-ingredient>div{gap:4px}.recipe-ingredient .icon{width:13px;height:13px}.craft-card-actions>button{font-size:14px;min-height:36px}.craft-card .weapon-traits,.craft-stats{font-size:12px}.utility-nav>button{gap:3px}.utility-nav .icon{width:14px;height:14px}.map-zoom{min-height:26px;padding:3px 5px}.map-heading small{display:none}.map-legend{gap:10px}.map-overview .poi-icon .icon{width:12px;height:12px}.map-overview .you-pin{width:16px;height:16px;box-shadow:0 0 0 2px #f6ad653a}.map-overview .you-pin .icon{width:12px;height:12px}.map-overview .resource-marker{font-size:12px;left:0;top:0}.bag-weapon{flex-wrap:wrap}.bag-weapon>div{min-width:140px}.material-row>span{flex-wrap:wrap}.recovery-top b{font-size:14px}.craft-tracked{padding:8px}.craft-tracked>.icon{display:none}}
