.empire{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(22px,4vw,56px);align-items:start}
.stage{position:relative;padding:clamp(20px,3vw,30px);display:grid;justify-items:center;gap:14px;text-align:center;overflow:hidden}
.stage .rank{font:800 15px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--mint)}
.stage .coins{font:900 clamp(40px,9vw,60px)/1 var(--display);color:var(--gold-hi);text-shadow:0 0 28px rgba(244,183,58,.35);word-break:break-all}
.stage .coins small{display:block;margin-top:6px;font:700 15px var(--body);color:var(--muted);text-shadow:none;letter-spacing:.02em}
.stage .cps{color:#DCD2C2;font-size:16px}
.stage .cps b{color:var(--gold-hi)}
.duckbtn{position:relative;width:min(70vw,250px);aspect-ratio:1;border:0;padding:0;border-radius:50%;cursor:pointer;touch-action:manipulation;
  -webkit-user-select:none;user-select:none;background:radial-gradient(circle at 35% 30%,#FFE28F,#F4B73A 55%,#A2700F);
  box-shadow:0 0 0 6px rgba(244,183,58,.25),0 0 60px rgba(244,183,58,.35),inset 0 0 0 6px rgba(26,16,4,.55);transition:transform .08s ease}
.duckbtn img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);border-radius:50%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.duckbtn:active{transform:scale(.96)}
.duckbtn.hit{animation:duckhit .18s ease-out}
.duckbtn:focus-visible{outline:4px solid var(--mint);outline-offset:6px}
@keyframes duckhit{0%{transform:scale(.94)}60%{transform:scale(1.03)}100%{transform:scale(1)}}
.pops{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pop{position:absolute;transform:translate(-50%,-50%);font:900 20px var(--display);color:var(--gold-hi);text-shadow:0 2px 8px #000;animation:popup .9s ease-out forwards;white-space:nowrap}
@keyframes popup{to{transform:translate(-50%,-190%);opacity:0}}
.progress{width:100%;max-width:340px;height:10px;background:#0E0A14;border:1px solid var(--line);overflow:hidden}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--mint));transition:width .3s}
.nextrank{color:var(--muted);font-size:14px;line-height:1.4}
.stage .small{color:var(--muted);font-size:14px;line-height:1.5;max-width:36ch}
.lucky{position:absolute;z-index:3;width:68px;height:68px;border:0;border-radius:50%;cursor:pointer;font-size:34px;line-height:1;
  background:radial-gradient(circle at 35% 30%,#FFF2C2,#F4B73A 60%,#A2700F);box-shadow:0 0 0 4px rgba(25,240,160,.6),0 0 30px rgba(244,183,58,.8);animation:luckypulse 1s ease-in-out infinite}
.lucky[hidden]{display:none}
@keyframes luckypulse{50%{transform:scale(1.12)}}
.welcome{padding:10px 14px;background:rgba(25,240,160,.1);border-left:3px solid var(--mint);color:#DCD2C2;font-size:15px;text-align:left}
.welcome[hidden]{display:none}
.lucky-msg{min-height:1.3em;color:var(--mint);font-weight:800;font-size:15px}
.stage__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}

.shop h2{font-size:clamp(20px,2.4vw,26px);margin:0 0 12px}
.shop h2:not(:first-child){margin-top:28px}
.shop__bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:12px;color:var(--muted);font-size:14px}
.shop ul{display:grid;gap:10px}
.shop__item{display:grid;gap:4px;width:100%;text-align:left;padding:12px 14px;background:#0E0A14;color:var(--text);border:1px solid var(--line);cursor:pointer;font:inherit;min-height:64px}
.shop__item:hover:not(:disabled){border-color:var(--gold)}
.shop__item:disabled{opacity:.5;cursor:not-allowed}
.shop__item:focus-visible{outline:3px solid var(--mint);outline-offset:2px}
.shop__top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.shop__top strong{font:800 16px/1.3 var(--display)}
.shop__top em{font:900 18px var(--display);color:var(--mint);font-style:normal}
.shop__desc{color:var(--muted);font-size:14px;line-height:1.45}
.shop__cost{color:var(--gold-hi);font-weight:800;font-size:15px}
.is-done{opacity:.55}
.is-done .shop__item{border-color:var(--mint)}
.bulk{display:inline-flex}
.bulk button{min-height:36px;min-width:52px;padding:0 12px;background:#0E0A14;color:var(--text);border:1px solid var(--line);font:800 14px var(--body);cursor:pointer}
.bulk button[aria-pressed="true"]{background:linear-gradient(135deg,#F4B73A,#FFE28F);color:#1A1204;border-color:transparent}
.fine{margin-top:26px;color:var(--muted);font-size:14px;line-height:1.6;max-width:62ch}
@media (max-width:900px){.empire{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.duckbtn,.duckbtn.hit,.lucky{animation:none;transition:none}.pop{animation:none;opacity:0}}
