:root{color-scheme:dark;--bg:#101512;--panel:#19201b;--line:#303a30;--muted:#8b988b;--text:#e6ece1;--lime:#c0ef83;--gold:#ebcc76;--teal:#89cbbb;--red:#ed8b83;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 70% 0%,#202b1b50,transparent 52%),var(--bg);color:var(--text);font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button{border:1px solid var(--line);background:#202820;transition:background .15s,border-color .15s,transform .15s}button:hover:not(:disabled){background:#2d382a;border-color:#748465}button:active:not(:disabled){transform:translateY(1px)}button:disabled:hover{background:#202820}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.site-shell{max-width:1424px;padding:0 48px;margin:auto}.header{height:86px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;letter-spacing:-.5px;font-size:18px}.brand-icon{background:var(--lime);color:#21321a;font-size:29px;font-weight:bold;border-radius:11px;width:35px;height:35px;display:grid;place-items:center;line-height:1}.brand-light{font-weight:400;color:#899783;font-size:16px;margin-left:6px}.header nav{display:flex;align-items:center;gap:12px}.online{display:flex;align-items:center;gap:8px;color:#9ca997;font-size:12px;margin-right:15px}.online i,.status-dot,.live-dot{width:6px;height:6px;background:var(--lime);display:inline-block;border-radius:50%;box-shadow:0 0 9px #b7e77a30}.icon-btn{border-radius:9px;width:35px;height:35px;font-size:19px;position:relative;background:transparent}.icon-btn:first-of-type{width:57px;display:flex;align-items:center;justify-content:center;gap:6px}.sound-state{font-size:9px;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:center;padding:39px 0 31px}.eyebrow{font-size:10px;letter-spacing:2.1px;color:#a8ba99;display:flex;align-items:center;gap:7px}.eyebrow>span{width:15px;height:1px;background:var(--lime)}h1{font-size:36px;letter-spacing:3px;margin:11px 0 10px;font-weight:800}.title-star{font-size:26px;color:var(--lime);margin-left:16px;vertical-align:middle}.intro p{color:#9aa693;font-size:13px;margin:0;letter-spacing:1px}.intro-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:#b2bda8;line-height:2.1}.intro-meta small{display:block;font-size:10px;color:#7d8c77;letter-spacing:.5px}.pixel-moon{font-size:52px;line-height:1;color:#d3dca0}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 303px;gap:20px;align-items:start}.game-card{border:1px solid #3a4535;border-radius:13px;overflow:hidden;background:#161d18;box-shadow:0 16px 50px #0002}.game-toolbar{height:61px;padding:0 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #3a4535;background:#1e271f}.level-name{display:flex;align-items:center;gap:9px;font-weight:600;font-size:13px;letter-spacing:1px}.level-name small{font-size:10px;border:1px solid #415039;color:#9bac92;padding:3px 6px;border-radius:4px;margin-left:2px}.resources{display:flex;gap:24px;align-items:center}.resources>span{display:flex;gap:7px;align-items:center}.resources strong{font-size:15px;font-variant-numeric:tabular-nums;min-width:20px}.resources small{font-size:10px;color:#a2b28d;margin-left:1px}.coin-icon{color:var(--gold);font-size:18px;text-shadow:0 0 12px #eacc6830}.energy-icon{font-size:25px;color:var(--teal);line-height:1}.timer{border-left:1px solid #414936;padding-left:18px}.timer>span{font-size:19px;color:#bfcaa5}.stage-wrap{position:relative;background:#111816;aspect-ratio:4/3;isolation:isolate;overflow:hidden}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:manipulation}.map-corner{position:absolute;left:20px;top:16px;font-size:10px;color:#aab4a0;display:flex;align-items:center;gap:7px;pointer-events:none;padding:6px 9px;background:#111912c9;border-radius:4px}.live-dot{width:5px;height:5px;background:#a1bea2}.stage-controls{position:absolute;right:14px;bottom:14px;display:flex;gap:5px;z-index:3}.stage-controls button{height:31px;min-width:33px;border-radius:6px;background:#141e19d9;border-color:#48523b;color:#bcc6b1;font-size:12px}.game-status{min-height:43px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;padding:10px 18px;border-top:1px solid var(--line);color:#889780}.game-status>div{display:flex;align-items:center;gap:7px;color:#b6c2ab}.desktop-hint{display:flex;gap:5px;align-items:center;font-size:9px}kbd{font:8px ui-monospace,monospace;border:1px solid #49513f;padding:3px;border-radius:3px;color:#a6b39a}.start-screen{position:absolute;inset:0;background:linear-gradient(90deg,#101b16f2 0%,#101b16e8 24%,#101b1675 70%,#101b1620);z-index:2;display:flex;flex-direction:column;justify-content:center;padding:0 6.5%;backdrop-filter:blur(.3px)}.start-content{max-width:300px}.mini-label{font-size:8px;letter-spacing:2.1px;color:#a8bd90}.start-moon{font-family:Georgia,serif;font-size:76px;color:#d4e6a9;position:relative;height:104px;margin-top:13px;text-shadow:0 0 36px #b4d77d30}.start-moon>span{position:absolute;left:73px;top:16px;font-size:17px}.start-content h2{font-size:43px;line-height:1.35;letter-spacing:2px;margin:0 0 17px;font-weight:800}.start-content h2 em{font-style:normal;color:var(--lime)}.start-content p{line-height:1.9;color:#a4b59b;font-size:12px;letter-spacing:.8px;margin:0 0 26px}.primary-btn{border:1px solid #c5f18b;background:var(--lime);color:#27371b;border-radius:7px;padding:13px 22px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:40px;font-size:14px;box-shadow:0 6px 20px #bded7410}.primary-btn:hover:not(:disabled){background:#d0ffa3;border-color:#ddffba}.primary-btn span{font-size:20px;font-weight:400}.start-note{display:block;font-size:9px;color:#7e9176;margin-top:13px;letter-spacing:.7px}.start-tag{position:absolute;bottom:26px;left:6.5%;font-size:9px;letter-spacing:1px;color:#a1b28b;display:flex;align-items:center;gap:7px}.start-tag i{display:block;width:5px;height:5px;background:var(--lime);border-radius:50%}.selection-banner{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);text-align:center;background:#131d16ee;padding:18px 28px;border:1px solid #bce97b66;border-radius:9px;pointer-events:none;width:max-content;max-width:95%;box-shadow:0 8px 30px #0005}.selection-banner strong{display:block;font-size:15px;color:var(--lime);letter-spacing:1px}.selection-banner span{display:block;font-size:10px;color:#a2b396;margin-top:8px}.sidebar{display:flex;flex-direction:column;gap:16px}.control-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:21px 20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-heading h2{font-size:14px;letter-spacing:1px;margin:0}.badge{font-size:8px;letter-spacing:1px;color:#a5b69a;border:1px solid #46503f;border-radius:4px;padding:4px 6px}.guide-art{height:62px;position:relative;display:flex;align-items:center;justify-content:center;margin:14px 0}.guide-bed{display:block;position:relative;border:5px solid #c0ae79;border-top:10px solid #ede9c4;background:#8ca390;width:74px;height:40px;color:#cbd9c1;font-size:22px;padding-left:2px;box-shadow:5px 5px 0 #101812}.guide-bed:after{content:'';position:absolute;left:-5px;right:-5px;bottom:-11px;height:8px;border-left:6px solid #87774e;border-right:6px solid #87774e}.guide-z{position:absolute;top:0;right:72px;color:var(--lime);font:18px monospace;transform:rotate(12deg)}.guide-z span{font-size:11px;position:relative;top:-11px;left:5px}#welcome-panel h3{text-align:center;font-size:17px;letter-spacing:1px;margin:14px 0 10px}.panel-copy{color:#94a08c;font-size:11px;line-height:1.9;margin:0}#welcome-panel>.panel-copy{text-align:center}.difficulty{padding:18px 0 16px;border-bottom:1px solid var(--line);margin-top:3px}.field-label{font-size:10px;color:#b1bda6}.difficulty-options{display:flex;border:1px solid #3d4937;border-radius:6px;overflow:hidden;margin-top:10px;padding:3px;background:#101810;gap:3px}.difficulty-options button{flex:1;border:0;background:transparent;border-radius:3px;padding:7px 0;color:#8f9e85;font-size:11px}.difficulty-options button.active{background:#33432a;color:var(--lime)}.difficulty p{margin:9px 0 0;color:#6f8067;font-size:9px;line-height:1.6}.guide-steps{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:15px}.guide-steps li{display:flex;gap:12px;align-items:start}.guide-steps li>span{font:10px ui-monospace,monospace;border:1px solid #3e4a35;color:#a9c386;border-radius:5px;width:26px;height:26px;display:grid;place-items:center;flex-shrink:0}.guide-steps strong{font-size:11px;font-weight:500}.guide-steps p{margin:5px 0 0;color:#7f9075;font-size:9px}.night-card{background:#151d17;border:1px solid var(--line);border-radius:11px;padding:17px 18px}.night-title{display:flex;align-items:center;gap:7px}.night-title h2{margin:0;font-size:11px;letter-spacing:1px;font-weight:500}.night-title>span:last-child{margin-left:auto;font:8px monospace;letter-spacing:1.5px;color:#62735a}#event-log{margin-top:15px;height:83px;overflow:auto;scrollbar-width:thin;scrollbar-color:#4a5c39 transparent}.log-line{display:flex;gap:8px;color:#98aa8b;font-size:9px;line-height:1.7;margin:0 0 8px}.log-line time{color:#66765d;font:9px monospace;line-height:1.9;flex-shrink:0}.log-line.danger{color:#e9a093}.log-line.good{color:#c3df9e}.log-line.muted{color:#6f8166}.best-record{border-top:1px solid #2a3527;margin-top:10px;padding-top:12px;display:flex;justify-content:space-between;gap:6px;font-size:8px;color:#708465}.best-record strong{font-weight:400;color:#b6c79f}.tips-strip{border:1px solid #2e3c29;border-radius:8px;margin-top:18px;min-height:49px;display:flex;align-items:center;justify-content:space-between;padding:10px 17px;background:#1b251850}.tips-strip>div{display:flex;align-items:center;gap:10px}.tips-strip>div>span{color:var(--lime);font-size:23px;line-height:1}.tips-strip p{font-size:10px;margin:0;color:#829377}.tips-strip strong{color:#adbd9c;font-weight:500;margin-right:17px}.tip-tag{font-size:8px;letter-spacing:1.8px;color:#758765}footer{display:flex;justify-content:space-between;gap:20px;padding:26px 0 28px;font-size:9px;color:#5e7155;letter-spacing:.3px}footer a{color:#a0b28f;margin-left:6px}.door-status>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:#91a186}.door-status strong{font:10px ui-monospace,monospace;color:#bccea7}.bar{height:5px;background:#313e2d;border-radius:5px;margin-top:9px;overflow:hidden}.bar i{display:block;background:var(--lime);height:100%;width:100%;transition:width .2s}.upgrade-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.upgrade-card{text-align:left;padding:12px 10px;border-radius:7px;background:#202a20;display:flex;flex-direction:column;gap:7px}.item-symbol{font-size:25px;color:#afcea3;line-height:1}.item-symbol.door{color:#cdb383}.upgrade-card strong{font-size:10px;font-weight:500;white-space:nowrap}.upgrade-card strong small{color:#839975;font-size:8px}.upgrade-card>span:not(.item-symbol){font-size:8px;color:#809376}.upgrade-card b{color:var(--gold);font-size:9px;font-weight:500}.build-heading{display:flex;justify-content:space-between;margin-bottom:10px;color:#c3cfb7;font-size:11px}.build-heading small{font-size:9px;color:#8da47c}.build-list{display:flex;flex-direction:column;gap:7px}.build-list>button{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:6px;text-align:left;background:#1c271c;border-color:#34422e}.build-icon{width:31px;height:33px;display:grid;place-items:center;background:#2a3a25;color:#bde594;border:1px solid #455739;border-radius:5px;font-size:25px;flex-shrink:0}.build-icon.generator{color:#e1c07b;background:#393223;border-color:#51482e}.build-icon.frost{color:#88c2c4;background:#213537;border-color:#355556}.build-icon.repair{color:#c19bcf;background:#332938;border-color:#4d3b53}.build-list>button>span:nth-child(2){flex:1}.build-list strong{font-size:10px;font-weight:500;display:block}.build-list small{font-size:8px;color:#778e6c;display:block;margin-top:4px}.build-list b{font-size:9px;color:var(--gold);font-weight:500;white-space:nowrap}.build-list b small{color:var(--teal);text-align:right}.repair-button{display:flex;justify-content:space-between;width:100%;border-radius:6px;padding:10px;font-size:10px;color:#a6bc94;margin-top:14px;background:#283122}.repair-button b{font-weight:400;color:var(--gold)}.game-actions{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:5px}.game-actions button{border:0;background:transparent;color:#91a17e;font-size:9px;padding:0}.game-actions>span{font-size:8px;color:#657a59}#selected-building{background:#222f1f;border:1px solid #5e7848;border-radius:7px;padding:10px;margin-top:12px;display:flex;flex-wrap:wrap;gap:7px}#selected-building>div{width:100%;display:flex;justify-content:space-between;font-size:10px}#selected-building>div span{color:var(--lime)}#selected-building button{flex:1;font-size:9px;padding:6px;border-radius:4px}.room-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.room-options button{border-radius:7px;padding:16px 8px;display:flex;flex-direction:column;gap:7px;font-size:11px}.room-options button span{color:var(--lime);font:10px monospace}.room-note{margin-top:20px;font-size:10px;line-height:1.9;color:#7c9070}.paused-overlay{position:absolute;inset:0;background:#101910db;z-index:5;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;flex-direction:column}.paused-overlay>span{font-size:60px;color:var(--lime)}.paused-overlay h2{font-size:25px;margin:15px 0 5px}.paused-overlay p{color:#93a487;font-size:12px;margin-bottom:25px}.toast{position:absolute;left:50%;bottom:60px;transform:translateX(-50%) translateY(10px);background:#26371ff5;border:1px solid #91b4688a;border-radius:6px;padding:11px 18px;color:#e1efcb;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90%;width:max-content;font-size:11px;z-index:6}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid #5b7047;background:#19241a;color:var(--text);border-radius:16px;padding:35px;width:480px;max-width:calc(100% - 32px);box-shadow:0 25px 100px #000a}dialog::backdrop{background:#07110bd1;backdrop-filter:blur(7px)}dialog h2{font-size:25px;margin:15px 0}dialog p,dialog li{color:#a2b196;font-size:12px;line-height:1.9}dialog ol{padding-left:20px}dialog li{padding:6px 0}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:24px;color:#9aad8c}dialog .help-note{font-size:10px;color:#768e68;margin:15px 0 23px}dialog .primary-btn{width:100%;justify-content:center}#result-dialog{text-align:center;width:460px}#result-icon{display:block;font-size:56px;color:var(--lime);margin:0 auto 15px}#result-dialog .eyebrow{justify-content:center}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3b4c31;border-bottom:1px solid #3b4c31;margin:25px 0;padding:20px 0;gap:10px}.result-stats>div{display:flex;flex-direction:column;gap:9px}.result-stats strong{font-size:23px;font-variant-numeric:tabular-nums;color:#d6e7be}.result-stats span{font-size:10px;color:#829975}.text-btn{border:0;background:transparent;font-size:11px;color:#8aa178;margin:16px auto 0}.slot-picker{display:flex;gap:6px;margin-top:10px}.slot-picker button{flex:1;padding:7px 0;border-radius:4px;font-size:9px;color:#99b585}.slot-picker button.active{border-color:var(--lime);color:var(--lime);background:#30432a}
@media(min-width:1500px){.site-shell{max-width:1500px}.game-layout{grid-template-columns:minmax(0,1fr) 320px}.start-content h2{font-size:49px}}
@media(max-width:1100px){.site-shell{padding:0 26px}.game-layout{grid-template-columns:minmax(0,1fr) 275px;gap:15px}.intro-meta{display:none}.start-content h2{font-size:34px}.start-moon{height:80px;font-size:64px}.start-content p{margin-bottom:20px}.mini-label{font-size:7px}.control-card{padding:18px 15px}.resources{gap:13px}.game-toolbar{padding:0 15px}.resources small{display:none}.game-status{font-size:9px;padding:9px 12px}.desktop-hint{display:none}.start-note{font-size:8px}.start-tag{bottom:15px}.guide-steps{gap:12px}.intro{padding:28px 0}.stage-wrap{aspect-ratio:4/3}}
@media(max-width:800px){.site-shell{max-width:660px;padding:0 18px}.header{height:65px}.brand{font-size:16px;gap:9px}.brand-light{font-size:13px}.brand-icon{height:30px;width:30px;font-size:25px}.online{display:none}.header nav{gap:7px}.intro{padding:25px 0 21px}.intro h1{font-size:29px;margin:9px 0}.intro p{font-size:11px;letter-spacing:.3px}.eyebrow{font-size:8px}.title-star{font-size:21px}.game-layout{grid-template-columns:1fr;gap:16px}.game-toolbar{height:53px;padding:0 13px}.resources{gap:17px}.resources small{display:inline}.stage-wrap{aspect-ratio:4/3}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.control-card{padding:18px 16px}.night-card{padding:18px 14px}.guide-art{display:none}#welcome-panel h3{font-size:15px;margin:12px 0}.panel-copy{font-size:10px}.guide-steps{gap:13px}.night-card #event-log{height:180px}.tips-strip{margin-top:15px}.tip-tag{display:none}.tips-strip p{font-size:9px}.tips-strip strong{margin-right:10px}footer{font-size:8px;line-height:1.7;padding:23px 0;flex-direction:column;gap:4px}.start-content h2{font-size:42px}.start-moon{height:94px;font-size:72px}.start-content p{font-size:12px}.start-note{font-size:9px}.start-tag{bottom:22px}.mini-label{font-size:8px}.start-screen{padding-left:7%}.map-corner{left:12px;top:12px;font-size:9px}.game-status{font-size:9px}.night-card .best-record{flex-direction:column;gap:8px}.badge{font-size:7px;padding:3px}.upgrade-card{padding:10px 7px}.upgrade-card strong{font-size:9px}.upgrade-grid{gap:6px}.build-list>button{gap:7px;padding:8px 6px}.build-list strong{font-size:9px}.build-list small{font-size:7px}.build-icon{width:27px;height:30px;font-size:22px}.game-actions{flex-wrap:wrap;gap:9px}.room-options button{font-size:10px}.panel-heading h2{font-size:12px}}
@media(max-width:450px){.site-shell{padding:0 12px}.intro p{font-size:10px}.game-toolbar{padding:0 10px}.level-name{font-size:11px;gap:6px}.level-name small{font-size:8px;padding:3px}.resources{gap:11px}.resources strong{font-size:12px}.resources small{font-size:8px}.timer{padding-left:10px}.stage-wrap{aspect-ratio:1}.start-content h2{font-size:32px;margin-bottom:12px}.start-moon{font-size:52px;height:67px;margin-top:7px}.start-moon>span{left:56px;top:10px;font-size:12px}.start-content p{font-size:10px;margin-bottom:16px}.start-content .primary-btn{padding:10px 18px;font-size:12px}.start-note{font-size:8px;margin-top:9px}.mini-label{font-size:6px}.start-tag{font-size:8px;bottom:15px}.game-status{padding:10px;min-height:40px;gap:6px;font-size:8px}.sidebar{grid-template-columns:1fr}.night-card #event-log{height:82px}.night-card .best-record{flex-direction:row}.control-card{padding:18px}.panel-heading{margin-bottom:14px}.guide-steps{display:grid;grid-template-columns:1fr;gap:12px}.guide-steps li{align-items:center}.guide-steps p{margin-top:3px}.difficulty{padding:14px 0}.guide-art{display:flex;height:50px;margin-top:5px}.guide-z{right:calc(50% - 62px)}.panel-copy{font-size:11px}.upgrade-card{padding:12px}.upgrade-card strong{font-size:11px}.upgrade-card>span:not(.item-symbol){font-size:9px}.build-list>button{padding:10px;gap:12px}.build-list strong{font-size:11px}.build-list small{font-size:9px}.build-list b{font-size:10px}.build-icon{width:35px;height:35px}.upgrade-card b{font-size:11px}.room-options{grid-template-columns:repeat(3,1fr)}.room-options button{padding:13px 6px}.room-note{font-size:9px}.selection-banner strong{font-size:12px}.selection-banner span{font-size:8px}.selection-banner{padding:13px 15px}.toast{font-size:10px}.intro h1{font-size:27px}.tips-strip{padding:9px 11px}.tips-strip p{font-size:8px}.tips-strip strong{margin-right:7px}.resources>span{gap:4px}.start-screen{background:linear-gradient(90deg,#101b16f2,#101b16dd 38%,#101b1660)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.audio-toggle{width:57px;display:flex;align-items:center;justify-content:center;gap:6px}.audio-toggle[aria-pressed="true"]{color:var(--lime);border-color:#526842}.audio-toggle[aria-pressed="true"] .sound-state{color:#abc592}
@media(max-width:360px){.brand-light{display:none}.header nav{gap:6px}.header .audio-toggle{width:50px}}
