:root{--background: #0f1117;--panel: #171a23;--panel-soft: #1f2330;--floor-line: #303545;--text-primary: #f4f1ea;--text-secondary: #a7adbd;--elevator: #e8e3d8;--elevator-dark: #2a2e3a;--danger: #ff5a5f;--warning: #ffb84d;--focus: #6fb3ff;color:var(--text-primary);background:var(--background);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 50% 0%,#202638 0,transparent 34rem),var(--background)}button{font:inherit;-webkit-tap-highlight-color:transparent}.eyebrow{margin:0 0 5px;color:var(--text-secondary);font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}h1,h2{margin:0;line-height:1}h1{color:var(--text-primary);font-size:2.15rem;font-weight:850}.game-shell{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:12px}.control-panel{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:14px;width:min(100%,460px);min-height:min(760px,calc(100vh - 24px));min-height:min(760px,calc(100dvh - 24px));border:1px solid #2a3040;border-radius:18px;padding:16px;background:linear-gradient(180deg,#191d27,#12151d);box-shadow:0 24px 80px #00000070}.control-panel.paused{border-color:#4da3ff80;box-shadow:0 24px 80px #00000070,0 0 0 1px #4da3ff26,0 0 34px #4da3ff18}.restart-button{min-height:42px;border:1px solid #3a4051;border-radius:12px;padding:0 13px;color:var(--text-primary);background:#252a36;cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease}.restart-button:active{transform:scale(.97)}.restart-button.primary{border-color:#4da3ff;color:#08101c;background:#4da3ff;font-weight:800}.restart-button.ghost{min-height:36px;color:var(--text-secondary);background:transparent}.topbar{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.brand{min-width:0}.brand .eyebrow{margin-bottom:3px}.brand h1{font-size:1.45rem}.header-actions{display:flex;gap:6px;align-items:center}.header-actions .restart-button{min-height:34px;padding-inline:10px;border-radius:10px;font-size:.78rem}.stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stat:first-child{grid-column:1 / -1}.stat{min-width:0;border:1px solid #2b3040;border-radius:8px;padding:6px 7px;background:var(--panel-soft)}.stat span{display:block;overflow:hidden;color:var(--text-secondary);font-size:.66rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stat strong{display:block;overflow-wrap:anywhere;color:var(--text-primary);font-size:.82rem;font-weight:850;line-height:1.12}.pause-ribbon{grid-column:1 / -1;display:grid;place-items:center;min-height:34px;border:1px solid #4da3ff4d;border-radius:10px;color:#9cccff;background:#4da3ff14;font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.building{--floor-count: 6;--floor-height: 76px;--elevator-height: calc(var(--floor-height) - 12px);display:grid;grid-template-columns:minmax(0,1fr) minmax(84px,106px);gap:7px;align-items:stretch;min-height:0;padding:4px 0}.floor-list{display:grid;grid-template-rows:repeat(var(--floor-count),var(--floor-height));min-width:0}.floor-card{position:relative;display:grid;grid-template-columns:10px 22px minmax(0,1fr) 22px;gap:6px;align-items:center;width:100%;min-height:60px;border:0;border-radius:10px 0 0 10px;padding:0 6px;color:var(--text-primary);background:transparent;text-align:left;cursor:pointer;overflow:hidden}.floor-card:disabled,.floor-hit-zone:disabled{cursor:default}.floor-card:after{content:"";position:absolute;right:-9px;width:9px;height:1px;background:var(--floor-line)}.floor-card.target{background:#4da3ff17;box-shadow:inset 0 0 0 1px #4da3ff38}.floor-card.target:after{height:2px;background:#4da3ff;box-shadow:0 0 14px #4da3ff}.floor-card.current{background:#f4f1ea10}.floor-card.saturated{background:linear-gradient(90deg,#ffb84d16,transparent 72%);box-shadow:inset 0 0 0 1px #ffb84d3b;animation:saturation 1s ease-in-out infinite alternate}.floor-color{width:10px;height:28px;border:1px solid #ffffff42;border-radius:999px}.floor-number{color:var(--text-primary);font-size:1.12rem;font-weight:850;font-variant-numeric:tabular-nums}.floor-meta{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;color:var(--text-secondary);background:#0f1117;font-size:.68rem;font-weight:800}.shaft{position:relative;box-sizing:content-box;align-self:center;overflow:hidden;height:calc(var(--floor-count) * var(--floor-height));border-inline:2px solid #3a4051;border-radius:14px;background:repeating-linear-gradient(to top,transparent 0,transparent calc(var(--floor-height) - 2px),#303545 calc(var(--floor-height) - 2px),#303545 var(--floor-height)),linear-gradient(90deg,#10131b,#171b25 50%,#10131b);box-shadow:inset 0 0 0 1px #0c0e14,0 0 0 1px #242936}.floor-hit-zone{position:absolute;bottom:calc(var(--floor-index) * var(--floor-height));left:0;width:100%;height:var(--floor-height);border:0;background:transparent;cursor:pointer}.floor-hit-zone.targeted{background:linear-gradient(90deg,transparent,#4da3ff24,transparent);animation:target-glow .65s ease-in-out infinite alternate}.elevator{position:absolute;right:13px;bottom:calc((var(--floor-height) - var(--elevator-height)) / 2);left:13px;height:var(--elevator-height);border:2px solid #fffaf0;border-radius:12px;padding:7px;color:#0f1117;background:var(--elevator);box-shadow:0 10px 28px #0000006b,0 0 26px #e8e3d833;transition:border-color .12s ease,box-shadow .12s ease;transform:translateY(calc(var(--elevator-y) * var(--floor-height) * -1));will-change:transform}.elevator.full{border-color:var(--warning);box-shadow:0 10px 28px #0000006b,0 0 24px #ffb84d45}.capacity{display:inline-flex;min-width:39px;justify-content:center;border-radius:999px;padding:2px 8px;color:var(--elevator);background:var(--elevator-dark);font-size:.76rem;font-weight:900;font-variant-numeric:tabular-nums}.cabin-passengers,.queue-dots{display:flex;gap:5px;align-items:center}.queue-dots{width:145px;justify-content:flex-start;justify-self:end;min-width:0;overflow:hidden}.cabin-passengers{margin-top:7px}.passenger{display:inline-grid;place-items:center;width:25px;height:25px;border:2px solid #ffffff8c;border-radius:50%;color:#0f1117;font-size:.74rem;font-weight:950;font-variant-numeric:tabular-nums;box-shadow:0 1px #ffffff94 inset,0 6px 13px #0003;animation:pop-in .16s ease-out}.queue-overflow{display:inline-grid;place-items:center;min-width:30px;height:25px;border:1px solid #ffffff24;border-radius:999px;padding:0 7px;color:var(--text-primary);background:#0f1117d9;font-size:.72rem;font-weight:900;font-variant-numeric:tabular-nums;box-shadow:0 6px 13px #0003}.passenger.approaching{animation:passenger-approach .7s cubic-bezier(.18,.86,.3,1) both}.passenger.entering-cabin{animation:passenger-cabin-entry .52s cubic-bezier(.18,.86,.3,1) both}.passenger.compact{width:22px;height:22px;border-width:1px;font-size:.68rem}.passenger.impatient{border-color:#fff4cc;animation:pulse .9s ease-in-out infinite alternate}.passenger.critical{border-color:var(--danger);animation:critical-pulse .36s ease-in-out infinite alternate}.status-panel{display:grid;grid-template-columns:minmax(92px,auto) 1fr auto;gap:10px;align-items:center;border-top:1px solid #2a3040;padding-top:13px}.pressure-copy strong,.pressure-copy span{display:block}.pressure-copy strong{font-size:.9rem}.pressure-copy span{color:var(--text-secondary);font-size:.72rem}.stress-track{height:9px;overflow:hidden;border-radius:999px;background:#0f1117;box-shadow:inset 0 0 0 1px #2f3545}.stress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#5ee6a8,#ffd166 58%,#ff5a5f);transition:width .18s ease}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:18px;background:#07080ccb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-over,.day-card{width:min(360px,100%);border:1px solid #353b4c;border-radius:16px;padding:24px;color:var(--text-primary);background:linear-gradient(180deg,#202532,#151821);box-shadow:0 24px 80px #0009;text-align:center}.game-over h2,.day-card h2{font-size:2rem}.game-over p,.day-card p{color:var(--text-secondary)}.day-objective,.result-list{margin:18px 0;color:var(--text-primary);font-weight:900}.result-list{display:grid;gap:8px;font-size:.95rem}.day-objective{font-size:1rem}@keyframes target-glow{0%{opacity:.55}to{opacity:1}}@keyframes saturation{0%{box-shadow:inset 0 0 0 1px #ffb84d00}to{box-shadow:inset 0 0 0 1px #ffb84d55}}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #ffd16600}to{transform:scale(1.08);box-shadow:0 0 0 5px #ffd16628}}@keyframes critical-pulse{0%{transform:translate(-1px) scale(1);box-shadow:0 0 #ff5a5f00}to{transform:translate(1px) scale(1.1);box-shadow:0 0 0 6px #ff5a5f24}}@keyframes pop-in{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes passenger-approach{0%{opacity:0;transform:translate(-120px) scale(.84)}72%{opacity:1;transform:translate(4px) scale(1)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes passenger-cabin-entry{0%{opacity:0;transform:translate(52px) scale(.84)}80%{opacity:1;transform:translate(-2px) scale(1.02)}to{opacity:1;transform:translate(0) scale(1)}}@media(min-width:720px){.control-panel{width:560px;padding:20px}.building{grid-template-columns:minmax(0,1fr) 150px;gap:12px}.floor-card{grid-template-columns:13px 28px minmax(0,1fr) 26px;gap:8px;padding-inline:10px}.floor-color{width:13px;height:30px}.floor-number{font-size:1.35rem}.passenger{width:28px;height:28px;font-size:.82rem}.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.stat:first-child{grid-column:auto}}@media(max-width:430px){.game-shell{padding:8px}.control-panel{min-height:calc(100vh - 16px);min-height:calc(100dvh - 16px);gap:10px;padding:12px}.building{--floor-height: 64px !important;grid-template-columns:minmax(0,1fr) minmax(78px,96px);gap:6px}.floor-card{min-height:52px}.floor-card{grid-template-columns:9px 20px minmax(0,1fr) 20px;gap:5px;padding-inline:5px}.floor-color{width:10px}.floor-number{font-size:1.12rem}.passenger{width:23px;height:23px;font-size:.68rem}.queue-overflow{min-width:27px;height:23px;padding-inline:6px;font-size:.66rem}.status-panel{gap:8px;padding-top:10px}}@media(max-width:360px){.status-panel{grid-template-columns:1fr}.status-panel .restart-button{width:100%}}
