*{box-sizing:border-box}:root{color:#eef6ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#07111d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:radial-gradient(circle at 20% 10%,#498e9e52,#0000 34%),radial-gradient(circle at 80% 20%,#5b3e9447,#0000 30%),linear-gradient(135deg,#06101b 0%,#0b1825 48%,#08111c 100%);min-width:320px;min-height:100vh;margin:0;overflow:hidden}button{font:inherit}#root{width:100vw;height:100vh}.app-shell{grid-template-columns:1fr 320px;gap:16px;width:100%;height:100%;padding:16px;display:grid}.stage-panel,.side-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#07111db8;border:1px solid #add8e638;border-radius:24px;overflow:hidden;box-shadow:0 20px 70px #00000059}.stage-panel{min-height:0;position:relative}.game-board{background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/42px 42px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/42px 42px,radial-gradient(circle at 50% 45%,#396a7c6b,#0000 42%),linear-gradient(160deg,#0c2131f5,#050a11fa);width:100%;height:100%;min-height:560px;position:relative;overflow:hidden}.game-board:after{content:"";pointer-events:none;background:radial-gradient(circle at 50% 48%,#0000 0 23%,#03070c2e 36%,#03070cad 100%);position:absolute;inset:0}.top-hud{z-index:5;justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute;top:18px;left:18px;right:18px}.brand h1{letter-spacing:-.04em;margin:0;font-size:clamp(22px,3vw,38px);line-height:1}.brand p{color:#a7bed2;margin:7px 0 0;font-size:13px}.stat-row{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.stat-card{background:#07111db8;border:1px solid #b7deee2e;border-radius:16px;min-width:88px;padding:10px 12px}.stat-card span{color:#9eb5c7;text-transform:uppercase;letter-spacing:.08em;font-size:11px;display:block}.stat-card strong{margin-top:4px;font-size:20px;display:block}.fog-bank{z-index:1;pointer-events:none;filter:blur(10px);background:radial-gradient(circle at 20% 40%,#b1dde124,#0000 20%),radial-gradient(circle at 62% 32%,#b1dde11f,#0000 21%),radial-gradient(circle at 72% 72%,#b1dde11c,#0000 24%),radial-gradient(circle at 38% 70%,#b1dde11a,#0000 19%);animation:16s ease-in-out infinite alternate drift;position:absolute;inset:-14%}@keyframes drift{0%{opacity:.92;transform:translate(-2%,-1%)scale(1)}to{opacity:.72;transform:translate(3%,2%)scale(1.04)}}.map-layer{z-index:2;position:absolute;inset:0}.node{color:#dff9ff;cursor:pointer;background:linear-gradient(145deg,#254e5ff5,#091623f5);border:1px solid #ccedf238;border-radius:22px;place-items:center;width:68px;height:68px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 12px 30px #00000059,inset 0 1px #ffffff1f}.node:hover,.node.selected{border-color:#8aeadbeb;transform:translate(-50%,-50%)scale(1.08);box-shadow:0 16px 38px #0000006b,0 0 30px #5cead247}.node .icon{font-size:28px}.node .label{text-align:center;color:#c7ddec;text-shadow:0 2px 6px #000000b3;width:150px;font-size:12px;position:absolute;top:74px;left:50%;transform:translate(-50%)}.node.danger{background:linear-gradient(145deg,#5f3434f5,#210c12f5)}.node.supply{background:linear-gradient(145deg,#3f624bf5,#0a2318f5)}.route-line{transform-origin:0;background:linear-gradient(90deg,#76e8d533,#76e8d5bf,#76e8d533);height:3px;position:absolute;box-shadow:0 0 18px #76e8d540}.controls{z-index:5;flex-wrap:wrap;gap:10px;display:flex;position:absolute;bottom:18px;left:18px}.action-btn{color:#06101b;cursor:pointer;background:linear-gradient(135deg,#8df4df,#bdefff);border:0;border-radius:16px;padding:12px 16px;font-weight:800;box-shadow:0 12px 25px #17d1b83d}.action-btn.secondary{color:#eaf8ff;box-shadow:none;background:#ffffff14;border:1px solid #b7deee33}.action-btn:disabled{opacity:.52;cursor:not-allowed}.side-panel{flex-direction:column;min-height:0;display:flex}.panel-header{border-bottom:1px solid #b7deee24;padding:20px 20px 14px}.panel-header h2{margin:0;font-size:20px}.panel-header p{color:#9eb5c7;margin:7px 0 0;font-size:13px}.panel-body{padding:18px 20px;overflow:auto}.objective-card,.event-card,.selected-card{background:#ffffff0e;border:1px solid #b7deee29;border-radius:18px;margin-bottom:14px;padding:14px}.objective-card h3,.event-card h3,.selected-card h3{margin:0 0 8px;font-size:15px}.objective-card ul{color:#c4d6e5;margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.55}.progress-shell{background:#ffffff14;border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#76e8d5,#ffe08a);height:100%;transition:width .25s}.resource-grid{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.resource{background:#0000002e;border:1px solid #b7deee1f;border-radius:16px;padding:12px}.resource span{color:#9eb5c7;font-size:12px;display:block}.resource strong{margin-top:4px;font-size:22px;display:block}.event-log{flex-direction:column;gap:9px;margin-top:12px;display:flex}.log-line{color:#cfe2ee;background:#0000002e;border-left:3px solid #76e8d5a6;border-radius:14px;padding:10px 11px;font-size:12px;line-height:1.35}.selected-card p,.event-card p{color:#c4d6e5;margin:0;font-size:13px;line-height:1.5}.badge-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.badge{color:#07111d;background:#8df4df;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.badge.warn{background:#ffe08a}.badge.danger{color:#fff;background:#ff7d7d}.footer-note{color:#7892a7;margin-top:16px;font-size:12px;line-height:1.45}@media (width<=900px){body{overflow:auto}.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.game-board{height:640px}.top-hud{flex-direction:column;align-items:flex-start}.stat-row{justify-content:flex-start}}@media (width<=560px){.app-shell{padding:10px}.game-board{min-height:720px}.node{border-radius:18px;width:58px;height:58px}.node .label{width:118px;font-size:11px;top:64px}.controls{right:18px}.action-btn{flex:1;padding:11px 12px}}
