: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);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#6a4a3a;font-family:Nunito,system-ui,sans-serif;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{letter-spacing:.5px;font-family:Silkscreen,monospace;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}.chip.ng{background:#e9dcff}.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{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-family:Silkscreen,monospace;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:Silkscreen,monospace;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{align-items:center;gap:6px;margin:6px 2px 0;font-family:Silkscreen,monospace;font-size:15px;font-weight:400;display:flex}.section-right{margin-left:auto;font-family:Nunito,sans-serif}.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}.bar.build>div{background:repeating-linear-gradient(45deg, var(--gold) 0 6px, #ffb93d 6px 12px)}.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.on{background:var(--mint)}.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.active{background:var(--paper);color:var(--ink);box-shadow:inset 0 4px 0 var(--pink)}.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{align-items:center;gap:8px;margin:0 30px 8px 0;font-family:Silkscreen,monospace;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{margin:8px 0 0;font-family:Silkscreen,monospace;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{position:relative}.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{border:3px solid var(--ink);background:linear-gradient(#ffe58a,#ffc61a);border-radius:12px;padding:6px 10px;font-family:Silkscreen,monospace;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;color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);font-family:Silkscreen,monospace;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{white-space:nowrap;color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;max-width:calc(100% - 40px);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-family:Silkscreen,monospace;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.tone-gold{--ribbon:#ffb627}.modal.tone-mint{--ribbon:var(--mint-dark)}.modal.tone-sky{--ribbon:#3fa7e0}.modal.tone-magic{--ribbon:#8b6cf0}.modal.tone-wood{--ribbon:#b0753f}.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;margin:0 0 4px;font-family:Silkscreen,monospace;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{color:#a4670b;font-family:Silkscreen,monospace;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.have{background:linear-gradient(#fffdf2,#fff3c4)}.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}}
