@font-face{font-family:Garden;src:url(../assets/fonts/NotoSansKR-Medium.ttf)format("truetype");font-display:swap;font-weight:100 900}:root{color:#f6eac5;font-synthesis:none;--gold:#e8c77f;background:#102820;font-family:Garden,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{overscroll-behavior:none;touch-action:none;width:100%;height:100%;margin:0;overflow:hidden}body{padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));background:radial-gradient(at 50% 15%,#305240,#102820 75%);justify-content:center;align-items:center;display:flex}button,input,select{font:inherit;touch-action:manipulation}button,.file-button{cursor:pointer;color:#f5e7bf;background:linear-gradient(#3c5b40,#243c30);border:1px solid #7f8760;border-radius:9px;min-height:44px;padding:8px 14px;font-size:13px;font-weight:600;box-shadow:inset 0 1px #c5dab322,0 2px #0e251d}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #fff0ac}button.primary,.file-button:hover{color:#203c2b;background:linear-gradient(#e2c583,#b99453);border-color:#f8dda0}button:disabled{opacity:.4;cursor:default}button.active,button.selected{background:#607348;border-color:#ffe69e;box-shadow:inset 0 0 0 2px #ffe69e55}select{color:#fff0c2;background:#294334;border:1px solid #88956a;border-radius:8px;max-width:100%;min-height:44px;padding:8px}#game-frame{aspect-ratio:1360/780;isolation:isolate;background:#18382a;border-radius:16px;width:min(100%,174.359dvh - 13.9487px);max-height:100%;position:relative;overflow:hidden;box-shadow:0 18px 80px #0009}#canvas-root{position:absolute;inset:0}canvas{touch-action:none;display:block}.hud{pointer-events:none;align-items:center;gap:14px;height:11.5%;display:flex;position:absolute;top:1.7%;left:2%;right:2%}.wallet{background:#18382de8;border:1px solid #d6bc724c;border-radius:12px;grid-template-rows:28px 20px;grid-template-columns:50px auto;min-width:150px;padding:8px 12px 8px 5px;display:grid;box-shadow:0 4px 18px #0003}.sun-art{background:url(../assets/environment/hud_sun.png) 50%/contain no-repeat;grid-row:span 2;width:48px;height:48px}.wallet strong{color:#ffe09a;font-size:25px;line-height:30px}.wallet span{color:#bdcda7;white-space:nowrap;font-size:10px}.stage-status{text-shadow:0 2px #142b22;flex:1;min-width:0;max-width:450px}.eyebrow{letter-spacing:2px;color:#cbce9f;font-size:10px;font-weight:500}.eyebrow span+span{letter-spacing:0;color:#93bdb2;margin-left:9px;font-size:9px}.stage-status>strong{margin:1px 0 3px;font-size:19px;display:block}.wave-line{color:#d3d8b6;justify-content:space-between;gap:8px;font-size:11px;display:flex}.progress-track{background:#081b1bcc;border-radius:6px;height:4px;margin-top:5px;overflow:hidden}.progress-track>div{background:#d8c175;width:0;height:100%}#progress{transition:width .2s linear}.controls{pointer-events:auto;gap:6px;margin-left:auto;display:flex}.controls button{min-width:44px;padding:5px 9px}#pause,#fullscreen{font-size:20px}.stage-status.has-notice #wave,.stage-status:not(.has-notice) #notice{display:none}#notice{color:#ffe4a0;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;flex:1;min-width:0;overflow:hidden}#elapsed{flex-shrink:0}#perf{color:#eaffd6;z-index:6;pointer-events:none;white-space:nowrap;background:#132c24ee;border-radius:4px;padding:3px 7px;font:11px monospace;position:absolute;top:13.4%;left:5.6%;right:5.6%}.seed-tray{pointer-events:none;align-items:center;gap:10px;height:14.4%;display:flex;position:absolute;top:83.3%;left:5.6%;right:5.6%}#cards{scrollbar-width:thin;scrollbar-color:#adbb76 #183c2b;pointer-events:auto;touch-action:pan-x;overscroll-behavior:contain;flex:1;gap:5px;min-width:0;height:100%;padding:3px;display:flex;overflow:auto hidden}.seed-card{height:100%;box-shadow:none;isolation:isolate;background:#c7bd821c;border:1px solid #718053;border-radius:9px;flex:0 0 clamp(46px,6.6vw,90px);padding:0;position:relative;overflow:hidden}.seed-card:before{content:"";z-index:-1;background:url(../assets/environment/seed_packet.png) 50%/100% 100% no-repeat;position:absolute;inset:0}.card-art{object-fit:contain;filter:drop-shadow(0 3px 3px #0c291848);pointer-events:none;width:86%;height:86%;position:absolute;top:0;left:7%}.mirrored{transform:scaleX(-1)}.cost{color:#263a24;background:#f3da94e6;border-radius:4px;min-width:24px;padding:2px 4px;font-size:18px;line-height:1.1;position:absolute;bottom:6%;right:5%}.card-level{color:#203425;background:#f1dca7dd;border-radius:3px;padding:1px 3px;font-size:10px;position:absolute;top:5%;left:5%}.seed-card.selected{outline-offset:-2px;outline:2px solid #ffe69e}.seed-card.unavailable .card-art{filter:grayscale(.65)brightness(.68)}.seed-card.unavailable .cost{color:#836949}.cooldown-shade{transform-origin:bottom;pointer-events:none;z-index:2;background:#14352cc0;position:absolute;inset:0}.cooldown-label{color:#fff0c2;text-shadow:0 2px #203625;z-index:3;pointer-events:none;place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.tools{pointer-events:auto;flex-shrink:0;align-items:center;gap:5px;display:flex}.tools button{min-width:44px;padding:5px 8px}.tools .selected{color:#203829;background:#d9bd77;border-color:#fff1b6}.tray-note{text-shadow:0 2px #142b22;flex-direction:column;gap:4px;max-width:160px;display:flex}.tray-note strong{color:#f0dc9f;font-size:12px}.tray-note span{color:#b5c8ab;font-size:10px}.tray-note small{color:#8ea98f;font-size:8px}.overlay{z-index:12;pointer-events:auto;background:#081f1be5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dialog{overscroll-behavior:contain;text-align:center;touch-action:pan-y;background:linear-gradient(145deg,#36513b,#162f28);border:1px solid #c8b47b88;border-radius:20px;width:min(600px,90%);max-height:96%;padding:24px 30px 16px;overflow:auto;box-shadow:0 14px 50px #0006}.dialog h1{color:#f8e4ad;margin:10px 0 8px;font-family:Garden,sans-serif;font-size:34px;line-height:1.2}.dialog p{color:#d0d8bb;margin:8px 0 16px;font-size:13px;line-height:1.8}.dialog-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 10px;display:flex}.build-label{color:#90ad92;font-size:9px}.slider-label{text-align:left;grid-template-columns:1fr auto;align-items:center;margin:10px 0;font-size:13px;display:grid}.slider-label input{accent-color:#ddc78c;grid-column:span 2;width:100%;height:32px}.setting-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:10px 0;font-size:12px;display:flex}.setting-row label{align-items:center;gap:6px;min-height:44px;display:flex}.setting-row input{accent-color:#ddc78c;width:19px;height:19px}.save-help,#storage-status{color:#b4c4a9;font-size:10px;line-height:1.6;display:block}.hub{z-index:8;background:linear-gradient(110deg,#142f28f8,#254532ed);flex-direction:column;padding:2% 3%;display:flex;position:absolute;inset:0;overflow:hidden}.hub-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.hub-heading h1{color:#ffe7b0;margin:0;font:42px/1 Georgia,serif}.hub-heading small{color:#9caf92;font-size:10px}.hub-header-actions{justify-content:flex-end;align-items:center;gap:14px;min-width:0;display:flex}.hub-header-actions .fullscreen-toggle{flex:none;min-width:92px}.hub-wallet{color:#b7cda4;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px;font-size:13px;display:flex}.hub-wallet b{color:#f6d794;margin-left:4px;font-size:17px}#hub-nav{touch-action:pan-x;scrollbar-width:thin;scrollbar-color:#839c6d #244535;flex-shrink:0;gap:6px;padding:3px 2px 8px;display:flex;overflow:auto hidden}#hub-nav button{flex:none}#hub-body{touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#839c6d #244535;flex:1;min-height:0;padding:8px 3px 22px;overflow:auto}#hub-notice{color:#ffe5a3;text-align:center;z-index:4;pointer-events:none;background:#102b27f7;border:1px solid #d5c385;border-radius:8px;padding:10px 16px;font-size:13px;position:absolute;bottom:12px;left:6%;right:6%}#loading{z-index:5;pointer-events:none;background:#19392bee;place-items:center;margin:0;font-size:18px;display:grid;position:absolute;inset:0}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;display:flex}.section-heading h2{color:#efdfaa;margin:0;font-size:24px}.section-heading p{color:#b5c6a5;margin:4px 0;font-size:12px;line-height:1.7}.section-heading>div:first-child{flex:1;min-width:0}.section-heading button{flex-shrink:0}.segmented,.chapter-tabs{gap:6px;display:flex}.chapter-tabs{flex-wrap:wrap;margin:5px 0 15px}.chapter-tabs button{flex:1}.stage-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.stage-tile{text-align:left;background:linear-gradient(#36573b,#233f30);min-height:142px;padding:12px 14px}.stage-tile>strong{color:#f5dc9e;font:25px Georgia,serif;display:block}.stage-tile>span{color:#b7cbb1;font-size:11px}.stage-tile small{color:#b1c19c;font-size:10px}.stage-tile.locked{opacity:.48;filter:saturate(.4)}.stage-tile.cleared{border-color:#b9c184}.enemy-strip{flex-wrap:wrap;align-items:center;gap:5px;margin:6px 0;display:flex}.enemy-strip img{object-fit:contain;width:48px;height:48px}.enemy-strip>span{flex-direction:column;align-items:center;display:flex}.enemy-strip small{text-align:center;max-width:75px;font-size:9px}.footnote,.selection-help{color:#b5c7a6;font-size:12px;line-height:1.8}.prep-summary{background:#12302999;border:1px solid #8f9f6855;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:12px;display:flex}.prep-summary p{color:#b0c4a6;margin:5px 0;font-size:11px}.plant-grid{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:9px;display:grid}.plant-card{background:#244b3480;border-color:#6e8557;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;padding:7px 5px;display:flex}.plant-card img,.plant-portrait{object-fit:contain;flex-shrink:0;width:90px;height:90px;display:block}.plant-portrait img{object-fit:contain;width:100%;height:100%}.plant-card strong{overflow-wrap:anywhere;max-width:100%;font-size:12px}.plant-card small{color:#b9caab;font-size:10px}.plant-card.selected{background:#6a754440;border-color:#ffe9a3}.farm-grid,.shop-grid,.challenge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.plot,.shop-panel,.offer{text-align:center;background:#1b3a2cbb;border:1px solid #93a17066;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:18px;display:flex}.plot .plant-portrait,.plot>img,.shop-panel>.plant-portrait,.shop-panel>img{object-fit:contain;width:110px;height:110px}.plot span,.plot time{color:#b8c8a8;font-size:12px}.plot button{width:100%}.shop-panel h3{margin:4px 0;font-size:18px}.shop-panel p{color:#b6c6a7;margin:4px 0;font-size:12px;line-height:1.7}.shop-panel select{width:100%}.action-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.action-row button{font-size:12px}.shop-panel time{color:#e9d79c;font-size:12px}.catalog-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px;display:grid}.catalog-detail{text-align:center;background:#1c392f;border:1px solid #b8b57566;border-radius:14px;padding:18px;position:sticky;top:0}.catalog-detail>.plant-portrait,.catalog-detail>img{object-fit:contain;width:150px;height:150px;margin:auto}.catalog-detail h3{margin:8px 0;font-size:21px}.catalog-detail p{color:#c4d0b2;font-size:12px;line-height:1.8}.catalog-detail dl{text-align:left;grid-template-columns:1fr auto;gap:6px;font-size:12px;display:grid}.catalog-detail dt{color:#a8bd9e}.catalog-detail dd{color:#f4dda2;margin:0}.catalog-detail button{width:100%}.compact{grid-template-columns:repeat(auto-fill,minmax(95px,1fr))}.compact .plant-card img,.compact .plant-portrait{width:75px;height:75px}.trophy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.trophy{background:#1e392e99;border:1px solid #70825b;border-radius:12px;flex-direction:column;gap:6px;padding:15px;display:flex}.trophy.earned{border-color:#e0c87c}.trophy strong{color:#e8d9a5;font-size:16px}.trophy p{color:#b0c4a4;margin:0;font-size:12px;line-height:1.7}.trophy span{color:#d9dfbd;font-size:12px;line-height:1.7}.trophy small{color:#91ad93;font-size:10px}.draft-deck{background:#17332988;border-radius:12px;flex-wrap:wrap;gap:8px;padding:8px;display:flex}.draft-unit{flex-direction:column;align-items:center;display:flex}.draft-unit .plant-portrait{width:72px;height:72px}.draft-unit small{text-align:center;max-width:100px;font-size:10px}.offer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.offer>.plant-portrait,.offer>img{object-fit:contain;width:110px;height:110px}.offer h3{margin:0;font-size:17px}.offer p{color:#c1cba8;min-height:36px;margin:4px;font-size:12px;line-height:1.7}.offer button{width:100%}.chest-results{background:#65764a44;border:1px solid #d8c991;border-radius:12px;margin-bottom:14px;padding:12px}.chest-results h3{margin:0 0 8px;font-size:16px}.reward-grid{flex-wrap:wrap;gap:10px;display:flex}.reward-grid>span{flex-direction:column;align-items:center;display:flex}.reward-grid .plant-portrait{width:70px;height:70px}.reward-grid strong{font-size:11px}.rotation{z-index:20;text-align:center;background:#183a2cf7;flex-direction:column;justify-content:center;align-items:center;padding:22px;font-size:20px;display:flex;position:absolute;inset:0}.rotation p{color:#bdd2a8;max-width:270px;font-size:12px;line-height:1.8}#fatal{z-index:30;white-space:pre-wrap;text-align:center;background:#24372b;place-items:center;padding:30px;display:grid;position:absolute;inset:0}@media (height<=550px){body{padding:0 max(0px,env(safe-area-inset-right)) 0 max(0px,env(safe-area-inset-left))}#game-frame{border-radius:0;width:min(100%,174.359dvh)}.hud{gap:7px;height:13.5%;top:1.3%}.wallet{border-radius:8px;grid-template-rows:22px 12px;grid-template-columns:30px auto;min-width:85px;padding:5px 6px 5px 2px}.sun-art{width:30px;height:30px}.wallet strong{font-size:20px;line-height:22px}.wallet span{font-size:8px}.eyebrow{display:none}.stage-status>strong{margin:0;font-size:12px}.wave-line{font-size:9px}.progress-track{height:3px;margin-top:3px}.controls{gap:3px}.controls button{min-width:44px;min-height:44px;padding:4px;font-size:11px}#pause,#fullscreen{font-size:18px}#perf{padding:1px 4px;font-size:9px;top:15.4%}.seed-tray{gap:4px}.seed-card{flex-basis:clamp(46px,6.6vw,65px)}#cards{gap:3px;padding:2px}.cost{min-width:19px;padding:2px 3px;font-size:12px}.cooldown-label{font-size:15px}.card-level{font-size:8px}.tools{gap:3px}.tools button{height:44px;padding:3px 5px;font-size:10px}.tray-note{display:none}.dialog{border-radius:14px;max-height:96%;padding:12px 22px 10px}.dialog h1{margin:5px;font-size:25px}.dialog p{margin:4px 0 9px;font-size:12px}.dialog-actions{margin:8px 0}.slider-label{margin:4px 0;font-size:12px}.slider-label input{height:26px}.setting-row{margin:5px 0}.save-help,#storage-status{font-size:9px}.hub{padding:9px 14px}.hub-heading{margin-bottom:3px}.hub-heading h1{font-size:27px}.hub-heading small{font-size:8px}.hub-header-actions{gap:8px}.hub-header-actions .fullscreen-toggle{min-width:80px;padding:5px 8px;font-size:11px}.hub-wallet{gap:4px 10px;font-size:10px}.hub-wallet b{margin-left:2px;font-size:13px}#hub-nav{gap:4px;padding-bottom:5px}#hub-nav button{padding:4px 10px;font-size:11px}#hub-body{padding-top:6px}.section-heading{gap:6px;margin-bottom:8px}.section-heading h2{font-size:17px}.section-heading p{margin:2px 0;font-size:10px}.section-heading button{padding:4px 8px;font-size:11px}.chapter-tabs{gap:4px;margin-bottom:8px}.chapter-tabs button{padding:4px;font-size:10px}.stage-grid{gap:6px}.stage-tile{min-height:107px;padding:7px}.stage-tile>strong{font-size:21px}.stage-tile>span{font-size:9px}.stage-tile small{font-size:8px}.enemy-strip{gap:2px;margin:3px 0}.enemy-strip img{width:32px;height:32px}.enemy-strip small{max-width:50px;font-size:8px}.footnote,.selection-help{font-size:10px}.prep-summary{padding:8px;font-size:10px}.prep-summary p{font-size:9px}.plant-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}.plant-card img,.plant-portrait{width:62px;height:62px}.plant-card strong{font-size:10px}.plant-card small{font-size:9px}.farm-grid,.shop-grid,.challenge-grid{gap:8px}.plot,.shop-panel,.offer{border-radius:10px;gap:5px;padding:10px}.plot .plant-portrait,.plot>img,.shop-panel>.plant-portrait,.shop-panel>img{width:72px;height:72px}.plot span,.plot time{font-size:10px}.shop-panel h3{font-size:14px}.shop-panel p{font-size:10px}.shop-panel button{padding:5px 8px;font-size:11px}.catalog-layout{grid-template-columns:minmax(0,1fr) 205px;gap:10px}.catalog-detail{padding:10px}.catalog-detail>.plant-portrait,.catalog-detail>img{width:85px;height:85px}.catalog-detail h3{font-size:16px}.catalog-detail p,.catalog-detail dl{font-size:10px}.catalog-detail button{padding:4px;font-size:11px}.compact{grid-template-columns:repeat(auto-fill,minmax(75px,1fr))}.compact .plant-card img,.compact .plant-portrait{width:53px;height:53px}.trophy-grid{gap:7px}.trophy{gap:4px;padding:10px}.trophy strong{font-size:13px}.trophy p,.trophy span{font-size:10px}.trophy small{font-size:9px}.offer-grid{gap:8px}.offer>.plant-portrait,.offer>img{width:65px;height:65px}.offer h3{font-size:14px}.offer p{font-size:10px}.offer button{font-size:11px}.draft-unit .plant-portrait{width:45px;height:45px}.draft-unit small{font-size:9px}.draft-deck{gap:5px}.reward-grid .plant-portrait{width:48px;height:48px}#hub-notice{padding:8px;font-size:11px;bottom:6px}}@media (width<=650px) and (orientation:landscape){.hud{gap:4px}.wallet{min-width:78px}.controls{gap:2px}.controls button{min-width:44px}.stage-status{max-width:150px}.catalog-layout{grid-template-columns:minmax(0,1fr) 170px}.stage-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.stage-tile{padding:6px}.stage-tile .enemy-strip img{width:24px;height:24px}.shop-grid,.farm-grid,.challenge-grid,.trophy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{flex-wrap:wrap}.prep-summary{flex-direction:column;align-items:stretch}}@media (orientation:portrait){#game-frame{aspect-ratio:auto;border-radius:0;width:100%;height:100%}.rotation{display:flex}}html,body,#game-frame,.hub{overflow:clip}@media (height<=550px){.catalog-detail{touch-action:pan-y;overscroll-behavior:contain;max-height:calc(100dvh - 140px);overflow-y:auto}}html:fullscreen{background:#102820;width:100%;height:100%}html:fullscreen body{width:100%;height:100dvh}.rotation .fullscreen-toggle{min-width:104px;margin-top:8px}
