:root{--ink:#213e3a;--muted:#6b7768;--cream:#f5edda;--paper:#fcf6e9;--teal:#3a8f80;--gold:#efb64d;--line:#d9d3bb;--shadow:0 5px 0 #193b3520;font-family:ui-rounded,"Avenir Next",Avenir,"Trebuchet MS",sans-serif;color:var(--ink);background:#e4e3cf;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 80% 10%,#f4edda 0,transparent 65%),#e4e3cf}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--paper);font-weight:700;padding:13px 19px;transition:background .14s,transform .14s}button:hover:enabled{background:#e9e6cd}button:active:enabled{transform:translateY(2px)}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #c47b35;outline-offset:3px}[hidden]{display:none!important}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.045em}h1{font-size:clamp(48px,5vw,80px);line-height:1.04}h2{font-size:clamp(27px,3vw,42px)}h3{font-size:19px}p{line-height:1.7;color:var(--muted)}button.primary{background:var(--gold);border-color:#c99a42;box-shadow:var(--shadow);padding:17px 23px;display:flex;align-items:center;justify-content:space-between;gap:32px}button.primary:hover{background:#f3c46b}button.secondary{background:var(--ink);color:var(--cream);border-color:var(--ink);display:flex;justify-content:space-between}button.secondary:hover{background:#365b51}button.text-button{border:0;background:transparent;padding:10px 0;font-size:13px;text-decoration:underline}.eyebrow{display:block;color:#78816b;letter-spacing:.18em;font-size:10px;font-weight:800;line-height:1.5}#app{max-width:1440px;margin:auto;padding:env(safe-area-inset-top,0) max(24px,env(safe-area-inset-right)) env(safe-area-inset-bottom,0) max(24px,env(safe-area-inset-left));min-height:100svh}.brandbar{height:84px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #a9b59b6b}.brandbar a{display:flex;align-items:center;font-weight:900;letter-spacing:.08em;font-size:19px;gap:9px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--gold);border-radius:50%;height:32px;width:32px;font-size:25px}.edition{font-size:8px;letter-spacing:.15em;margin-left:15px;font-weight:600;color:#71816b}#connection{font-size:9px;letter-spacing:.14em;color:#647e67}#connection:before{content:"";display:inline-block;width:5px;height:5px;background:#699478;border-radius:50%;margin-right:7px}.screen{margin:auto;width:100%}.title-screen{display:grid;grid-template-columns:1fr 1.15fr;min-height:calc(100svh - 84px);align-content:center;gap:40px 30px;position:relative;padding:50px 20px 22px}.title-copy{padding:15px 0 35px 20px}.title-copy h1{margin:25px 0 24px}.title-copy h1 em{color:#3d806d;font-style:italic}.title-copy p{font-size:15px}.title-actions{display:flex;gap:20px;align-items:center;margin-top:29px}.small-actions{display:flex;align-items:center;gap:15px;margin-top:20px;font-size:12px;color:#6f7d6c}.small-actions button{border:0;background:none;padding:3px 0;font-size:12px;font-weight:500}.title-art{align-self:center;position:relative;overflow:hidden;border:1px solid #b5bda1;border-radius:46% 46% 12px 12px;background:#e3dfc5;padding-top:42px;box-shadow:0 14px 40px #3c61451a}.title-art canvas{display:block;width:100%;height:auto}.sun-label{position:absolute;top:33px;text-align:center;width:100%;font-size:8px;letter-spacing:.22em;color:#6d7b60}.art-caption{display:flex;justify-content:space-between;padding:14px 20px;font-size:8px;letter-spacing:.12em;border-top:1px solid #a1aa8966;background:#e7dfc3}.title-footer{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #b1b99d66;padding-top:18px;font-size:9px;letter-spacing:.15em;color:#7c846f}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}.section-heading h2{margin-top:8px}.wallet{display:flex;gap:24px;align-items:center;font-size:13px;white-space:nowrap}.wallet b{color:#b07c30}.stage-screen,.upgrade-screen{padding:35px 22px 24px;max-width:1120px}.stage-content{display:grid;grid-template-columns:1.3fr 1fr;gap:45px;align-items:center}.stage-illustration{background:#e1dcc1;border:1px solid #bac1a5;overflow:hidden;border-radius:12px}.stage-illustration canvas{display:block;width:100%;height:auto}.stage-caption{border-top:1px solid #bec2a5;padding:18px 22px;display:flex;justify-content:space-between;letter-spacing:.2em;font-size:10px}.stage-panel{padding:10px 25px;text-align:center}.stage-panel>.primary,.stage-panel>.secondary{width:100%;margin-top:12px}.stage-number{display:flex;align-items:center;justify-content:center;gap:35px;margin:15px 0}.stage-number h1{font-size:94px}.stage-number button{border:0;background:none;padding:8px;font-size:28px;font-weight:400}.stage-panel p{font-size:13px}.difficulty-label{display:inline-block;margin:12px 0 8px;padding:6px 13px;border:1px solid #a9baa2;border-radius:30px;font-size:10px;color:#48745a;letter-spacing:.1em}.paired{display:flex;gap:10px;margin-top:12px}.paired>*{flex:1}.campaign-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:28px;padding-top:20px;font-size:11px;color:var(--muted)}.upgrade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.upgrade-card{min-height:102px;padding:10px;position:relative;display:grid;grid-template-columns:64px 1fr;align-items:center;text-align:left;border:1px solid #ccd0b6;background:#f7f0df}.upgrade-card.selected{border:2px solid #4f8b74;padding:9px;background:#e0e7ce;box-shadow:0 3px 0 #6e92782b}.upgrade-card canvas{width:62px;height:62px}.upgrade-card .upgrade-title{font-size:12px;display:block}.upgrade-card small{font-size:10px;color:#75806b;display:block;margin-top:5px}.upgrade-card .item-icon{font-family:Georgia,serif;font-size:31px;text-align:center;color:#517c6a}.upgrade-detail{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:9px;background:#f7f0df}.upgrade-detail p{font-size:12px;max-width:650px;margin:5px 0}.upgrade-detail strong{font-size:12px;color:#a17530}.upgrade-actions{display:flex;flex-direction:column;gap:8px;min-width:140px}.upgrade-actions button{padding:11px 17px}.battle-screen{max-width:1120px;padding-top:14px}.battle-hud{display:grid;grid-template-columns:1fr .7fr 1fr 52px 48px;gap:15px;align-items:center;background:var(--ink);color:var(--cream);border-radius:10px 10px 0 0;padding:12px 17px;min-height:65px}.hud-label{font-size:8px;letter-spacing:.16em;color:#b7c8b3;display:block;margin-bottom:3px}.battle-hud strong{font-size:16px;font-variant-numeric:tabular-nums}.mana-track{max-width:180px;height:3px;background:#577166;margin-top:5px;border-radius:4px;overflow:hidden}.mana-track i{background:#99c9b7;display:block;height:100%;width:0}.clock-box{text-align:center}.gold-box{text-align:right}.gold-box strong{color:#e8bc6a;font-size:13px}.gold-box span{display:block;font-size:10px;color:#d2a980;margin-top:3px}.battle-hud button{padding:10px 5px;background:#3a5c50;border:1px solid #67816b;color:var(--cream);border-radius:7px;font-size:14px}.battle-middle{display:flex;background:#d1d4b9;border:1px solid #afba9e;border-top:0;align-items:stretch}.angle-control{flex:0 0 51px;width:51px;background:#e8e5cc;border-right:1px solid #bdc4a8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;gap:12px}.angle-control>button{background:#f4efd9;width:41px;height:57px;padding:0;font-size:26px;border-color:#b9c2a1;touch-action:none}.angle-control>div{font-size:11px;display:flex;flex-direction:column;align-items:center;gap:8px}.aim-label{font-size:7px;letter-spacing:.2em;color:#7b876c}.angle-control i{width:10px;height:10px;background:#6ba995;transform:rotate(45deg)}.field-region{flex:1;min-width:0;display:flex;justify-content:center;align-items:center;overflow:hidden;background:#e2dfc5}.field-wrap{position:relative;width:min(100%,calc((100svh - 278px)*1.5));aspect-ratio:3/2;overflow:hidden}.field-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.booster{position:absolute;left:5.2%;top:52%;width:10%;height:28%;border:0;background:transparent;padding:0;display:flex;flex-direction:column;justify-content:flex-end;text-align:center;font-size:clamp(8px,1.1vw,11px);font-weight:700;white-space:nowrap;box-shadow:none;touch-action:manipulation}.booster:hover:enabled{background:#fff1b733;transform:none}.booster span,.booster small{background:#edf0d9d9;padding:2px;border-radius:2px;line-height:1.1}.booster small{font-size:.85em}.booster:disabled{opacity:.7}.battle-bottom{display:flex;gap:8px;background:#284c41;padding:9px;border-radius:0 0 9px 9px;align-items:stretch}.unit-cards{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;flex:1;min-width:0}.unit-card{position:relative;overflow:hidden;border:1px solid #7d9673;background:#c9d4ac;border-radius:5px;padding:2px 2px 15px;min-width:0;height:71px;touch-action:manipulation}.unit-card canvas{width:100%;height:48px;object-fit:contain;display:block}.unit-card .card-cost{position:absolute;bottom:3px;right:4px;font-size:10px;z-index:2}.unit-card .card-key{position:absolute;top:3px;left:4px;font-size:8px;opacity:.65;z-index:2}.unit-card:disabled{opacity:1;filter:saturate(.6)}.unit-card.locked{background:#526553;border-color:#6e8063}.unit-card.locked canvas{filter:brightness(.4);opacity:.65}.unit-card.locked .card-cost{color:#c4cab2}.unit-card.unaffordable:not(.locked){background:#929f81}.cooldown-fill{position:absolute;inset:auto 0 0;background:#162a26a6;pointer-events:none;z-index:1;height:0}.bow-button{width:78px;padding:4px;background:var(--gold);border-color:#c99a42;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;touch-action:manipulation}.bow-icon{font-size:32px;line-height:1.2}.bow-button[aria-pressed=true]{background:#c9de9c;border-color:#8db383}.battle-footnote{display:flex;justify-content:space-between;font-size:9px;color:#78836c;padding:12px 2px;letter-spacing:.02em}.result-screen{max-width:620px;text-align:center;padding:65px 25px}.result-screen h1{font-size:65px;margin:20px 0}.result-screen>p{font-size:15px}#result-emblem{width:90px;height:90px;display:flex;align-items:center;justify-content:center;margin:25px auto 0;background:#e6bb66;border:1px solid #c7a25b;border-radius:50%;font-size:38px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0;gap:12px}.result-stats>div{padding:18px 10px;border:1px solid #cbd1b4;border-radius:8px;background:#f1ebd6}.result-stats strong{display:block;font-size:24px;margin-bottom:7px}.result-stats span{font-size:10px;color:#6d7d67}.result-screen>.primary{margin:auto;min-width:260px}.modal{position:fixed;inset:0;background:#152e2c99;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(5px)}.modal-panel{position:relative;max-width:500px;width:100%;max-height:90svh;overflow:auto;border-radius:13px;border:1px solid #a5b798;background:var(--cream);padding:32px;box-shadow:0 20px 70px #0c282444}.modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;padding:0;border:0;background:none;font-size:25px}.modal-panel h2{margin:0 0 23px;font-size:33px}.modal-panel p{font-size:13px}.setting-row{padding:15px 0;border-top:1px solid #d3d5bc;display:flex;justify-content:space-between;gap:20px;font-size:13px;align-items:center}.setting-row small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.setting-row input{accent-color:var(--teal);width:22px;height:22px}.setting-row select{background:var(--paper);border:1px solid #b3bda1;border-radius:5px;padding:8px;font:inherit;color:var(--ink)}.modal-buttons{display:flex;flex-direction:column;gap:10px;margin-top:20px}.help-list{padding-left:20px;font-size:13px;color:#617561;line-height:1.7}.help-list li{margin:10px 0}#toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--cream);padding:12px 20px;border-radius:8px;z-index:40;font-size:12px;opacity:0;transition:.2s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:1500px){#app{max-width:1500px}.title-screen{gap:60px}.title-copy h1{font-size:89px}.battle-screen{max-width:1300px}}
@media(max-width:900px){#app{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.edition{display:none}.title-screen{padding:35px 0 20px;gap:30px 15px}.title-copy{padding-left:10px}.title-copy h1{font-size:55px}.title-copy p{font-size:12px}.title-copy .eyebrow{font-size:8px}.title-actions{gap:10px}.title-actions .primary{padding:15px;gap:15px;font-size:13px}.stage-screen,.upgrade-screen{padding:25px 0}.stage-content{gap:20px}.stage-panel{padding:0 10px}.upgrade-card{grid-template-columns:45px 1fr;min-height:88px}.upgrade-card canvas{width:43px;height:54px}.upgrade-card .upgrade-title{font-size:10px}.upgrade-card .item-icon{font-size:25px}.upgrade-card small{font-size:9px}}
@media(orientation:portrait){.title-screen{grid-template-columns:1fr;gap:24px;padding:32px 3px 20px;min-height:0}.title-copy{padding:0 8px}.title-copy h1{font-size:62px;margin:17px 0}.title-copy p{font-size:13px}.title-copy .eyebrow{font-size:8px}.title-art{max-width:520px;width:100%;justify-self:center;padding-top:22px}.sun-label{top:22px}.small-actions{margin-top:14px}.title-footer{font-size:7px;gap:18px;padding-top:16px}.stage-content{grid-template-columns:1fr;gap:20px}.stage-illustration{max-height:290px}.stage-illustration canvas{margin-top:-40px}.stage-caption{display:none}.stage-panel{max-width:460px;width:100%;margin:auto}.stage-number{margin:8px 0}.stage-number h1{font-size:78px}.section-heading{margin-bottom:20px}.wallet{gap:12px;font-size:11px}.section-heading h2{font-size:30px}.section-heading .eyebrow{font-size:8px}.stage-screen .section-heading{flex-wrap:wrap}.battle-screen{padding-top:22px}.battle-middle{min-height:calc(100svh - 330px)}.field-wrap{width:100%}.battle-hud{grid-template-columns:1fr .7fr 1fr 38px 35px;gap:6px;padding:12px 8px}.battle-hud strong{font-size:12px}.gold-box strong{font-size:10px}.gold-box span{font-size:9px}.battle-hud button{font-size:12px}.angle-control{flex-basis:40px;width:40px;padding:10px 2px}.angle-control>button{width:34px;height:64px}.battle-bottom{gap:4px;padding:7px 5px}.unit-cards{gap:3px}.unit-card{height:58px;padding-bottom:14px}.unit-card canvas{height:38px}.unit-card .card-cost{font-size:8px;right:2px}.unit-card .card-key{font-size:6px;left:2px}.bow-button{width:46px;font-size:7px}.bow-icon{font-size:27px}.battle-footnote{flex-direction:column;align-items:center;gap:8px;padding-top:15px;font-size:9px}.upgrade-grid{gap:6px}.upgrade-card{grid-template-columns:1fr;grid-template-rows:50px auto;text-align:center;min-height:100px;padding:6px 3px}.upgrade-card.selected{padding:5px 2px}.upgrade-card canvas{width:100%;height:50px;object-fit:contain}.upgrade-card .upgrade-title{font-size:9px}.upgrade-card small{font-size:8px;margin-top:3px}.upgrade-detail{padding:13px;gap:12px;align-items:stretch}.upgrade-detail h3{font-size:16px}.upgrade-detail p{font-size:10px;line-height:1.6}.upgrade-detail strong{font-size:10px}.upgrade-actions{min-width:90px}.upgrade-actions button{font-size:11px;padding:10px}.upgrade-screen .section-heading{gap:12px}.upgrade-screen .wallet{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.upgrade-screen .section-heading h2{font-size:25px}.booster{font-size:7px}.result-screen{padding-top:40px}.result-screen h1{font-size:53px}}
@media(orientation:landscape) and (max-height:600px){#app{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.brandbar{height:40px}.brandbar a{font-size:14px}.brand-mark{width:25px;height:25px;font-size:20px}#connection{font-size:8px}.title-screen{min-height:calc(100svh - 40px);padding:18px 20px 10px;gap:12px 35px;grid-template-columns:1fr 1fr}.title-copy{padding:0}.title-copy h1{font-size:43px;margin:10px 0}.title-copy p{font-size:11px;line-height:1.6}.title-copy .eyebrow{font-size:7px}.title-actions{margin-top:13px}.title-actions .primary{padding:11px 14px;font-size:12px}.small-actions{margin-top:12px}.title-art{max-width:370px;padding-top:15px;justify-self:end}.sun-label{top:18px;font-size:6px}.art-caption{padding:8px 12px;font-size:6px}.title-footer{padding-top:10px;font-size:7px}.battle-screen{padding-top:5px;max-width:100%}.battle-hud{min-height:44px;padding:5px 12px;border-radius:6px 6px 0 0;gap:8px;grid-template-columns:1fr .7fr 1fr 42px 38px}.battle-hud strong{font-size:12px}.hud-label{font-size:6px;margin-bottom:1px}.gold-box strong{font-size:11px}.gold-box span{font-size:8px;margin-top:1px}.battle-hud button{padding:6px 2px;font-size:12px}.mana-track{margin-top:3px;height:2px}.field-wrap{width:min(100%,calc((100svh - 180px)*1.5))}.angle-control{flex-basis:43px;width:43px;gap:7px}.angle-control>button{width:33px;height:40px;font-size:22px}.angle-control>div{font-size:9px;gap:3px}.angle-control i{width:6px;height:6px}.battle-bottom{padding:5px 7px;gap:6px}.unit-card{height:57px;padding-bottom:13px}.unit-card canvas{height:39px}.unit-card .card-cost{font-size:9px}.bow-button{width:69px;font-size:8px}.bow-icon{font-size:25px}.battle-footnote{padding:6px 2px;font-size:7px}.booster{font-size:8px}.stage-screen,.upgrade-screen{padding:12px 15px;max-width:1000px}.section-heading{margin-bottom:10px}.section-heading h2{font-size:24px;margin-top:3px}.eyebrow{font-size:7px}.wallet{font-size:11px}.stage-content{grid-template-columns:1.3fr 1fr;gap:35px}.stage-illustration{max-height:231px}.stage-illustration canvas{margin-top:-30px}.stage-caption{display:none}.stage-panel{padding:0 20px}.stage-number{margin:3px 0;gap:25px}.stage-number h1{font-size:57px}.stage-panel p{font-size:10px}.difficulty-label{font-size:8px;margin:5px 0;padding:3px 8px}.stage-panel>.primary,.stage-panel>.secondary{padding:9px 13px;margin-top:6px;font-size:12px}.paired{margin-top:6px;gap:6px}.paired button{padding:7px;font-size:10px}.campaign-footer{margin-top:10px;padding-top:9px;font-size:9px}.upgrade-grid{gap:5px}.upgrade-card{min-height:47px;height:47px;grid-template-columns:42px 1fr;padding:3px 6px}.upgrade-card.selected{padding:2px 5px}.upgrade-card canvas{width:38px;height:40px}.upgrade-card .upgrade-title{font-size:10px}.upgrade-card small{font-size:8px;margin-top:1px}.upgrade-card .item-icon{font-size:23px}.upgrade-detail{margin-top:8px;padding:8px 12px;gap:20px}.upgrade-detail h3{font-size:13px}.upgrade-detail p{font-size:9px;margin:2px 0;line-height:1.4}.upgrade-detail strong{font-size:9px}.upgrade-actions{flex-direction:row;min-width:0}.upgrade-actions button{padding:9px 13px;font-size:10px}.result-screen{padding:20px;max-width:600px}.result-screen h1{font-size:43px;margin:10px 0}.result-screen>p{font-size:11px}#result-emblem{width:44px;height:44px;font-size:20px;margin-top:10px}.result-stats{margin:15px 0;gap:8px}.result-stats>div{padding:10px}.result-stats strong{font-size:20px;margin-bottom:3px}.result-screen>.primary{padding:11px 16px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
