:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#e8e9df;background:#171f20;font-synthesis:none;--ink:#4e3522;--gold:#f2c654}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 49% 35%,#34443c50,transparent 55%),#171f20}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #16a5ac;outline-offset:3px}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.desktop-top{max-width:1320px;margin:auto;padding:28px 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff0c}.brand{font-size:16px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;gap:10px}.brand-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--gold);color:#253126;font-size:25px}.brand small{font-size:9px;color:#83948c;letter-spacing:2px;margin-left:8px}.edition{font-size:11px;color:#95a59c;display:flex;gap:8px;align-items:center}.edition i,.status-dot{width:6px;height:6px;border-radius:50%;background:#96bc81;display:inline-block}.edition b{margin-left:20px;color:#67776f;font-size:10px;letter-spacing:1px}.layout{display:grid;grid-template-columns:minmax(225px,1fr) 430px minmax(225px,1fr);max-width:1250px;gap:52px;margin:38px auto 24px;padding:0 32px;align-items:start}.left-rail{padding-top:58px}.eyebrow{font-size:11px;letter-spacing:3px;color:#b4bea7}.left-rail h1{font-size:39px;letter-spacing:-2px;line-height:1.55;margin:18px 0}.left-rail h1 span{color:#f2cb69}.intro{color:#8a9d93;font-size:12px;line-height:2.1;letter-spacing:.7px}.rail-card{border:1px solid #ffffff10;background:#ffffff03;border-radius:15px;padding:22px;margin-bottom:18px}.guide{margin-top:36px;padding:22px 18px}.section-kicker{font-size:12px;letter-spacing:1px;font-weight:700;display:flex;align-items:center;justify-content:space-between;color:#c5d0c3;gap:8px}.section-kicker>span{font-size:10px;color:#72877b;letter-spacing:1px}.guide ol{list-style:none;counter-reset:step;padding:5px 0 0;margin-bottom:0}.guide li{counter-increment:step;padding:16px 0 0 31px;position:relative}.guide li:before{content:"0" counter(step);position:absolute;left:0;top:17px;font-size:10px;color:#dfbf6b;font-weight:700}.guide li b{font-size:12px;color:#d1d7c9}.guide li p{font-size:11px;line-height:1.9;color:#879a8e;margin:6px 0}.material-path{display:flex;align-items:center;justify-content:space-between;padding:12px 5px}.material-path span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;font-size:11px;background:#b5804220;color:#ccaa76;border:1px solid #b5804230}.material-path span:nth-of-type(2){background:#95aabb15;color:#a3b3b6}.material-path span:nth-of-type(3){background:#dbe5f215;color:#dbe5f2}.material-path span:nth-of-type(4){background:#50dad415;color:#70d8cd}.material-path i{font-size:11px;color:#607769;font-style:normal}.rail-note{font-size:11px;line-height:2;color:#61796a;padding:0 5px}.right-rail{padding-top:58px}.big-stat{padding:21px 0}.big-stat strong{display:block;font-size:62px;font-weight:700;line-height:1.15;color:#f3ce77;letter-spacing:-3px}.big-stat span{display:block;font-size:11px;color:#879a8e;margin-top:7px}.stat-pair{display:flex;gap:24px;padding-top:18px;border-top:1px solid #ffffff0c}.stat-pair>div{flex:1}.stat-pair b{display:block;font-size:20px;font-weight:500;color:#d1dbcd}.stat-pair span{font-size:10px;color:#788d80;display:block;margin-top:4px}.live-tag{border:1px solid #627b424a;background:#6e8c3820;padding:3px 6px;border-radius:4px;color:#b1c180!important;font-size:8px!important}.buff-list{padding-top:17px;font-size:11px;color:#7f9486;line-height:1.9}.buff-empty{border:1px dashed #72877345;padding:17px 10px;text-align:center;border-radius:9px}.buff-empty i{display:block;font-size:27px;font-style:normal;color:#718261;margin-bottom:6px}.buff-item{display:flex;gap:11px;margin:13px 0}.buff-item i{font-size:26px;font-style:normal;color:#f1cd72}.buff-item b{color:#d8dcbb;display:block}.buff-item p{font-size:10px;line-height:1.8;margin:3px 0}.mini-codex{display:grid;gap:15px;margin-top:22px;font-size:11px;color:#a7b6aa}.mini-codex>span{display:flex;align-items:center;gap:9px}.mini-codex b{margin-left:auto;font-size:10px;font-weight:400;color:#7b9182}.swatch{width:18px;height:18px;border:1px solid #ffffff25;box-shadow:inset 0 3px #ffffff22,inset -3px -3px #0002;border-radius:3px;display:inline-block}.dirt{background:#b8734d}.sand{background:#e5b95f}.stone{background:#7c8c9e}.plain-btn{background:none;color:#7f9486;font-size:10px;padding:0}.debug-entry{background:transparent;border:1px dashed #78917b45;width:100%;border-radius:10px;padding:15px 17px;text-align:left;font-size:11px;color:#93a88f}.debug-entry span{float:right}.activity{border-left:2px solid #82976540;padding-left:13px;font-size:10px;color:#6c8473;line-height:1.9;margin:23px 4px}.activity span{display:block;margin-bottom:6px}.game-shell{border-radius:30px;padding:7px;background:#465146;box-shadow:0 35px 85px #0005,0 0 0 1px #94a08735}.game{border-radius:24px;position:relative;overflow:hidden;color:var(--ink);background:radial-gradient(ellipse at 10% 6%,#fff9b588,transparent 50%),linear-gradient(#f3d658 0%,#f7c955 35%,#f5b34b 72%,#f5d185 100%);padding:23px 22px 13px}.game:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23aa854b' filter='url(%23n)' opacity='.3' d='M0 0h70v70H0z'/%3E%3C/svg%3E")}.game>*{position:relative}.game-header{display:flex;justify-content:space-between;align-items:center}.game-eyebrow{font-size:8px;font-weight:800;letter-spacing:1.9px;color:#846731}.game h2{margin:5px 0 0;font-size:25px;letter-spacing:-1.2px;color:#46321f;font-weight:1000;white-space:nowrap}.game h2 span{font-size:31px;margin:0 2px;color:#b45a2e;letter-spacing:-1px}.icon-btn{width:30px;height:30px;background:#a9802630;box-shadow:inset 0 1px #fff4;border:1px solid #92642122;border-radius:50%;color:#705321;font-size:17px;display:inline-grid;place-items:center}.help-btn{font-size:14px;font-weight:900;width:25px;height:25px;background:transparent;border:1px solid #9b7a4455}.wallet-row{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.wallet{display:flex;align-items:center;background:#755328;border:1px solid #523d21;border-radius:22px;color:white;height:36px;min-width:126px;padding-right:13px;box-shadow:inset 0 2px 3px #0003,0 1px #fff9;gap:8px}.coin{display:grid;place-items:center;border-radius:50%;height:37px;width:37px;margin-left:-2px;background:linear-gradient(140deg,#ffef9a,#ffc535 60%,#e9a21c);border:2px solid #8f5619;box-shadow:inset 0 0 0 3px #ffe266;transform:rotate(-15deg);font-size:21px;font-weight:900;color:#c58a1e;text-shadow:0 1px #fff9}.wallet strong{font-size:22px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.wallet>span:last-child{font-size:9px;opacity:.65}.top-actions{display:flex;gap:7px}.level-track{display:flex;align-items:center;justify-content:center;gap:17px;margin:19px 0 15px}.level-badge{width:43px;height:46px;display:grid;place-items:center;background:#caa84a;color:#826c33;clip-path:polygon(50% 0,96% 24%,96% 76%,50% 100%,4% 76%,4% 24%);font-size:20px;font-weight:800;position:relative}.level-badge.active{background:linear-gradient(150deg,#258c91,#075264);color:white;width:52px;height:57px;font-size:27px;text-shadow:0 2px #003842}.track-dots{letter-spacing:5px;color:#e8e7b5;font-size:12px;text-shadow:0 1px #a4864f}.objective{background:#fff4;border:1px solid #fff4;border-radius:11px;padding:11px 13px}.objective>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:5px}.objective b{font-size:11px}.objective span{font-size:10px;color:#92703a}.progress-track{height:5px;background:#b9994738;border-radius:3px;margin:8px 0 5px;overflow:hidden}.progress-track i{display:block;background:#568363;width:100%;height:100%;border-radius:3px;transition:width .25s}.objective small{font-size:9px;color:#9a773b}.workshop-title{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px}.workshop-title>span{display:flex;align-items:center;gap:6px}.status-dot{background:#49845b;width:5px;height:5px}.workshop-title b{font-size:11px}.workshop-title small{font-size:9px;color:#a17a37;margin-left:3px}.text-btn{background:none;color:#775124;font-size:10px;padding:3px}.text-btn:disabled{opacity:.4}.inventory{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;touch-action:none}.slot{aspect-ratio:1/1.04;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#a1773638;border:1.5px solid #fff9;border-radius:9px;box-shadow:inset 0 2px 5px #60492110;color:#fff9;transition:background .15s,transform .15s;padding:0;user-select:none;touch-action:none}.slot.empty:after{content:"+";font-size:22px;font-weight:300;color:#8a692e6b}.slot.selected{background:#fff4;outline:2px solid #50837b;transform:translateY(-3px)}.slot svg{width:39px;height:44px;filter:drop-shadow(0 2px 1px #69431e50);pointer-events:none}.slot-label{position:absolute;bottom:3px;left:0;right:0;color:#69471e;font-size:8px;text-align:center;font-weight:700;pointer-events:none}.tier-dot{position:absolute;top:4px;right:5px;font-size:7px;color:#fff9}.selection-hint{text-align:center;font-size:9px;color:#947035;height:24px;padding-top:7px}.mine-scene{margin:2px -7px 0}.scene-caption{display:flex;justify-content:space-between;font-size:8px;color:#9a7138;padding:8px 10px 0;letter-spacing:.5px}#mine{width:100%;height:auto;display:block;touch-action:pan-y}.scene-bottom{display:flex;justify-content:space-between;align-items:center;font-size:9px;padding:0 10px 9px;margin-top:-1px;color:#855b29}.scene-bottom b{color:#5d743d;margin-left:5px}.shop{border-top:1px solid #9d6e2929;padding-top:11px}.shop-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px}.shop-heading>span{color:#936d39;font-size:9px}.shop-heading strong{color:#694623}.shop-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.shop-tool{background:#fff5;border:1px solid #fffa;border-radius:10px;display:flex;align-items:center;flex-direction:column;color:#694820;padding:6px 2px;box-shadow:0 2px 0 #a6793020;transition:transform .15s}.shop-tool:hover{background:#fff9;transform:translateY(-2px)}.shop-tool:disabled{opacity:.45;transform:none}.shop-tool svg{width:34px;height:35px;filter:drop-shadow(0 2px 1px #74532a25)}.shop-tool>span{font-size:10px;font-weight:700;margin:3px 0 1px}.shop-tool small{font-size:8px;color:#947645}.launch-row{display:flex;gap:8px;margin-top:12px}.launch-btn{background:linear-gradient(#326854,#1f4f40);color:#fff1c9;box-shadow:0 4px 0 #173f31,inset 0 1px #7d9d74;border:1px solid #224e3d;border-radius:11px;height:48px;font-size:20px;font-weight:900;flex:1;letter-spacing:4px;display:flex;justify-content:center;align-items:center;gap:20px}.launch-btn span{font-size:27px;font-weight:400}.launch-btn:hover{filter:brightness(1.1)}.launch-btn:disabled{opacity:.65;filter:none}.game-footer{display:flex;justify-content:space-between;margin-top:13px;font-size:8px;color:#9d794a}.desktop-footer{display:flex;justify-content:space-between;max-width:1250px;padding:17px 32px 28px;margin:auto;color:#5d7366;font-size:9px;letter-spacing:1px}.desktop-footer i{font-style:normal;padding:0 10px;color:#3f5748}.toast{position:absolute;z-index:20;bottom:177px;left:50%;transform:translate(-50%,10px);opacity:0;transition:.2s;background:#253f35ee;color:#fff3cf;border:1px solid #afbb8455;border-radius:9px;padding:11px 16px;font-size:11px;pointer-events:none;max-width:90%;width:max-content;box-shadow:0 7px 20px #0003}.toast.show{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:absolute;inset:0;z-index:30;background:#302b1f9c;backdrop-filter:blur(5px);display:flex;align-items:center;padding:18px}.modal{background:linear-gradient(145deg,#fff4d7,#f5deb0);border:1px solid #fff9;border-radius:21px;width:100%;padding:25px;box-shadow:0 20px 55px #33271455;max-height:90%;overflow:auto}.modal h3{font-size:23px;letter-spacing:-.8px;margin:8px 0 14px}.modal p{font-size:11px;line-height:1.9;color:#866746}.modal-eyebrow{font-size:9px;letter-spacing:2px;color:#aa8a48;font-weight:700}.modal button.primary{width:100%;padding:13px;background:#285d49;border:1px solid #1c4636;box-shadow:0 3px #153d2d;border-radius:10px;color:#fff4d4;font-size:13px;font-weight:700;margin-top:13px}.modal button.secondary{background:transparent;border:1px solid #b39b7140;border-radius:9px;padding:10px;width:100%;font-size:11px;color:#806440;margin-top:11px}.modal table{border-collapse:collapse;width:100%;font-size:10px;color:#80633f;margin:15px 0}.modal th{text-align:left;color:#533e27;font-weight:700}.modal td,.modal th{padding:8px 5px;border-bottom:1px solid #a8803222}.modal-icon{display:grid;place-items:center;font-size:44px;color:#a97b35;background:#e7c77840;border:1px solid #d5b57866;width:87px;height:92px;border-radius:22px;margin:12px auto 20px}.buff-modal{text-align:center}.buff-modal h3{margin-bottom:8px}.buff-modal p{min-height:44px}.result-stat{padding:16px;border-radius:10px;background:#e7c67d33;font-size:12px;display:flex;justify-content:space-between}.result-stat b{color:#3e7957}.debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.debug-grid label{font-size:10px;color:#866746}.debug-grid input,.debug-grid select{display:block;width:100%;font:inherit;font-size:12px;color:#533f29;background:#fff6;border:1px solid #a7814540;border-radius:6px;margin-top:5px;padding:8px;min-width:0}.debug-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.debug-buttons button{background:#d7be8738;border:1px solid #b99b6644;color:#735635;border-radius:6px;font-size:10px;padding:10px}.debug-summary{font-family:monospace;font-size:10px;padding:10px;background:#6956360c;border-radius:6px;line-height:1.9;color:#947c58}.mobile-debug{display:none}.boot-error{position:fixed;z-index:100;inset:30% 15%;padding:40px;background:#fff1d0;color:#462a23;border-radius:15px;text-align:center}.drag-ghost{position:fixed;z-index:100;pointer-events:none;width:60px;height:60px;filter:drop-shadow(0 7px 5px #0005)}.drag-ghost svg{width:100%;height:100%}
@media(min-width:1450px){.layout{gap:70px;margin-top:44px}.game-shell{width:430px}}
@media(max-width:1150px){.layout{gap:27px;grid-template-columns:minmax(170px,1fr) 410px minmax(170px,1fr);padding:0 24px}.left-rail h1{font-size:31px}.rail-card{padding:17px}.brand small{display:none}.game{padding-left:19px;padding-right:19px}.guide li{padding-left:25px}.section-kicker{font-size:11px}.right-rail .plain-btn{font-size:9px}}
@media(max-width:930px){.layout{grid-template-columns:410px 245px;max-width:740px;gap:32px}.left-rail{display:none}.right-rail{padding-top:25px}}
@media(max-width:700px){body{background:#f3ca57}.desktop-top,.desktop-footer,.left-rail,.right-rail{display:none}.layout{display:block;margin:0;padding:0;max-width:460px}.game-shell{border-radius:0;padding:0;background:none;box-shadow:none}.game{border-radius:0;min-height:100dvh;padding:calc(17px + env(safe-area-inset-top)) 20px calc(15px + env(safe-area-inset-bottom))}.game h2{font-size:25px}.game-header{padding:0 2px}.mobile-debug{display:block;position:fixed;right:7px;bottom:6px;font-size:9px;color:#79603a;background:#f6e3b8d9;border:1px solid #a588543b;padding:5px 8px;border-radius:6px;z-index:5}.modal-backdrop{position:fixed;padding:22px;max-width:460px;margin:auto}.modal{max-height:85dvh}.game-footer{padding-right:28px}.mine-scene{margin-top:0}.level-track{margin:15px 0 12px}.workshop-title{margin-top:14px}.game-eyebrow{font-size:8px}}
/* Keep the full preparation / mining / purchase loop close together. */
.game{padding-top:17px;padding-bottom:11px}.game-header{height:44px}.game h2{line-height:1.2}.wallet-row{margin-top:12px}.level-track{margin:12px 0 10px}.level-badge{width:35px;height:39px;font-size:18px}.level-badge.active{width:41px;height:46px;font-size:24px}.objective{padding:9px 12px;line-height:1.3}.objective small{display:block;line-height:12px}.objective>div:first-child{min-height:14px}.progress-track{margin:7px 0 5px}.workshop-title{margin:13px 0 7px;line-height:1.3}.slot{height:62px;aspect-ratio:auto}.selection-hint{height:21px;padding-top:5px;line-height:12px}.shop{padding-top:10px}.shop-heading{line-height:14px}.shop-tools{margin-top:8px}.shop-tool{padding:5px 2px;line-height:1.35}.shop-tool svg{height:29px}.launch-row{margin-top:10px}.game-footer{margin-top:11px;line-height:12px}.wallet strong{white-space:nowrap}.stat-pair b{font-variant-numeric:tabular-nums;font-size:19px}
@media(max-width:700px){.game{padding-top:calc(13px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.level-track{margin:8px 0}.level-badge.active{width:37px;height:41px}.level-badge{height:34px;width:30px}.wallet-row{margin-top:8px}.objective{padding:8px 11px}.workshop-title{margin-top:11px}.game-header{height:42px}.game h2{font-size:24px}.game h2 span{font-size:29px}.launch-btn{height:45px}.slot{height:59px}.game-footer{margin-top:10px}.scene-caption{padding-top:5px}}
.codex-tabs{display:flex;gap:5px;margin:12px 0 16px;position:sticky;top:0;background:#f8e8c5;padding:6px 0;z-index:1}.codex-tabs button{flex:1;font-size:10px;padding:9px 3px;background:#dbc38e44;color:#775c36;border:1px solid #a5894933;border-radius:7px;white-space:nowrap}.codex-tabs button[aria-pressed=true]{background:#2d6251;color:#fff4d3}.codex-list{display:grid;gap:10px}.codex-card{display:grid;grid-template-columns:43px 1fr;gap:10px;padding:12px 10px;border:1px solid #ab894a30;border-radius:10px;background:#fffb}.codex-card img{width:43px;height:43px;image-rendering:pixelated;border-radius:5px;box-shadow:0 3px 0 #8b714733}.codex-card-title{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:space-between}.codex-card-title b{font-size:12px;color:#553d25}.codex-card-title small{font-size:8px;color:#988451}.codex-stats{font-size:9px;color:#4e7c69;margin-top:5px}.modal .codex-card p{font-size:10px;line-height:1.7;margin:5px 0 0}.modal:has(.codex-tabs){max-height:min(85dvh,850px)}.modal-backdrop:has(.codex-tabs),.modal-backdrop:has(#debug-scenario){position:fixed;max-width:430px;margin:auto}.modal:has(#debug-scenario){max-height:85dvh}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* The game is one 720 x 1280 virtual stage. Canvas and DOM share its transform. */
:root{--game-scale:.6}body{height:100dvh;overflow:hidden;background:#171f20}.desktop-top,.desktop-footer{display:none}.layout{height:100dvh;width:100%;max-width:none;display:flex;align-items:center;justify-content:center;gap:32px;margin:0;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.left-rail,.right-rail{width:230px;flex-shrink:0;max-height:90dvh;overflow:auto;padding:0;scrollbar-width:thin}.game-shell{position:relative;flex-shrink:0;width:calc(720px * var(--game-scale));height:calc(1280px * var(--game-scale));padding:0;border-radius:0;background:none;box-shadow:none;overflow:visible}.game{position:absolute;inset:0 auto auto 0;width:720px;height:1280px;min-height:0;padding:0;border-radius:22px;transform:scale(var(--game-scale));transform-origin:top left;overflow:hidden}.game-header{position:absolute;left:36px;right:36px;top:16px;height:58px;padding:0}.game h2{font-size:37px}.game h2 span{font-size:44px}.game-eyebrow{font-size:12px}.icon-btn{width:48px;height:48px;font-size:28px}.wallet-row{position:absolute;left:36px;right:36px;top:80px;margin:0;height:54px}.wallet{height:54px}.wallet strong{font-size:35px}.wallet>span:last-child{font-size:16px}.coin{width:47px;height:47px;font-size:26px}.top-actions{gap:14px}.level-track{position:absolute;top:150px;right:50px;margin:0;gap:8px;z-index:2}.level-badge{width:24px;height:30px;font-size:14px}.level-badge.active{width:32px;height:38px;font-size:22px}.track-dots{font-size:10px}.objective{position:absolute;top:145px;left:36px;right:36px;height:70px;padding:12px 18px}.objective b{font-size:18px}.objective span{font-size:14px;margin-right:150px}.objective small{font-size:13px;line-height:16px}.progress-track{margin:7px 0 3px;height:6px}.workshop-title{position:absolute;top:226px;left:36px;right:36px;margin:0;height:24px}.workshop-title b{font-size:18px}.workshop-title small{font-size:15px}.text-btn{font-size:16px;padding:6px}.inventory{position:absolute;top:260px;left:36px;right:36px;gap:9px}.slot{height:94px;border-radius:14px;border-width:2px}.slot svg{height:65px;width:60px}.slot-label{font-size:13px;bottom:4px}.tier-dot{font-size:12px}.slot.empty:after{font-size:36px}.selection-hint{position:absolute;top:362px;left:36px;right:36px;font-size:15px;height:28px;line-height:20px;padding:0}.delete-tool{position:absolute;top:357px;right:38px;background:#8d4237;color:#fff4d4;border-radius:6px;z-index:3}.selection-hint:has(+ *){pointer-events:none}.game:has(.delete-tool:not([hidden])) .selection-hint{right:230px;font-size:13px}.mine-scene{position:static;margin:0}#mine{position:absolute;inset:0;width:720px;height:1280px;touch-action:none;pointer-events:none}.scene-caption{position:absolute;left:42px;right:42px;top:394px;padding:0;font-size:14px}.scene-bottom{position:absolute;left:42px;right:42px;top:1046px;padding:0;margin:0;font-size:16px;height:28px}.shop{position:absolute;top:1082px;left:36px;right:36px;padding-top:8px}.shop-heading{font-size:17px;line-height:21px}.shop-heading>span{font-size:15px}.shop-tools{margin-top:8px;gap:10px}.shop-tool{height:82px;padding:5px}.shop-tool svg{width:39px;height:39px}.shop-tool>span{font-size:16px;line-height:18px}.shop-tool small{font-size:12px}.launch-row{position:absolute;left:36px;right:36px;top:1202px;margin:0;gap:14px}.launch-btn{height:56px;font-size:29px;border-radius:14px}.game-footer{position:absolute;left:36px;right:36px;top:1264px;margin:0;font-size:12px;line-height:14px;padding:0}.toast{position:absolute;bottom:214px;font-size:19px;padding:18px 25px}.modal-backdrop,.modal-backdrop:has(.codex-tabs),.modal-backdrop:has(#debug-scenario){position:absolute;inset:0;max-width:none;max-height:none;margin:0;padding:28px;z-index:40}.modal,.modal:has(.codex-tabs),.modal:has(#debug-scenario){max-height:94%;border-radius:25px;padding:28px}.modal h3{font-size:36px;margin:8px 0 20px}.modal p{font-size:19px;line-height:1.6}.modal-eyebrow{font-size:14px}.modal button.primary,.modal button.secondary{font-size:21px;padding:18px;min-height:66px}.modal table{font-size:18px}.modal td,.modal th{padding:12px}.result-stat{font-size:20px}.codex-card{grid-template-columns:64px 1fr;padding:16px;gap:16px}.codex-card img{width:64px;height:64px}.codex-card-title b{font-size:21px}.codex-card-title small{font-size:14px}.codex-stats{font-size:16px}.modal .codex-card p{font-size:17px}.codex-tabs button{font-size:18px;padding:14px 4px}.debug-grid label{font-size:18px}.debug-grid input,.debug-grid select{font-size:19px;padding:14px}.debug-buttons button{font-size:18px;padding:16px}.debug-summary{font-size:16px}.buff-choices{display:grid;gap:16px}.buff-choice{display:grid;grid-template-columns:58px 1fr;text-align:left;gap:6px 16px;border:2px solid #ad99594d;border-radius:16px;background:#fff8;padding:20px;color:#523c27}.buff-choice>span{grid-row:span 3;font-size:42px;color:#aa7836}.buff-choice>b{font-size:25px}.buff-choice>small{font-size:16px;color:#557b65}.buff-choice p{margin:0;font-size:19px}.buff-choice em{grid-column:2;font-style:normal;color:#28614c;font-size:17px;font-weight:bold}.buff-choice:hover{border-color:#28614c;background:#fff}.task-card{border:1px solid #bda87570;border-radius:14px;padding:18px;margin:14px 0;background:#fff5}.task-card h4{font-size:23px;margin:0}.task-card small{font-size:17px;color:#56816e}.rank-row{display:grid;grid-template-columns:50px 1fr auto;gap:10px;padding:18px 0;border-bottom:1px solid #bca66f55;font-size:21px}.rank-row span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boot-error{font-size:18px}.mobile-debug{display:block;position:fixed;bottom:calc(6px + env(safe-area-inset-bottom));right:calc(8px + env(safe-area-inset-right));z-index:60;font-size:11px;padding:7px 10px}
@media(max-width:1100px){.left-rail,.right-rail{display:none}.layout{max-width:none;margin:0}.game-shell{width:calc(720px * var(--game-scale));height:calc(1280px * var(--game-scale))}}
.mine-hit-area{position:absolute;top:414px;left:54px;width:612px;height:620px;touch-action:none;z-index:2}
.level-track{display:none}.objective span{margin-right:0}.shop-tools{margin-top:5px}.shop-tool{height:78px}

/* Campaign layouts retain a five-row viewport as the underground world grows. */
.inventory{gap:9px}.slot{height:var(--slot-height,94px)}
.game[data-tool-rows="3"] .slot svg{height:45px;width:43px}.game[data-tool-rows="3"] .slot-label{font-size:12px}
.selection-hint{top:var(--hint-top,362px)}.delete-tool{top:calc(var(--hint-top,362px) - 5px)}
.scene-caption{top:calc(var(--mine-top,426px) - 32px)}
.mine-hit-area{top:var(--mine-top,426px);left:var(--mine-left,60px);width:var(--mine-width,600px);height:var(--mine-width,600px)}

.scene-bottom{top:1056px;height:24px}

/* Bigger purchase cards and launch controls, with a separate menu and reward overlay. */
.header-buttons{display:flex;gap:12px}.menu-btn{font-size:25px}
.scene-bottom{top:954px}.shop{top:986px;padding-top:10px}.shop-heading{font-size:21px;line-height:26px}.shop-heading>span{font-size:19px}
.shop-tools{margin-top:10px;gap:12px}.shop-tool{height:128px;border-radius:18px;border-width:2px;padding:8px 4px}.shop-tool svg{width:58px;height:59px}.shop-tool>span{font-size:23px;line-height:26px;margin-top:5px}.shop-tool small{font-size:16px}
.launch-row{top:1168px;gap:16px}.launch-btn{height:84px;font-size:36px;border-radius:18px}.launch-btn span{font-size:38px}
#coin-fx{position:absolute;inset:0;width:720px;height:1280px;pointer-events:none;z-index:20}
.progress-track{height:9px;overflow:visible;box-shadow:0 0 calc(var(--charge,0) * 24px) calc(var(--charge,0) * 5px) #ffd34e}.progress-track i{box-shadow:0 0 calc(var(--charge,0) * 15px) #fff7b0}
.scene-caption{align-items:center;font-size:14px}.scene-caption .text-btn{padding:0 8px;font-size:14px;border-radius:6px;background:#fff5;color:#285c4b}.mine-hit-area{cursor:grab}.mine-hit-area:active{cursor:grabbing}
.main-menu{position:absolute;inset:0;z-index:30;padding:94px 54px 42px;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(ellipse at 20% 18%,#fff2ad99,transparent 50%),linear-gradient(160deg,#ffe883,#f3bb52 65%,#dc9a45);text-align:center;color:#523c25}
.main-menu .menu-kicker{font-size:19px;letter-spacing:3px;color:#8b632c;font-weight:800}.main-menu h2{font-size:51px;line-height:1.2;margin:34px 0 10px;letter-spacing:-2px;white-space:normal}.main-menu h2 strong{font-size:136px;letter-spacing:-8px;line-height:1.1;color:#275c4c;text-shadow:0 5px #fff4}.main-menu p{font-size:23px;line-height:1.7;margin:10px 0;color:#886037}
.menu-art{position:relative;display:flex;gap:5px;align-items:center;justify-content:center;height:232px;margin:10px 0}.menu-art>img{width:97px;height:97px;image-rendering:pixelated;border-radius:7px;box-shadow:0 10px 0 #8f66254d;transform:rotate(-5deg)}.menu-art>img:nth-child(even){transform:translateY(22px) rotate(5deg)}.menu-art>div{position:absolute;top:2px;left:260px;transform:rotate(28deg);filter:drop-shadow(0 10px 4px #5d482555)}.menu-art svg{width:132px;height:150px}
.main-menu .menu-progress{font-size:19px;margin:0 0 22px;min-height:33px}.menu-primary{display:flex;align-items:center;justify-content:center;gap:65px;min-height:116px;border-radius:21px;background:linear-gradient(#346f56,#204d3d);color:#fff5d4;font-size:37px;font-weight:900;border:2px solid #184937;box-shadow:0 7px #174131,inset 0 2px #9bc09a;flex-shrink:0}.menu-primary span{font-size:42px}.menu-secondary-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}.menu-secondary-row button{height:104px;border:2px solid #fff7;border-radius:18px;background:#fff4;color:#6c4d29;font-size:35px;display:flex;align-items:center;justify-content:center;gap:16px}.menu-secondary-row span{font-size:26px;font-weight:700}.menu-exit{margin:32px auto 0;min-height:68px;width:210px;background:none;border:1px solid #9c713a66;border-radius:13px;font-size:24px;color:#7d5934}
.menu-emblem{font-size:140px;color:#356752;margin-top:150px}.game[data-screen="exit"] .menu-primary{margin-top:60px}.main-menu button:hover{filter:brightness(1.06)}

.tutorial-card{position:absolute;left:50%;transform:translateX(-50%);z-index:23;padding:20px 24px;background:#fff4d9f5;border:2px solid #d4a754;border-radius:18px;box-shadow:0 12px 32px #4933153b;color:#593f25;pointer-events:auto}
.tutorial-card small{color:#967035;font-size:14px;font-weight:800;letter-spacing:2px}.tutorial-card h3{font-size:25px;line-height:1.3;margin:6px 0 8px}.tutorial-card p{font-size:19px;line-height:1.6;margin:0 0 10px}.tutorial-card button{float:right;background:#285d49;color:#fff4d8;padding:10px 18px;border-radius:9px;font-size:17px;min-height:40px}.tutorial-card:after{content:'';display:block;clear:both}
.tutorial-focus{outline:4px solid #eaa62c!important;box-shadow:0 0 0 8px #fff3b0b3,0 0 24px #fbbb3c!important}.slot.tutorial-focus{background:#fff4be88}
:root .top-actions{gap:8px}
:root .top-actions .text-action{width:auto;padding:0 14px;font-size:20px;white-space:nowrap}
.task-card .task-status{display:block;color:#3f7854;line-height:1.6;font-size:16px;margin:8px 0}
#clear-celebration{position:absolute;left:5%;width:90%;z-index:110;pointer-events:none;text-align:center;transform:translateY(-50%);color:#ffe16a;filter:drop-shadow(0 6px 0 #614120) drop-shadow(0 0 20px #fff2a780)}
#clear-celebration[hidden]{display:none}
#clear-celebration:not([hidden]){animation:great-pop var(--great-duration) ease-out both}
#clear-celebration b{display:block;font-size:var(--great-size);line-height:1.15;font-style:italic;font-weight:1000;-webkit-text-stroke:3px #754721;paint-order:stroke fill}
#clear-celebration small{display:inline-block;margin-top:10px;padding:8px 22px;border-radius:24px;background:#285d49;color:#fff6d8;font-size:var(--great-subtitle);font-weight:800}
@keyframes great-pop{0%{opacity:0;transform:translateY(-50%) scale(.6) rotate(-8deg)}15%,75%{opacity:1;transform:translateY(-50%) scale(1) rotate(-5deg)}100%{opacity:0;transform:translateY(-60%) scale(1.04) rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){#clear-celebration:not([hidden]){animation:none}}
