/* v0.10.35 — public safety and justice reachability */
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ui-scale: 1;--bg: #0d1210;--panel: rgba(20, 27, 24, .96);--panel-soft: rgba(28, 37, 33, .94);--line: rgba(229, 222, 199, .12);--line-strong: rgba(229, 222, 199, .22);--text: #f0ede5;--muted: #9da69e;--accent: #d9ba7a;--accent-soft: rgba(217, 186, 122, .15);--danger: #bd6a61;--good: #82a37f;--radius: 14px;background:var(--bg);font-size:calc(16px * var(--ui-scale))}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#0b100e;color:var(--text);user-select:none}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-shell{display:grid;grid-template-rows:68px minmax(0,1fr) 174px;width:100%;height:100%;background:#101613}.topbar{position:relative;z-index:20;display:flex;align-items:center;gap:18px;padding:10px 14px;border-bottom:1px solid var(--line);background:#0e1411fa;box-shadow:0 8px 22px #0000002e}.brand-block{display:flex;align-items:center;gap:10px;min-width:178px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(217,186,122,.55);border-radius:12px;color:var(--accent);font-weight:800;letter-spacing:-.04em;background:linear-gradient(145deg,#2b2c25,#171c19);box-shadow:inset 0 0 18px #d9ba7a0d}.brand-block strong{display:block;font-size:.92rem;letter-spacing:.13em}.brand-block span{display:block;margin-top:2px;color:var(--muted);font-size:.68rem}.time-block{min-width:92px;padding-left:16px;border-left:1px solid var(--line)}.time-block span,.time-block small{display:block;color:var(--muted);font-size:.68rem}.time-block strong{display:block;font-size:1.28rem;line-height:1.05;font-variant-numeric:tabular-nums}.time-block small{margin-top:2px}.resource-strip{display:flex;flex:1;min-width:0;gap:8px;overflow:hidden}.resource-chip{min-width:92px;flex:1 1 0;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.resource-chip span{min-width:0;color:var(--muted);font-size:.64rem;white-space:nowrap}.resource-chip strong{display:block;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:.88rem;font-weight:700;font-variant-numeric:tabular-nums}.resource-symbol{position:relative;width:17px;height:17px;flex:0 0 17px;opacity:.9}.resource-symbol.people:before{content:"";position:absolute;width:6px;height:6px;border:1.5px solid #bac6be;border-radius:50%;left:1px;top:1px;box-shadow:7px 2px 0 -1px #bac6be}.resource-symbol.people:after{content:"";position:absolute;width:14px;height:7px;border:1.5px solid #bac6be;border-bottom:0;border-radius:9px 9px 0 0;left:0;bottom:0}.resource-symbol.food:before{content:"";position:absolute;inset:2px 1px 1px 3px;border-radius:65% 35% 55% 45%;background:#a06c5f;transform:rotate(-20deg)}.resource-symbol.food:after{content:"";position:absolute;width:7px;height:4px;border-radius:100% 0;background:#75936f;right:0;top:0;transform:rotate(-25deg)}.resource-symbol.wood:before{content:"";position:absolute;left:1px;top:3px;width:15px;height:11px;border-radius:8px;border:2px solid #997457;transform:rotate(-12deg)}.resource-symbol.stone:before{content:"";position:absolute;inset:2px;background:#858b86;clip-path:polygon(46% 0,100% 35%,85% 100%,12% 88%,0 34%)}.resource-symbol.mood:before{content:"";position:absolute;inset:1px;border:1.5px solid #aa8caf;border-radius:50%}.resource-symbol.mood:after{content:"";position:absolute;left:5px;top:9px;width:7px;height:3px;border-bottom:1.5px solid #aa8caf;border-radius:50%}.resource-symbol.health:before,.resource-symbol.health:after{content:"";position:absolute;background:#8ba685;border-radius:2px}.resource-symbol.health:before{width:6px;height:16px;left:6px;top:1px}.resource-symbol.health:after{width:16px;height:6px;left:1px;top:6px}.top-actions{display:flex;align-items:center;gap:6px}.speed-controls{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.speed-button,.icon-button,.mode-button{min-height:34px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;transition:.16s ease}.speed-button{min-width:36px;padding:0 8px;font-size:.72rem;font-weight:700}.speed-button:hover,.speed-button.active,.icon-button:hover{color:var(--text);background:#ffffff14}.speed-button.active{color:#25251e;background:var(--accent)}.icon-button{width:34px;border:1px solid var(--line);font-size:1.1rem}.mode-button{padding:0 11px;border:1px solid var(--line);white-space:nowrap;font-size:.72rem}.mode-button:hover{color:var(--text);border-color:var(--line-strong);background:#ffffff0d}.mode-button.important{color:#28261f;background:var(--accent);border-color:var(--accent);font-weight:700}.hidden{display:none!important}.game-main{position:relative;min-height:0;display:grid;grid-template-columns:302px minmax(0,1fr) 330px;overflow:hidden}.left-sidebar,.right-sidebar{min-height:0;background:var(--panel);border-color:var(--line)}.left-sidebar{display:grid;grid-template-columns:68px minmax(0,1fr);border-right:1px solid var(--line);z-index:10}.side-nav{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:8px 6px;border-right:1px solid var(--line);background:#111815;overflow-y:auto}.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;padding:5px 2px;border:0;border-radius:9px;background:transparent;color:#7f8a82;cursor:pointer}.nav-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.nav-button span{font-size:.54rem}.nav-button:hover,.nav-button.active{color:var(--text);background:#ffffff0e}.nav-button.active{color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.left-panel{min-width:0;padding:18px 15px 22px;overflow:auto;scrollbar-width:thin;scrollbar-color:#434c46 transparent}.panel-mobile-close{display:none}.panel-heading{margin-bottom:17px}.panel-heading>span,.selection-kicker,.summary-kicker{color:var(--accent);font-size:.58rem;font-weight:800;letter-spacing:.16em}.panel-heading h2,.right-sidebar h2{margin:4px 0 5px;font-size:1.14rem;letter-spacing:-.02em}.panel-heading p,.panel-note,.empty-selection p{margin:0;color:var(--muted);font-size:.68rem;line-height:1.48}.panel-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.build-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:#ffffff06}.build-card>div:nth-child(2){margin:8px 0 11px}.build-card strong,.build-card span{display:block}.build-card strong{font-size:.85rem}.build-card span{margin-top:3px;color:var(--muted);font-size:.64rem}.build-preview{position:relative;height:78px;overflow:hidden;border-radius:9px;background:linear-gradient(#344138,#5b6c53)}.house-preview:before{content:"";position:absolute;left:50%;bottom:13px;width:62px;height:35px;transform:translate(-50%);background:#735f4b;box-shadow:0 12px 18px #00000040}.house-preview:after{content:"";position:absolute;left:50%;bottom:46px;width:54px;height:54px;transform:translate(-50%) rotate(45deg);background:#38322c}.house-preview i{position:absolute;z-index:2;left:50%;bottom:13px;width:12px;height:23px;transform:translate(-50%);background:#c1a16d}.primary-button,.secondary-button,.save-slot button{min-height:36px;border-radius:8px;padding:0 12px;border:1px solid transparent;cursor:pointer;font-size:.69rem;font-weight:700}.primary-button{color:#25251f;background:var(--accent)}.primary-button:hover{filter:brightness(1.06)}.secondary-button,.save-slot button{color:var(--text);background:#ffffff0b;border-color:var(--line)}.secondary-button:hover,.save-slot button:hover{background:#ffffff14}.primary-button.wide,.secondary-button.wide{width:100%}.button-row{display:flex;gap:7px;margin-top:12px}.button-row>*{flex:1}.panel-stat-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:.68rem}.panel-stat-row span{color:var(--muted)}.panel-stat-row strong{text-align:right;font-size:.71rem}.colonist-list{display:flex;flex-direction:column;gap:5px}.colonist-row{width:100%;display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px;border:1px solid transparent;border-radius:9px;background:#ffffff06;text-align:left;cursor:pointer}.colonist-row:hover{border-color:var(--line-strong);background:#ffffff0d}.colonist-row span{min-width:0}.colonist-row strong,.colonist-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.colonist-row strong{font-size:.69rem;font-weight:650}.colonist-row small{margin-top:2px;color:var(--muted);font-size:.56rem}.colonist-row b{color:var(--muted);font-size:.62rem;font-variant-numeric:tabular-nums}.colonist-row.dead{opacity:.45}.status-dot{width:7px;height:7px;border-radius:50%;background:#718079}.status-dot.good{background:#80a07b;box-shadow:0 0 8px #80a07b59}.status-dot.warning{background:#c29c61}.status-dot.critical,.status-dot.dead{background:#b6615b}.profession-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.profession-grid>div{display:flex;justify-content:space-between;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff06}.profession-grid span{color:var(--muted);font-size:.61rem}.profession-grid strong{font-size:.76rem}.stock-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px}.stock-card{padding:10px;border:1px solid var(--line);border-radius:9px;background:#ffffff06}.stock-card span,.stock-card strong,.stock-card small{display:block}.stock-card span{color:var(--muted);font-size:.59rem}.stock-card strong{margin-top:4px;font-size:1.02rem;font-variant-numeric:tabular-nums}.stock-card small{margin-top:3px;color:#758078;font-size:.52rem}.metric-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.bar-metric span,.need-row span,.building-progress span{display:flex;justify-content:space-between;margin-bottom:4px;color:var(--muted);font-size:.62rem}.bar-metric b,.need-row b,.building-progress b{color:var(--text);font-variant-numeric:tabular-nums}.bar-metric i,.need-row i,.building-progress i{display:block;height:5px;border-radius:99px;overflow:hidden;background:#ffffff12}.bar-metric em,.need-row em,.building-progress em{display:block;height:100%;border-radius:inherit;background:#829a7c}.need-row.critical em{background:var(--danger)}.preset-list{display:flex;flex-direction:column;gap:6px}.preset-card{padding:10px;border:1px solid var(--line);border-radius:9px;background:#ffffff06;text-align:left;cursor:pointer}.preset-card:hover{border-color:#d9ba7a6b;background:var(--accent-soft)}.preset-card strong,.preset-card span{display:block}.preset-card strong{font-size:.68rem}.preset-card span{margin-top:3px;color:var(--muted);font-size:.57rem;line-height:1.35}.manual-experiment{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.manual-experiment summary{padding:10px;cursor:pointer;font-size:.68rem;font-weight:700}.manual-experiment[open]{padding-bottom:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 10px 10px}.field{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.59rem}.field.wide,.check-row.wide{grid-column:1/-1}.field input{width:100%;min-height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#101613;color:var(--text);user-select:text}.field input[type=range]{padding:0;accent-color:var(--accent)}.check-row{display:flex;align-items:center;gap:9px;min-height:38px;padding:7px 9px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.64rem;cursor:pointer}.check-row input{accent-color:var(--accent)}.manual-experiment>.primary-button{margin:0 10px;width:calc(100% - 20px)}.save-slots{display:flex;flex-direction:column;gap:7px;margin-top:14px}.save-slot{padding:9px;border:1px solid var(--line);border-radius:9px;background:#ffffff06}.save-slot>div:first-child strong,.save-slot>div:first-child span{display:block}.save-slot>div:first-child strong{font-size:.66rem}.save-slot>div:first-child span{margin-top:2px;color:var(--muted);font-size:.53rem;line-height:1.35}.save-slot>div:last-child{display:flex;gap:5px;margin-top:8px}.save-slot button{min-height:29px;padding:0 8px;font-size:.55rem}.save-slot button:disabled{opacity:.35;pointer-events:none}.canvas-stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#131b17}#game-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#game-canvas:active{cursor:grabbing}#game-canvas.placement-active{cursor:crosshair}.objective-chip{position:absolute;top:12px;left:50%;z-index:4;transform:translate(-50%);max-width:min(640px,calc(100% - 32px));padding:8px 12px;border:1px solid rgba(230,216,177,.19);border-radius:10px;background:#0d1310c7;backdrop-filter:blur(10px);text-align:center;pointer-events:none}.objective-chip span,.objective-chip strong{display:block}.objective-chip span{color:var(--accent);font-size:.52rem;font-weight:800;letter-spacing:.12em}.objective-chip strong{margin-top:2px;font-size:.69rem;font-weight:650}.placement-hint{position:absolute;z-index:6;left:50%;bottom:18px;transform:translate(-50%);padding:10px 14px;border:1px solid rgba(217,186,122,.45);border-radius:10px;background:#191914eb;box-shadow:0 12px 30px #00000052;text-align:center;pointer-events:none}.placement-hint strong,.placement-hint span{display:block}.placement-hint strong{color:var(--accent);font-size:.68rem}.placement-hint span{margin-top:2px;color:var(--muted);font-size:.57rem}.canvas-help{position:absolute;right:10px;bottom:8px;color:#ebebe075;font-size:.51rem;pointer-events:none}.shooting-overlay{display:none}.right-sidebar{position:relative;padding:20px 16px;border-left:1px solid var(--line);overflow:auto;scrollbar-width:thin;scrollbar-color:#434c46 transparent;z-index:9}.selection-close{position:absolute;right:10px;top:9px;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#ffffff09;color:var(--muted);cursor:pointer}.selection-meta{margin:0 0 12px;color:var(--muted);font-size:.64rem}.trait-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}.trait-list span{padding:4px 7px;border:1px solid var(--line);border-radius:99px;color:#c6ccc6;font-size:.55rem;background:#ffffff06}.need-list{display:flex;flex-direction:column;gap:9px}.current-task,.goal-box{margin-top:14px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.current-task span,.current-task strong,.current-task small,.goal-box span{display:block}.current-task span,.goal-box span{color:var(--muted);font-size:.55rem}.current-task strong{margin-top:4px;font-size:.72rem}.current-task small{margin-top:5px;color:var(--accent);font-size:.57rem}.goal-box p{margin:5px 0 0;font-size:.64rem;line-height:1.42}.selection-actions{display:flex;gap:7px;margin-top:10px}.selection-actions>*{flex:1}.right-sidebar h3{margin:18px 0 8px;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#c8ccc7}.relationship-list,.history-list{display:flex;flex-direction:column;gap:5px}.relationship-list button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff05;text-align:left;cursor:pointer}.relationship-list button:hover{background:#ffffff0d}.relationship-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem}.relationship-list strong{color:var(--accent);font-size:.56rem}.relationship-list small{grid-column:1/-1;color:var(--muted);font-size:.52rem}.relationship-list p,.history-list p{color:var(--muted);font-size:.6rem}.history-list>div{display:grid;grid-template-columns:40px 1fr;gap:7px;padding:6px 0;border-bottom:1px solid var(--line)}.history-list time{color:var(--accent);font-size:.52rem}.history-list span{font-size:.58rem;line-height:1.35}.empty-selection{display:grid;align-content:center;height:100%;text-align:center}.empty-selection span{color:var(--accent);font-size:.56rem;letter-spacing:.14em}.empty-selection h3{margin:8px 0;color:var(--text);font-size:.88rem;text-transform:none;letter-spacing:0}.material-list{display:flex;flex-direction:column}.material-list>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:.63rem}.material-list span{color:var(--muted)}.journal-shell{min-height:0;border-top:1px solid var(--line);background:#0e1512;z-index:15}.journal-header{height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-bottom:1px solid var(--line)}.journal-header>div:first-child{display:flex;align-items:baseline;gap:8px}.journal-header strong{font-size:.7rem;letter-spacing:.03em}.journal-header span{color:var(--muted);font-size:.55rem}.journal-filters{display:flex;gap:4px}.journal-filter{min-height:26px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:.55rem;cursor:pointer}.journal-filter:hover,.journal-filter.active{color:var(--text);border-color:var(--line);background:#ffffff0b}.event-journal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;height:132px;padding:8px 10px;overflow-y:auto;align-content:start;scrollbar-width:thin;scrollbar-color:#3f4943 transparent}.event-row{min-width:0;display:grid;grid-template-columns:8px 54px minmax(0,1fr);gap:7px;align-items:start;padding:7px 8px;border:1px solid transparent;border-radius:8px;background:#ffffff06;text-align:left;cursor:pointer}.event-row:hover{border-color:var(--line);background:#ffffff0d}.event-row.important{background:#d9ba7a0e}.event-row.critical{border-color:#d9ba7a38;background:#d9ba7a16}.event-row time{color:var(--muted);font-size:.5rem;font-variant-numeric:tabular-nums}.event-row span{overflow:hidden;color:#d6d8d3;font-size:.57rem;line-height:1.3}.event-icon{width:6px;height:6px;margin-top:2px;border-radius:50%;background:#78857d}.event-icon.resource{background:#9c8157}.event-icon.construction{background:#c3a267}.event-icon.relationship,.event-icon.leadership{background:#9b7e9e}.event-icon.conflict,.event-icon.health{background:#b75f58}.event-icon.milestone{background:var(--accent);box-shadow:0 0 8px #d9ba7a66}.journal-empty{color:var(--muted);font-size:.62rem;padding:12px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:#050807cc;backdrop-filter:blur(8px)}.summary-card{position:relative;width:min(760px,100%);max-height:92vh;overflow:auto;padding:28px;border:1px solid rgba(217,186,122,.28);border-radius:18px;background:linear-gradient(145deg,#1d2521,#111815);box-shadow:0 30px 80px #00000080}.modal-close{position:absolute;right:14px;top:14px;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#ffffff0a;cursor:pointer}.summary-card h2{margin:5px 0 6px;font-size:1.65rem}.summary-goal{margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.summary-grid>div{padding:13px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.summary-grid span,.summary-grid strong{display:block}.summary-grid span{color:var(--muted);font-size:.6rem}.summary-grid strong{margin-top:5px;font-size:1.2rem}.summary-people{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--line)}.summary-people>div{display:flex;justify-content:space-between;gap:10px;padding:10px;background:#171f1b;font-size:.67rem}.summary-people span{color:var(--muted)}.summary-card h3{margin:20px 0 8px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.summary-events{display:flex;flex-direction:column;gap:5px}.summary-events .event-row{grid-template-columns:8px 62px 1fr}.summary-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;z-index:200;left:50%;bottom:28px;transform:translate(-50%);padding:10px 14px;border:1px solid rgba(130,163,127,.4);border-radius:10px;background:#172019;box-shadow:0 14px 35px #00000059;font-size:.7rem}.toast.error{border-color:#bd6a6180}.tiktok-mode .left-sidebar,.tiktok-mode .right-sidebar{display:none}.tiktok-mode .game-main{grid-template-columns:1fr}.tiktok-mode .objective-chip,.tiktok-mode .canvas-help{display:none}.tiktok-mode .journal-shell{height:110px}.tiktok-mode .event-journal{grid-template-columns:1fr 1fr;height:68px}.tiktok-mode .journal-header{height:38px}.tiktok-mode .shooting-overlay{display:block;position:absolute;inset:0;z-index:5;pointer-events:none}.shooting-day{position:absolute;top:18px;left:18px;width:92px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(238,221,175,.38);border-radius:16px;background:#0c110fd1;backdrop-filter:blur(8px)}.shooting-day span{color:var(--accent);font-size:.62rem;letter-spacing:.14em;font-weight:800}.shooting-day strong{font-size:2.5rem;line-height:1}.shooting-goal{position:absolute;top:20px;left:125px;max-width:min(620px,calc(100% - 155px));padding:12px 16px;border-radius:12px;background:#0c110fd1;backdrop-filter:blur(8px);font-size:1rem;font-weight:750;line-height:1.35}.shooting-event{position:absolute;left:50%;bottom:25px;transform:translate(-50%,15px);width:min(720px,calc(100% - 30px));padding:14px 18px;border:1px solid rgba(217,186,122,.42);border-radius:13px;background:#121612eb;text-align:center;font-size:1.05rem;font-weight:750;opacity:0;transition:.25s ease}.shooting-event.visible{opacity:1;transform:translate(-50%)}@media(max-width:1500px){.game-main{grid-template-columns:276px minmax(0,1fr) 302px}.left-sidebar{grid-template-columns:62px minmax(0,1fr)}.resource-chip:nth-child(6){display:none}.topbar{gap:10px}.mode-button{padding:0 8px}}@media(max-width:1180px){.game-main{grid-template-columns:246px minmax(0,1fr) 280px}.left-sidebar{grid-template-columns:56px minmax(0,1fr)}.nav-button span{display:none}.resource-chip{min-width:74px}.resource-chip:nth-child(5),.resource-chip:nth-child(6){display:none}.brand-block{min-width:150px}.brand-block span{display:none}.mode-button{max-width:92px;white-space:normal;line-height:1.05}.event-journal{grid-template-columns:1fr 1fr}}@media(max-width:820px){html{font-size:16px}.game-shell{grid-template-rows:104px minmax(0,1fr) 134px 58px}.topbar{display:grid;grid-template-columns:auto 88px minmax(0,1fr);grid-template-rows:48px 40px;gap:4px 8px;padding:6px 8px}.brand-block{min-width:0}.brand-mark{width:36px;height:36px;border-radius:10px}.brand-block strong{font-size:.78rem}.time-block{padding-left:9px}.time-block strong{font-size:1rem}.resource-strip{grid-column:3;grid-row:1;overflow-x:auto}.resource-chip{min-width:75px;padding:5px 7px}.resource-chip:nth-child(4),.resource-chip:nth-child(5),.resource-chip:nth-child(6){display:none}.top-actions{grid-column:1/-1;grid-row:2;justify-content:space-between}.speed-controls{flex:1;justify-content:space-between}.speed-button{flex:1}.mode-button{max-width:none;min-height:34px;font-size:.61rem}.game-main{grid-row:2;grid-template-columns:1fr}.canvas-stage{grid-column:1}.left-sidebar{position:absolute;inset:0;z-index:30;display:block;pointer-events:none;background:transparent;border:0}.side-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;height:58px;display:grid;grid-template-columns:repeat(7,1fr);gap:0;padding:3px 4px calc(3px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:#101613;pointer-events:auto}.nav-button{min-height:50px;padding:3px;border-radius:7px}.nav-button svg{width:18px;height:18px}.nav-button span{display:block;font-size:.46rem}.nav-button.active{box-shadow:inset 0 2px 0 var(--accent)}.left-panel{position:absolute;left:8px;bottom:8px;width:min(340px,calc(100% - 16px));max-height:72%;padding:17px 14px;border:1px solid var(--line-strong);border-radius:14px;background:#111815fb;box-shadow:0 20px 60px #00000080;transform:translateY(calc(100% + 20px));transition:.2s ease;pointer-events:auto}.left-sidebar.panel-open .left-panel{transform:translateY(0)}.panel-mobile-close{display:block;position:absolute;right:10px;top:9px;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#ffffff0a;color:var(--muted)}.right-sidebar{position:absolute;z-index:29;right:8px;bottom:8px;width:min(350px,calc(100% - 16px));max-height:68%;padding:18px 15px;border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 20px 60px #0000007a;transform:translateY(calc(100% + 20px));transition:.2s ease}.right-sidebar.open{transform:translateY(0)}.objective-chip{top:8px;max-width:calc(100% - 16px);padding:7px 9px}.objective-chip strong{font-size:.59rem}.canvas-help{display:none}.journal-shell{grid-row:3}.journal-header{height:38px;padding:0 8px;overflow-x:auto}.journal-header>div:first-child span{display:none}.journal-filters{min-width:max-content}.journal-filter{padding:0 6px}.event-journal{grid-template-columns:1fr;height:96px;padding:5px 7px}.event-row{grid-template-columns:7px 49px minmax(0,1fr);padding:6px}.event-row span{white-space:nowrap;text-overflow:ellipsis}.game-shell.tiktok-mode{grid-template-rows:104px minmax(0,1fr) 80px 58px}.tiktok-mode .journal-shell{height:auto}.tiktok-mode .event-journal{grid-template-columns:1fr;height:44px}.shooting-day{top:12px;left:10px;width:72px;height:72px}.shooting-day strong{font-size:2rem}.shooting-goal{top:12px;left:90px;max-width:calc(100% - 100px);padding:9px 10px;font-size:.76rem}.shooting-event{bottom:12px;padding:10px 12px;font-size:.78rem}.summary-card{padding:22px 16px}.summary-grid{grid-template-columns:1fr 1fr}.summary-people{grid-template-columns:1fr}}@media(max-width:430px){.brand-block span{display:none}.brand-block strong{letter-spacing:.08em}.time-block small{display:none}.resource-strip{gap:4px}.resource-chip{min-width:80px;flex:0 0 80px}.resource-chip span{font-size:.56rem}.resource-chip strong{font-size:.76rem}.icon-button{display:none}.mode-button{padding:0 7px}.nav-button span{font-size:.42rem}.preset-card{padding:9px}.form-grid{grid-template-columns:1fr}.field.wide,.check-row.wide{grid-column:auto}.summary-card h2{padding-right:34px;font-size:1.25rem}}.build-catalog{display:flex;flex-direction:column;gap:8px}.build-card{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px 10px;align-items:center}.build-card.active{border-color:#d9ba7a8c;background:#d9ba7a12}.build-card>div:nth-child(2){margin:0;min-width:0}.build-card>button{grid-column:1/-1;width:100%}.build-card small{display:block;margin-top:5px;color:#7f8b83;font-size:.54rem;line-height:1.35}.build-count{position:absolute;right:8px;top:7px;min-width:19px;height:19px;display:grid;place-items:center;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:.52rem}.build-preview{width:44px;height:40px;position:relative;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:linear-gradient(145deg,#28332c,#171e1a);overflow:hidden}.build-preview:before{content:"";position:absolute;left:8px;right:8px;bottom:7px;height:17px;border-radius:2px;background:#6f5a45}.build-preview:after{content:"";position:absolute;left:6px;right:6px;bottom:22px;height:15px;background:#35312c;clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-farm:before{inset:8px 5px;height:auto;background:repeating-linear-gradient(0deg,#75663f 0 3px,#493f2c 3px 6px)}.build-preview.building-farm:after{display:none}.build-preview.building-watchtower:before{left:17px;right:17px;bottom:4px;height:27px;background:#604a34}.build-preview.building-watchtower:after{left:9px;right:9px;bottom:29px;height:10px;background:#37312b}.build-preview.building-medical_post i:before,.build-preview.building-medical_post i:after{content:"";position:absolute;z-index:3;background:#d5ddd5;border-radius:1px}.build-preview.building-medical_post i:before{width:5px;height:18px;left:20px;top:14px}.build-preview.building-medical_post i:after{width:18px;height:5px;left:13px;top:20px}.resource-symbol.seeds:before{content:"";position:absolute;inset:3px;background:radial-gradient(ellipse at 25% 35%,#c6ad77 0 2px,transparent 2.5px),radial-gradient(ellipse at 65% 25%,#b99b63 0 2px,transparent 2.5px),radial-gradient(ellipse at 48% 72%,#d1ba86 0 2px,transparent 2.5px)}.event-icon.production{background:#94a55f}.farm-state-card{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.farm-state-card>div{padding:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff06}.farm-state-card span,.farm-state-card strong{display:block}.farm-state-card span{color:var(--muted);font-size:.54rem}.farm-state-card strong{margin-top:3px;font-size:.65rem}.resource-symbol.tools:before{content:"";position:absolute;left:2px;top:7px;width:13px;height:4px;border-radius:2px;background:#98a49f;transform:rotate(-35deg);box-shadow:0 0 0 1px #0a0f0d40}.resource-symbol.tools:after{content:"";position:absolute;right:0;top:1px;width:8px;height:8px;border:2px solid #bdc5bf;border-left-width:3px;border-radius:2px 5px 5px 2px;transform:rotate(-35deg)}.field select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:8px;background:#151d19;color:var(--text);padding:8px 10px}:root{--bg: #090e0c;--panel: rgba(13, 20, 17, .965);--panel-soft: rgba(20, 29, 25, .955);--line: rgba(235, 222, 191, .105);--line-strong: rgba(235, 213, 167, .24);--text: #f3efe5;--muted: #98a39b;--accent: #dfbd73;--accent-soft: rgba(223,189,115,.14)}body{background:radial-gradient(circle at 50% 20%,#1a241f 0,#0b100e,#070a09)}.game-shell{background:#0d1310}.topbar{min-height:68px;border-bottom-color:#e5cb9421;background:linear-gradient(180deg,#141b17fc,#0a100dfb),radial-gradient(circle at 30% 0,rgba(223,189,115,.055),transparent 42%);box-shadow:0 12px 34px #00000047,inset 0 -1px #ffffff06}.brand-mark{position:relative;border-color:#e8c370ad;background:linear-gradient(145deg,#2d2b22,#111713 72%);box-shadow:inset 0 0 24px #dfbd7314,0 8px 24px #00000038;text-shadow:0 0 18px rgba(223,189,115,.18)}.brand-mark:after{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.035);border-radius:8px;pointer-events:none}.brand-block strong{font-weight:800;text-shadow:0 2px 14px rgba(0,0,0,.35)}.time-block strong{color:#fffaf0;text-shadow:0 2px 12px rgba(0,0,0,.35)}.resource-chip{position:relative;overflow:hidden;border-color:#ebdebf1b;background:linear-gradient(180deg,#ffffff0a,#ffffff03);box-shadow:inset 0 1px #ffffff05,0 5px 15px #00000014}.resource-chip:after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(223,189,115,.15),transparent)}.resource-chip strong{color:#fffaf1}.speed-controls{background:linear-gradient(180deg,#ffffff09,#0000000a);box-shadow:inset 0 1px #ffffff05}.speed-button.active{background:linear-gradient(180deg,#edcc84,#cfa45a);box-shadow:0 5px 18px #d5a64f2e,inset 0 1px #fff6}.icon-button,.mode-button{background:linear-gradient(180deg,#ffffff07,#ffffff02)}.left-sidebar{background:linear-gradient(180deg,#111915fb,#0a100dfc);box-shadow:10px 0 30px #0000001f}.side-nav{background:linear-gradient(180deg,#111916,#0b110e)}.nav-button{position:relative;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-button:hover{transform:translateY(-1px)}.nav-button.active{background:linear-gradient(145deg,#dfbd731f,#ffffff06);box-shadow:inset 2px 0 0 var(--accent),0 7px 20px #0000001f}.left-panel{background:linear-gradient(180deg,#111815fb,#0c120ffc)}.panel-heading h2,.right-sidebar h2{color:#fffaf0;text-shadow:0 2px 12px rgba(0,0,0,.25)}.panel-heading>span,.selection-kicker,.summary-kicker{text-shadow:0 0 16px rgba(223,189,115,.18)}.build-card{border-color:#ebdebf1c;background:linear-gradient(145deg,#ffffff0a,#ffffff03);box-shadow:inset 0 1px #ffffff05,0 8px 22px #0000001a;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.build-card:hover{transform:translateY(-1px);border-color:#dfbd7347;box-shadow:0 12px 30px #00000029}.build-card.active{border-color:#dfbd739e;background:linear-gradient(145deg,#dfbd731f,#ffffff05);box-shadow:0 0 0 1px #dfbd7314,0 12px 30px #00000029}.build-preview{width:50px;height:46px;border-color:#ebdebf1f;background:radial-gradient(circle at 50% 80%,#52664e,#253029 68%,#151b18);box-shadow:inset 0 0 18px #00000042}.build-preview:before{box-shadow:0 7px 10px #00000052}.primary-button{background:linear-gradient(180deg,#edca80,#cfa45b);box-shadow:0 6px 18px #ca984129,inset 0 1px #ffffff6b;color:#27231b}.primary-button:hover{filter:none;background:linear-gradient(180deg,#f2d18b,#d6aa61);box-shadow:0 8px 24px #ca984138,inset 0 1px #ffffff7a}.secondary-button,.save-slot button{background:linear-gradient(180deg,#ffffff0d,#ffffff05)}.canvas-stage{background:#101813;box-shadow:inset 0 0 0 1px #ffffff05,inset 0 0 70px #0003}#game-canvas{filter:saturate(1.08) contrast(1.025)}.objective-chip{padding:9px 15px;border-color:#e5c78547;background:linear-gradient(180deg,#0f1512e8,#080d0be0);box-shadow:0 10px 32px #00000047,inset 0 1px #ffffff09}.objective-chip:before{content:"";position:absolute;left:22%;right:22%;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.45}.objective-chip strong{color:#fff8ea;letter-spacing:.005em}.placement-hint{background:linear-gradient(180deg,#1e1d16f5,#10120ef5);box-shadow:0 18px 45px #0006}.canvas-help{padding:4px 7px;border-radius:6px;background:#070b0957;backdrop-filter:blur(5px)}.right-sidebar{background:linear-gradient(180deg,#0f1613fb,#090f0cfc);box-shadow:-10px 0 30px #0000001f}.empty-selection:before{content:"";width:74px;height:74px;margin:0 auto 20px;border:1px solid rgba(223,189,115,.34);border-radius:50%;background:radial-gradient(circle at 38% 34%,rgba(223,189,115,.16) 0 4px,transparent 5px),linear-gradient(135deg,transparent 46%,rgba(223,189,115,.45) 47% 52%,transparent 53%),radial-gradient(circle,#dfbd730f,#dfbd7303);box-shadow:0 0 35px #dfbd730f,inset 0 0 24px #dfbd730a}.trait-list span,.current-task,.goal-box,.relationship-list button{background:linear-gradient(145deg,#ffffff09,#ffffff03)}.journal-shell{background:linear-gradient(180deg,#0e1512,#09100d);box-shadow:0 -10px 30px #0000002e}.journal-header{background:#ffffff02}.journal-filter.active{color:#2b251b;border-color:var(--accent);background:linear-gradient(180deg,#e6c57e,#cda258);font-weight:750}.event-row{background:linear-gradient(145deg,#ffffff08,#ffffff03);box-shadow:inset 0 1px #ffffff03}.event-row:hover{transform:translateY(-1px);border-color:#dfbd7333;box-shadow:0 8px 20px #0000001f}.event-row.important{background:linear-gradient(145deg,#dfbd7313,#ffffff03)}.event-row.critical{border-color:#d2685b59;background:linear-gradient(145deg,#b94f441f,#ffffff03)}@media(max-width:820px){.topbar{box-shadow:0 8px 24px #0000004d}.side-nav{background:linear-gradient(180deg,#111916,#080d0b);box-shadow:0 -10px 30px #0000004d}.nav-button.active{box-shadow:inset 0 2px 0 var(--accent),0 0 18px #dfbd730d}.left-panel,.right-sidebar{backdrop-filter:blur(14px)}.objective-chip{border-radius:11px;box-shadow:0 10px 30px #00000059}#game-canvas{filter:saturate(1.1) contrast(1.035)}}@media(max-width:820px){.left-sidebar{background:transparent;box-shadow:none}.right-sidebar{background:linear-gradient(180deg,#0f1613fb,#090f0cfc)}}.empty-selection:before{display:none}.empty-selection-icon{width:84px;height:84px;margin:0 auto 21px;color:var(--accent);filter:drop-shadow(0 10px 22px rgba(0,0,0,.3))}.empty-selection-icon svg{width:100%;height:100%;overflow:visible}.empty-selection-icon svg circle{fill:#dfbd7306;stroke:#dfbd7361;stroke-width:1.2}.empty-selection-icon svg .tree{fill:#5f77426b;stroke:#dabc73ad;stroke-width:1.1;stroke-linejoin:round}.empty-selection-icon svg .terrain{fill:none;stroke:#dfbd7359;stroke-width:1.2;stroke-linecap:round}.build-preview{isolation:isolate}.build-preview:before,.build-preview:after,.build-preview i:before,.build-preview i:after{transition:transform .2s ease,filter .2s ease}.build-card:hover .build-preview:before,.build-card:hover .build-preview:after{filter:brightness(1.08)}.build-preview.building-common_house:before{left:5px;right:5px;bottom:6px;height:22px;border-radius:2px;background:linear-gradient(90deg,#6c5540,#8b6e50 44%,#5a4737);box-shadow:0 8px 13px #00000061}.build-preview.building-common_house:after{left:2px;right:2px;bottom:26px;height:18px;background:linear-gradient(150deg,#4a4038,#292825);clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-common_house i:before{content:"";position:absolute;z-index:4;left:20px;bottom:6px;width:8px;height:16px;background:#bb8f59;box-shadow:-12px -4px 0 -2px #e7b75b85,12px -4px 0 -2px #e7b75b85}.build-preview.building-individual_house:before{left:9px;right:9px;bottom:6px;height:20px;border-radius:2px;background:linear-gradient(90deg,#6a5542,#866a4f,#534437);box-shadow:0 8px 12px #0000005c}.build-preview.building-individual_house:after{left:6px;right:6px;bottom:24px;height:16px;background:#34302c;clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-individual_house i:before{content:"";position:absolute;z-index:4;left:21px;bottom:6px;width:7px;height:14px;background:#bd925e}.build-preview.building-kitchen:before{left:6px;right:6px;bottom:6px;height:22px;border-radius:2px;background:linear-gradient(90deg,#674d39,#806048,#4d3b30);box-shadow:0 8px 13px #00000061}.build-preview.building-kitchen:after{left:3px;right:3px;bottom:26px;height:17px;background:#312e2a;clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-kitchen i:before{content:"";position:absolute;z-index:4;right:10px;top:5px;width:7px;height:18px;border-radius:1px 1px 0 0;background:#4e4035}.build-preview.building-kitchen i:after{content:"";position:absolute;z-index:5;right:8px;top:0;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,rgba(205,216,205,.3),transparent 70%)}.build-preview.building-workshop:before{left:4px;right:4px;bottom:6px;height:21px;border-radius:2px;background:linear-gradient(90deg,#604b3b,#765b45,#43372f);box-shadow:0 8px 13px #00000061}.build-preview.building-workshop:after{left:2px;right:2px;bottom:25px;height:12px;background:repeating-linear-gradient(135deg,#34312d 0 5px,#403b34 5px 9px);clip-path:none}.build-preview.building-workshop i:before{content:"";position:absolute;z-index:5;right:7px;bottom:11px;width:13px;height:13px;border:2px solid #b69b65;border-radius:50%;box-shadow:0 0 0 2px #00000026}.build-preview.building-workshop i:after{content:"";position:absolute;z-index:5;right:12px;bottom:6px;width:3px;height:23px;background:linear-gradient(#b69b65,#7c6748);transform:rotate(45deg);border-radius:2px}.build-preview.building-administration:before{left:3px;right:3px;bottom:6px;height:22px;border-radius:2px;background:linear-gradient(90deg,#615345,#887561,#50443a);box-shadow:0 8px 13px #0006}.build-preview.building-administration:after{left:0;right:0;bottom:27px;height:16px;background:#33302d;clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-administration i:before{content:"";position:absolute;z-index:5;left:9px;right:9px;bottom:8px;height:17px;background:repeating-linear-gradient(90deg,transparent 0 5px,#c4ab78 5px 8px,transparent 8px 12px)}.build-preview.building-medical_post:before{left:5px;right:5px;bottom:6px;height:23px;border-radius:2px;background:linear-gradient(90deg,#52625d,#718079,#43504c);box-shadow:0 8px 13px #00000061}.build-preview.building-medical_post:after{left:2px;right:2px;bottom:27px;height:16px;background:#35413d;clip-path:polygon(50% 0,100% 100%,0 100%)}.build-preview.building-farm{background:radial-gradient(circle at 50% 80%,#66724e,#2c3529 72%,#171d19)}.build-preview.building-farm:before{box-shadow:inset 0 0 8px #0000003d,0 7px 10px #00000047;border:1px solid rgba(184,154,87,.28)}.build-preview.building-farm i:before{content:"";position:absolute;z-index:4;inset:13px 9px;background:repeating-linear-gradient(90deg,transparent 0 5px,rgba(126,159,79,.75) 5px 7px,transparent 7px 11px);transform:skewY(-8deg)}.build-preview.building-watchtower i:before{content:"";position:absolute;z-index:4;left:12px;right:12px;top:7px;height:13px;background:linear-gradient(90deg,#6e5339,#8a6745,#513d2f);border:1px solid rgba(34,28,23,.75)}.build-preview.building-watchtower i:after{content:"";position:absolute;z-index:3;left:9px;right:9px;top:1px;height:10px;background:#302d29;clip-path:polygon(50% 0,100% 100%,0 100%)}@media(max-width:820px){.empty-selection-icon{width:70px;height:70px;margin-bottom:15px}}#game-canvas{filter:saturate(1.16) contrast(1.055) brightness(.985)}@media(max-width:820px){#game-canvas{filter:saturate(1.18) contrast(1.06) brightness(.99)}}.skip-button{min-height:34px;padding:0 9px;border:1px solid rgba(217,186,122,.25);border-radius:8px;color:#e7d8b6;background:linear-gradient(180deg,#d9ba7a1c,#d9ba7a09);font-size:.65rem;font-weight:750;white-space:nowrap;cursor:pointer;transition:.16s ease}.skip-button:hover{color:#fff7e8;border-color:#d9ba7a80;background:linear-gradient(180deg,#d9ba7a33,#d9ba7a12);transform:translateY(-1px)}.skip-button:active{transform:translateY(0)}.camera-controls{position:absolute;z-index:7;left:50%;bottom:13px;transform:translate(-50%);display:flex;align-items:center;gap:5px;min-width:340px;padding:6px;border:1px solid rgba(231,217,181,.18);border-radius:12px;background:linear-gradient(180deg,#0d1411e6,#080d0bde);box-shadow:0 14px 34px #00000052,inset 0 1px #ffffff09;backdrop-filter:blur(12px)}.camera-controls button{min-width:32px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;color:#d7dcd7;background:#ffffff09;font-size:.75rem;font-weight:750;cursor:pointer}.camera-controls button:hover{border-color:#d9ba7a6b;background:#d9ba7a1a}.camera-controls input[type=range]{flex:1;min-width:110px;height:20px;padding:0;accent-color:var(--accent);cursor:pointer}.camera-controls span{min-width:42px;color:#ded5c1;font-size:.58rem;font-variant-numeric:tabular-nums;text-align:center}.camera-controls .fit-camera{min-width:72px;color:var(--accent);font-size:.56rem}.society-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:17px}.society-summary>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,#ffffff0a,#ffffff03)}.society-summary span,.society-summary strong{display:block}.society-summary span{color:var(--muted);font-size:.54rem;line-height:1.25}.society-summary strong{margin-top:5px;color:#f0e8d8;font-size:1rem;font-variant-numeric:tabular-nums}.clan-list,.clan-relations{display:flex;flex-direction:column;gap:7px}.clan-card{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);gap:9px;align-items:center;padding:10px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--clan-color) 9%,transparent),#ffffff04)}.clan-card:after{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--clan-color);box-shadow:0 0 14px var(--clan-color);opacity:.85}.clan-card>i{width:9px;height:28px;border-radius:5px 5px 2px 2px;background:var(--clan-color);box-shadow:0 0 12px color-mix(in srgb,var(--clan-color) 45%,transparent)}.clan-card strong,.clan-card span,.clan-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clan-card strong{font-size:.67rem}.clan-card span{margin-top:2px;color:#c3c9c3;font-size:.55rem}.clan-card small{margin-top:3px;color:var(--muted);font-size:.5rem}.clan-relation{padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.clan-relation>span,.clan-relation>strong{display:inline-block;font-size:.55rem}.clan-relation>span{max-width:76%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#cdd2cd}.clan-relation>strong{float:right;color:var(--accent)}.clan-relation>i{display:block;clear:both;height:4px;margin-top:7px;overflow:hidden;border-radius:4px;background:#ffffff0d}.clan-relation>i>em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#786c5d,#c78458,#ba5c55)}.clan-relation.war{border-color:#c4544861;background:linear-gradient(145deg,#a0352d21,#ffffff03)}.clan-relation.war>strong{color:#e27c70;letter-spacing:.06em}.event-icon.family{background:#d39aa7}.event-icon.clan{background:#d27f5d;box-shadow:0 0 8px #d27f5d40}@media(max-width:1500px){.top-actions{gap:4px}.skip-button{padding:0 7px;font-size:.59rem}.speed-button{min-width:31px;padding:0 5px}}@media(max-width:1180px){.skip-button{display:none}.camera-controls{min-width:300px}}@media(max-width:820px){.game-shell{grid-template-rows:112px minmax(0,1fr) 134px 58px}.topbar{grid-template-rows:48px 48px}.speed-controls{min-width:0;overflow:hidden}.speed-button{min-width:0;padding:0 3px;font-size:.62rem}.skip-button{display:block;min-width:48px;padding:0 5px;font-size:.53rem}.top-actions .mode-button{flex:0 0 auto}.side-nav{grid-template-columns:repeat(8,1fr);overflow-x:auto}.nav-button span{font-size:.41rem}.camera-controls{left:8px;right:8px;bottom:8px;transform:none;min-width:0;width:auto;padding:5px}.camera-controls input[type=range]{min-width:60px}.camera-controls .fit-camera{min-width:58px;padding:0 5px;font-size:.49rem}.camera-controls span{min-width:36px;font-size:.52rem}.placement-hint{bottom:52px}}@media(max-width:430px){.skip-button{min-width:43px;font-size:.49rem}.mode-button[data-action=toggle-tiktok]{max-width:62px;font-size:.49rem}.camera-controls{gap:3px}.camera-controls button{min-width:28px;padding:0 5px}.camera-controls .fit-camera{min-width:50px}.camera-controls span{display:none}.society-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.society-summary>div{padding:8px 6px}}@media(max-width:430px){.top-actions{min-width:0;gap:3px;overflow:hidden}.speed-controls{flex:1 1 auto;min-width:0}.speed-button{min-width:0;padding:0 2px;font-size:.57rem}.skip-button{flex:0 0 42px;min-width:42px;padding:0 2px}.top-actions .mode-button{display:none}.camera-controls{max-width:calc(100% - 16px);overflow:hidden}.camera-controls input[type=range]{width:0;min-width:0;flex:1 1 0}.camera-controls .fit-camera{min-width:44px;width:44px;padding:0 3px;font-size:0}.camera-controls .fit-camera:after{content:"Карта";font-size:.47rem}}@media(max-width:430px){.top-actions{width:100%;max-width:100%}.speed-controls{width:0;flex:1 1 0}.camera-controls{right:auto;width:calc(100% - 16px);max-width:calc(100% - 16px)}.camera-controls input[type=range]{width:1px;min-width:0;max-width:100%}}.game-shell{grid-template-columns:minmax(0,1fr)}.topbar,.game-main,.journal-shell{min-width:0;max-width:100%}.resource-symbol.water:before{content:"";position:absolute;left:4px;top:0;width:10px;height:15px;background:linear-gradient(145deg,#8bc5cf,#477f93);border-radius:60% 40% 62% 38%/70% 45% 55% 30%;transform:rotate(45deg);box-shadow:0 0 10px #62a9bc47}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#ffffff09;color:var(--accent);font-weight:800;cursor:pointer}.mode-button.active,.director-button.active{border-color:#d9ba7a8c;color:#fff3d6;background:linear-gradient(180deg,#d9ba7a2e,#d9ba7a0f);box-shadow:0 0 18px #d9ba7a14}.colony-pulse{position:absolute;z-index:8;left:12px;top:12px;display:flex;flex-wrap:wrap;gap:6px;max-width:min(680px,calc(100% - 24px));pointer-events:none}.pulse-item{min-width:82px;padding:7px 9px;border:1px solid rgba(223,229,219,.13);border-radius:9px;background:linear-gradient(180deg,#090f0ce0,#070c0abd);box-shadow:0 10px 22px #0003;backdrop-filter:blur(10px)}.pulse-item span,.pulse-item strong{display:block}.pulse-item span{color:#aeb7af;font-size:.49rem;text-transform:uppercase;letter-spacing:.08em}.pulse-item strong{margin-top:2px;font-size:.72rem;font-variant-numeric:tabular-nums}.pulse-item.good{border-color:#71a57c3d}.pulse-item.warning{border-color:#d3a4565c;background:linear-gradient(180deg,#4b3718ad,#17130ccc)}.pulse-item.critical{border-color:#cf5b4e80;background:linear-gradient(180deg,#5c1f1bbd,#1a0c0bd6);animation:pulse-alert 1.8s ease-in-out infinite}.story-ribbon{position:absolute;z-index:8;left:50%;top:12px;width:min(430px,46%);transform:translate(-50%)}.story-ribbon button{width:100%;padding:9px 14px;text-align:left;border:1px solid rgba(225,210,171,.2);border-radius:12px;color:#f2eee3;background:linear-gradient(145deg,#0f1612f0,#090e0cdb);box-shadow:0 14px 34px #00000047;backdrop-filter:blur(13px);cursor:pointer}.story-ribbon span,.story-ribbon strong,.story-ribbon p{display:block}.story-ribbon span{color:var(--accent);font-size:.5rem;font-weight:800;letter-spacing:.13em}.story-ribbon strong{margin-top:2px;font-size:.78rem}.story-ribbon p{margin:3px 0 0;overflow:hidden;color:#b9c0b8;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.story-ribbon i{display:block;height:3px;margin-top:7px;overflow:hidden;border-radius:3px;background:#ffffff0f}.story-ribbon em{display:block;height:100%;background:linear-gradient(90deg,#668c70,#caa259,#bf625a)}.story-ribbon.critical button{border-color:#ca52476b;box-shadow:0 16px 38px #410c0a57}.quick-dock{position:absolute;z-index:8;right:12px;top:12px;display:flex;gap:5px}.quick-dock button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;color:#dfd7c6;background:#090e0cdb;box-shadow:0 8px 20px #0000003d;backdrop-filter:blur(10px);cursor:pointer;font-weight:800}.quick-dock button.active{color:#171910;border-color:#e7c777;background:linear-gradient(180deg,#efd28b,#d8ad5c);box-shadow:0 0 0 1px #ffe09726,0 10px 28px #00000057}.quick-dock button:last-child{color:#ffd18a;border-color:#d9ba7a59}.map-mode-chip{position:absolute;z-index:8;right:12px;top:54px;padding:7px 10px;border:1px solid rgba(223,192,120,.32);border-radius:8px;color:#efd293;background:#070c0ae0;box-shadow:0 10px 24px #00000047;backdrop-filter:blur(10px);font-size:9px;font-weight:850;letter-spacing:.1em;pointer-events:none}.map-mode-chip[data-mode=needs]{color:#f0a694;border-color:#e7816961}.map-mode-chip[data-mode=clans]{color:#c9b7ff;border-color:#aa91ee61}.map-mode-chip[data-mode=resources]{color:#97d8c4;border-color:#70c6ab61}.fast-forward-progress{position:absolute;z-index:30;left:50%;top:50%;width:min(360px,82%);transform:translate(-50%,-50%);padding:14px;border:1px solid rgba(217,186,122,.35);border-radius:14px;background:#070c0af0;box-shadow:0 24px 70px #0000008f}.fast-forward-progress span,.fast-forward-progress strong{display:block}.fast-forward-progress span{color:#d8ccb1;font-size:.66rem}.fast-forward-progress strong{margin-top:7px;color:#fff1cb;font-size:.82rem;text-align:right}.fast-forward-progress i{display:block;height:7px;margin-top:9px;overflow:hidden;border-radius:7px;background:#ffffff12}.fast-forward-progress em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8ca06c,#d2ae64,#f1d28d);transition:width .18s linear}.recommendation-card{margin:0 0 12px;padding:12px;border:1px solid rgba(217,186,122,.25);border-radius:12px;background:linear-gradient(145deg,#d9ba7a1a,#ffffff05)}.recommendation-card span,.recommendation-card strong{display:block}.recommendation-card span{color:var(--accent);font-size:.49rem;font-weight:800;letter-spacing:.13em}.recommendation-card strong{margin-top:4px;font-size:.78rem}.recommendation-card p{margin:5px 0 0;color:#b7beb7;font-size:.58rem;line-height:1.45}.recommendation-card.critical{border-color:#c550456b;background:linear-gradient(145deg,#8d272033,#ffffff03)}.build-card.recommended{border-color:#d9ba7a73;box-shadow:inset 0 0 20px #d9ba7a0b}.recommend-tag{position:absolute;top:5px;right:29px;color:#f1d18e;font-size:.39rem;letter-spacing:.09em}.build-costs{display:flex!important;flex-wrap:wrap;gap:3px 7px}.build-costs .missing{color:#db7d70}.list-filters{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}.list-filters button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;color:#aeb6af;background:#ffffff06;font-size:.52rem;cursor:pointer}.list-filters button.active{color:#fff0cc;border-color:#d9ba7a61;background:#d9ba7a1c}.colonist-row{position:relative}.colonist-row:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--row-clan)}.story-list{display:flex;flex-direction:column;gap:8px}.story-card{padding:10px;border:1px solid rgba(204,153,86,.24);border-radius:10px;background:linear-gradient(145deg,#683e1c1f,#ffffff04)}.story-card span,.story-card strong,.story-card small{display:block}.story-card span{color:var(--accent);font-size:.49rem;letter-spacing:.08em}.story-card strong{margin-top:4px;font-size:.62rem;line-height:1.35}.story-card small{margin-top:5px;color:var(--muted);font-size:.48rem}.story-card i{display:block;height:4px;margin-top:8px;overflow:hidden;border-radius:4px;background:#ffffff0f}.story-card em{display:block;height:100%;background:linear-gradient(90deg,#778e67,#d4a453,#bf5f57)}.need-list h4{margin:12px 0 6px;color:#d7c9aa;font-size:.52rem;letter-spacing:.1em;text-transform:uppercase}.need-diagnosis{margin:12px 0;padding:11px;border:1px solid var(--line);border-radius:11px;background:#ffffff06}.need-diagnosis span,.need-diagnosis strong{display:block}.need-diagnosis span{color:var(--muted);font-size:.46rem;letter-spacing:.12em}.need-diagnosis strong{margin-top:4px;font-size:.72rem}.need-diagnosis p{margin:5px 0 0;color:#b6bdb6;font-size:.55rem;line-height:1.4}.need-diagnosis.critical{border-color:#ca544961;background:#74231d1c}.event-row.story-event{border-left:2px solid #d9b96f;background:linear-gradient(90deg,#d9b96f14,#ffffff04)}.event-row span b,.event-row span small{display:block}.event-row span b{margin-bottom:2px;color:#f1d69d;font-size:.56rem;letter-spacing:.02em}.event-row span small{margin-top:3px;color:#9ea8a0;font-size:.49rem}.event-row.critical{min-height:43px}.ending-card{margin:12px 0 16px;padding:15px;border:1px solid rgba(217,186,122,.3);border-radius:13px;background:linear-gradient(135deg,#d9ba7a1f,#ffffff05)}.ending-card span{color:var(--accent);font-size:.53rem;letter-spacing:.14em}.ending-card h3{margin:5px 0 3px;font-size:1.15rem}.ending-card p{margin:0;color:#bcc3bc;line-height:1.5}.ending-card b{display:block;margin-top:8px;color:#e7d2a4;font-size:.63rem}.help-card{position:relative;width:min(680px,92vw);max-height:88vh;overflow:auto;padding:26px;border:1px solid var(--line-strong);border-radius:18px;background:linear-gradient(155deg,#1d2722,#0f1613);box-shadow:0 30px 100px #000000b3}.help-card h2{margin:5px 0 18px}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.help-grid>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:#ffffff06}.help-grid b,.help-grid span{display:block}.help-grid b{color:#eed8a9;font-size:.7rem}.help-grid span{margin-top:5px;color:#acb5ad;font-size:.59rem;line-height:1.45}.shooting-story,.shooting-stats{display:none}.tiktok-mode .shooting-story{display:block;width:min(500px,80vw);padding:10px 14px;border:1px solid rgba(217,186,122,.35);border-radius:13px;background:#080d0bd6;backdrop-filter:blur(10px)}.tiktok-mode .shooting-story span,.tiktok-mode .shooting-story strong{display:block}.tiktok-mode .shooting-story span{color:var(--accent);font-size:.65rem;letter-spacing:.14em}.tiktok-mode .shooting-story strong{margin-top:3px;font-size:1.05rem;line-height:1.2}.tiktok-mode .shooting-story i{display:block;height:4px;margin-top:8px;border-radius:4px;overflow:hidden;background:#ffffff14}.tiktok-mode .shooting-story em{display:block;height:100%;background:linear-gradient(90deg,#7b946e,#d3a75b,#bd574f)}.tiktok-mode .shooting-stats{display:flex;gap:7px;flex-wrap:wrap}.tiktok-mode .shooting-stats span{padding:6px 9px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#080d0bd1;font-size:.68rem}.tiktok-mode .shooting-event b,.tiktok-mode .shooting-event span{display:block}.tiktok-mode .shooting-event b{color:#ffd69a;margin-bottom:3px;font-size:.72rem}.compact-hud .resource-chip:nth-last-child(-n+3){display:none}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}@keyframes pulse-alert{0%,to{box-shadow:0 10px 22px #0003}50%{box-shadow:0 10px 26px #9e2d2452}}@media(max-width:1180px){.story-ribbon{width:min(420px,55%)}.colony-pulse .pulse-item:nth-child(4){display:none}.help-button{display:none}}@media(max-width:820px){.colony-pulse{top:7px;left:7px;gap:4px;max-width:calc(100% - 14px)}.pulse-item{min-width:62px;padding:5px 7px}.pulse-item span{font-size:.39rem}.pulse-item strong{font-size:.59rem}.story-ribbon{top:51px;width:calc(100% - 22px)}.story-ribbon button{padding:7px 10px}.story-ribbon p{display:none}.quick-dock{right:7px;top:auto;bottom:49px;flex-direction:column}.quick-dock button{width:30px;height:30px}.map-mode-chip{right:44px;top:auto;bottom:51px;font-size:8px;padding:6px 8px}.objective-chip{display:none}.camera-controls{bottom:8px}.help-grid{grid-template-columns:1fr}.help-card{padding:20px 16px}}@media(max-width:430px){.colony-pulse .pulse-item:nth-child(4),.colony-pulse .pulse-item:nth-child(5){display:none}.story-ribbon{top:42px}.story-ribbon span{font-size:.4rem}.story-ribbon strong{font-size:.62rem}.quick-dock{bottom:47px}.director-button,.help-button{display:none!important}.tiktok-mode .shooting-story{width:calc(100vw - 32px)}.tiktok-mode .shooting-story strong{font-size:.82rem}.recommend-tag{display:none}}.recommend-action{width:100%;margin-top:10px;padding:8px 10px;border:1px solid rgba(231,201,137,.34);border-radius:8px;color:#17140d;background:linear-gradient(180deg,#efd08a,#cba052);font-size:.56rem;font-weight:800;cursor:pointer;box-shadow:0 7px 18px #bb842f21,inset 0 1px #fff6}.recommend-action:hover{filter:brightness(1.06);transform:translateY(-1px)}.danger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 12px}.danger-tile{position:relative;overflow:hidden;padding:9px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.danger-tile:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:#73847a}.danger-tile span,.danger-tile strong,.danger-tile small{display:block}.danger-tile span{color:#aeb7af;font-size:.49rem}.danger-tile strong{margin-top:2px;color:#f6f1e7;font-size:.86rem}.danger-tile small{color:#748078;font-size:.43rem}.danger-tile.warning:before{background:#c9a15a}.danger-tile.warning{background:#ab772a0f}.danger-tile.critical:before{background:#ca6358;box-shadow:0 0 12px #ca635873}.danger-tile.critical{border-color:#ca635840;background:#7e251f17}.story-card p{margin:6px 0 0;color:#9ea89f;font-size:.52rem;line-height:1.4}.tiktok-mode .shooting-stats span{display:flex;flex-direction:column;min-width:78px;padding:7px 10px}.tiktok-mode .shooting-stats span b{color:#d6b66f;font-size:.42rem;letter-spacing:.1em}.tiktok-mode .shooting-stats span{color:#fff7e8;font-size:.78rem;font-weight:750}@media(max-width:430px){.danger-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.danger-tile{padding:7px 6px}.tiktok-mode .shooting-stats span{min-width:62px;padding:5px 7px;font-size:.65rem}}.onboarding-card{position:absolute;z-index:40;left:50%;top:50%;width:min(420px,calc(100% - 34px));transform:translate(-50%,-50%);padding:20px;border:1px solid rgba(232,201,132,.4);border-radius:16px;background:linear-gradient(155deg,#18201bf7,#080d0bf5);box-shadow:0 30px 90px #000000ad,inset 0 1px #ffffff0a;backdrop-filter:blur(16px)}.onboarding-card>span{color:var(--accent);font-size:.53rem;font-weight:850;letter-spacing:.16em}.onboarding-card h2{margin:5px 0 15px;font-size:1.15rem}.coach-close{position:absolute;top:8px;right:8px;width:28px;height:28px;border:0;border-radius:50%;color:#b8c0b8;background:#ffffff0a;cursor:pointer}.coach-steps{display:grid;grid-template-columns:28px 1fr;gap:8px 10px;margin:0 0 16px;align-items:center}.coach-steps b{display:grid;place-items:center;width:26px;height:26px;border:1px solid rgba(217,186,122,.35);border-radius:8px;color:#f0d291;background:#d9ba7a14}.coach-steps p{margin:0;color:#c0c7c0;font-size:.65rem}@media(max-width:430px){.onboarding-card{top:44%;padding:17px}.onboarding-card h2{font-size:.95rem}.coach-steps p{font-size:.58rem}}@media(max-width:1500px){.resource-chip:nth-child(n+6){display:none}}@media(max-width:1180px){.resource-chip:nth-child(n+4){display:none}}.build-card.locked{opacity:.62;filter:saturate(.55)}.build-card.locked:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,#0508071a,#05080752);pointer-events:none}.build-card.locked button{position:relative;z-index:2;cursor:not-allowed;color:#737b75;background:#202722;border-color:#303a33;box-shadow:none}.unlock-tag{position:absolute;z-index:3;top:7px;left:7px;padding:4px 6px;border:1px solid rgba(125,147,132,.24);border-radius:6px;color:#9aa89d;background:#090e0be0;font-size:.39rem;letter-spacing:.08em}.resource-symbol.city:before{content:"◆"}.resource-symbol.money:before{content:"₽"}.resource-symbol.goods:before{content:"▣"}.city-stage-card{margin-bottom:10px;padding:13px;border:1px solid rgba(218,183,106,.3);border-radius:12px;background:linear-gradient(145deg,#dab76a1a,#ffffff05)}.city-stage-card>div{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px}.city-stage-card span{grid-column:1/-1;color:var(--accent);font-size:.45rem;letter-spacing:.13em}.city-stage-card strong{font-size:.9rem}.city-stage-card b{color:#d9c08a;font-size:.56rem}.city-stage-card>i,.infra-grid .bar-metric>i{display:block;height:5px;margin:9px 0 6px;overflow:hidden;border-radius:999px;background:#ffffff12}.city-stage-card>i em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#788d71,#d1ae65)}.city-stage-card small{color:#909b92;font-size:.5rem}.development-goal{margin-bottom:12px;padding:11px;border-left:2px solid #c8a45c;border-radius:0 9px 9px 0;background:#c8a45c0f}.development-goal span,.development-goal strong{display:block}.development-goal span{color:#c9ae74;font-size:.42rem;letter-spacing:.12em}.development-goal strong{margin-top:4px;font-size:.66rem;line-height:1.35}.development-goal p{margin:5px 0 0;color:#9ca69e;font-size:.5rem;line-height:1.4}.infra-grid{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:12px}.infra-grid .bar-metric{margin:0;padding:8px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.infra-grid .bar-metric span{font-size:.47rem}.economy-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:14px}.economy-strip>div{padding:8px 5px;text-align:center;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.economy-strip span,.economy-strip strong{display:block}.economy-strip span{color:#89958c;font-size:.42rem}.economy-strip strong{margin-top:2px;font-size:.66rem}.policy-stack{display:grid;gap:7px;margin-bottom:14px}.policy-block{padding:9px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.policy-block>span{display:block;color:#9ba69e;font-size:.49rem}.policy-block .button-row{margin-top:6px;gap:5px;flex-wrap:wrap}.policy-block button{min-height:30px;min-width:54px;padding:0 7px;border:1px solid var(--line);border-radius:7px;color:#aeb7af;background:#ffffff06;cursor:pointer;font-size:.48rem;font-weight:700}.policy-block button:hover{color:var(--text);background:#fff1}.policy-block button.active{color:#2a251c;border-color:var(--accent);background:linear-gradient(180deg,#e8c980,#cfa55c);box-shadow:0 5px 14px #0000002e}.settlement-list,.business-list{display:grid;gap:6px;margin-bottom:12px}.settlement-card{display:grid;grid-template-columns:5px 1fr;gap:9px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.settlement-card>i{border-radius:999px;background:var(--settlement-color);box-shadow:0 0 12px color-mix(in srgb,var(--settlement-color) 35%,transparent)}.settlement-card strong,.settlement-card span,.settlement-card small,.settlement-card b{display:block}.settlement-card strong{font-size:.65rem}.settlement-card span{margin-top:2px;color:#adb6ae;font-size:.5rem}.settlement-card small{margin-top:3px;color:#748078;font-size:.43rem}.settlement-card b{margin-top:4px;color:#87ad89;font-size:.42rem;font-weight:650}.settlement-card b.loss{color:#c97869}.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:13px}.class-card{padding:8px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.class-card span,.class-card strong,.class-card small{display:block}.class-card span{color:#aeb7af;font-size:.44rem;text-transform:capitalize}.class-card strong{margin:2px 0;font-size:.76rem}.class-card small{color:#69756d;font-size:.4rem}.class-destitute,.class-poor{border-color:#b2564538;background:#6f29200f}.class-rich,.class-elite{border-color:#d8b46640;background:#b0822b12}.business-card{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.business-card strong,.business-card span,.business-card small{display:block}.business-card strong{font-size:.62rem}.business-card span{color:#aeb7af;font-size:.48rem}.business-card small{margin-top:2px;color:#758078;font-size:.42rem}.business-card>b{color:#87b587;font-size:.63rem}.business-card>b.loss{color:#c96d60}.animal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}.animal-summary>div{padding:8px;border:1px solid var(--line);border-radius:9px;background:#6f8b5a0b}.animal-summary span,.animal-summary strong{display:block}.animal-summary span{color:#9fac9e;font-size:.44rem}.animal-summary strong{margin-top:2px;font-size:.74rem}@media(max-width:430px){.economy-strip,.class-grid,.animal-summary{grid-template-columns:repeat(2,1fr)}.infra-grid{grid-template-columns:1fr}}.developer-panel{position:absolute;left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:3px 10px;max-width:min(390px,calc(100% - 20px));padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:#040807e0;backdrop-filter:blur(10px);font:600 11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:#e8eee8;pointer-events:none}.developer-panel.hidden{display:none}.developer-panel span{display:flex;justify-content:space-between;gap:8px;color:#aab7ad}.developer-panel b{color:#fff;font-weight:700}.developer-panel .wide{grid-column:1/-1}.shooting-topline{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shooting-controls{display:flex;gap:7px;pointer-events:auto}.shooting-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:#070b0ab8;backdrop-filter:blur(12px);color:#fff;font-size:18px;touch-action:manipulation}.shooting-controls button.active{border-color:#e1c077bf;color:#f1cf85;background:#3a2c14b8}.tiktok-mode .shooting-day{position:static!important}.tiktok-mode .shooting-goal{display:none}.tiktok-mode .shooting-story{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 92px);width:auto!important;max-width:560px;margin:auto}.tiktok-mode .shooting-event{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));top:calc(max(12px,env(safe-area-inset-top)) + 58px);bottom:auto;width:auto;max-width:520px;margin:0 auto;transform:translateY(-8px)}.tiktok-mode .shooting-event.visible{transform:translateY(0)}.tiktok-mode .shooting-stats{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));justify-content:center}.tiktok-mode .topbar,.tiktok-mode .journal-shell,.tiktok-mode .camera-controls,.tiktok-mode .quick-dock,.tiktok-mode .colony-pulse,.tiktok-mode .story-ribbon,.tiktok-mode .map-mode-chip,.tiktok-mode .canvas-help{display:none!important}.game-shell.tiktok-mode{height:100dvh;min-height:100dvh;grid-template-rows:minmax(0,1fr)!important}.tiktok-mode .game-main,.tiktok-mode .canvas-stage{height:100%;min-height:0}.tiktok-mode.tiktok-ui-hidden .shooting-overlay>*{opacity:0;pointer-events:none;transition:opacity .28s ease}.tiktok-mode .shooting-overlay>*{transition:opacity .28s ease}.tiktok-mode.tiktok-selection-armed .canvas-stage{outline:2px solid rgba(232,195,112,.65);outline-offset:-3px}@media(max-width:430px){.shooting-controls{gap:5px}.shooting-controls button{width:38px;height:38px;border-radius:11px}.tiktok-mode .shooting-story{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 72px)}.tiktok-mode .shooting-stats{gap:4px}.tiktok-mode .shooting-stats span:nth-child(n+4){display:none}.developer-panel{grid-template-columns:1fr;font-size:10px}}@media(orientation:landscape)and (max-height:520px){.tiktok-mode .shooting-story{left:16px;right:auto;bottom:max(12px,env(safe-area-inset-bottom));width:min(45vw,430px)!important}.tiktok-mode .shooting-stats{left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:45vw;justify-content:flex-end}.tiktok-mode .shooting-event{display:none}}.game-shell.tiktok-mode>.game-main{grid-row:1!important;grid-column:1}.task-diagnostic{margin:8px 0 12px;padding:10px;border:1px solid rgba(217,186,122,.2);border-radius:10px;background:#d9ba7a0e}.task-diagnostic>div{display:grid;grid-template-columns:58px 1fr;gap:8px;padding:4px 0}.task-diagnostic span{color:#8f9a92;font-size:.5rem}.task-diagnostic strong{font-size:.58rem;line-height:1.35}.task-diagnostic .blocked strong{color:#cf8172}.task-diagnostic small{display:block;margin-top:6px;padding-top:6px;border-top:1px solid var(--line);color:#7f8a82;font-size:.48rem}.family-cause{margin:5px 0 9px;padding:8px;border-left:2px solid rgba(217,186,122,.5);background:#d9ba7a0b}.family-cause span,.family-cause strong{display:block}.family-cause span{color:#89948c;font-size:.45rem}.family-cause strong{margin-top:3px;font-size:.54rem;line-height:1.35}.tiktok-mode[data-tiktok-hud=hidden] .shooting-overlay>*{display:none!important}.tiktok-mode[data-tiktok-hud=minimal] .shooting-story,.tiktok-mode[data-tiktok-hud=minimal] .shooting-event,.tiktok-mode[data-tiktok-hud=minimal] .shooting-stats,.tiktok-mode[data-tiktok-hud=events] .shooting-stats{display:none!important}.tiktok-mode[data-tiktok-camera=manual] .shooting-controls button[data-action=toggle-cinematic]{opacity:.45}.dynamic-resolution-note{color:#87938a;font-size:.5rem}.tiktok-mode .toast{top:calc(max(12px,env(safe-area-inset-top)) + 112px);bottom:auto;max-width:calc(100% - 32px);text-align:center;background:#070b0ad9;box-shadow:none}.life-card{margin:10px 0 12px;padding:11px;border:1px solid rgba(217,186,122,.23);border-radius:11px;background:linear-gradient(145deg,#d9ba7a14,#ffffff06)}.life-card>span,.building-level-card>span,.upgrade-card>span{display:block;color:#c9ad70;font-size:.44rem;letter-spacing:.12em}.life-card>strong{display:block;margin:4px 0 9px;font-size:.68rem;line-height:1.35}.life-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.life-grid>div{padding:7px;border:1px solid var(--line);border-radius:8px;background:#0002}.life-grid small,.life-grid b{display:block}.life-grid small{color:#7f8b82;font-size:.43rem}.life-grid b{margin-top:2px;font-size:.55rem;line-height:1.25}.education-progress{margin-top:8px}.education-progress i{display:block;height:5px;overflow:hidden;border-radius:999px;background:#ffffff10}.education-progress em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#71876d,#d4b369)}.education-progress small,.life-card p{display:block;margin:5px 0 0;color:#89958d;font-size:.47rem;line-height:1.35}.life-history{margin:8px 0 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff04}.life-history summary{padding:9px;cursor:pointer;color:#c6ad77;font-size:.55rem;font-weight:700}.life-history>div{padding:7px 9px;border-top:1px solid var(--line)}.life-history span,.life-history small{display:block}.life-history span{font-size:.55rem}.life-history small{margin-top:2px;color:#7f8b82;font-size:.45rem}.building-level-card{display:grid;grid-template-columns:1fr auto;gap:4px 8px;margin:8px 0;padding:10px;border:1px solid rgba(217,186,122,.24);border-radius:10px;background:#d9ba7a0b}.building-level-card>span{grid-column:1/-1}.building-level-card>strong{font-size:.9rem}.building-level-card>small{align-self:end;color:#89958d;font-size:.48rem}.upgrade-card{margin:8px 0 12px;padding:10px;border:1px solid rgba(207,142,82,.3);border-radius:10px;background:#89532517}.upgrade-card>strong{display:block;margin:4px 0 8px;font-size:.57rem;line-height:1.35}.society-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 14px}.society-strip>div{padding:8px 6px;border:1px solid rgba(217,186,122,.13);border-radius:9px;background:linear-gradient(145deg,#ffffff07,#d9ba7a08);min-width:0}.society-strip span,.society-strip strong,.society-strip small{display:block;overflow:hidden;text-overflow:ellipsis}.society-strip span{color:#9ba79f;font-size:.42rem}.society-strip strong{margin-top:2px;font-size:.64rem}.society-strip small{margin-top:2px;color:#748078;font-size:.4rem;white-space:nowrap}@media(max-width:430px){.society-strip{grid-template-columns:1fr 1fr}}.city-story-threads .city-story-thread{align-items:flex-start}.city-story-thread span em{display:block;margin-top:4px;color:#7f8b82;font-size:.42rem;font-style:normal;line-height:1.35}.city-story-thread.critical{border-left:2px solid #c76d60;padding-left:8px}.city-story-thread.important{border-left:2px solid #c9a763;padding-left:8px}:root{--hud-surface:rgba(13,20,17,.88);--hud-surface-strong:rgba(10,16,13,.96);--hud-line:rgba(224,203,151,.2);--hud-accent:#d5bb7b;--hud-text:#eef1ec;--hud-muted:#9ca8a0;--hud-radius:14px;--hud-hit:44px}.game-shell.world-hud{grid-template-rows:64px minmax(0,1fr) auto;background:#101713;overflow:hidden}.world-hud .topbar{height:64px;min-height:64px;padding:8px 12px;gap:12px;border-bottom:1px solid var(--hud-line);background:linear-gradient(180deg,#0a100df7,#0d1411e6);backdrop-filter:blur(18px);z-index:80}.world-hud .brand-block{min-width:136px;gap:9px}.world-hud .brand-mark{width:38px;height:38px;border-radius:12px;font-size:.8rem}.world-hud .brand-block strong{font-size:.72rem;letter-spacing:.13em}.world-hud .brand-block span{font-size:.45rem;color:var(--hud-muted)}.world-hud .time-block{min-width:116px;padding:0 10px;border-left:1px solid var(--hud-line)}.world-hud .time-block span,.world-hud .time-block small{font-size:.45rem}.world-hud .time-block strong{font-size:1rem;line-height:1.05}.world-status{display:flex;flex-direction:column;min-width:128px;padding:6px 10px;border:1px solid var(--hud-line);border-radius:11px;background:#ffffff09}.world-status span{font-size:.64rem;font-weight:750;color:var(--hud-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-status strong{margin-top:2px;font-size:.45rem;color:var(--hud-muted);font-weight:600}.world-hud .resource-strip{display:flex;min-width:0;overflow:hidden;gap:5px}.world-hud .resource-chip{min-width:64px;padding:5px 7px;border-radius:9px}.world-hud .resource-chip:nth-child(n+7){display:none}.world-hud .top-actions{margin-left:auto;display:flex;gap:6px}.hud-icon-button{width:var(--hud-hit);height:var(--hud-hit);display:grid;place-items:center;border:1px solid var(--hud-line);border-radius:12px;background:#ffffff0e;color:var(--hud-text);font-size:1rem;cursor:pointer}.world-hud .game-main{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);min-height:0;overflow:hidden}.world-hud .left-sidebar{position:relative;display:block;width:58px;min-width:58px;overflow:visible;z-index:60}.world-hud .side-nav{width:58px;height:100%;padding:8px 6px;gap:4px;background:#0b110ef0;border-right:1px solid var(--hud-line)}.world-hud .nav-button{width:46px;min-height:46px;border-radius:12px}.world-hud .nav-button span{display:none}.world-hud .nav-button svg{width:20px;height:20px}.world-hud .left-panel{position:absolute;left:58px;top:0;bottom:0;width:min(340px,calc(100vw - 74px));z-index:65;transform:translate(-108%);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .18s ease;background:var(--hud-surface-strong);border-right:1px solid var(--hud-line);box-shadow:20px 0 40px #00000057}.world-hud .left-sidebar.panel-open .left-panel{transform:translate(0);opacity:1;pointer-events:auto}.world-hud .panel-mobile-close{display:grid;position:sticky;top:0;margin-left:auto;z-index:2;width:44px;height:44px}.world-hud .canvas-stage{grid-column:2;position:relative;min-width:0;min-height:0;overflow:hidden;background:#15221b}.world-hud #game-canvas{width:100%;height:100%;display:block;touch-action:none}.world-hud .right-sidebar{position:absolute;right:10px;top:10px;bottom:98px;width:min(340px,calc(100vw - 82px));z-index:58;pointer-events:none}.world-hud .right-sidebar.open{pointer-events:auto}.navigation-dock{position:absolute;left:12px;bottom:92px;z-index:42;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--hud-line);border-radius:15px;background:var(--hud-surface);backdrop-filter:blur(14px);box-shadow:0 12px 28px #00000040}.navigation-dock button{width:58px;min-height:48px;padding:4px;border:0;border-radius:10px;background:transparent;color:var(--hud-text);cursor:pointer}.navigation-dock button:hover{background:#ffffff12}.navigation-dock span,.navigation-dock small{display:block}.navigation-dock span{font-size:1rem}.navigation-dock small{margin-top:2px;font-size:.4rem;color:var(--hud-muted)}.time-dock{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));z-index:50;display:flex;align-items:stretch;gap:7px;transform:translate(-50%);padding:7px;border:1px solid var(--hud-line);border-radius:17px;background:var(--hud-surface);backdrop-filter:blur(18px);box-shadow:0 14px 34px #00000057}.world-hud .speed-controls{display:flex;gap:4px}.world-hud .speed-button,.time-skip-controls button{min-width:var(--hud-hit);height:var(--hud-hit);padding:0 10px;border:1px solid transparent;border-radius:11px;background:#ffffff0e;color:var(--hud-text);font-weight:800;cursor:pointer;transition:transform .12s ease,background .15s ease,border-color .15s ease}.world-hud .speed-button span{font-size:.65rem}.world-hud .speed-button small{display:none}.world-hud .speed-button.active{border-color:#e5c98294;background:linear-gradient(180deg,#ceae6347,#9f7e392e);box-shadow:inset 0 0 0 1px #ffecb814,0 0 18px #ceae631f}.world-hud .speed-button.pause-button.active{border-color:#d57a68ad;background:#9d433647}.time-skip-controls{display:flex;gap:4px;padding-left:7px;border-left:1px solid var(--hud-line)}.time-skip-controls .skip-button{min-width:58px;color:#e7d5a8}.time-skip-controls small{display:block;font-size:.36rem;font-weight:600;color:var(--hud-muted)}.time-skip-controls .more-button{min-width:44px;letter-spacing:.08em}.world-hud button:active{transform:scale(.96)}.world-hud button:focus-visible{outline:2px solid var(--hud-accent);outline-offset:2px}.floating-menu,.hud-drawer{position:absolute;z-index:70;border:1px solid var(--hud-line);border-radius:16px;background:var(--hud-surface-strong);backdrop-filter:blur(20px);box-shadow:0 22px 50px #0000006b}.time-more-menu{left:50%;bottom:75px;transform:translate(45px);min-width:218px;padding:7px}.time-more-menu button,.settlement-menu button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--hud-text);text-align:left}.time-more-menu button:hover,.settlement-menu button:hover{background:#fff1}.time-more-menu span{font-weight:800}.time-more-menu small,.settlement-menu small{font-size:.45rem;color:var(--hud-muted)}.settlement-menu{left:82px;bottom:92px;width:min(270px,calc(100vw - 100px));padding:8px}.settlement-menu>strong{display:block;padding:8px 10px;color:var(--hud-accent);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase}.settlement-menu button span{font-size:.58rem;font-weight:750}.hud-drawer{right:12px;top:12px;width:min(390px,calc(100vw - 24px));max-height:calc(100% - 24px);padding:12px;overflow:auto}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--hud-line)}.drawer-head span,.drawer-head strong{display:block}.drawer-head span{font-size:.42rem;color:var(--hud-accent);letter-spacing:.12em}.drawer-head strong{margin-top:3px;font-size:.82rem}.drawer-head button{width:44px;height:44px;border-radius:11px}.hud-drawer section{padding-top:12px}.hud-drawer h3{margin:0 0 8px;font-size:.52rem;color:var(--hud-muted);letter-spacing:.08em;text-transform:uppercase}.map-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.map-mode-grid button,.drawer-actions button{min-height:44px;padding:9px;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:#ffffff09;color:var(--hud-text);font-size:.54rem}.map-mode-grid button.active{border-color:#ddc07b73;background:#c39e4b29;color:#f4e6bd}.drawer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.drawer-actions button{display:flex;align-items:center;gap:8px;text-align:left}.drawer-actions span{font-weight:700}.map-mode-chip{position:absolute;top:12px;left:50%;z-index:35;transform:translate(-50%);padding:6px 10px;border:1px solid var(--hud-line);border-radius:999px;background:#0c1310b8;color:#d7c28d;font-size:.42rem;letter-spacing:.09em;pointer-events:none}.camera-controls{position:absolute;right:12px;bottom:92px;z-index:40;display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px;border:1px solid var(--hud-line);border-radius:14px;background:var(--hud-surface)}.camera-controls button{width:44px;height:44px;border-radius:10px}.camera-controls input{width:78px;height:24px;writing-mode:vertical-lr;direction:rtl}.camera-controls span{font-size:.42rem;color:var(--hud-muted)}.fast-forward-progress{z-index:90;bottom:82px}.time-skip-notice{position:absolute;left:50%;bottom:86px;z-index:68;transform:translate(-50%);max-width:min(540px,calc(100% - 24px));padding:9px 14px;border:1px solid var(--hud-line);border-radius:12px;background:#0c1310f0;color:var(--hud-text);font-size:.54rem;box-shadow:0 12px 28px #0000004d}.journal-shell{max-height:0;min-height:0;overflow:hidden;border-top:0;transition:max-height .22s ease;background:var(--hud-surface-strong)}.journal-shell.open{max-height:min(230px,38vh);border-top:1px solid var(--hud-line)}.journal-shell:not(.open) .event-journal,.journal-shell:not(.open) .journal-filters{display:none}.journal-header{min-height:48px}.journal-header>button{width:44px;height:44px;border-radius:10px}.statistics-tabs{display:flex;gap:5px;margin:0 0 12px;padding-bottom:5px;overflow-x:auto;scrollbar-width:none}.statistics-tabs button{min-height:38px;white-space:nowrap;padding:0 10px;border:1px solid var(--hud-line);border-radius:999px;background:#ffffff09;color:var(--hud-muted);font-size:.46rem}.statistics-tabs button.active{background:#cba95c2e;color:#efdfb3;border-color:#dec07a66}.settlement-stat-card{display:flex;flex-direction:column;width:100%;min-height:62px;margin:6px 0;padding:10px;border:1px solid var(--hud-line);border-radius:11px;background:#ffffff09;color:var(--hud-text);text-align:left}.settlement-stat-card span,.settlement-stat-card small{margin-top:3px;color:var(--hud-muted);font-size:.46rem}.world-hud .objective-chip{max-width:min(440px,44vw);top:48px}.world-hud .colony-pulse{top:12px;right:78px}.world-hud .story-ribbon{top:58px}.world-hud .canvas-help{bottom:12px;right:72px;left:auto;opacity:.6}.world-hud .quick-dock{display:none!important}@media(max-width:1100px){.world-hud .resource-chip:nth-child(n+5){display:none}.world-status{min-width:108px}.world-hud .brand-block{min-width:115px}.world-hud .brand-block span{display:none}}@media(max-width:820px){.game-shell.world-hud{grid-template-rows:58px minmax(0,1fr) auto}.world-hud .topbar{height:58px;min-height:58px;padding:6px 8px;gap:7px;padding-top:max(6px,env(safe-area-inset-top))}.world-hud .brand-block{min-width:42px}.world-hud .brand-block>div:last-child{display:none}.world-hud .brand-mark{width:38px;height:38px}.world-hud .time-block{min-width:92px;padding:0 7px}.world-hud .time-block small{display:none}.world-hud .time-block strong{font-size:.88rem}.world-status{min-width:0;flex:1;padding:5px 8px}.world-status span{font-size:.55rem}.world-hud .resource-strip{display:none}.world-hud .top-actions{margin-left:0}.world-hud .game-main{grid-template-columns:minmax(0,1fr)}.world-hud .left-sidebar{position:absolute;left:0;top:0;bottom:0;width:0;min-width:0;z-index:73}.world-hud .side-nav{position:absolute;left:8px;top:8px;width:52px;height:auto;max-height:calc(100% - 126px);padding:4px;border:1px solid var(--hud-line);border-radius:14px;background:#0a100dd1;transform:translate(-76px);transition:transform .2s ease}.world-hud .left-sidebar.panel-open .side-nav{transform:translate(0)}.world-hud .left-panel{left:0;width:min(344px,calc(100vw - 16px));border-radius:0 16px 16px 0}.world-hud .canvas-stage{grid-column:1}.world-hud .right-sidebar{right:8px;top:8px;bottom:96px;width:calc(100vw - 16px)}.navigation-dock{left:8px;bottom:76px;flex-direction:row;max-width:calc(100% - 16px);padding:5px;overflow-x:auto}.navigation-dock button{width:44px;min-width:44px;height:44px;min-height:44px;padding:2px}.navigation-dock button:nth-child(4),.navigation-dock button:nth-child(5){display:none}.navigation-dock small{display:none}.navigation-dock span{font-size:.92rem}.time-dock{left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));transform:none;justify-content:center;padding:5px;gap:5px;border-radius:15px}.world-hud .speed-controls{flex:1;justify-content:center}.world-hud .speed-button{min-width:44px;padding:0 7px}.time-skip-controls{padding-left:5px}.time-skip-controls .skip-button{min-width:48px;padding:0 5px}.time-skip-controls small{display:none}.time-more-menu{left:auto;right:8px;bottom:68px;transform:none}.settlement-menu{left:8px;bottom:128px}.camera-controls{right:8px;bottom:128px;padding:4px}.camera-controls input,.camera-controls span{display:none}.camera-controls button{width:44px;height:44px}.hud-drawer{right:8px;top:8px;width:calc(100% - 16px);max-height:calc(100% - 84px)}.map-mode-chip{top:8px;font-size:.38rem}.world-hud .objective-chip,.world-hud .colony-pulse,.world-hud .story-ribbon,.world-hud .canvas-help{display:none}.time-skip-notice{bottom:124px}.fast-forward-progress{bottom:122px}}@media(max-width:430px){.world-hud .speed-button[data-action=speed-10]{display:none}.world-hud .speed-button{min-width:42px;width:42px}.time-skip-controls .skip-button{min-width:44px}.navigation-dock button:nth-child(6){display:none}.map-mode-grid,.drawer-actions{grid-template-columns:1fr 1fr}}@media(orientation:portrait)and (max-width:820px){.world-hud .right-sidebar{bottom:126px}.journal-shell.open{max-height:32vh}}.world-size-picker{display:block;margin:0 0 12px;padding:10px;border:1px solid var(--hud-line);border-radius:12px;background:#ffffff09}.world-size-picker span{display:block;margin-bottom:6px;color:var(--hud-muted);font-size:.48rem}.world-size-picker select{width:100%;min-height:44px}@media(max-width:430px){.world-hud .speed-button[data-action=speed-10]{display:grid}.time-dock{left:4px;right:4px}.world-hud .speed-controls,.time-skip-controls{gap:3px}}.world-hud .navigation-dock,.world-hud .camera-controls,.world-hud .map-mode-chip{transition:opacity .18s ease,transform .18s ease}.world-hud.auxiliary-hud-hidden .navigation-dock,.world-hud.auxiliary-hud-hidden .camera-controls,.world-hud.auxiliary-hud-hidden .map-mode-chip{opacity:0;pointer-events:none;transform:translateY(8px)}@media(max-width:430px){.time-dock{left:50%;right:auto;width:auto;min-width:0;transform:translate(-50%);overflow:visible}.world-hud .speed-controls{flex:0 0 auto;gap:3px}.world-hud .speed-button{width:44px;min-width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:0 5px}.time-skip-controls{position:absolute;right:calc(50% - 187px);bottom:58px;padding:5px;gap:3px;border:1px solid var(--hud-line);border-radius:14px;background:var(--hud-surface);backdrop-filter:blur(16px)}.time-skip-controls .skip-button,.time-skip-controls .more-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0 3px}.navigation-dock{bottom:70px}.camera-controls,.time-more-menu{bottom:128px}}@media(max-width:374px){.world-hud .speed-button[data-action=speed-10]{display:none}.time-skip-controls{right:calc(50% - 179px)}}@media(max-width:820px){.game-shell.world-hud .topbar{display:flex;grid-template-columns:none;grid-template-rows:none}.world-hud .top-actions{position:static;grid-column:auto;grid-row:auto;width:auto;min-width:44px;flex:0 0 auto;margin-left:auto;overflow:visible}.world-hud .right-sidebar:not(.open){display:none}.world-hud .right-sidebar.open{display:block;transform:none;top:8px;right:8px;bottom:126px;width:calc(100vw - 16px);max-height:none}.world-hud .map-mode-chip{inset:8px auto auto 50%;width:max-content;max-width:calc(100% - 112px);height:auto;min-height:0;transform:translate(-50%);white-space:nowrap}.world-hud .camera-controls{left:auto;right:8px;bottom:128px;width:auto;min-width:0;max-width:none;height:auto;transform:none;flex-direction:column;overflow:visible}.world-hud .camera-controls input,.world-hud .camera-controls span{display:none}.world-hud .camera-controls button{width:44px;min-width:44px;height:44px;min-height:44px}.world-hud .time-dock{width:max-content;min-width:max-content;max-width:calc(100vw - 16px);justify-content:flex-start}.world-hud #speed-controls{width:max-content;min-width:max-content;flex:0 0 auto;overflow:visible}}@media(max-width:430px){.world-hud .time-skip-controls{position:fixed;right:8px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 70px));z-index:52}}.developer-panel{max-height:min(72vh,620px);overflow:auto;pointer-events:auto}.developer-growth{display:flex!important;flex-direction:column;gap:4px;margin-top:5px;padding-top:7px;border-top:1px solid rgba(255,255,255,.12)}.developer-growth strong{color:#f0d18c;font:700 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em}.developer-growth em{display:block;color:#d6ddd7;font:500 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;font-style:normal;white-space:normal}.world-hud .camera-controls{left:auto;right:12px;bottom:92px;width:auto;min-width:0;max-width:none;height:auto;transform:none}.world-hud .right-sidebar:not(.open){display:none}.world-hud .right-sidebar.open{display:block;pointer-events:auto;width:min(360px,calc(100vw - 82px));border:1px solid var(--hud-line);border-radius:16px;background:var(--hud-surface-strong);box-shadow:0 18px 48px #0000006b}@media(orientation:landscape)and (max-height:520px){.world-hud .right-sidebar:not(.open){display:none!important}.world-hud .right-sidebar.open{top:6px;right:6px;bottom:70px;width:min(410px,52vw)}.world-hud .camera-controls{right:7px;bottom:68px;padding:4px}.world-hud .camera-controls input,.world-hud .camera-controls span{display:none}.world-hud .navigation-dock{bottom:7px;left:7px;flex-direction:row}.world-hud .navigation-dock button{width:44px;min-width:44px;height:44px;min-height:44px}.world-hud .navigation-dock small{display:none}.world-hud .time-dock{bottom:7px}}.tiktok-mode .navigation-dock,.tiktok-mode .time-dock,.tiktok-mode .time-more-menu,.tiktok-mode .hud-drawer,.tiktok-mode .settlement-menu{display:none!important}

/* v0.10.10 — UX clarity layer */
.world-status button{all:unset;display:block;width:100%;cursor:pointer}
.world-status small{display:block;margin-top:2px;color:#a5aea6;font-size:.54rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resource-symbol.critical:before,.resource-symbol.warning:before,.resource-symbol.good:before,.resource-symbol.housing:before,.resource-symbol.jobs:before{content:"";position:absolute;inset:1px;border-radius:50%;border:2px solid currentColor}.resource-symbol.critical{color:#c56d65}.resource-symbol.warning{color:#cba25f}.resource-symbol.good{color:#83a982}.resource-symbol.housing{color:#9eb1c7}.resource-symbol.jobs{color:#b7a16a}.resource-symbol.housing:after{content:"";position:absolute;left:4px;top:7px;width:9px;height:7px;background:currentColor;clip-path:polygon(50% 0,100% 45%,100% 100%,0 100%,0 45%)}.resource-symbol.jobs:after{content:"";position:absolute;left:4px;top:5px;width:9px;height:7px;border:1.5px solid currentColor;border-radius:2px}.colony-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.status-card{min-height:76px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#ffffff07;color:var(--text);text-align:left;cursor:pointer}.status-card span,.status-card small{display:block;color:var(--muted);font-size:.56rem}.status-card strong{display:block;margin:4px 0;font-size:.95rem}.status-card.good{border-color:#83a98242;background:#83a98212}.status-card.warning{border-color:#cba25f55;background:#cba25f13}.status-card.critical{border-color:#c56d6570;background:#c56d651a}.status-card.recovering{border-color:#7fa0c655;background:#7fa0c615}.problem-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin:10px 0 12px}.problem-summary>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:#ffffff07}.problem-summary span,.problem-summary strong{display:block}.problem-summary span{color:var(--muted);font-size:.55rem}.problem-summary strong{margin-top:3px;font-size:1rem}.problem-list{display:flex;flex-direction:column;gap:9px}.problem-card{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#ffffff08}.problem-card.critical{border-color:#c56d6572;background:#c56d6516}.problem-card.warning{border-color:#cba25f55;background:#cba25f10}.problem-main{width:100%;padding:11px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.problem-main span{display:block;color:var(--accent);font-size:.52rem;font-weight:800;letter-spacing:.12em}.problem-main strong{display:block;margin:4px 0;font-size:.82rem}.problem-main p{margin:0;color:#cdd4ce;font-size:.62rem;line-height:1.4}.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-top:1px solid var(--line);background:#00000024}.problem-grid>div{padding:8px;background:#ffffff05}.problem-grid small,.problem-grid b{display:block}.problem-grid small{color:var(--muted);font-size:.49rem}.problem-grid b{margin-top:3px;font-size:.58rem;font-weight:650;line-height:1.3}.empty-state{padding:14px;border:1px solid var(--line);border-radius:13px;background:#ffffff07}.empty-state strong{display:block;margin-bottom:5px}.empty-state p{margin:0;color:var(--muted);font-size:.64rem;line-height:1.45}.critical-alerts{position:absolute;left:50%;top:110px;z-index:42;display:flex;flex-direction:column;gap:6px;width:min(420px,calc(100% - 36px));transform:translateX(-50%);pointer-events:none}.critical-alert{pointer-events:auto;padding:9px 12px;border:1px solid #c56d6570;border-radius:13px;background:#12130fe8;color:var(--text);box-shadow:0 12px 28px #00000055;text-align:left}.critical-alert strong,.critical-alert span{display:block}.critical-alert strong{font-size:.68rem}.critical-alert span{margin-top:2px;color:#d6b6b1;font-size:.55rem}.global-search-box{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px;margin-top:6px}.global-search-box input{min-height:38px;width:100%;border:1px solid var(--hud-line);border-radius:10px;background:#050807c7;color:var(--hud-text);padding:0 10px}.global-search-box button{border:1px solid var(--hud-line);border-radius:10px;background:#ffffff0c}.global-search-results{display:flex;flex-direction:column;gap:5px;margin-top:8px;max-height:230px;overflow:auto}.global-search-results button{width:100%;padding:8px;border:1px solid var(--hud-line);border-radius:10px;background:#ffffff08;color:var(--hud-text);text-align:left}.global-search-results strong,.global-search-results span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-results span,.global-search-results small{color:var(--hud-muted);font-size:.52rem}.onboarding-card{max-width:min(430px,calc(100vw - 24px));}.onboarding-card>p{margin:8px 0 12px;color:var(--muted);font-size:.76rem;line-height:1.45}.onboarding-progress{display:flex;gap:5px;margin:10px 0 12px}.onboarding-progress i{height:4px;flex:1;border-radius:99px;background:#ffffff20}.onboarding-progress i.active{background:var(--accent)}.coach-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:7px}.selection-current-human{padding:10px;border:1px solid var(--line);border-radius:12px;background:#ffffff07;margin:10px 0}.selection-current-human span{display:block;color:var(--accent);font-size:.55rem;font-weight:800;letter-spacing:.12em}.selection-current-human strong{display:block;margin-top:4px}.selection-current-human p{margin:5px 0 0;color:var(--muted);font-size:.62rem;line-height:1.4}.business-explain,.building-explain{padding:10px;border:1px solid var(--line);border-radius:12px;background:#ffffff07;margin:10px 0}.business-explain span,.building-explain span{display:block;color:var(--accent);font-size:.52rem;font-weight:800;letter-spacing:.12em}.business-explain p,.building-explain p{margin:5px 0 0;color:var(--muted);font-size:.62rem;line-height:1.42}.journal-empty{padding:16px;border:1px solid var(--line);border-radius:12px;background:#ffffff07;color:var(--muted)}@media(max-width:820px){.colony-status-grid{grid-template-columns:1fr}.problem-grid{grid-template-columns:1fr}.critical-alerts{top:68px;width:calc(100% - 18px)}.critical-alert{padding:8px 10px}.hud-drawer .global-search-results{max-height:170px}.coach-actions{grid-template-columns:1fr}.onboarding-card{left:8px;right:8px;bottom:132px;max-width:none}.world-hud .left-panel{max-height:calc(100vh - 22px);overflow:auto}.world-hud .right-sidebar.open{overflow:auto}}@media(orientation:landscape)and (max-height:520px){.critical-alerts{display:none}.onboarding-card{bottom:74px;max-height:calc(100vh - 92px);overflow:auto}.colony-status-grid{grid-template-columns:1fr 1fr}}

/* v0.10.12 — core gameplay loop layer */
.gameplay-index-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.gameplay-index-card>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#ffffff0b,#ffffff04)}.gameplay-index-card span,.gameplay-index-card small{display:block;color:var(--muted);font-size:.56rem}.gameplay-index-card strong{display:block;margin:4px 0;font-size:1.35rem}.gameplay-failure{padding:12px;margin:0 0 12px;border:1px solid #c56d6574;border-radius:14px;background:#c56d6517}.gameplay-failure strong{display:block;color:#f0b6ad}.gameplay-failure p{margin:5px 0;color:#ead3ce;font-size:.66rem}.gameplay-section{margin:12px 0;padding-top:10px;border-top:1px solid var(--line)}.section-title{display:flex;justify-content:space-between;gap:8px;align-items:flex-end;margin-bottom:8px}.section-title span{font-weight:800;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.section-title small{color:var(--muted);font-size:.54rem;text-align:right}.goal-card,.project-card{margin:8px 0;padding:11px;border:1px solid var(--line);border-radius:14px;background:#ffffff07}.goal-card.crisis,.project-card.blocked{border-color:#c56d6570;background:#c56d6514}.goal-card.development{border-color:#90a7d155;background:#90a7d112}.goal-card.long_term{border-color:#b9a66a55;background:#b9a66a12}.goal-head,.project-head{display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.goal-head span,.project-head span{color:var(--accent);font-size:.5rem;font-weight:900;letter-spacing:.12em}.goal-head strong,.project-head strong{font-size:.78rem;text-align:right}.goal-card p,.project-card p{margin:7px 0;color:#cdd4ce;font-size:.62rem;line-height:1.4}.goal-progress{display:block;height:6px;border-radius:999px;background:#00000050;overflow:hidden}.goal-progress em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a68d51,#d0bd79)}.goal-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px}.goal-foot small{color:var(--muted);font-size:.54rem}.priority-grid,.decision-grid{display:grid;grid-template-columns:1fr;gap:8px}.priority-card,.decision-button{padding:10px;border:1px solid var(--line);border-radius:13px;background:#ffffff07;color:var(--text);text-align:left;cursor:pointer}.priority-card.active{border-color:#d0bd7975;background:#d0bd7918}.priority-card span{display:block;color:var(--accent);font-size:.49rem;font-weight:900;letter-spacing:.12em}.priority-card strong,.decision-button strong{display:block;font-size:.72rem}.priority-card p{margin:5px 0;color:#cdd4ce;font-size:.58rem;line-height:1.35}.priority-card small,.decision-button small{display:block;color:var(--muted);font-size:.52rem;line-height:1.35}.decision-grid{grid-template-columns:1fr 1fr}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:8px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#00000025}.project-grid>div{padding:7px;background:#ffffff05}.project-grid small,.project-grid b{display:block}.project-grid small{color:var(--muted);font-size:.49rem}.project-grid b{margin-top:3px;font-size:.55rem;line-height:1.3}.completed-goals,.milestone-row,.decision-row{margin:7px 0;padding:9px;border:1px solid var(--line);border-radius:11px;background:#ffffff06}.completed-goals span,.completed-goals small,.milestone-row strong,.milestone-row small,.decision-row strong,.decision-row small{display:block}.completed-goals span{color:var(--accent);font-size:.53rem;font-weight:800}.completed-goals small,.milestone-row small,.decision-row small{color:var(--muted);font-size:.55rem;line-height:1.35}.milestone-row strong,.decision-row strong{font-size:.68rem}@media(max-width:820px){.gameplay-index-card,.decision-grid,.project-grid{grid-template-columns:1fr}.section-title{display:block}.section-title small{text-align:left;display:block;margin-top:3px}.goal-head,.project-head{display:block}.goal-head strong,.project-head strong{text-align:left;display:block;margin-top:3px}}

/* v0.10.16 QA overlay: only injected when the explicit ?qa=1 or ?qa=mobile flag is present. */
.k77-qa-overlay {
  position: fixed;
  z-index: 99999;
  left: max(8px, env(safe-area-inset-left));
  bottom: max(8px, env(safe-area-inset-bottom));
  width: min(310px, calc(100vw - 16px));
  max-height: min(58vh, 520px);
  overflow: auto;
  padding: 10px;
  border: 1px solid rgba(222, 193, 125, .42);
  border-radius: 12px;
  color: #f2ead7;
  background: rgba(8, 13, 11, .92);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .48);
  font: 11px/1.25 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  backdrop-filter: blur(9px);
  pointer-events: auto;
}
.k77-qa-overlay header, .k77-qa-overlay footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.k77-qa-overlay header { margin-bottom: 8px; }
.k77-qa-overlay header strong { color: #e4c77f; }
.k77-qa-overlay header span, .k77-qa-overlay footer small { color: #93a39b; }
.k77-qa-overlay [data-qa-body] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; }
.k77-qa-overlay [data-qa-body] span { display: flex; justify-content: space-between; gap: 8px; min-width: 0; }
.k77-qa-overlay [data-qa-body] i { color: #8fa097; font-style: normal; }
.k77-qa-overlay [data-qa-body] b { overflow: hidden; color: #f5f0e4; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.k77-qa-overlay footer { margin-top: 8px; }
.k77-qa-overlay button { min-height: 30px; padding: 4px 10px; border: 1px solid rgba(222, 193, 125, .35); border-radius: 7px; color: #f2ead7; background: rgba(68, 76, 58, .88); }
.k77-qa-overlay.mobile { width: min(270px, calc(100vw - 16px)); max-height: 44vh; font-size: 10px; opacity: .94; }

/* v0.10.28 — Long-run stability preserves mobile bottom sheets and TikTok capture polish. */
@media (max-width: 820px), (pointer: coarse) {
  html, body, #app { overscroll-behavior: none; touch-action: manipulation; }
  #game-canvas, .canvas-stage { touch-action: none; -webkit-user-select: none; user-select: none; }
  .world-hud .topbar { padding-left: max(8px, env(safe-area-inset-left)); padding-right: max(8px, env(safe-area-inset-right)); }
  .world-hud .left-sidebar { pointer-events: none; position: absolute; inset: 0; width: 100%; background: transparent; border: 0; z-index: 74; }
  .world-hud .left-sidebar.panel-open { pointer-events: auto; }
  .world-hud .left-sidebar .side-nav { pointer-events: auto; }
  .world-hud .left-sidebar.panel-open .left-panel {
    position: fixed; left: max(6px, env(safe-area-inset-left)); right: max(6px, env(safe-area-inset-right)); bottom: max(70px, calc(env(safe-area-inset-bottom) + 70px));
    top: auto; width: auto; height: min(56vh, 520px); max-height: min(56vh, 520px); min-height: 220px;
    padding: 8px 12px max(14px, env(safe-area-inset-bottom)); border: 1px solid var(--hud-line); border-radius: 18px 18px 16px 16px;
    background: var(--hud-surface-strong); box-shadow: 0 -16px 48px #0000008a; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  }
  .panel-mobile-close { display: grid; place-items: center; position: sticky; top: 0; margin-left: auto; z-index: 2; width: 46px; height: 38px; border: 1px solid var(--hud-line); border-radius: 12px; background: #101612f0; color: var(--hud-text); font-size: 1.2rem; }
  .panel-heading { margin-bottom: 10px; }
  .panel-heading h2, .right-sidebar h2 { font-size: 1rem; }
  .panel-heading p, .panel-note, .empty-selection p { font-size: .62rem; }
  .nav-button, .primary-button, .secondary-button, .save-slot button, .problem-main, .status-card, .drawer-actions button, .map-mode-grid button { min-height: 44px; }
  .problem-card, .build-card, .stock-card, .settlement-stat-card, .business-explain, .building-explain { border-radius: 12px; }
  .world-hud .right-sidebar.open {
    position: fixed; left: max(6px, env(safe-area-inset-left)); right: max(6px, env(safe-area-inset-right)); top: auto; bottom: max(70px, calc(env(safe-area-inset-bottom) + 70px));
    width: auto; height: min(52vh, 500px); max-height: min(52vh, 500px); overflow: auto; overscroll-behavior: contain; border-radius: 18px; padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .world-hud .hud-drawer {
    position: fixed; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); top: auto; bottom: max(70px, calc(env(safe-area-inset-bottom) + 70px));
    width: auto; max-height: min(62vh, 560px); overflow: auto; border-radius: 18px; overscroll-behavior: contain;
  }
  .world-hud .journal-shell.open { max-height: min(30vh, 260px); }
  .world-hud .statistics-tabs { position: sticky; top: 40px; z-index: 1; background: var(--hud-surface-strong); }
  .world-hud .metric-stack, .world-hud .stock-grid, .world-hud .colony-status-grid, .world-hud .problem-summary { grid-template-columns: 1fr; }
  .world-hud .developer-panel { display: none !important; }
  .time-dock { padding-bottom: max(5px, env(safe-area-inset-bottom)); }
  .toast { max-width: calc(100vw - 24px); bottom: max(82px, calc(env(safe-area-inset-bottom) + 82px)); }
}

@media (orientation: landscape) and (max-height: 520px) {
  .world-hud .left-sidebar.panel-open .left-panel { left: 6px; right: auto; bottom: 64px; width: min(430px, 54vw); height: calc(100vh - 74px); max-height: calc(100vh - 74px); border-radius: 16px; }
  .world-hud .right-sidebar.open { left: auto; right: 6px; bottom: 64px; width: min(430px, 52vw); height: calc(100vh - 74px); max-height: calc(100vh - 74px); }
  .world-hud .hud-drawer { left: auto; right: 6px; bottom: 64px; width: min(440px, 56vw); max-height: calc(100vh - 74px); }
}

.tiktok-mode .topbar, .tiktok-mode .left-sidebar, .tiktok-mode .right-sidebar, .tiktok-mode .journal-shell, .tiktok-mode .critical-alerts, .tiktok-mode .developer-panel, body.k77-tiktok-active #k77-qa-overlay { display: none !important; }
.tiktok-mode .shooting-overlay { display: block; pointer-events: none; inset: max(10px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); }
.tiktok-mode .shooting-controls { pointer-events: auto; }
.tiktok-mode[data-tiktok-hud="hidden"] .shooting-goal,
.tiktok-mode[data-tiktok-hud="hidden"] .shooting-story,
.tiktok-mode[data-tiktok-hud="hidden"] .shooting-event,
.tiktok-mode[data-tiktok-hud="hidden"] .shooting-stats { display: none !important; }
.tiktok-mode[data-tiktok-hud="minimal"] .shooting-stats { display: none !important; }
.tiktok-ui-hidden .shooting-goal, .tiktok-ui-hidden .shooting-story, .tiktok-ui-hidden .shooting-event, .tiktok-ui-hidden .shooting-stats { opacity: 0; pointer-events: none; }

.k77-qa-overlay.mobile { width: min(248px, calc(100vw - 14px)); max-height: 33vh; overflow: hidden; font-size: 9px; pointer-events: auto; }
.k77-qa-overlay header { gap: 5px; }
.k77-qa-overlay header button { margin-left: auto; min-width: 30px; min-height: 28px; border: 1px solid #ffffff26; border-radius: 8px; background: #ffffff12; color: inherit; }
.k77-qa-overlay.mobile [data-qa-body] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; max-height: 22vh; overflow: auto; }
.k77-qa-overlay.mobile footer { display: flex; gap: 4px; align-items: center; }
.k77-qa-overlay.mobile footer button { min-height: 30px; padding: 0 6px; }
.k77-qa-overlay.collapsed { width: auto; min-width: 120px; max-height: 40px; overflow: hidden; opacity: .82; }
.k77-qa-overlay.collapsed [data-qa-body], .k77-qa-overlay.collapsed footer { display: none; }

/* v0.10.28 — first-hour playable alpha slice */
.first-hour-guide{margin:0 0 14px;padding:14px;border:1px solid rgba(217,186,122,.34);border-radius:15px;background:linear-gradient(145deg,rgba(217,186,122,.14),rgba(42,57,49,.55));box-shadow:0 12px 28px rgba(0,0,0,.24)}
.first-hour-kicker{display:flex;justify-content:space-between;gap:10px;color:var(--accent);font-size:.55rem;font-weight:800;letter-spacing:.12em}.first-hour-kicker small{color:var(--muted);letter-spacing:0;font-weight:600}.first-hour-guide h3{margin:8px 0 5px;font-size:1.05rem}.first-hour-guide>p{margin:0;color:#d9dfda;font-size:.68rem;line-height:1.45}.first-hour-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}.first-hour-grid>div,.decision-confirm-grid>div{padding:9px;border:1px solid var(--line);border-radius:10px;background:#06090866}.first-hour-grid small,.decision-confirm-grid span{display:block;color:var(--muted);font-size:.52rem}.first-hour-grid b,.decision-confirm-grid strong{display:block;margin-top:4px;font-size:.62rem;line-height:1.35}.first-hour-consequence{margin:8px 0;padding:9px;border-left:3px solid var(--good);border-radius:0 9px 9px 0;background:rgba(130,163,127,.10)}.first-hour-consequence span{color:var(--good);font-size:.52rem;font-weight:800;letter-spacing:.1em}.first-hour-consequence p{margin:4px 0 0;font-size:.62rem;line-height:1.4}.first-hour-actions{display:flex;gap:7px}.first-hour-actions>*{flex:1}.first-hour-next{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);font-size:.55rem}.first-hour-next span{color:var(--accent)}.first-hour-next small{color:var(--muted);text-align:right}.problem-card.first-hour-primary{border-color:rgba(217,186,122,.72);box-shadow:0 0 0 1px rgba(217,186,122,.16),0 10px 24px rgba(0,0,0,.24)}
.decision-confirm-card{position:relative;width:min(470px,calc(100vw - 24px));padding:20px;border:1px solid rgba(217,186,122,.35);border-radius:18px;background:rgba(18,25,21,.98);box-shadow:0 24px 70px rgba(0,0,0,.65)}.decision-confirm-card h2{margin:5px 36px 12px 0}.decision-confirm-card>p{margin:12px 0 0;color:var(--muted);font-size:.68rem;line-height:1.45}.decision-confirm-grid{display:grid;gap:7px}.decision-confirm-grid>div:nth-child(2),.decision-confirm-grid>div:nth-child(3){grid-column:1/-1}.decision-confirm-card .button-row button{min-height:44px}
@media(max-width:820px){.first-hour-grid{grid-template-columns:1fr}.first-hour-actions{flex-direction:column}.first-hour-next{display:block}.first-hour-next small{display:block;margin-top:4px;text-align:left}.decision-confirm-card{padding:16px;max-height:calc(100vh - 24px);overflow:auto}.decision-confirm-grid{grid-template-columns:1fr}}

/* v0.10.28 — midgame progression */
.progression-guide-card{display:grid;gap:12px;padding:16px;border:1px solid rgba(213,180,106,.28);border-radius:18px;background:linear-gradient(145deg,rgba(25,25,25,.94),rgba(12,12,12,.9));margin:0 0 14px}
.progression-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.progression-guide-head span{font-size:10px;letter-spacing:.18em;color:var(--muted)}.progression-guide-head h3{margin:4px 0 0;font-size:18px}.progression-guide-head>b{font-size:20px;color:var(--gold)}
.progression-status{margin:0;color:var(--text);line-height:1.45}.progression-path-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.progression-path-summary>div,.progression-unlocks{padding:11px;border-radius:13px;background:rgba(255,255,255,.04)}.progression-path-summary small,.progression-unlocks small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.progression-path-summary strong,.progression-unlocks strong{display:block;margin:4px 0}.progression-path-summary p,.progression-unlocks p{margin:4px 0 0;color:var(--muted);line-height:1.4}
.progression-requirements{display:grid;gap:7px}.progression-requirement{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.035)}.progression-requirement>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.07)}.progression-requirement.done>span{color:#9bd38d}.progression-requirement.blocked.hard>span{color:#ffb36b}.progression-requirement.soft{opacity:.8}.progression-requirement strong,.progression-requirement small{display:block}.progression-requirement small{margin-top:2px;color:var(--muted)}.progression-requirement p{margin:4px 0 0;color:#d9b98a;font-size:12px}
.progression-details summary{cursor:pointer;color:var(--gold);font-weight:700}.progression-path-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.progression-soft-note{margin-top:8px;color:var(--muted);font-size:12px}.legacy-stage-summary{opacity:.72}
@media(max-width:720px){.progression-path-summary{grid-template-columns:1fr}.progression-path-buttons{grid-template-columns:1fr}.progression-guide-card{padding:13px}.progression-guide-head h3{font-size:16px}}

/* v0.10.35 — community life, culture, morale and settlement identity */
.community-guide{border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:14px;margin:12px 0;background:rgba(255,255,255,.025)}
.community-components{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.community-components>div{padding:9px;border-radius:12px;background:rgba(255,255,255,.04);display:flex;flex-direction:column;gap:3px}
.community-components span{font-size:10px;opacity:.68;text-transform:uppercase}.community-components strong{font-size:18px}
.community-events-section .community-event-card{margin-bottom:9px}.community-event-card p{margin:5px 0}.community-event-card small{display:block;opacity:.72}
@media(max-width:700px){.community-components{grid-template-columns:repeat(2,minmax(0,1fr))}.community-guide .progression-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-event-card{min-height:44px}}

/* v0.10.39 — Mobile/TikTok first-hour UX patch retained */
.objective-chip button{all:unset;display:block;cursor:pointer}.objective-chip small{display:block;margin-top:3px;color:var(--muted);font-size:.54rem;line-height:1.25}.mobile-first-hour-dock{display:none}.shooting-day small{display:block;margin-top:2px;color:#d8c59a;font-size:.55rem;font-weight:700;letter-spacing:.04em}.shooting-goal span{display:block;color:#d8c59a;font-size:.56rem;font-weight:800;letter-spacing:.12em}.shooting-goal strong{display:block;margin-top:3px;line-height:1.15}
@media(max-width:820px){
  .mobile-first-hour-dock{position:absolute;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(74px,calc(env(safe-area-inset-bottom) + 74px));z-index:34;display:block;padding:10px;border:1px solid rgba(217,186,122,.34);border-radius:18px;background:linear-gradient(145deg,rgba(14,19,16,.96),rgba(28,36,31,.92));box-shadow:0 18px 44px rgba(0,0,0,.42);backdrop-filter:blur(12px)}
  .mobile-first-hour-dock.hidden{display:none!important}.mobile-first-hour-head span{display:block;color:var(--accent);font-size:.53rem;font-weight:800;letter-spacing:.13em}.mobile-first-hour-head strong{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.mobile-first-hour-head small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.6rem}.mobile-first-hour-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}.mobile-first-hour-actions button{min-height:42px;padding:0 7px;border:1px solid var(--line);border-radius:12px;background:#ffffff0c;color:var(--text);font-size:.62rem;font-weight:800}.mobile-first-hour-actions .primary-button{border-color:var(--accent);background:var(--accent);color:#24241d}.mobile-first-hour-actions button[disabled]{opacity:.48}.objective-chip{max-width:calc(100vw - 24px)}.objective-chip small{display:none}.world-hud .left-sidebar.panel-open .left-panel{bottom:max(64px,calc(env(safe-area-inset-bottom) + 64px))}.tiktok-mode .mobile-first-hour-dock{display:none!important}
}
@media(max-width:420px){.mobile-first-hour-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-first-hour-dock{bottom:max(72px,calc(env(safe-area-inset-bottom) + 72px))}.mobile-first-hour-head strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
@media(orientation:landscape) and (max-height:520px){.mobile-first-hour-dock{left:72px;right:auto;width:min(420px,54vw);bottom:10px}.mobile-first-hour-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}
.shooting-event b,.shooting-event span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shooting-event span{margin-top:3px}

/* v0.10.39 — graphics-only camera comfort and cleaner filming controls */
#game-canvas{background:#111812;cursor:grab}
#game-canvas:active{cursor:grabbing}
.world-hud .camera-controls{border-color:rgba(217,186,122,.20);background:rgba(8,13,10,.68);box-shadow:0 14px 32px rgba(0,0,0,.34);backdrop-filter:blur(14px)}
.world-hud .camera-controls button{border:1px solid rgba(229,222,199,.14);background:rgba(255,255,255,.08)}
.world-hud .camera-controls button:hover{background:rgba(217,186,122,.18);border-color:rgba(217,186,122,.42)}
.tiktok-mode .camera-controls{opacity:.42;transform:scale(.94);transform-origin:right bottom}
.tiktok-mode .camera-controls:hover{opacity:.92}
@media(max-width:820px){.world-hud .camera-controls{right:6px;bottom:max(126px,calc(env(safe-area-inset-bottom) + 126px));padding:3px;border-radius:16px}.world-hud .camera-controls button{width:42px;min-width:42px;height:42px;min-height:42px}.tiktok-mode .camera-controls{display:flex!important;opacity:.34}}

/* Visual Design & Graphics Polish Pass — unified professional colony UI */
:root{
  --bg:#0b100d;--surface:rgba(18,25,21,.96);--surface-elevated:rgba(25,34,29,.97);--card:rgba(255,255,255,.055);--card-hover:rgba(255,255,255,.085);
  --border:rgba(232,224,196,.145);--border-strong:rgba(232,224,196,.265);--text-primary:#f3efe6;--text-muted:#a9b2aa;--text-soft:#d5dbd2;
  --accent:#d8bd78;--gold:#d8bd78;--accent-2:#8ea483;--danger:#d87868;--warning:#d8a85e;--success:#89aa82;--info:#83a6ad;--disabled:#69736b;
  --radius-sm:10px;--radius-md:14px;--radius-lg:20px;--shadow-ui:0 18px 48px rgba(0,0,0,.38);--shadow-card:0 10px 24px rgba(0,0,0,.22);
  --tap:44px;
}
body{background:radial-gradient(circle at 50% 0%,#132018 0,#0b100d 56%,#070a08 100%);color:var(--text-primary)}
.game-shell,.world-hud{background:#0c120f}.topbar{height:68px;background:linear-gradient(180deg,rgba(14,20,16,.98),rgba(11,16,13,.96));border-bottom:1px solid var(--border);box-shadow:0 12px 36px rgba(0,0,0,.34)}
.brand-mark{border-color:rgba(216,189,120,.52);background:linear-gradient(145deg,#303127,#141a16);box-shadow:inset 0 0 18px rgba(216,189,120,.10),0 8px 20px rgba(0,0,0,.28)}
.resource-chip,.stock-card,.profession-grid>div,.build-card,.problem-card,.goal-card,.project-card,.business-card,.life-card,.community-guide,.progression-guide-card,.gameplay-index-card,.settlement-stat-card,.preset-card,.story-card,.clan-card,.class-card,.save-slot{
  border:1px solid var(--border);background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.028));box-shadow:var(--shadow-card);border-radius:var(--radius-md)
}
.build-card:hover,.problem-card:hover,.goal-card:hover,.business-card:hover,.preset-card:hover,.settlement-stat-card:hover{border-color:var(--border-strong);background:linear-gradient(145deg,var(--card-hover),rgba(255,255,255,.035));transform:translateY(-1px)}
.build-card,.problem-card,.goal-card,.project-card,.business-card,.life-card,.community-event-card,.decision-row,.milestone-row{transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}
.primary-button,.secondary-button,.save-slot button,.recommend-action,.mobile-first-hour-actions button,.status-card,.statistics-tabs button,.list-filters button,.journal-filter,.speed-button,.icon-button,.mode-button,.nav-button,.preset-card,.settlement-stat-card{min-height:var(--tap);border-radius:var(--radius-sm);letter-spacing:.01em;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease,opacity .16s ease}
.primary-button,.recommend-action,.mobile-first-hour-actions .primary-button{background:linear-gradient(180deg,#ead293,#cfa95e);color:#211f18;border-color:rgba(244,221,160,.52);box-shadow:0 10px 24px rgba(216,189,120,.18);font-weight:850}
.primary-button:hover,.recommend-action:hover,.mobile-first-hour-actions .primary-button:hover{filter:none;transform:translateY(-1px);box-shadow:0 14px 30px rgba(216,189,120,.24)}
.secondary-button,.save-slot button,.mode-button,.icon-button,.mobile-first-hour-actions button{background:rgba(255,255,255,.065);border-color:var(--border);color:var(--text-primary)}
.secondary-button:hover,.save-slot button:hover,.mode-button:hover,.icon-button:hover,.mobile-first-hour-actions button:hover{background:rgba(255,255,255,.105);border-color:var(--border-strong)}
button[disabled],.primary-button[disabled],.secondary-button[disabled]{opacity:.46;filter:saturate(.65);cursor:not-allowed;box-shadow:none;transform:none}.speed-button.active{background:linear-gradient(180deg,#ead293,#cfa95e);color:#211f18}.speed-button.pause-button{min-width:48px}.nav-button{min-height:56px;color:#96a198}.nav-button.active{background:rgba(216,189,120,.13);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}
.left-sidebar,.right-sidebar,.hud-drawer,.journal-shell.open,.decision-confirm-card{background:linear-gradient(180deg,var(--surface-elevated),rgba(13,19,16,.97));border-color:var(--border);box-shadow:var(--shadow-ui);backdrop-filter:blur(16px) saturate(1.05)}
.left-panel,.right-sidebar{scrollbar-width:thin;scrollbar-color:rgba(216,189,120,.38) transparent}.panel-heading>span,.selection-kicker,.summary-kicker,.first-hour-kicker,.shooting-goal span{color:var(--accent);text-transform:uppercase}.panel-heading h2,.right-sidebar h2,.selection-card h2{color:var(--text-primary);letter-spacing:-.025em}.panel-heading p,.panel-note,.empty-selection p,.business-card small,.life-card small,.goal-card p{color:var(--text-muted);line-height:1.48}
.objective-chip button,.colony-status button{border:1px solid var(--border);border-radius:16px;background:rgba(9,14,11,.72);padding:9px 12px;box-shadow:0 12px 28px rgba(0,0,0,.24)}.objective-chip button:hover{border-color:rgba(216,189,120,.46);background:rgba(216,189,120,.10)}.objective-chip strong{color:var(--text-primary)}
.status-dot.good{background:var(--success);box-shadow:0 0 10px rgba(137,170,130,.48)}.status-dot.warning{background:var(--warning)}.status-dot.critical,.status-dot.dead{background:var(--danger)}.loss,.critical{color:var(--danger)!important}.good,.success{color:var(--success)!important}.warning{color:var(--warning)!important}
.selection-card,.empty-selection,.ending-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.028));box-shadow:var(--shadow-ui)}.selection-close,.panel-mobile-close{min-width:var(--tap);min-height:var(--tap);border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.075);color:var(--text-primary)}
.resource-symbol:before,.resource-symbol:after{filter:drop-shadow(0 1px 2px rgba(0,0,0,.22))}.stock-grid,.profession-grid,.community-components,.progression-path-summary{gap:8px}.panel-stat-row{border-color:var(--border);min-height:34px}.panel-stat-row strong{font-variant-numeric:tabular-nums;color:var(--text-soft)}
.first-hour-guide,.mobile-first-hour-dock{border-color:rgba(216,189,120,.38);background:linear-gradient(145deg,rgba(216,189,120,.13),rgba(14,21,17,.94));box-shadow:0 20px 54px rgba(0,0,0,.42)}
.mobile-first-hour-actions button{font-size:.66rem;font-weight:850}.shooting-overlay{font-family:Inter,ui-sans-serif,system-ui}.shooting-day,.shooting-goal,.shooting-story,.shooting-event,.shooting-stats{border:1px solid rgba(238,224,184,.16);border-radius:18px;background:rgba(7,11,9,.55);box-shadow:0 18px 42px rgba(0,0,0,.30);backdrop-filter:blur(12px)}.shooting-overlay strong{color:#f3ead7}.shooting-event b,.shooting-story strong{line-height:1.18}.tiktok-mode .camera-controls{opacity:.30}.tiktok-mode .camera-controls:hover{opacity:.84}.tiktok-mode .shooting-controls button{min-height:42px;border-radius:14px;border:1px solid rgba(238,224,184,.18);background:rgba(8,12,10,.66)}
#game-canvas{background:#0f1711;image-rendering:auto}.world-hud .camera-controls{border-radius:18px;border-color:rgba(216,189,120,.24);background:rgba(8,13,10,.70)}.world-hud .camera-controls button{min-width:42px;min-height:42px;border-radius:13px}
@media(max-width:820px){
  :root{--ui-scale:.96}.game-shell{grid-template-rows:58px minmax(0,1fr) 126px}.topbar{height:58px;padding:7px max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left));gap:8px}.brand-block{min-width:112px}.brand-mark{width:36px;height:36px;border-radius:11px}.brand-block strong{font-size:.72rem}.brand-block span{font-size:.55rem}.time-block{min-width:64px;padding-left:8px}.time-block strong{font-size:.98rem}.resource-strip{gap:5px}.resource-chip{min-width:64px;padding:6px 7px}.resource-chip span{font-size:.54rem}.resource-chip strong{font-size:.72rem}.top-actions{gap:4px}.mode-button{padding:0 8px;font-size:.62rem}.speed-controls{padding:2px}.speed-button,.icon-button,.mode-button{min-height:38px}.world-hud .left-sidebar.panel-open .left-panel,.world-hud .right-sidebar.open,.world-hud .hud-drawer{border-radius:20px;box-shadow:0 18px 52px rgba(0,0,0,.54)}.panel-heading h2,.right-sidebar h2{font-size:1rem}.build-card,.problem-card,.goal-card,.project-card,.business-card,.life-card{padding:10px}.mobile-first-hour-dock{bottom:max(78px,calc(env(safe-area-inset-bottom) + 78px));padding:11px}.mobile-first-hour-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.mobile-first-hour-actions button{min-height:46px}.tiktok-mode .shooting-overlay{inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
}
@media(max-width:430px){.resource-symbol{display:none}.resource-chip{min-width:52px}.resource-chip span{display:none}.resource-chip strong{font-size:.69rem}.mobile-first-hour-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-first-hour-head strong{font-size:.82rem}.shooting-day,.shooting-goal,.shooting-story,.shooting-event,.shooting-stats{border-radius:16px}}
@media(orientation:landscape) and (max-height:520px){.topbar{height:52px}.game-shell{grid-template-rows:52px minmax(0,1fr) 86px}.mobile-first-hour-dock{width:min(430px,52vw);bottom:8px}.mobile-first-hour-actions button{min-height:40px}.shooting-day,.shooting-goal,.shooting-story,.shooting-event,.shooting-stats{max-width:48vw}}

/* v0.10.46 — mobile runtime recovery. Keep the Canvas in its own clear
   compositor layer and make every blocking surface opt-in and dismissible. */
.onboarding-card{backdrop-filter:none;-webkit-backdrop-filter:none;background:#121a16f7}
@media(max-width:820px),(pointer:coarse){
  .topbar,.objective-chip,.navigation-dock,.time-dock,.time-skip-controls,
  .camera-controls,.mobile-first-hour-dock,.hud-drawer,.floating-menu,
  .left-sidebar,.left-panel,.right-sidebar,.journal-shell,
  .modal-backdrop,.onboarding-card,.shooting-day,.shooting-goal,
  .shooting-story,.shooting-event,.shooting-stats{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .topbar{background:#0d1411fa!important}
  .navigation-dock,.time-dock,.time-skip-controls,.camera-controls{background:#0b110eef!important}
  .modal-backdrop{background:rgba(4,8,6,.82)!important}
  .world-hud .hud-drawer{
    top:auto!important;
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:max(70px,calc(env(safe-area-inset-bottom) + 70px))!important;
    width:min(380px,calc(100% - 16px))!important;
    max-height:min(58vh,540px)!important;
    overflow:auto;
    background:#111a16fa!important;
  }
  .onboarding-card{
    top:50%!important;
    right:8px!important;
    bottom:auto!important;
    left:8px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100% - 16px)!important;
    transform:translateY(-50%)!important;
    overflow:auto;
    background:#121a16fc!important;
  }
  .mobile-first-hour-dock{
    right:64px!important;
    bottom:max(72px,calc(env(safe-area-inset-bottom) + 72px))!important;
    left:64px!important;
    min-height:0;
    padding:7px 10px!important;
    border-radius:13px!important;
    background:#111a16f4!important;
    box-shadow:0 8px 22px rgba(0,0,0,.34)!important;
    pointer-events:none;
  }
  .mobile-first-hour-head{min-width:0;text-align:center}
  .mobile-first-hour-head span,.mobile-first-hour-head small{display:none!important}
  .mobile-first-hour-head strong{
    display:block!important;
    margin:0!important;
    overflow:hidden!important;
    color:#eee4cc;
    font-size:.72rem!important;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap!important;
  }
  .mobile-first-hour-actions{display:none!important}
}
@media(orientation:landscape) and (max-height:520px){
  .mobile-first-hour-dock{display:none!important}
  .world-hud .hud-drawer{
    right:6px!important;
    bottom:64px!important;
    width:min(410px,48vw)!important;
    max-height:calc(100% - 70px)!important;
  }
  .onboarding-card{top:50%!important;bottom:auto!important;max-height:calc(100% - 12px)!important}
}
@media(max-width:820px){
  .critical-alerts{
    top:66px!important;
    right:auto!important;
    left:8px!important;
    width:min(260px,calc(100% - 96px))!important;
    transform:none!important;
  }
  .critical-alert{padding:7px 9px!important;border-radius:10px!important;background:#111713f5!important}
  .critical-alert:nth-child(n+2),.critical-alert span{display:none!important}
  .critical-alert strong{overflow:hidden;font-size:.62rem!important;text-overflow:ellipsis;white-space:nowrap}
}

/* v0.10.49 — persistent offline progression */
.guest-gate{min-height:100%;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at 18% 12%,#31483b 0,#111914 42%,#080c0a 100%);overflow:auto;user-select:text}.guest-card{width:min(520px,100%);padding:28px;border:1px solid rgba(217,186,122,.3);border-radius:28px;background:rgba(11,17,13,.92);box-shadow:0 32px 100px rgba(0,0,0,.55);backdrop-filter:blur(20px)}.guest-logo{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#e5cd8f,#9a7838);color:#101513;font-size:22px;font-weight:900;letter-spacing:-.08em}.guest-kicker{display:block;margin-top:18px;color:#d9ba7a;font-size:11px;font-weight:800;letter-spacing:.18em}.guest-card h1{margin:8px 0 12px;font-size:clamp(32px,8vw,54px);line-height:.95;letter-spacing:-.06em}.guest-card>p{margin:0;color:#bac7be;line-height:1.55}.guest-form{display:grid;gap:10px;margin-top:24px}.guest-form label{color:#e8dfc7;font-size:13px;font-weight:700}.guest-form input{width:100%;min-height:54px;padding:0 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#ffffff0a;color:#fff;font-size:18px;outline:0}.guest-form input:focus{border-color:#d9ba7a;box-shadow:0 0 0 3px rgba(217,186,122,.12)}.guest-form small{color:#849088;line-height:1.45}.guest-primary,.guest-link{min-height:50px;border-radius:14px;cursor:pointer}.guest-primary{border:1px solid #e1c882;background:linear-gradient(180deg,#e4cb88,#bd9651);color:#181813;font-weight:850}.guest-link{border:0;background:transparent;color:#c7b277}.guest-error{min-height:18px!important;color:#e28c7f!important;font-size:12px}.guest-notes{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.guest-notes span{padding:7px 9px;border:1px solid rgba(255,255,255,.11);border-radius:999px;color:#c9d2cc;font-size:11px}.guest-loading-card{text-align:left}.guest-loading{height:4px;margin-top:22px;overflow:hidden;border-radius:999px;background:#ffffff10}.guest-loading i{display:block;width:34%;height:100%;background:linear-gradient(90deg,transparent,#d9ba7a,transparent);animation:guest-slide 1.2s infinite ease-in-out}@keyframes guest-slide{from{transform:translateX(-110%)}to{transform:translateX(320%)}}
.tester-profile-chip{display:flex;align-items:center;gap:7px;min-height:38px;max-width:150px;padding:0 10px;border:1px solid var(--hud-line,var(--line));border-radius:999px;background:#ffffff08;color:var(--text-primary,var(--text));cursor:pointer}.tester-profile-chip i{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#7f8b83;box-shadow:0 0 0 3px #ffffff0a}.tester-profile-chip i[data-sync-status=synced]{background:#82a37f}.tester-profile-chip i[data-sync-status=syncing],.tester-profile-chip i[data-sync-status=connecting]{background:#d9ba7a;animation:tester-pulse 1s infinite}.tester-profile-chip i[data-sync-status=offline],.tester-profile-chip i[data-sync-status=error]{background:#bd6a61}.tester-profile-chip i[data-sync-status=local]{background:#7891a5}.tester-profile-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750}@keyframes tester-pulse{50%{opacity:.35}}.tester-modal{z-index:240}.tester-card{position:relative;width:min(520px,calc(100vw - 24px));max-height:min(760px,calc(100vh - 24px));overflow:auto;padding:26px;border:1px solid rgba(217,186,122,.28);border-radius:24px;background:#111915;color:#edf3ee;box-shadow:0 30px 100px #000b}.tester-card h2{margin:6px 0 2px;font-size:32px}.tester-village{margin:0 0 18px;color:#d9ba7a}.tester-status,.offline-summary,.tester-telegram-note{display:grid;gap:4px;margin:12px 0;padding:13px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:#ffffff08}.tester-status span,.tester-status small,.offline-summary span,.offline-summary small,.tester-telegram-note span{color:#9fa9a2;font-size:12px;line-height:1.45}.tester-feedback-label{display:block;margin:18px 0 7px;font-weight:750}.tester-card textarea,.tester-card select{width:100%;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#ffffff09;color:#edf3ee}.tester-card textarea{min-height:120px;padding:12px;resize:vertical}.tester-card select{min-height:44px;margin-top:8px;padding:0 10px}.tester-feedback-result{min-height:20px;color:#d9ba7a;font-size:12px;line-height:1.4}.offline-summary strong{color:#e8d59e}.tester-telegram-note strong{color:#d6ddd7}@media(max-width:820px){.tester-profile-chip{max-width:92px;padding:0 8px}.tester-profile-chip span{font-size:10px}.guest-card{padding:22px;border-radius:22px}.tester-card{padding:22px}.tester-card h2{font-size:26px}}


/* v0.10.55 — native-density mobile canvas and safe-area release gate. */
:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}
#game-canvas {
  filter: none !important;
  image-rendering: auto;
}
@media (max-width: 820px), (pointer: coarse) {
  .world-hud .topbar {
    padding-top: max(7px, var(--safe-top));
    padding-right: max(8px, var(--safe-right));
    padding-left: max(8px, var(--safe-left));
  }
  .world-hud .time-dock,
  .world-hud .navigation-dock {
    bottom: max(8px, var(--safe-bottom));
  }
}


/* v0.10.56 — real-phone visual correction. This final block is authoritative. */
@media (max-width: 820px), (pointer: coarse) {
  .game-shell.world-hud {
    grid-template-rows: calc(54px + var(--safe-top)) minmax(0, 1fr) 0 !important;
  }
  .world-hud .topbar {
    height: calc(54px + var(--safe-top)) !important;
    min-height: calc(54px + var(--safe-top)) !important;
    padding: var(--safe-top) max(8px, var(--safe-right)) 0 max(8px, var(--safe-left)) !important;
    gap: 7px !important;
    overflow: hidden !important;
  }
  .world-hud .brand-block {
    min-width: 44px !important;
    width: 44px !important;
    flex: 0 0 44px !important;
    gap: 0 !important;
  }
  .world-hud .brand-block > div:last-child { display: none !important; }
  .world-hud .brand-mark {
    width: 40px !important;
    height: 40px !important;
    border-radius: 13px !important;
  }
  .world-hud .time-block {
    min-width: 86px !important;
    max-width: 86px !important;
    flex: 0 0 86px !important;
    padding-left: 7px !important;
    overflow: hidden !important;
  }
  .world-hud .time-block span,
  .world-hud .time-block small {
    max-width: 78px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .world-hud .time-block strong { font-size: 1.05rem !important; }
  .world-hud .world-status,
  .world-hud .resource-strip { display: none !important; }
  .world-hud .top-actions {
    min-width: 0 !important;
    margin-left: auto !important;
    gap: 5px !important;
  }
  .world-hud .tester-profile-chip {
    width: 76px !important;
    max-width: 76px !important;
    min-height: 40px !important;
    padding: 0 8px !important;
  }
  .world-hud .tester-profile-chip span { font-size: 10px !important; }
  .world-hud .hud-icon-button {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
  }
  .world-hud .map-mode-chip {
    top: 7px !important;
    max-width: calc(100% - 112px) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .world-hud .critical-alerts {
    top: 8px !important;
    left: 8px !important;
    width: min(250px, calc(100% - 72px)) !important;
  }
  .world-hud .navigation-dock {
    left: max(8px, var(--safe-left)) !important;
    right: auto !important;
    bottom: max(10px, calc(var(--safe-bottom) + 10px)) !important;
    width: auto !important;
    max-width: 236px !important;
    padding: 4px !important;
    gap: 3px !important;
    overflow: hidden !important;
    border-radius: 16px !important;
  }
  .world-hud .navigation-dock button {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
  .world-hud .navigation-dock button:nth-child(n+5) { display: none !important; }
  .world-hud .time-dock {
    left: 50% !important;
    right: auto !important;
    bottom: max(66px, calc(var(--safe-bottom) + 66px)) !important;
    width: max-content !important;
    max-width: calc(100% - 118px) !important;
    transform: translateX(-50%) !important;
    padding: 4px !important;
    overflow: hidden !important;
    border-radius: 16px !important;
  }
  .world-hud #speed-controls {
    width: max-content !important;
    max-width: 100% !important;
    gap: 3px !important;
    overflow: hidden !important;
  }
  .world-hud .speed-button {
    width: 48px !important;
    min-width: 48px !important;
    height: 44px !important;
    min-height: 44px !important;
    flex: 0 0 48px !important;
  }
  .world-hud .camera-controls {
    right: max(8px, var(--safe-right)) !important;
    bottom: max(10px, calc(var(--safe-bottom) + 10px)) !important;
    gap: 3px !important;
    padding: 4px !important;
  }
  .world-hud .camera-controls button {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
  .world-hud .time-skip-controls { display: none !important; }
  .world-hud .mobile-first-hour-dock {
    right: 62px !important;
    bottom: max(120px, calc(var(--safe-bottom) + 120px)) !important;
    left: 62px !important;
    max-width: calc(100% - 124px) !important;
  }
  .world-hud .placement-hint,
  .world-hud .objective-chip {
    right: 62px !important;
    bottom: max(120px, calc(var(--safe-bottom) + 120px)) !important;
    left: 62px !important;
    width: auto !important;
    max-width: none !important;
  }
  .world-hud .canvas-help { display: none !important; }
}
@media (max-width: 390px), (pointer: coarse) and (max-width: 390px) {
  .world-hud .tester-profile-chip { width: 68px !important; max-width: 68px !important; }
  .world-hud .speed-button { width: 45px !important; min-width: 45px !important; flex-basis: 45px !important; }
  .world-hud .navigation-dock button:nth-child(4) { display: none !important; }
}

/* v0.10.57 — unified mobile HUD, world readability and panel hierarchy. */
@media (max-width: 820px), (pointer: coarse) {
  .game-shell.world-hud {
    --dock-bg: rgba(8, 13, 10, .92);
    --dock-border: rgba(222, 197, 132, .22);
    grid-template-rows: calc(54px + var(--safe-top)) minmax(0, 1fr) 0 !important;
  }
  .world-hud .topbar {
    background: linear-gradient(180deg, rgba(9,15,12,.98), rgba(10,17,13,.93)) !important;
    border-bottom: 1px solid rgba(220,196,132,.14) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.28) !important;
  }
  .world-hud .map-mode-chip {
    top: 8px !important;
    padding: 6px 11px !important;
    border-color: rgba(222,197,132,.22) !important;
    background: rgba(8,13,10,.84) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.24) !important;
    backdrop-filter: blur(12px) !important;
  }
  .world-hud .critical-alerts {
    top: 52px !important;
    left: max(8px,var(--safe-left)) !important;
    width: min(260px,calc(100% - 80px)) !important;
    gap: 5px !important;
    pointer-events: none !important;
  }
  .world-hud .critical-alert {
    min-height: 34px !important;
    padding: 7px 10px !important;
    border: 1px solid rgba(193,102,95,.34) !important;
    border-radius: 12px !important;
    background: rgba(15,20,17,.91) !important;
    box-shadow: 0 10px 24px rgba(0,0,0,.30) !important;
  }
  .world-hud .critical-alert:nth-child(n+2) { display:none !important; }
  .world-hud .navigation-dock,
  .world-hud .time-dock,
  .world-hud .camera-controls {
    border: 1px solid var(--dock-border) !important;
    background: var(--dock-bg) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.38) !important;
    backdrop-filter: blur(14px) saturate(1.04) !important;
  }
  .world-hud .navigation-dock {
    max-width: 226px !important;
    border-radius: 18px !important;
  }
  .world-hud .time-dock {
    bottom: max(70px,calc(var(--safe-bottom) + 70px)) !important;
    border-radius: 18px !important;
  }
  .world-hud .camera-controls {
    border-radius: 18px !important;
  }
  .world-hud .navigation-dock button,
  .world-hud .speed-button,
  .world-hud .camera-controls button,
  .world-hud .hud-icon-button {
    border-radius: 13px !important;
  }
  .world-hud .hud-drawer {
    top: auto !important;
    right: max(8px,var(--safe-right)) !important;
    bottom: max(68px,calc(var(--safe-bottom) + 68px)) !important;
    left: max(8px,var(--safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(68vh,620px) !important;
    overflow: auto !important;
    border: 1px solid rgba(222,197,132,.22) !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg,rgba(16,24,19,.98),rgba(9,14,11,.98)) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.58) !important;
  }
  .world-hud .placement-hint,
  .world-hud .objective-chip,
  .world-hud .mobile-first-hour-dock {
    right: 70px !important;
    bottom: max(128px,calc(var(--safe-bottom) + 128px)) !important;
    left: 70px !important;
    min-height: 38px !important;
    padding: 8px 12px !important;
    border-radius: 14px !important;
    background: rgba(9,14,11,.91) !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.35) !important;
  }
  .world-hud .selection-card,
  .world-hud .left-panel,
  .world-hud .right-sidebar {
    border-color: rgba(222,197,132,.18) !important;
    background: linear-gradient(180deg,rgba(17,25,20,.98),rgba(9,14,11,.98)) !important;
  }
}
@media (max-width: 410px) {
  .world-hud .time-dock { max-width: calc(100% - 126px) !important; }
  .world-hud .speed-button { width: 44px !important; min-width:44px !important; flex-basis:44px !important; }
  .world-hud .placement-hint,.world-hud .objective-chip,.world-hud .mobile-first-hour-dock { left:58px !important; right:58px !important; }
}


/* v0.10.57 final mobile density pass — preserves the map as the primary surface. */
@media (max-width: 820px), (pointer: coarse) {
  .world-hud .critical-alerts {
    width: min(230px, calc(100% - 104px)) !important;
  }
  .world-hud .critical-alert {
    min-height: 32px !important;
    padding: 6px 9px !important;
    border-radius: 11px !important;
  }
  .world-hud .critical-alert strong {
    overflow: hidden !important;
    font-size: .60rem !important;
    line-height: 1.15 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .world-hud .critical-alert span { display: none !important; }
  .world-hud .placement-hint,
  .world-hud .objective-chip,
  .world-hud .mobile-first-hour-dock {
    left: 50% !important;
    right: auto !important;
    width: min(268px, calc(100% - 132px)) !important;
    max-width: 268px !important;
    min-height: 36px !important;
    padding: 7px 10px !important;
    transform: translateX(-50%) !important;
  }
  .world-hud .objective-chip strong,
  .world-hud .placement-hint strong {
    overflow: hidden !important;
    font-size: .68rem !important;
    line-height: 1.2 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .world-hud .drawer-head > button[data-action="toggle-hud-drawer"] {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    border: 1px solid rgba(222,197,132,.22) !important;
    border-radius: 13px !important;
    background: rgba(255,255,255,.055) !important;
    color: var(--text) !important;
    box-shadow: none !important;
  }
  .world-hud .tester-profile-chip {
    padding-inline: 6px !important;
  }
  .world-hud .tester-profile-chip span {
    font-size: 9px !important;
    letter-spacing: 0 !important;
  }
}

/* v0.10.58 — readable selection, medical queue and clean capture UI. */
.selection-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0}.selection-quick-grid>div{min-width:0;padding:8px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.055)}.selection-quick-grid span,.selection-quick-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-quick-grid span{color:var(--muted);font-size:.52rem}.selection-quick-grid strong{margin-top:3px;font-size:.72rem}.selection-quick-grid>div.warning strong{color:#d8b56d}.selection-quick-grid>div.critical strong{color:#dc7b70}.selection-deep{margin:10px 0;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025);overflow:hidden}.selection-deep>summary{min-height:42px;display:flex;align-items:center;padding:0 12px;color:var(--accent);font-size:.62rem;font-weight:800;letter-spacing:.08em;cursor:pointer}.selection-deep>summary::marker{color:var(--muted)}.selection-deep-body{padding:0 10px 10px}.selection-current-human.compact-primary{margin:8px 0;padding:9px}.clinic-queue-card{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.045)}.clinic-queue-card.warning{border-color:rgba(216,181,109,.35)}.clinic-queue-card.critical{border-color:rgba(220,123,112,.46);box-shadow:inset 3px 0 0 rgba(220,123,112,.65)}.clinic-queue-head{display:flex;align-items:center;justify-content:space-between}.clinic-queue-head span{color:var(--accent);font-size:.56rem;font-weight:850;letter-spacing:.12em}.clinic-queue-head strong{font-size:1rem}.clinic-patient-list{display:flex;flex-direction:column;gap:5px;margin-top:8px}.clinic-patient-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;min-height:42px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.04);color:var(--text);text-align:left}.clinic-patient-list button span,.clinic-patient-list button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clinic-patient-list button span{font-size:.65rem;font-weight:750}.clinic-patient-list button strong{font-size:.66rem}.clinic-patient-list button small{grid-column:1/-1;color:var(--muted);font-size:.52rem}.tiktok-mode[data-tiktok-hud="hidden"] .camera-controls,.tiktok-mode[data-tiktok-hud="hidden"] .shooting-controls{display:none!important}

@media (max-width:820px),(pointer:coarse){
  .world-hud .right-sidebar.open{left:max(6px,var(--safe-left))!important;right:max(6px,var(--safe-right))!important;bottom:max(70px,calc(var(--safe-bottom) + 70px))!important;height:auto!important;max-height:min(48vh,460px)!important;padding:12px 12px max(14px,var(--safe-bottom))!important;border-radius:22px 22px 16px 16px!important;box-shadow:0 -18px 54px rgba(0,0,0,.62)!important;overscroll-behavior:contain!important}
  .world-hud .right-sidebar.open>.selection-close{position:sticky!important;top:0!important;float:right!important;z-index:5!important;margin:-4px -4px 4px 8px!important;width:44px!important;height:44px!important;background:rgba(13,20,16,.96)!important;backdrop-filter:blur(12px)!important}
  .world-hud .right-sidebar h2{margin-top:4px!important;padding-right:48px!important;font-size:1.02rem!important}
  .world-hud .right-sidebar .selection-meta{font-size:.60rem!important}
  .world-hud .selection-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0}
  .world-hud .selection-quick-grid>div{padding:7px 5px;text-align:center}
  .world-hud .selection-quick-grid span{font-size:.47rem}.world-hud .selection-quick-grid strong{font-size:.66rem}
  .world-hud .selection-current-human.compact-primary p{max-height:2.6em;overflow:hidden}
  .world-hud .selection-deep{margin:8px 0}.world-hud .selection-deep>summary{min-height:44px}
  .world-hud .sticky-actions{position:sticky;bottom:-10px;z-index:4;padding:8px 0 2px;background:linear-gradient(180deg,rgba(9,14,11,0),rgba(9,14,11,.98) 28%)}
  .world-hud .clinic-queue-card{padding:9px}.world-hud .clinic-patient-list{max-height:142px;overflow:auto}
}
@media (max-width:390px){.world-hud .selection-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-hud .right-sidebar.open{max-height:min(46vh,420px)!important}}

/* v0.10.58 canonical — TikTok capture must own the full mobile viewport.
   This final rule overrides the normal world-hud three-row mobile shell. */
@media (max-width: 820px), (pointer: coarse) {
  .game-shell.world-hud.tiktok-mode {
    grid-template-rows: minmax(0, 1fr) !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
  .game-shell.world-hud.tiktok-mode > .game-main {
    grid-row: 1 / -1 !important;
    grid-column: 1 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
  .game-shell.world-hud.tiktok-mode .canvas-stage,
  .game-shell.world-hud.tiktok-mode #game-canvas {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }
}

/* v0.10.58 canonical — the explicit no-HUD capture hides every camera/UI dock. */
.game-shell.tiktok-mode.tiktok-ui-hidden .camera-controls,
.game-shell.tiktok-mode.tiktok-ui-hidden .shooting-controls,
.game-shell.tiktok-mode.tiktok-ui-hidden .toast,
.game-shell.tiktok-mode.tiktok-ui-hidden .map-mode-chip {
  display: none !important;
}

/* v0.10.66 — canonical mobile playability layer.
   One source of truth replaces the conflicting v0.10.60/v0.10.62/v0.10.63 overrides. */
@media (max-width:820px),(pointer:coarse){
  .world-hud .critical-alerts{
    top:76px!important;left:10px!important;right:auto!important;
    width:min(178px,calc(100% - 144px))!important;transform:none!important;gap:4px!important;
  }
  .world-hud .critical-alert{
    min-height:28px!important;padding:6px 8px!important;border-radius:10px!important;
    background:rgba(10,15,12,.88)!important;box-shadow:0 7px 18px rgba(0,0,0,.24)!important;
  }
  .world-hud .critical-alert strong{font-size:.55rem!important;line-height:1.08!important}
  .world-hud .critical-alert span,.world-hud .critical-alert:nth-child(n+2){display:none!important}
  .world-hud .map-mode-chip{top:46px!important;opacity:.72!important;transform:scale(.88)!important;transform-origin:top center!important}
  .world-hud .placement-hint,.world-hud .objective-chip,.world-hud .mobile-first-hour-dock{
    left:50%!important;right:auto!important;width:min(220px,calc(100% - 146px))!important;max-width:220px!important;
    min-height:30px!important;padding:5px 8px!important;transform:translateX(-50%)!important;
  }
  .world-hud .objective-chip button,.world-hud .placement-hint button{
    padding:6px 9px!important;border-radius:13px!important;background:rgba(8,13,10,.70)!important;
    box-shadow:0 7px 18px rgba(0,0,0,.18)!important;
  }
  .world-hud .objective-chip strong,.world-hud .placement-hint strong{
    overflow:hidden!important;font-size:.62rem!important;line-height:1.1!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  }
  .world-hud .speed-button[data-action="speed-5"]{display:grid!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
}

@media (orientation:portrait) and (max-width:820px),
       (orientation:portrait) and (pointer:coarse){
  .world-hud .colony-pulse{
    display:flex!important;top:6px!important;left:8px!important;right:8px!important;z-index:80!important;
    max-width:none!important;flex-wrap:nowrap!important;gap:4px!important;pointer-events:auto!important;
  }
  .world-hud .pulse-item{
    display:block!important;min-width:0!important;flex:1 1 0!important;padding:4px 6px!important;border-radius:9px!important;
  }
  .world-hud .pulse-item:nth-child(n+5){display:none!important}
  .world-hud .pulse-item span{font-size:.34rem!important;white-space:nowrap!important}
  .world-hud .pulse-item strong{font-size:.56rem!important;white-space:nowrap!important}
  .world-hud .time-dock{
    position:fixed!important;left:50%!important;right:auto!important;
    bottom:max(150px,calc(var(--safe-bottom) + 150px))!important;
    width:max-content!important;min-width:max-content!important;max-width:calc(100vw - 18px)!important;
    padding:4px!important;overflow:visible!important;transform:translateX(-50%)!important;z-index:110!important;pointer-events:auto!important;
  }
  .world-hud #speed-controls{
    display:grid!important;grid-template-columns:repeat(4,48px)!important;width:auto!important;min-width:204px!important;
    max-width:none!important;gap:4px!important;overflow:visible!important;
  }
  .world-hud .speed-button,
  .world-hud .speed-button[data-action="speed-5"]{
    display:grid!important;place-items:center!important;width:48px!important;min-width:48px!important;max-width:48px!important;
    height:46px!important;min-height:46px!important;flex:0 0 48px!important;padding:0 5px!important;
    visibility:visible!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important;
  }
  .world-hud .objective-chip,.world-hud .placement-hint,.world-hud .mobile-first-hour-dock{
    bottom:max(207px,calc(var(--safe-bottom) + 207px))!important;
  }
}

@media (orientation:landscape) and (max-height:700px){
  body.k77-landscape-phone .world-hud .story-ribbon,
  body.k77-landscape-phone .world-hud .objective-chip,
  body.k77-landscape-phone .world-hud .placement-hint,
  body.k77-landscape-phone .world-hud .mobile-first-hour-dock,
  body.k77-landscape-phone .world-hud .critical-alerts,
  body.k77-landscape-phone .world-hud .decision-confirm-card,
  body.k77-landscape-phone .world-hud #onboarding-card,
  body.k77-landscape-phone .world-hud #help-modal,
  body.k77-landscape-phone .world-hud #summary-modal,
  body.k77-landscape-phone .world-hud #right-sidebar,
  body.k77-landscape-phone .world-hud #journal-shell,
  body.k77-landscape-phone .world-hud .floating-menu,
  body.k77-landscape-phone .world-hud .hud-drawer,
  body.k77-landscape-phone .world-hud .left-panel{
    display:none!important;visibility:hidden!important;pointer-events:none!important;
  }
  body.k77-landscape-phone .world-hud .left-sidebar{
    grid-template-columns:56px 0!important;width:56px!important;min-width:56px!important;
  }
  body.k77-landscape-phone .world-hud .game-main{grid-template-columns:56px minmax(0,1fr)!important}
  body.k77-landscape-phone .world-hud .side-nav{width:56px!important;padding:4px!important}
  body.k77-landscape-phone .world-hud .nav-button{min-height:40px!important}
  body.k77-landscape-phone .world-hud .nav-button span{display:none!important}
  body.k77-landscape-phone .world-hud .colony-pulse{
    display:flex!important;top:4px!important;left:64px!important;right:auto!important;max-width:min(430px,52vw)!important;gap:4px!important;
  }
  body.k77-landscape-phone .world-hud .pulse-item:nth-child(n+5){display:none!important}
  body.k77-landscape-phone .world-hud .time-dock{
    position:fixed!important;left:auto!important;right:max(72px,calc(var(--safe-right) + 72px))!important;
    bottom:max(8px,var(--safe-bottom))!important;width:max-content!important;min-width:max-content!important;
    padding:4px!important;overflow:visible!important;transform:none!important;z-index:110!important;pointer-events:auto!important;
  }
  body.k77-landscape-phone .world-hud #speed-controls{
    display:grid!important;grid-template-columns:repeat(4,44px)!important;gap:4px!important;overflow:visible!important;
  }
  body.k77-landscape-phone .world-hud .speed-button,
  body.k77-landscape-phone .world-hud .speed-button[data-action="speed-5"]{
    display:grid!important;width:44px!important;min-width:44px!important;height:40px!important;min-height:40px!important;
    visibility:visible!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important;
  }
}

@media (orientation:portrait) and (max-width:410px){
  .world-hud #speed-controls{grid-template-columns:repeat(4,46px)!important;min-width:196px!important}
  .world-hud .speed-button,.world-hud .speed-button[data-action="speed-5"]{width:46px!important;min-width:46px!important;max-width:46px!important;flex-basis:46px!important}
}


/* v0.10.66 — simplified-life mobile panels: map first, short summaries, no dock overlap. */
@media (max-width:820px),(pointer:coarse){
  .game-shell.world-hud.panel-active .time-dock,
  .game-shell.world-hud.panel-active .objective-chip,
  .game-shell.world-hud.panel-active .placement-hint,
  .game-shell.world-hud.panel-active .mobile-first-hour-dock,
  .game-shell.world-hud.panel-active .critical-alerts,
  .game-shell.world-hud.panel-active .map-mode-chip{
    opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  }
  .world-hud .left-sidebar.panel-open{
    position:fixed!important;z-index:180!important;
    left:max(8px,var(--safe-left))!important;right:max(8px,var(--safe-right))!important;
    top:max(86px,calc(var(--safe-top) + 72px))!important;
    bottom:max(78px,calc(var(--safe-bottom) + 78px))!important;
    width:auto!important;height:auto!important;min-height:0!important;
    display:block!important;border:1px solid rgba(221,197,132,.20)!important;
    border-radius:22px!important;background:rgba(8,14,11,.975)!important;
    box-shadow:0 20px 70px rgba(0,0,0,.66)!important;overflow:hidden!important;
  }
  .world-hud .left-sidebar.panel-open .side-nav{display:none!important}
  .world-hud .left-sidebar.panel-open .left-panel{
    display:block!important;position:relative!important;inset:auto!important;
    width:100%!important;height:100%!important;max-height:none!important;
    padding:16px 14px 24px!important;overflow:auto!important;
    border:0!important;background:transparent!important;overscroll-behavior:contain!important;
  }
  .world-hud .panel-mobile-close{
    display:grid!important;place-items:center!important;position:sticky!important;top:0!important;
    float:right!important;z-index:10!important;width:44px!important;height:44px!important;
    margin:-4px -2px 4px 10px!important;border:1px solid rgba(255,255,255,.16)!important;
    border-radius:14px!important;background:rgba(28,36,31,.98)!important;color:#fff!important;
    font-size:1.6rem!important;line-height:1!important;box-shadow:0 6px 16px rgba(0,0,0,.30)!important;
  }
  .world-hud .left-sidebar[data-panel="statistics"] .panel-heading.compact-heading{margin:2px 0 10px!important;padding-right:54px!important}
  .world-hud .left-sidebar[data-panel="statistics"] .panel-heading h2{font-size:1.2rem!important;margin:4px 0!important}
  .world-hud .statistics-tabs.compact{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;margin:8px 0 12px!important;overflow:visible!important;
  }
  .world-hud .statistics-tabs.compact button{
    min-width:0!important;min-height:42px!important;padding:5px 4px!important;
    border-radius:11px!important;font-size:.58rem!important;white-space:normal!important;
  }
  .world-hud .compact-stat-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .world-hud .compact-stat-card{
    min-width:0!important;padding:10px!important;border:1px solid rgba(255,255,255,.10)!important;
    border-radius:13px!important;background:rgba(255,255,255,.045)!important;
  }
  .world-hud .compact-stat-card span,.world-hud .compact-stat-card strong,.world-hud .compact-stat-card small{display:block!important}
  .world-hud .compact-stat-card span{color:var(--muted)!important;font-size:.55rem!important}
  .world-hud .compact-stat-card strong{margin-top:4px!important;font-size:.92rem!important}
  .world-hud .compact-stat-card small{margin-top:4px!important;color:#aab4ad!important;font-size:.52rem!important;line-height:1.25!important}
  .world-hud .compact-progress-list{margin-top:10px!important}
  .world-hud .compact-progress-list .metric-row{margin:7px 0!important}
  .world-hud .compact-history{max-height:none!important}
  .world-hud .compact-history button{min-height:44px!important;padding:8px 4px!important}
  .world-hud .decision-confirm-card{
    width:min(430px,calc(100vw - 20px))!important;max-height:min(66vh,560px)!important;
    padding:18px 16px!important;border-radius:20px!important;overflow:auto!important;
  }
  .world-hud .decision-confirm-grid{grid-template-columns:1fr!important;gap:7px!important}
  .world-hud .decision-confirm-grid>div{padding:9px!important}
  .world-hud .decision-confirm-card h2{font-size:1.18rem!important;padding-right:46px!important}
  .world-hud .decision-confirm-card>p{font-size:.64rem!important;line-height:1.35!important}
}
@media (max-width:410px){
  .world-hud .statistics-tabs.compact{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
