:root{--ink:#3d2b22;--ink-soft:#7a5f4e;--paper:#fffaf0;--paper-2:#fff3dc;--pink:#ff7fb3;--pink-dark:#e05a92;--mint:#8fd14f;--mint-dark:#5daf3f;--gold:#ffd93d;--sky:#7fcdf2;--red:#f25f5c;--shadow:0 3px 0 #3d2b2247;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#6a4a3a;font-weight:600}button{font:inherit;color:inherit;cursor:pointer}.icon{image-rendering:pixelated;vertical-align:middle;flex:none}.muted{color:var(--ink-soft)}.small{font-size:13px}.app{background:var(--paper);grid-template-rows:auto minmax(190px,38dvh) minmax(0,1fr);grid-template-areas:"hud""scene""side";max-width:1400px;height:100dvh;margin:0 auto;display:grid;overflow:hidden}.hud{grid-area:hud}.scene{grid-area:scene}.side{background:var(--paper);flex-direction:column;grid-area:side;min-height:0;display:flex}@media (min-width:900px){.app{border-left:4px solid var(--ink);border-right:4px solid var(--ink);grid-template:"hud hud""scene side"minmax(0,1fr)/minmax(0,1fr) 440px}.side{border-left:4px solid var(--ink)}}.hud{background:var(--paper);border-bottom:4px solid var(--ink);padding:max(8px, env(safe-area-inset-top)) 12px 6px;z-index:2}.hud-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.money{align-items:center;gap:8px;min-width:0;display:flex}.money>div{flex-direction:column;line-height:1.05;display:flex}.coins{font-family:var(--font-ui);letter-spacing:.5px;font-size:24px}.money small{color:var(--mint-dark);font-weight:900}.money small.boosted{color:#e0a82a;animation:1s ease-in-out infinite alternate glow}@keyframes glow{to{color:var(--pink-dark)}}.hud-right{align-items:center;gap:6px;display:flex}.chip{border:3px solid var(--ink);box-shadow:var(--shadow);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:13px;font-weight:900;display:inline-flex}.icon-btn{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:4px;line-height:0}.mats{scrollbar-width:none;gap:10px;margin-top:4px;display:flex;overflow-x:auto}.mat{white-space:nowrap;align-items:center;gap:3px;font-size:13px;font-weight:900;display:inline-flex}.mat small{color:var(--ink-soft);font-size:11px;font-weight:700}.scene{touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#4a3b45;min-height:0;position:relative;overflow:hidden}.scene-canvas{image-rendering:pixelated;cursor:pointer;position:absolute;top:0;left:0}.floats{pointer-events:none;position:absolute;inset:0}.float{font-family:var(--font-ui);color:#fff;text-shadow:2px 2px 0 var(--ink), -1px -1px 0 var(--ink), 1px -1px 0 var(--ink), -1px 1px 0 var(--ink);white-space:nowrap;font-size:14px;animation:.9s ease-out forwards floatUp;position:absolute;transform:translate(-50%,-50%)}.float.big{color:var(--gold);font-size:18px;animation-duration:1.4s}@keyframes floatUp{0%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-190%)scale(1)}}.quick{pointer-events:none;flex-wrap:wrap;gap:6px;max-width:calc(100% - 60px);display:flex;position:absolute;top:8px;left:8px}.quick>*{pointer-events:auto}.chip.action{background:var(--gold)}.chip.boost-on{background:#fff1a8}.chip.boost-on.gold{background:#ffe38a}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.07)}}.chest-hint{border:3px solid var(--ink);background:var(--gold);box-shadow:var(--shadow);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:900;animation:1s ease-in-out infinite pulse;position:absolute;bottom:8px;right:8px}.tutorial{background:var(--paper);border:3px solid var(--ink);pointer-events:none;border-radius:12px;align-items:center;gap:8px;width:min(92%,420px);padding:8px 12px;font-size:14px;font-weight:800;animation:1.6s ease-in-out infinite bob;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 4px #3d2b2259}@keyframes bob{50%{transform:translate(-50%,-3px)}}.scene-lock{text-align:center;border:3px solid var(--ink);background:#fffaf0f5;border-radius:14px;flex-direction:column;align-items:center;gap:4px;width:min(90%,340px);padding:10px 14px;font-size:13px;display:flex;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px #3d2b2259}.scene-lock b{font-family:var(--font-ui);font-size:16px}.panel{-webkit-overflow-scrolling:touch;background:repeating-linear-gradient(0deg, transparent 0 23px, #3d2b2208 23px 24px), var(--paper);flex:1;min-height:0;overflow-y:auto}.panel-body{flex-direction:column;gap:8px;padding:10px 10px 16px;animation:.15s ease-out fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}}.section{flex-direction:column;gap:8px;display:flex}.section h3{font-family:var(--font-ui);align-items:center;gap:6px;margin:6px 2px 0;font-size:15px;font-weight:400;display:flex}.section-right{font-family:var(--font-body);margin-left:auto}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.row{flex-wrap:wrap;gap:8px;display:flex}.empty{text-align:center;color:var(--ink-soft);margin:10px}.tag{background:var(--mint);border:2px solid var(--ink);border-radius:999px;padding:0 8px;font-size:11px;font-weight:900}.card{border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;align-items:center;gap:10px;padding:8px 10px;display:flex}.card.dim{background:#f1ebe2}.card.dim .p-body b{color:var(--ink-soft)}.p-icon{background:var(--paper-2);border:3px solid var(--ink);border-radius:10px;flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.lvl{text-align:center;background:var(--pink);color:#fff;border:2px solid var(--ink);border-radius:999px;min-width:22px;padding:0 4px;font-size:12px;font-weight:900;position:absolute;bottom:-8px;right:-8px}.p-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.p-body b{font-weight:900}.p-body small{color:var(--ink-soft);line-height:1.25}.rate-item{color:var(--ink);align-items:center;gap:2px;margin-right:8px;font-weight:800;display:inline-flex}.milestone{align-items:center;gap:6px;display:flex}.milestone small{white-space:nowrap;font-size:11px}.btn{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;min-height:40px;padding:6px 10px;font-size:14px;font-weight:900;transition:transform 50ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #3d2b2247}.btn:disabled{cursor:default;color:var(--ink-soft);box-shadow:none;background:#ece5da}.btn.primary:not(:disabled){background:var(--mint)}.btn.ad:not(:disabled){background:var(--gold)}.btn.danger{background:var(--red);color:#fff}.btn.wide{width:100%}.btn.buy{flex-direction:column;gap:0;min-width:96px;padding:4px 8px}.buy-n{font-size:11px;line-height:1}.gain{color:var(--mint-dark);font-size:10px;line-height:1}.btn:disabled .gain{color:inherit}.cost{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.cost-item{align-items:center;gap:2px;font-weight:900;display:inline-flex}.cost-item.short{color:#c2413f}.bar{border:2px solid var(--ink);background:#efe6d8;border-radius:999px;flex:1;min-width:40px;height:10px;overflow:hidden}.bar>div{background:linear-gradient(var(--mint), var(--mint-dark));height:100%;transition:width .25s}.bar.thin{border-width:1.5px;height:7px}.regions{scrollbar-width:none;gap:6px;padding:2px 2px 4px;display:flex;overflow-x:auto}.region-chip{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:4px 12px;font-size:13px;font-weight:900;display:inline-flex}.region-chip.active{background:var(--pink);color:#fff}.region-chip.locked{background:#ece5da}.region-chip.locked.active{color:var(--ink);background:#c9b8c4}.region-chip.ready{background:var(--gold);animation:1.2s ease-in-out infinite pulse}.seg{border:3px solid var(--ink);box-shadow:var(--shadow);border-radius:10px;flex:none;display:inline-flex;overflow:hidden}.seg button{background:#fff;border:0;padding:3px 9px;font-size:13px;font-weight:900}.seg button+button{border-left:2px solid var(--ink)}.seg button.on{background:var(--gold)}.building{flex-direction:column;align-items:stretch}.b-head{align-items:center;gap:10px;display:flex}.pips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pip{border:2px solid var(--ink);background:#efe6d8;border-radius:3px;width:14px;height:10px}.pip.work{background:var(--gold);animation:1s infinite pulse}.pips small{margin-left:4px}.b-next{border-top:2px dashed #e2d5c3;flex-direction:column;gap:6px;padding-top:6px;display:flex}.b-progress{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.b-actions{gap:6px;margin-left:auto;display:flex}.b-start{justify-content:space-between;align-items:center;gap:8px;display:flex}.prestige-card{background:linear-gradient(135deg,#fff1a8,#e9dcff)}.mission.done{background:#f0ffe0}.daily-row{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day{border:2px solid var(--ink);background:#fff;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-weight:900;display:flex}.day small{font-size:10px}.day.got{opacity:.75;background:#dff3c8}.day.today{background:var(--gold);transform:scale(1.06)}.ach{text-align:center;border:2px solid var(--ink);background:#f1ebe2;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px;font-size:12px;display:flex}.ach small{color:var(--ink-soft);font-size:11px}.tabbar{border-top:4px solid var(--ink);padding-bottom:env(safe-area-inset-bottom);background:#fff3dc;grid-template-columns:repeat(5,1fr);display:grid}.tab{color:var(--ink-soft);background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;padding:6px 0 5px;font-size:12px;font-weight:900;display:flex;position:relative}.tab.hint{background:#fff1a8;animation:1s ease-in-out infinite pulse}.badge{background:var(--red);border:2px solid var(--ink);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;right:calc(50% - 18px)}.modal-wrap{z-index:20;background:#281a1e8c;place-items:center;padding:16px;animation:.15s fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border:4px solid var(--ink);border-radius:18px;width:min(440px,100%);max-height:90dvh;padding:18px 18px 16px;position:relative;overflow-y:auto;box-shadow:0 8px #281a1e66}.modal h2{font-family:var(--font-ui);align-items:center;gap:8px;margin:0 30px 8px 0;font-size:20px;font-weight:400;display:flex}.modal p{margin:8px 0}.close{border:3px solid var(--ink);background:#fff;border-radius:10px;padding:4px;line-height:0;position:absolute;top:10px;right:10px}.big-reward{border:3px dashed var(--ink-soft);background:#fff;border-radius:12px;justify-content:center;margin:10px 0;padding:12px;font-size:20px;display:flex}.big-reward .icon{width:22px;height:22px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.modal-actions .btn{flex:1}.chest-choices{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice-card{border:3px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px;display:flex}.choice-card.best{background:#fff7cf}.two-col{grid-template-columns:1fr 1fr;gap:8px;font-size:14px;display:grid}.two-col ul{margin:4px 0;padding-left:18px}.ng-title{font-weight:900}.settings{flex-direction:column;gap:8px;display:flex}.settings h4{font-family:var(--font-ui);margin:8px 0 0;font-weight:400}.settings textarea{font:inherit;border:3px solid var(--ink);resize:vertical;border-radius:10px;padding:6px;font-size:12px}.toasts{top:max(64px, calc(env(safe-area-inset-top) + 56px));z-index:30;pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(92vw,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:900;animation:.2s ease-out toastIn;display:flex}.toast.big{background:var(--gold);font-size:16px}.toast.error{background:#ffc9c4}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)scale(.95)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.001ms!important;animation-iteration-count:1!important}}.mat-name{color:var(--ink-soft);margin-right:2px;font-style:normal;font-weight:800}.float.income{color:var(--gold);font-size:15px;animation-duration:1.4s}.talk{border:3px solid var(--ink);max-width:220px;box-shadow:var(--shadow);z-index:3;background:#fff;border-radius:12px;flex-direction:column;gap:2px;padding:6px 10px;font-size:13px;line-height:1.25;animation:.18s ease-out pop,.4s ease-in 3.8s forwards fadeOut;display:flex;position:absolute;transform:translate(-50%,-100%)}.talk:after{content:"";border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);background:#fff;width:10px;height:10px;position:absolute;bottom:-9px;left:calc(50% - 6px);transform:rotate(45deg)}.talk b{color:var(--pink-dark);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.talk small{color:var(--mint-dark);font-weight:800}@keyframes pop{0%{transform:translate(-50%,-100%)scale(.7)}to{transform:translate(-50%,-100%)scale(1)}}@keyframes fadeOut{to{opacity:0}}.goalbar{background:var(--paper-2);border-bottom:3px solid var(--ink);align-items:center;gap:8px;padding:6px 10px;display:flex}.goalbar.done{background:#f0fbe3}.goal-main{text-align:left;background:0 0;border:0;flex:1;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;min-width:0;padding:0;display:grid}.goal-main .bar{grid-column:1/-1;margin-top:3px}.goal-text{flex-direction:column;min-width:0;display:flex}.goal-text small{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:10px;line-height:1}.goal-text b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.goal-reward{opacity:.85;font-size:12px}.goalbar .btn{min-height:34px;padding:3px 8px;font-size:13px}.producer.best{border-color:var(--mint-dark)}.ribbon{background:var(--mint);border:2px solid var(--ink);text-transform:uppercase;letter-spacing:.04em;border-radius:8px;padding:0 6px;font-size:10px;font-weight:900;position:absolute;top:-9px;left:12px}.eta{color:var(--ink-soft);font-size:10px;font-weight:800;line-height:1.1}.btn:disabled .eta{opacity:1}.link-btn{color:var(--pink-dark);background:0 0;border:0;align-self:flex-start;align-items:center;gap:3px;padding:2px 0 0;font-size:11px;font-weight:800;text-decoration:underline;display:inline-flex}.empire{background:linear-gradient(#fff, var(--paper-2));flex-direction:column;align-items:stretch;gap:8px;margin-bottom:4px}.empire-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.empire-head small{color:var(--ink-soft)}.journey{justify-content:space-between;margin:0;padding:0;list-style:none;display:flex;position:relative}.journey:before{content:"";border-top:3px dashed #3d2b224d;position:absolute;top:17px;left:18px;right:18px}.journey li{text-align:center;flex-direction:column;align-items:center;gap:2px;width:64px;display:flex;position:relative}.journey small{color:var(--ink-soft);font-size:10px;line-height:1.1}.stop{border:3px solid var(--ink);opacity:.7;background:#e9e1d4;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:900;display:grid}.journey .have .stop{background:var(--gold);opacity:1}.journey .have small{color:var(--ink);font-weight:900}.journey .next .stop{opacity:1;background:#fff;animation:1.6s ease-in-out infinite hop}.journey .soon .stop{border-style:dashed}.empire-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.empire-foot .btn{min-height:34px;font-size:13px}.built-preview{place-items:center;margin:6px 0 10px;display:grid}.built-preview canvas{width:min(70%,260px);image-rendering:pixelated;border:3px solid var(--ink);border-radius:10px;animation:.3s ease-out popIn}.built-bonus{border:2px solid var(--mint-dark);background:#f0fbe3;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}@keyframes popIn{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes hop{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.tut-pointer{z-index:40;pointer-events:none;filter:drop-shadow(2px 3px #3d2b2259);display:none;position:fixed}.tut-pointer .icon{animation:.9s ease-in-out infinite poke;display:block}.tut-pointer.down .icon{animation-name:pokeDown;transform:scaleY(-1)}@keyframes poke{0%,to{transform:translateY(6px)}50%{transform:translateY(0)}}@keyframes pokeDown{0%,to{transform:scaleY(-1)translateY(6px)}50%{transform:scaleY(-1)translateY(0)}}.feedback-card{background:var(--paper);border:3px solid var(--ink);z-index:5;border-radius:12px;flex-direction:column;gap:8px;width:min(92%,380px);padding:10px 12px;animation:.25s ease-out popIn;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 4px #3d2b2259}.feedback-card b{padding-right:24px;font-size:15px}.fb-close{cursor:pointer;background:0 0;border:0;padding:4px;position:absolute;top:4px;right:4px}.fb-row{flex-wrap:wrap;gap:8px;display:flex}.fb-row .btn{flex:1}.fb-comment{flex-direction:column;gap:8px;display:flex}.fb-comment textarea{width:100%;font:inherit;border:2px solid var(--ink);resize:vertical;border-radius:8px;padding:6px 8px;font-size:14px}.gear-card{border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid;position:relative;overflow:hidden}.gear-card[data-pulse]{animation:.5s ease-out gearPulse}.gear-card[data-pulse] .gear-icon .icon{animation:.45s ease-out gearHop}.gear-card[data-pulse]:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffffffe6 50%,#0000 70%);animation:.6s ease-out forwards shine;position:absolute;inset:0}@keyframes gearPulse{30%{box-shadow:0 0 0 4px var(--gold), var(--shadow);transform:scale(1.02)}}@keyframes gearHop{40%{transform:translateY(-6px)scale(1.15)rotate(-8deg)}}@keyframes shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.gear-icon{border:3px solid var(--ink);background:radial-gradient(circle at 50% 40%, #fff 0 35%, var(--tier-bg,#f4ead9) 70%);border-radius:12px;place-items:center;width:56px;height:56px;display:grid;position:relative;box-shadow:inset 0 -4px #00000014}.gear-lvl{white-space:nowrap;color:#fff;background:var(--ink);border-radius:999px;padding:0 5px;font-size:11px;font-weight:900;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.tier-n{--tier-bg:#e9cfa8}.tier-h{--tier-bg:#d6d7dd}.tier-s{--tier-bg:#e6edf5}.tier-y{--tier-bg:#ffe58a}.tier-c{--tier-bg:#b8f1ff}.tier-m{--tier-bg:#ffb48a}.tier-t{--tier-bg:#f1d3a8}.tier-g{--tier-bg:#cdeeb0}.gear-body{flex-direction:column;gap:2px;min-width:0;display:flex}.gear-body b{font-weight:900}.gear-desc{color:var(--ink-soft);font-size:12px;line-height:1.2}.gear-stats{flex-wrap:wrap;gap:2px 8px;font-size:12px;font-weight:900;display:flex}.gear-stat em{color:var(--mint-dark);font-style:normal}.gear-next{gap:1px;margin-top:2px;display:grid}.gear-next small{color:var(--ink-soft);align-items:center;gap:4px;font-size:11px;display:flex}.btn-kicker{text-transform:uppercase;letter-spacing:.04em;width:100%;font-size:10px;line-height:1}.gear-card .btn{flex-direction:column;gap:0;min-width:92px;padding:4px 8px}.gear-max{font-family:var(--font-ui);border:3px solid var(--ink);background:linear-gradient(#ffe58a,#ffc61a);border-radius:12px;padding:6px 10px;font-size:16px}.gear-locked{text-align:center;max-width:110px;color:var(--ink-soft);flex-direction:column;align-items:center;gap:2px;font-size:11px;line-height:1.15;display:flex}@media (max-width:380px){.gear-card{grid-template-columns:48px 1fr}.gear-icon{width:48px;height:48px}.gear-card>.btn,.gear-card>.gear-locked,.gear-card>.gear-max{flex-direction:row;grid-column:1/-1;width:100%;max-width:none}}.fx-layer{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fx-sprite{image-rendering:pixelated;filter:drop-shadow(0 2px #3d2b2259);will-change:transform;position:absolute;top:0;left:0}.fx-spark{will-change:transform;width:6px;height:6px;position:absolute;top:-3px;left:-3px}.fx-stamp{white-space:nowrap;font-family:var(--font-ui);color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);font-size:26px;position:absolute;top:0;left:0}.fx-stamp.red{color:#ff5a4a}.fx-stamp.gold{color:var(--gold)}.fx-stamp.blue{color:#6fdcff}.hud-bump{animation:.32s ease-out hudBump}@keyframes hudBump{35%{filter:brightness(1.25);transform:scale(1.18)}}.scene.shake{animation:.28s linear shake}@keyframes shake{20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,2px)}80%{transform:translate(2px,-1px)}}.modal-wrap{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:.18s ease-out fadeIn}.modal.framed{background:radial-gradient(circle at 10px 10px, #c79a6a 0 3px, var(--ink) 3px 4px, transparent 4.5px) top left / 20px 20px no-repeat, radial-gradient(circle at 10px 10px, #c79a6a 0 3px, var(--ink) 3px 4px, transparent 4.5px) top right / 20px 20px no-repeat, radial-gradient(circle at 10px 10px, #c79a6a 0 3px, var(--ink) 3px 4px, transparent 4.5px) bottom left / 20px 20px no-repeat, radial-gradient(circle at 10px 10px, #c79a6a 0 3px, var(--ink) 3px 4px, transparent 4.5px) bottom right / 20px 20px no-repeat, var(--paper);max-height:none;margin-top:22px;padding-top:30px;animation:.34s cubic-bezier(.2,1.4,.4,1) modalIn;overflow:visible;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 6px #f0dfc4,0 8px #281a1e73}.modal-body{max-height:calc(88dvh - 70px);margin:0 -6px;padding:0 6px;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:translateY(24px)scale(.86)}}.modal-ribbon{max-width:calc(100% - 40px);font-family:var(--font-ui);white-space:nowrap;color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;text-shadow:0 2px 0 var(--ink);background:var(--ribbon,var(--pink));border:3px solid var(--ink);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 50%,100% 100%,0 100%,12px 50%);filter:drop-shadow(0 3px #3d2b2259);align-items:center;gap:8px;padding:7px 28px 9px;font-size:18px;animation:.42s cubic-bezier(.2,1.4,.4,1) 60ms backwards ribbonIn;display:flex;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.modal-ribbon span{text-overflow:ellipsis;overflow:hidden}@keyframes ribbonIn{0%{opacity:0;transform:translate(-50%)scaleX(.3)}}.modal.framed .close{z-index:2;background:#ffe1dc;top:8px;right:8px}.hero{place-items:center;height:120px;margin:2px 0 6px;display:grid;position:relative}.hero:before{content:"";background:repeating-conic-gradient(#ffc42899 0 12deg, transparent 12deg 30deg);border-radius:50%;width:180px;height:180px;animation:9s linear infinite spin;position:absolute;-webkit-mask:radial-gradient(circle,#000 22%,#0000 68%);mask:radial-gradient(circle,#000 22%,#0000 68%)}.hero>*{position:relative}.hero .hero-icon{filter:drop-shadow(0 4px #3d2b2259);width:64px;height:64px;animation:.6s cubic-bezier(.2,1.6,.4,1) .12s backwards heroPop,2.4s ease-in-out .8s infinite floaty}@keyframes spin{to{transform:rotate(360deg)}}@keyframes heroPop{0%{transform:scale(0)rotate(-30deg)}}@keyframes floaty{50%{transform:translateY(-5px)}}.hero-title{text-align:center;font-family:var(--font-ui);margin:0 0 4px;font-size:20px}.hero-sub{text-align:center;color:var(--ink-soft);margin:0 0 8px}.stat-list{flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 12px;display:flex}.stat-pill{border:2px solid var(--ink);background:#fff;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:900}.stat-pill.up{background:#e3f7cf}.big-reward{border-style:solid;border-color:var(--ink);background:linear-gradient(#fffdf6,#fff3d6);box-shadow:inset 0 -4px #ffb62740}.btn.primary:not(:disabled),.btn.ad:not(:disabled){box-shadow:inset 0 -4px 0 #0000001f, inset 0 3px 0 #ffffff73, var(--shadow)}.ach-banner{top:max(10px, env(safe-area-inset-top));z-index:55;border:3px solid var(--ink);cursor:pointer;background:linear-gradient(#fff7d6,#ffe58a);border-radius:16px;grid-template-columns:56px 1fr;align-items:center;gap:12px;width:min(92vw,380px);padding:10px 12px 12px 10px;animation:.5s cubic-bezier(.2,1.4,.4,1) bannerIn;display:grid;position:fixed;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:inset 0 0 0 3px #fffbe8,0 6px #281a1e66}.ach-banner.out{animation:.35s ease-in forwards bannerOut}.ach-banner:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 35%,#ffffffd9 50%,#0000 65%);animation:1.1s ease-out .35s backwards shine;position:absolute;inset:0;transform:translate(100%)}@keyframes bannerIn{0%{transform:translate(-50%,-140%)}}@keyframes bannerOut{to{transform:translate(-50%,-140%)}}.ach-banner small{font-family:var(--font-ui);color:#a4670b;font-size:11px;display:block}.ach-banner b{font-size:17px;font-weight:900;line-height:1.1;display:block}.ach-banner .ach-reward{color:var(--ink-soft);align-items:center;gap:4px;font-size:12px;display:flex}.medal{isolation:isolate;border:3px solid var(--ink);background:radial-gradient(circle at 35% 30%, var(--m-hi) 0 18%, var(--m) 45%, var(--m-lo) 100%);--m:#d98b4a;--m-hi:#ffd2a6;--m-lo:#9c5a26;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid;position:relative;box-shadow:inset 0 0 0 3px #ffffff59,0 3px #3d2b224d}.medal.silver{--m:#c4ccd8;--m-hi:#fff;--m-lo:#7d879b}.medal.gold{--m:#ffcf33;--m-hi:#fff6c2;--m-lo:#c98a10}.medal.locked{--m:#ded7cc;--m-hi:#f3eee6;--m-lo:#b8afa2}.medal.locked .icon{opacity:.45;filter:grayscale()}.medal.big{width:64px;height:64px}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:10px 8px;display:grid}.ach{text-align:center;border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 8px;display:flex}.ach b{margin-top:4px;font-size:12px;line-height:1.1}.ach small{color:var(--ink-soft);font-size:10.5px;line-height:1.15}.ach .bar{width:100%}.ach-gems{align-items:center;gap:2px;font-size:11px;font-weight:900;display:inline-flex}.ach-summary{align-items:center;gap:10px;margin-bottom:4px;display:flex}.ach-summary .bar{flex:1}@media (prefers-reduced-motion:reduce){.hero:before,.hero .hero-icon,.modal.framed,.modal-ribbon,.ach-banner,.gear-card[data-pulse]{animation:none!important}}:root{--font-title:Silkscreen, "Nunito", monospace;--font-ui:Nunito, system-ui, sans-serif;--font-body:Nunito, system-ui, sans-serif;--ink:#3d2b22;--ink-soft:#7a5f4e;--paper:#fffaf0;--paper-2:#fff3dc;--paper-hi:#fff;--pink:#ff7fb3;--pink-dark:#e05a92;--pink-soft:#ffe1ee;--mint:#8fd14f;--mint-dark:#5daf3f;--mint-soft:#e4f7cf;--sky:#7fcdf2;--sky-dark:#3fa3d8;--sky-soft:#dff3ff;--gold:#ffd93d;--gold-dark:#f0a93a;--gold-soft:#fff4b8;--lilac:#b79cff;--red:#f25f5c;--shadow:0 3px 0 #3d2b2247;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}body{font-family:var(--font-body);background:radial-gradient(at 50% 0,#ffffff80,#0000 60%),linear-gradient(#a8e0ff,#ffe6f1);font-size:15px;font-weight:700}.app{background:var(--paper);box-shadow:0 0 0 4px var(--ink), 0 0 40px #3d2b2240}.hud{background:linear-gradient(#fff, var(--paper));border-bottom:4px solid var(--ink)}.coins{font-family:var(--font-title);color:var(--ink);font-size:22px}.money small{font-family:var(--font-ui);color:var(--mint-dark);font-weight:900}.chip{font-family:var(--font-ui);color:var(--ink);background:#fff;font-weight:900}.chip.ng{background:#efe6ff}.chip.action,.chip.boost-on,.chip.boost-on.gold{background:var(--gold);color:var(--ink)}.scene{background:var(--sky)}.scene-host{cursor:pointer;touch-action:manipulation;position:absolute;inset:0}.float{font-family:var(--font-title);-webkit-text-stroke:0;text-shadow:1px 1px 0 var(--ink), -1px 1px 0 var(--ink), 1px -1px 0 var(--ink), -1px -1px 0 var(--ink), 0 2px 0 var(--ink)}.float.big{color:var(--gold);font-size:16px}.tutorial,.talk,.scene-lock{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:14px}.tutorial{font-family:var(--font-body);font-weight:800}.talk:after{border-color:var(--ink);background:#fff}.talk b{color:var(--pink-dark)}.view-title{font-family:var(--font-title);color:#fff;text-shadow:2px 2px 0 var(--ink), -2px 2px 0 var(--ink), 2px -2px 0 var(--ink), -2px -2px 0 var(--ink), 0 4px 0 var(--ink);pointer-events:none;white-space:nowrap;font-size:18px;line-height:1;position:absolute;top:8px;left:50%;transform:translate(-50%)}.view-title.right{left:auto;right:10px;transform:none}.side{background:var(--paper)}.section h3{font-family:var(--font-title);color:var(--ink);text-transform:none;border-bottom:3px dashed #3d2b222e;align-items:center;gap:6px;padding-bottom:4px;font-size:17px;font-weight:400;display:flex}.section-right,.section-right small{font-family:var(--font-ui);color:var(--ink-soft);font-size:12px;font-weight:800}.card{border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.card.dim{filter:saturate(.7);background:#f6efe4}.p-body b{font-family:var(--font-ui);font-size:15px;font-weight:900}.p-body small,.muted{color:var(--ink-soft)}.p-icon{background:radial-gradient(circle at 50% 65%, var(--mint-soft), var(--sky-soft) 75%);border:3px solid var(--ink);border-radius:12px}.lvl{font-family:var(--font-title);background:var(--pink);color:#fff;border:2px solid var(--ink)}.ribbon{font-family:var(--font-ui);background:var(--pink);color:#fff;border-color:var(--ink);font-weight:900}.producer.best{border-color:var(--ink);box-shadow:0 0 0 3px var(--gold), var(--shadow)}.btn{font-family:var(--font-ui);border:3px solid var(--ink);color:var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:12px;font-weight:900}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.btn.primary:not(:disabled){background:linear-gradient(#ffe877, var(--gold));border-color:var(--ink);box-shadow:inset 0 -3px 0 #f0a93a8c, 0 3px 0 var(--ink)}.btn.ad:not(:disabled){background:linear-gradient(#b6e6ff, var(--sky));color:var(--ink);border-color:var(--ink);text-shadow:none;box-shadow:inset 0 -3px 0 #3fa3d873, 0 3px 0 var(--ink)}.btn.danger{background:linear-gradient(#ff9fc6, var(--pink));color:#fff;text-shadow:0 1px 0 var(--pink-dark)}.btn:disabled{color:#a8968a;box-shadow:none;background:#f1eadf;border-color:#b8a698}.link-btn{font-family:var(--font-body);color:var(--pink-dark);font-weight:800}.seg{border:3px solid var(--ink);background:#fff;border-radius:999px;overflow:hidden}.seg button{font-family:var(--font-ui);font-weight:900}.seg button.on{background:var(--pink);color:#fff}.tag{font-family:var(--font-ui);background:var(--mint);color:#fff;border-color:var(--ink);border-radius:999px;font-weight:900}.cost,.gain,.eta,.buy-n{font-family:var(--font-ui);font-weight:900}.gain{color:var(--mint-dark)}.bar{border:2px solid var(--ink);background:#f3e7d6;border-radius:999px;overflow:hidden}.bar>div{background:linear-gradient(#ffe877, var(--gold));border-radius:999px}.bar.build>div{background:linear-gradient(#b8ee86, var(--mint))}.bar.hero>div{background:linear-gradient(#ffb3d2, var(--pink))}.pip{border-color:var(--ink);border-radius:50%}.pip.on{background:var(--pink)}.goalbar{background:linear-gradient(#fff, var(--paper));border-bottom:3px solid var(--ink)}.goal-text small{font-family:var(--font-ui);color:var(--pink-dark);font-weight:900}.goal-text b{font-family:var(--font-body);font-weight:900}.tabbar{border-top:4px solid var(--ink);background:#fff}.tab{font-family:var(--font-ui);color:var(--ink-soft);font-weight:900}.tab.active{background:var(--pink-soft);color:var(--ink);box-shadow:inset 0 4px 0 var(--pink)}.badge{background:var(--red);border-color:var(--ink)}.badge-host{position:relative}.badge-host .badge{top:-4px;right:-4px}.modal.framed{background:var(--paper);border:4px solid var(--ink);border-radius:20px;box-shadow:0 8px #3d2b2259}.modal-ribbon{font-family:var(--font-title);color:#fff;-webkit-text-stroke:0;text-shadow:2px 2px 0 var(--ink), -1px 1px 0 var(--ink), 1px -1px 0 var(--ink), -1px -1px 0 var(--ink);background:var(--ribbon,var(--pink));border:3px solid var(--ink);border-radius:14px;padding:6px 26px 8px;font-size:20px;font-weight:400}.modal.tone-gold{--ribbon:var(--gold-dark)}.modal.tone-mint{--ribbon:var(--mint)}.modal.tone-sky{--ribbon:var(--sky-dark)}.modal.tone-magic{--ribbon:var(--lilac)}.modal.tone-wood{--ribbon:var(--pink)}.modal.framed .close{border-color:var(--ink);background:#fff}.hero-title{font-family:var(--font-title);font-size:20px}.big-reward{font-family:var(--font-title);border-color:var(--ink);background:#fff}.toast{font-family:var(--font-ui);border:3px solid var(--ink);background:#fff;border-radius:999px;font-weight:900}.toast.big{background:var(--gold)}.ach-banner{background:linear-gradient(#fff, var(--gold-soft));border-color:var(--ink)}.ach-banner b{font-family:var(--font-title);font-size:17px;font-weight:400}.ach,.stat-pill{border-color:var(--ink);background:#fff}.ach.have{background:linear-gradient(#fff, var(--gold-soft))}.empire-head b{font-family:var(--font-title);color:var(--ink);font-size:18px;font-weight:400}.scene-nav{display:none}.income{flex-direction:column;align-items:stretch;gap:6px}.income-row{font-family:var(--font-ui);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.income-row span{align-items:center;gap:4px;display:inline-flex}.hero-card{flex-direction:column;align-items:stretch;gap:8px}.hero-card.dim{flex-direction:row;align-items:center}.hero-top{align-items:center;gap:10px;display:flex}.hero-top .p-body{flex:1;min-width:0}.training{border-top:2px dashed #5a362059;align-items:center;gap:8px;padding-top:6px;display:flex}.training>span{flex-direction:column;flex:1;line-height:1.2;display:flex}.training b{font-family:var(--font-ui);font-weight:600}.training small{color:var(--ink-soft)}.btn.small{padding:3px 8px;font-size:12px}.region-card.selected{border-color:var(--royal);box-shadow:inset 0 0 0 2px #c9d2ff, 0 0 0 2px var(--royal), 0 3px 0 #1a0e0659}.region-card .p-body{flex:1;min-width:0}.boss-meter{align-items:center;gap:6px;margin-top:3px;display:flex}.boss-meter .bar{flex:1}.boss-meter small{white-space:nowrap;font-size:12px}.col-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.soon{text-align:center;margin:10px 0 4px}.modal.wide{width:min(560px,96vw);max-height:88dvh}.modal.wide .modal-body{max-height:calc(88dvh - 70px);overflow-y:auto}.summary{flex-direction:column;gap:4px;margin:6px 0;padding:0;list-style:none;display:flex}.summary li{align-items:center;gap:6px;display:flex}.ng-mult{border:3px solid var(--wood);background:linear-gradient(#ece4ff,#d8ccf6);border-radius:6px;flex-direction:column;align-items:center;gap:2px;margin:8px 0;padding:8px;display:flex}.ng-mult b{font-family:var(--font-ui);font-size:22px}.ng-mult em{color:#5b3a9a;font-style:normal}.goals-content .section:first-child{margin-top:0}:root{--wood:var(--ink);--wood-dark:var(--ink);--wood-hi:#a07a62;--crimson:var(--pink-dark);--crimson-dark:#c04a7a;--royal:var(--sky-dark);--royal-dark:#2a7aa8;--emerald:var(--mint-dark);--gold-hi:#fff6a8;--rare:#3a9ae8;--epic:#a46ae8;--legend:#ff6fae}.modal-ribbon span,.hero-title,.section h3{letter-spacing:.02em}.mon-img{image-rendering:pixelated;max-width:100%;height:auto;display:block}.mon-icon{cursor:pointer;border:0;place-items:center;padding:0;display:grid}.mon-icon .mon-img{width:48px}.producer.monster .p-icon{background:radial-gradient(circle at 50% 70%,#86c95a73,#0000 70%);border-radius:10px;width:52px;height:52px}.rarity{font-family:var(--font-ui);color:#fff;vertical-align:middle;white-space:nowrap;background:#8a9a7a;border-radius:6px;padding:0 5px;font-size:11px;font-weight:700}.rarity.rare{background:var(--rare)}.rarity.epic{background:var(--epic)}.rarity.legendary{text-shadow:0 1px #0006;background:linear-gradient(90deg,#ff7a7a,#ffb84a,#7ae07a,#7ab8ff,#c08aff)}p.rarity{margin:4px auto;display:table}.center{text-align:center}.card.rarity-epic{box-shadow:inset 0 0 0 2px #9a5ad859, var(--shadow)}.card.rarity-legendary{box-shadow:inset 0 0 0 2px #e0569a73, var(--shadow)}.scene-host{touch-action:pan-y;cursor:grab}.zone-nav{pointer-events:none;z-index:3;align-items:center;gap:6px;display:flex;position:absolute;top:6px;left:50%;transform:translate(-50%)}.zone-nav .zone-name{font-family:var(--font-ui);color:#fff;text-shadow:0 1px 0 var(--ink);background:#24402f8c;border-radius:10px;padding:2px 10px;font-size:13px;font-weight:700}.zone-btn{pointer-events:auto;border:2px solid var(--wood-dark);background:var(--paper-hi);width:28px;height:28px;font:700 18px/1 var(--font-ui);color:var(--wood-dark);cursor:pointer;border-radius:50%;box-shadow:0 2px #00000059}.zone-btn:disabled{opacity:.35}.float.income{color:#fff6c2;font-size:12px}.recipe .recipe-row{align-items:center;gap:6px;display:flex}.recipe .p-body{flex:1;min-width:0}.recipe .p-body b{line-height:1.15;display:block}.parent{font-family:var(--font-ui);opacity:.6;justify-items:center;display:grid}.parent.ok{opacity:1}.parent .mon-img{width:34px}.parent small{font-size:11px;font-weight:700}.parent.ok small{color:var(--royal)}.plus{font:700 16px var(--font-ui);color:var(--ink-soft)}.egg-slot{place-items:center;width:48px;display:grid}.egg-slot .mon-img{width:44px}.egg-slot .mon-img.egg{width:26px}.wobble .mon-img{transform-origin:50% 90%;animation:1.6s ease-in-out infinite egg-wobble}@keyframes egg-wobble{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-9deg)}86%{transform:rotate(8deg)}93%{transform:rotate(-4deg)}}.recipe .b-start,.recipe .b-progress{margin-top:6px}.chips-row{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}.chip.filter{cursor:pointer;border:2px solid var(--wood);background:var(--paper-hi);color:var(--ink);font-size:12px}.chip.filter.on{background:var(--royal);border-color:var(--royal-dark);color:#fff}.book-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;margin-bottom:12px;display:grid}.book-tile{border:2px solid var(--wood);background:var(--paper-hi);cursor:pointer;border-radius:8px;justify-items:center;gap:2px;padding:6px 2px 4px;display:grid;box-shadow:0 2px #00000040}.book-tile .mon-img{width:48px}.book-tile small{font:700 11px var(--font-ui);color:var(--ink);text-align:center;line-height:1.1}.book-tile.unknown{background:#e6dcc4}.book-tile.unknown small{color:var(--ink-soft)}.book-tile.rarity-epic{border-color:var(--epic)}.book-tile.rarity-legendary{border-color:var(--legend)}.discovery-card{text-align:center}.disc-parents{font:700 18px var(--font-ui);justify-content:center;align-items:center;gap:8px;display:flex}.disc-parents .mon-img{width:48px}.disc-hero .mon-img{width:120px;margin:0 auto;position:relative}.app.calm *,.app.calm :before,.app.calm :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.tutorial{top:42px;bottom:auto}.zone-nav .zone-name{background:#3d2b22b8;border:2px solid #fff;border-radius:999px;padding:3px 14px;font-weight:900;box-shadow:0 2px #3d2b2259}.zone-btn{border:3px solid var(--ink);color:var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff}.zone-leaf{background:var(--mint);border:2px solid var(--ink);border-radius:0 100%;width:14px;height:10px;box-shadow:inset 2px 2px #b8ec7a}.zone-leaf.left{order:-1;margin-right:-4px;transform:rotate(-10deg)}.zone-leaf.right{order:9;margin-left:-4px;transform:scaleX(-1)rotate(-10deg)}.producer{position:relative}.lock-badge{opacity:.85;background:#f1eadf;border:3px solid #b8a698;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.tabbar .tab .icon{width:30px;height:30px}
