/* Pond progression game — V2 */
.pond-game{max-width:1280px;margin:24px auto 44px;padding:0 20px;color:#17222b}
.pond-shell{overflow:hidden;background:#d9efae;border:3px solid #17222b;border-radius:24px;box-shadow:9px 10px 0 rgba(23,34,43,.22)}
.pond-game-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;background:rgba(255,249,224,.98);border-bottom:3px solid #17222b}
.pond-game-title{display:flex;align-items:center;gap:13px}.pond-duck-mark{width:48px!important;height:48px!important;border:3px solid #17222b!important;border-radius:13px!important;background:#ffd85e!important;box-shadow:4px 4px 0 #17222b!important;display:grid;place-items:center;font-size:27px!important}.pond-game-title h2{margin:0;font-family:'Bangers','Fredoka',sans-serif;font-size:38px;line-height:.85;letter-spacing:.055em}.pond-game-title p{margin:7px 0 0;font-family:'Orbitron',sans-serif;font-size:8px;letter-spacing:.09em;color:#557079}.pond-game-bal{display:flex;gap:10px}.pond-chip{min-width:125px;background:#fff;border:2px solid #17222b;border-radius:12px;padding:9px 12px;box-shadow:3px 3px 0 rgba(23,34,43,.25)}.pond-chip span{display:block;font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:.1em;color:#64777e}.pond-chip strong{display:block;margin-top:2px;font-family:'Orbitron',sans-serif;font-size:15px}
.pond-scene-wrap{position:relative;min-height:470px;overflow:hidden;isolation:isolate;background:#79cbe4;border-bottom:3px solid #17222b}.pond-scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:filter .8s ease,transform .8s ease;transform:scale(1.015)}
.pond-scene-wrap[data-pond-stage="0"] .pond-scene-bg{filter:saturate(.66) brightness(.79) contrast(.95) sepia(.14)}.pond-scene-wrap[data-pond-stage="1"] .pond-scene-bg{filter:saturate(.82) brightness(.88)}.pond-scene-wrap[data-pond-stage="2"] .pond-scene-bg{filter:saturate(.96) brightness(.95)}.pond-scene-wrap[data-pond-stage="3"] .pond-scene-bg{filter:saturate(1.05) brightness(1)}.pond-scene-wrap[data-pond-stage="4"] .pond-scene-bg{filter:saturate(1.13) brightness(1.035) contrast(1.02)}
.pond-decay-layer{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:1;transition:opacity .8s ease,filter .8s ease}.pond-scene-wrap[data-pond-stage="1"] .pond-decay-layer{opacity:.72}.pond-scene-wrap[data-pond-stage="2"] .pond-decay-layer{opacity:.38}.pond-scene-wrap[data-pond-stage="3"] .pond-decay-layer{opacity:.12}.pond-scene-wrap[data-pond-stage="4"] .pond-decay-layer{opacity:0}.broken-sign{position:absolute;width:34px;height:34px;display:grid;place-items:center;border:3px solid #291d14;border-radius:7px;background:#e7b646;box-shadow:3px 3px 0 rgba(30,20,12,.45);transform:rotate(-8deg)}.broken-sign span{font-family:'Bangers',sans-serif;font-size:26px;line-height:1;color:#3b2717}.broken-house{left:11%;top:46%}.broken-mill{left:34%;top:37%;transform:rotate(7deg)}.broken-bridge{left:59%;top:34%;transform:rotate(-5deg)}.broken-board{position:absolute;height:11px;width:72px;background:#714a28;border:2px solid #302014;border-radius:3px;box-shadow:inset 0 2px rgba(255,255,255,.1),2px 3px 0 rgba(0,0,0,.18)}.board-a{left:14%;bottom:18%;transform:rotate(14deg)}.board-b{right:13%;bottom:20%;transform:rotate(-11deg)}.board-c{left:52%;bottom:11%;transform:rotate(4deg)}.pond-mud{position:absolute;width:120px;height:34px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(78,61,30,.58),rgba(78,61,30,.3) 45%,transparent 72%)}.mud-a{left:4%;bottom:4%}.mud-b{right:17%;bottom:5%}
.pond-water-motion{position:absolute;z-index:2;left:20%;right:12%;top:51%;bottom:5%;overflow:hidden;pointer-events:none;opacity:.45}.pond-water-motion i{position:absolute;height:2px;border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 0 5px rgba(255,255,255,.18);animation:pondWaterMove 4s ease-in-out infinite}.pond-water-motion i:nth-child(1){width:90px;left:8%;top:21%}.pond-water-motion i:nth-child(2){width:54px;left:39%;top:49%;animation-delay:-1.2s}.pond-water-motion i:nth-child(3){width:110px;right:16%;top:31%;animation-delay:-2.1s}.pond-water-motion i:nth-child(4){width:63px;right:37%;bottom:15%;animation-delay:-.7s}@keyframes pondWaterMove{0%,100%{transform:translateX(-9px) scaleX(.85);opacity:.25}50%{transform:translateX(13px) scaleX(1.08);opacity:.8}}
.pond-ripple{position:absolute;z-index:2;width:42px;height:11px;border:2px solid rgba(255,255,255,.52);border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;border-radius:50%;pointer-events:none;animation:pondRipple 3.2s ease-in-out infinite;opacity:.32}.ripple-a{left:24%;top:63%}.ripple-b{left:77%;top:63%;animation-delay:-1.1s}.ripple-c{left:66%;top:78%;animation-delay:-2s}@keyframes pondRipple{0%,100%{transform:scale(.72);opacity:.12}50%{transform:scale(1.18);opacity:.48}}
.pond-wheel-motion{position:absolute;z-index:2;left:31.25%;top:38.8%;width:76px;height:76px;border-radius:50%;border:5px solid rgba(87,48,25,.72);pointer-events:none;animation:pondWheelSpin 9s linear infinite;opacity:.78}.pond-wheel-motion::before{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:#75421f;border:3px solid #422512}.pond-wheel-motion span{position:absolute;left:50%;top:50%;width:4px;height:70px;background:rgba(75,41,21,.7);transform-origin:center}.pond-wheel-motion span:nth-child(1){transform:translate(-50%,-50%) rotate(0deg)}.pond-wheel-motion span:nth-child(2){transform:translate(-50%,-50%) rotate(45deg)}.pond-wheel-motion span:nth-child(3){transform:translate(-50%,-50%) rotate(90deg)}.pond-wheel-motion span:nth-child(4){transform:translate(-50%,-50%) rotate(135deg)}@keyframes pondWheelSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.pond-scene-wrap[data-pond-stage="0"] .pond-wheel-motion{animation-duration:28s;opacity:.34}.pond-scene-wrap[data-pond-stage="1"] .pond-wheel-motion{animation-duration:18s;opacity:.48}.pond-scene-wrap[data-pond-stage="2"] .pond-wheel-motion{animation-duration:12s}.pond-scene-wrap[data-pond-stage="3"] .pond-wheel-motion,.pond-scene-wrap[data-pond-stage="4"] .pond-wheel-motion{animation-duration:8s}
.pond-reed-motion{position:absolute;z-index:2;width:8px;height:68px;border-radius:60% 60% 20% 20%;background:rgba(45,113,44,.42);transform-origin:center bottom;pointer-events:none;animation:pondReedSway 3.2s ease-in-out infinite}.reed-motion-a{right:19%;top:37%}.reed-motion-b{right:17.4%;top:39%;height:57px;animation-delay:-1.25s}@keyframes pondReedSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
.pond-stage-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .8s ease;background:radial-gradient(circle at 50% 66%,rgba(152,243,255,.15),transparent 35%),radial-gradient(circle at 65% 25%,rgba(255,234,124,.12),transparent 30%)}.pond-scene-wrap[data-pond-stage="2"] .pond-stage-overlay{opacity:.35}.pond-scene-wrap[data-pond-stage="3"] .pond-stage-overlay{opacity:.62}.pond-scene-wrap[data-pond-stage="4"] .pond-stage-overlay{opacity:1}
.pond-hotspot{position:absolute;z-index:10;width:auto;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;cursor:pointer;overflow:visible;filter:none!important;opacity:1!important;transition:transform .16s ease}.pond-hotspot:hover{transform:translateY(-3px);box-shadow:none}.pond-pin-icon{width:39px;height:39px;display:grid;place-items:center;border:3px solid #17222b;border-radius:50%;background:#fff7d9;box-shadow:3px 3px 0 rgba(23,34,43,.5);font-size:19px;transition:transform .2s ease,background .2s ease}.pond-hotspot:hover .pond-pin-icon{transform:scale(1.08);background:#ffd85f}.pond-hotspot[data-level="0"] .pond-pin-icon{background:#c9c2ae;filter:saturate(.4)}.pond-pin-label{position:absolute;left:50%;bottom:47px;min-width:145px;padding:8px 9px;border:2px solid #17222b;border-radius:9px;background:rgba(255,250,230,.97);box-shadow:3px 3px 0 rgba(23,34,43,.34);transform:translateX(-50%) translateY(5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.pond-hotspot:hover .pond-pin-label,.pond-hotspot:focus-visible .pond-pin-label{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.pond-pin-label strong{display:block;font-family:'Fredoka',sans-serif;font-size:13px;color:#17222b;white-space:nowrap}.pond-pin-label small{display:flex;justify-content:space-between;margin-top:4px;gap:10px;font-size:9px;color:#526b72}.mini-progress{display:block;height:5px;margin-top:6px;border:1px solid #17222b;border-radius:99px;background:#dce7df;overflow:hidden}.mini-progress i{display:block;width:0;height:100%;background:#32b866}.hotspot-house{left:12%;top:44%}.hotspot-mill{left:34%;top:35%}.hotspot-bridge{left:58%;top:32%}.hotspot-reeds{right:16%;top:37%}.hotspot-lily{left:31%;bottom:14%}.hotspot-dock{right:9%;bottom:18%}.hotspot-decor{right:30%;bottom:8%}
.pond-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding:16px;background:#c8e795}.pond-module{background:#fffaf0;border:2px solid #17222b;border-radius:14px;padding:16px;box-shadow:4px 4px 0 rgba(23,34,43,.18)}.pond-module-kicker{margin-bottom:5px;font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:.13em;color:#4b6f76}.pond-module h3{margin:0 0 13px;font-family:'Bangers','Fredoka',sans-serif;font-size:25px;letter-spacing:.03em}.pond-big{font-family:'Orbitron',sans-serif;font-size:30px;font-weight:800}.pond-muted{font-size:10px;color:#61747b}.pond-stat-line{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #dde3d9;font-size:11px}.pond-stat-line strong{font-family:'Orbitron',sans-serif;font-size:10px}.pond-formula{margin-top:12px;padding:10px;border:1px solid #bfd7c7;border-radius:9px;background:#e8f5ec;color:#40555c;font-size:10px;line-height:1.5}.pond-action{width:100%;margin-top:12px;border:2px solid #17222b;border-radius:8px;padding:11px 14px;background:#26bb63;color:white;font-family:'Orbitron',sans-serif;font-size:10px;font-weight:800;box-shadow:3px 3px 0 #17222b;cursor:pointer}.pond-action:disabled{opacity:.5;cursor:not-allowed}.pond-progress{height:13px;border:2px solid #17222b;border-radius:99px;background:#dce8e1;overflow:hidden}.pond-progress i{display:block;height:100%;background:#2db961;width:0%}.pond-status{min-height:18px;margin-top:7px;font-size:10px}.pond-status.ok{color:#14773c}.pond-status.error{color:#a62626}.pond-notice{margin:14px;padding:12px;border:2px dashed #17222b;border-radius:10px;background:#fff8d9;font-size:11px;line-height:1.5}
.pond-upgrades{padding:4px 16px 18px;background:#c8e795}.pond-upgrades-head{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:6px 0 12px}.pond-upgrades-head h3{margin:0;font-family:'Bangers','Fredoka',sans-serif;font-size:27px}.pond-upgrades-head small{color:#536a70;font-size:10px}.pond-upgrade-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.pond-upgrade-card{min-width:0;padding:11px;border:2px solid #17222b;border-radius:11px;background:#fffaf0;box-shadow:3px 3px 0 rgba(23,34,43,.16);transition:transform .16s ease,box-shadow .16s ease}.pond-upgrade-card:hover{transform:translateY(-3px);box-shadow:5px 6px 0 rgba(23,34,43,.2)}.pond-upgrade-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:8px;border:2px solid #17222b;border-radius:9px;background:#d6eff7;font-size:23px}.pond-upgrade-card h4{overflow:hidden;margin:0 0 4px;font-family:'Fredoka',sans-serif;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.pond-upgrade-card .level{font-family:'Orbitron',sans-serif;font-size:8px;color:#566b72}.pond-upgrade-card .yield{margin:8px 0;font-size:10px}.pond-upgrade-card .cost{overflow:hidden;padding:7px;border:1px solid #dfce96;border-radius:6px;background:#fff3c6;font-family:'Orbitron',sans-serif;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.pond-upgrade-card button{width:100%;margin-top:8px;padding:9px 5px;border:2px solid #17222b;border-radius:7px;background:#2fbc64;color:#fff;font-family:'Orbitron',sans-serif;font-size:8px;font-weight:800;cursor:pointer;box-shadow:2px 2px 0 #17222b}.pond-upgrade-card button:hover:not(:disabled){background:#37cc70;transform:translate(-1px,-1px)}.pond-upgrade-card button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1050px){.pond-upgrade-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pond-dashboard{grid-template-columns:1fr 1fr}.pond-dashboard .pond-module:last-child{grid-column:1/-1}}
@media(max-width:700px){.pond-game{padding:0 9px}.pond-game-head{align-items:flex-start;flex-direction:column}.pond-game-bal{width:100%}.pond-chip{flex:1}.pond-scene-wrap{min-height:420px}.pond-dashboard{grid-template-columns:1fr}.pond-dashboard .pond-module:last-child{grid-column:auto}.pond-upgrade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pond-pin-label{display:none}}

/* ============================================================
   LIVE STRUCTURE LABELS — cover the baked labels in pond-scene.png
   The scene art contains sample level text, so these cards sit directly
   over it and are fed by pond.js / on-chain state.
   ============================================================ */
.pond-hotspot{
  width:160px !important;
  height:58px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
.pond-hotspot:hover{ transform:translateY(-2px) !important; }
.pond-hotspot .pond-pin-icon{ display:none !important; }
.pond-hotspot .pond-pin-label{
  position:absolute !important;
  inset:0 !important;
  min-width:0 !important;
  width:100% !important;
  height:100% !important;
  padding:9px 11px !important;
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  background:rgba(255,250,230,.97) !important;
  border:2px solid #17222b !important;
  border-radius:9px !important;
  box-shadow:3px 3px 0 rgba(23,34,43,.30) !important;
  pointer-events:none !important;
}
.pond-hotspot .pond-pin-label strong{
  font-size:13px !important;
  line-height:1.05 !important;
}
.pond-hotspot .pond-pin-label small{
  margin-top:4px !important;
  font-size:8px !important;
}
.pond-hotspot .mini-progress{
  height:5px !important;
  margin-top:5px !important;
}

/* Match the seven baked sample plaques so none of their fake LV numbers show. */
.hotspot-house{ left:0.3% !important; top:24.2% !important; }
.hotspot-mill{ left:20.1% !important; top:16.3% !important; }
.hotspot-bridge{ left:51.5% !important; top:16.5% !important; }
.hotspot-reeds{ left:auto !important; right:1.7% !important; top:24.0% !important; width:170px !important; }
.hotspot-lily{ left:20.8% !important; top:auto !important; bottom:20.4% !important; width:164px !important; }
.hotspot-dock{ left:auto !important; right:-0.2% !important; top:55.7% !important; width:145px !important; }
.hotspot-decor{ left:auto !important; right:24.3% !important; top:auto !important; bottom:7.0% !important; width:154px !important; }

/* Level zero looks intentionally run-down, but the text remains readable. */
.pond-hotspot[data-level="0"] .pond-pin-label{
  background:rgba(222,216,197,.97) !important;
  filter:saturate(.55) brightness(.95);
}
.pond-hotspot[data-level="0"] .mini-progress i{ width:0 !important; }

@media(max-width:700px){
  .pond-hotspot{ transform:scale(.78) !important; transform-origin:top left !important; }
  .pond-hotspot:hover{ transform:scale(.78) translateY(-2px) !important; }
  .hotspot-reeds,.hotspot-dock,.hotspot-decor{ transform-origin:top right !important; }
  .pond-hotspot .pond-pin-label{ display:block !important; }
}

/* ============================================================
   POND V4 — REAL VISUAL PROGRESSION + ALWAYS-ON MOTION
   These overrides intentionally sit last so they win over V2.
   ============================================================ */
.pond-scene-wrap{
  min-height:500px;
  background:#6ebbd1;
  --pond-bright:.72;
  --pond-sat:.58;
  --pond-haze:.52;
  --pond-water-alpha:.22;
  --pond-life:0;
}
.pond-scene-bg{
  z-index:0;
  transform:scale(1.01);
  filter:saturate(var(--pond-sat)) brightness(var(--pond-bright)) contrast(.96) sepia(.12);
  transition:filter 1s ease,transform 1s ease;
}
.pond-scene-wrap[data-pond-stage="0"]{--pond-bright:.70;--pond-sat:.52;--pond-haze:.64;--pond-water-alpha:.12;--pond-life:0}
.pond-scene-wrap[data-pond-stage="1"]{--pond-bright:.79;--pond-sat:.68;--pond-haze:.50;--pond-water-alpha:.24;--pond-life:.18}
.pond-scene-wrap[data-pond-stage="2"]{--pond-bright:.88;--pond-sat:.84;--pond-haze:.35;--pond-water-alpha:.38;--pond-life:.40}
.pond-scene-wrap[data-pond-stage="3"]{--pond-bright:.96;--pond-sat:.98;--pond-haze:.20;--pond-water-alpha:.52;--pond-life:.64}
.pond-scene-wrap[data-pond-stage="4"]{--pond-bright:1.02;--pond-sat:1.08;--pond-haze:.08;--pond-water-alpha:.64;--pond-life:.82}
.pond-scene-wrap[data-pond-stage="5"]{--pond-bright:1.06;--pond-sat:1.16;--pond-haze:0;--pond-water-alpha:.75;--pond-life:1}

/* Live status badge makes the global visual stage obvious. */
.pond-scene-status{
  position:absolute;left:14px;bottom:14px;z-index:25;min-width:148px;
  padding:8px 11px;border:2px solid #17222b;border-radius:10px;
  background:rgba(255,250,230,.94);box-shadow:3px 3px 0 rgba(23,34,43,.32);
  pointer-events:none;backdrop-filter:blur(3px)
}
.pond-scene-status span{display:block;font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:.14em;color:#62767d}
.pond-scene-status strong{display:block;margin-top:2px;font-family:'Fredoka',sans-serif;font-size:14px;color:#17222b}

/* The murky/grimy layer actually disappears as the pond improves. */
.pond-scene-wrap::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(70,58,36,.18),transparent 42%),
    radial-gradient(ellipse at 50% 72%,rgba(92,78,39,.48),transparent 52%),
    repeating-linear-gradient(104deg,rgba(70,64,44,.08) 0 2px,transparent 2px 16px);
  opacity:var(--pond-haze);transition:opacity 1s ease
}
.pond-scene-wrap::after{
  content:"";position:absolute;left:11%;right:7%;top:49%;bottom:2%;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(126,241,255,.05),rgba(100,223,255,.28));
  mix-blend-mode:screen;opacity:var(--pond-water-alpha);transition:opacity 1s ease;
  animation:pondWaterGlow 4.5s ease-in-out infinite
}
@keyframes pondWaterGlow{0%,100%{transform:translateY(0);filter:brightness(.95)}50%{transform:translateY(2px);filter:brightness(1.12)}}

/* Moving clouds make the scene feel alive even before upgrades. */
.pond-sky-motion{position:absolute;inset:0 0 48% 0;z-index:2;overflow:hidden;pointer-events:none}
.cloud{position:absolute;width:70px;height:18px;border-radius:999px;background:rgba(255,255,255,.38);filter:blur(.3px);opacity:.38}
.cloud::before,.cloud::after{content:"";position:absolute;border-radius:50%;background:inherit}
.cloud::before{width:26px;height:26px;left:12px;bottom:2px}.cloud::after{width:34px;height:34px;left:31px;bottom:0}
.cloud-a{top:12%;left:-12%;animation:pondCloudA 32s linear infinite}.cloud-b{top:27%;left:-18%;transform:scale(.72);animation:pondCloudB 44s linear infinite 5s}
@keyframes pondCloudA{to{left:110%}}@keyframes pondCloudB{to{left:108%}}

/* Water motion — more visible than V2 and independent from the base image. */
.pond-water-motion{z-index:4;left:18%;right:8%;top:47%;bottom:5%;opacity:calc(.25 + var(--pond-life)*.5)}
.pond-water-motion i{height:3px;background:rgba(255,255,255,.82);box-shadow:0 0 6px rgba(143,238,255,.28);animation:pondWaterMove 3.2s ease-in-out infinite}
.pond-water-motion i:nth-child(1){width:100px;left:5%;top:25%}.pond-water-motion i:nth-child(2){width:56px;left:31%;top:44%;animation-delay:-.6s}.pond-water-motion i:nth-child(3){width:126px;right:8%;top:29%;animation-delay:-1.2s}.pond-water-motion i:nth-child(4){width:68px;right:36%;bottom:17%;animation-delay:-1.8s}.pond-water-motion i:nth-child(5){width:42px;left:54%;top:18%;animation-delay:-2.2s}.pond-water-motion i:nth-child(6){width:84px;left:18%;bottom:9%;animation-delay:-2.7s}
@keyframes pondWaterMove{0%,100%{transform:translateX(-14px) scaleX(.75);opacity:.18}50%{transform:translateX(16px) scaleX(1.18);opacity:.95}}
.pond-ripple{z-index:5;border-bottom-width:3px;animation:pondRipple 2.2s ease-out infinite}
.ripple-d{left:16%;top:78%;animation-delay:-.55s}
@keyframes pondRipple{0%{transform:scale(.45);opacity:0}25%{opacity:.7}100%{transform:scale(1.65);opacity:0}}

/* Extra swimming ducks only arrive as the pond becomes healthier. */
.pond-swimmer{position:absolute;z-index:6;width:36px;height:22px;opacity:0;pointer-events:none;transition:opacity .7s ease;filter:drop-shadow(1px 2px 0 rgba(18,55,69,.25))}
.pond-swimmer .duck-body{position:absolute;left:5px;bottom:2px;width:22px;height:12px;border-radius:55% 55% 48% 48%;background:#ffd84d;border:2px solid #6c4d11}
.pond-swimmer .duck-head{position:absolute;left:20px;top:0;width:12px;height:12px;border-radius:50%;background:#ffe06b;border:2px solid #6c4d11}
.pond-swimmer .duck-beak{position:absolute;left:30px;top:6px;width:8px;height:4px;border-radius:2px;background:#ee8d2b;border:1px solid #704413}
.swimmer-a{left:15%;top:64%;animation:duckSwimA 18s linear infinite}.swimmer-b{right:5%;top:72%;transform:scale(.82) scaleX(-1);animation:duckSwimB 24s linear infinite 3s}
.pond-scene-wrap[data-pond-stage="2"] .pond-swimmer{opacity:.45}.pond-scene-wrap[data-pond-stage="3"] .pond-swimmer{opacity:.72}.pond-scene-wrap[data-pond-stage="4"] .pond-swimmer,.pond-scene-wrap[data-pond-stage="5"] .pond-swimmer{opacity:1}
@keyframes duckSwimA{0%{transform:translateX(-140px) translateY(0)}48%{transform:translateX(720px) translateY(-5px)}50%{transform:translateX(720px) translateY(-5px) scaleX(-1)}98%{transform:translateX(-140px) translateY(2px) scaleX(-1)}100%{transform:translateX(-140px) translateY(0)}}
@keyframes duckSwimB{0%{right:-5%;transform:scale(.82) scaleX(-1)}100%{right:95%;transform:scale(.82) scaleX(-1)}}

/* Decay is now much more visible at zero and progressively clears. */
.pond-decay-layer{z-index:7;opacity:1;transition:opacity .8s ease}
.pond-scene-wrap[data-pond-stage="0"] .pond-decay-layer{opacity:1}
.pond-scene-wrap[data-pond-stage="1"] .pond-decay-layer{opacity:.82}
.pond-scene-wrap[data-pond-stage="2"] .pond-decay-layer{opacity:.52}
.pond-scene-wrap[data-pond-stage="3"] .pond-decay-layer{opacity:.25}
.pond-scene-wrap[data-pond-stage="4"] .pond-decay-layer{opacity:.08}
.pond-scene-wrap[data-pond-stage="5"] .pond-decay-layer{opacity:0}
.broken-board{height:13px;background:#624024;border-color:#24170f}.pond-mud{background:radial-gradient(ellipse at center,rgba(77,56,28,.78),rgba(77,56,28,.44) 48%,transparent 73%)}

/* Structure FX share a tier system: 0 ruined → 5 masterwork. */
.pond-structure-fx{position:absolute;z-index:8;pointer-events:none;opacity:.32;transition:opacity .6s ease,filter .6s ease,transform .6s ease}
.pond-structure-fx[data-tier="0"]{opacity:.12;filter:grayscale(.8)}
.pond-structure-fx[data-tier="1"]{opacity:.38}.pond-structure-fx[data-tier="2"]{opacity:.58}.pond-structure-fx[data-tier="3"]{opacity:.78}.pond-structure-fx[data-tier="4"]{opacity:.92}.pond-structure-fx[data-tier="5"]{opacity:1;filter:drop-shadow(0 0 6px rgba(255,225,104,.58))}

/* HOUSE: chimney smoke + warm window light. */
.fx-house{left:3.5%;top:30%;width:18%;height:31%}
.smoke{position:absolute;left:55%;top:2%;width:15px;height:15px;border-radius:50%;background:rgba(245,245,235,.62);animation:chimneySmoke 3.4s ease-in infinite}
.smoke-2{animation-delay:-1.6s;left:58%}
.house-light{position:absolute;left:40%;top:49%;width:15px;height:14px;border-radius:3px;background:#ffd458;box-shadow:0 0 10px 4px rgba(255,202,73,.72);opacity:0;animation:lampPulse 2.4s ease-in-out infinite}
.fx-house[data-tier="0"] .smoke,.fx-house[data-tier="1"] .smoke{display:none}.fx-house[data-tier="3"] .house-light,.fx-house[data-tier="4"] .house-light,.fx-house[data-tier="5"] .house-light{opacity:1}
@keyframes chimneySmoke{0%{transform:translate(0,12px) scale(.45);opacity:0}25%{opacity:.55}100%{transform:translate(17px,-34px) scale(1.55);opacity:0}}
@keyframes lampPulse{50%{filter:brightness(1.25)}}

/* MILL: the wheel only starts once the mill has a level; speed increases. */
.fx-mill{left:22.2%;top:22.6%;width:21%;height:40%}
.fx-mill .pond-wheel-motion{left:48%;top:38%;width:79px;height:79px;opacity:1;animation:none;transform-origin:50% 50%}
.fx-mill[data-tier="1"] .pond-wheel-motion{animation:pondWheelSpin 15s linear infinite}
.fx-mill[data-tier="2"] .pond-wheel-motion{animation:pondWheelSpin 10s linear infinite}
.fx-mill[data-tier="3"] .pond-wheel-motion{animation:pondWheelSpin 7.5s linear infinite}
.fx-mill[data-tier="4"] .pond-wheel-motion{animation:pondWheelSpin 5.5s linear infinite}
.fx-mill[data-tier="5"] .pond-wheel-motion{animation:pondWheelSpin 4.2s linear infinite}
.fx-mill[data-tier="0"] .pond-wheel-motion{opacity:.10;transform:rotate(-14deg)}
.mill-splash{position:absolute;left:68%;top:72%;width:14px;height:5px;border-radius:50%;border-top:2px solid rgba(224,252,255,.8);opacity:0;animation:splashPop 1.4s ease-out infinite}.splash-2{left:74%;top:68%;animation-delay:-.65s}
.fx-mill[data-tier="2"] .mill-splash,.fx-mill[data-tier="3"] .mill-splash,.fx-mill[data-tier="4"] .mill-splash,.fx-mill[data-tier="5"] .mill-splash{opacity:1}
@keyframes splashPop{0%{transform:scale(.45) translateY(5px);opacity:0}35%{opacity:.9}100%{transform:scale(1.4) translateY(-10px);opacity:0}}

/* REEDS: more stalks become lively as levels rise. */
.fx-reeds{right:12.8%;top:26%;width:18%;height:34%}
.fx-reeds .reed{position:absolute;bottom:5%;width:7px;height:62px;border-radius:60% 60% 20% 20%;background:rgba(55,129,45,.72);transform-origin:center bottom;animation:pondReedSway 2.6s ease-in-out infinite}
.fx-reeds .r1{left:15%}.fx-reeds .r2{left:36%;height:72px;animation-delay:-.8s}.fx-reeds .r3{left:57%;height:55px;animation-delay:-1.3s}.fx-reeds .r4{left:75%;height:68px;animation-delay:-1.9s}
.fx-reeds[data-tier="0"] .reed{animation:none;transform:rotate(10deg);opacity:.15}
.fx-reeds[data-tier="1"] .r3,.fx-reeds[data-tier="1"] .r4{display:none}

/* LILIES: actual blooms pop in by tier. */
.fx-lily{left:16%;bottom:4%;width:32%;height:29%}
.bloom{position:absolute;width:16px;height:16px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle,#ffe9f1 0 22%,#ff8fbe 23% 55%,#d75188 56%);box-shadow:0 2px 0 rgba(61,105,54,.35);animation:bloomBob 2.8s ease-in-out infinite;opacity:0}
.b1{left:28%;top:42%}.b2{left:49%;top:62%;animation-delay:-.9s}.b3{left:68%;top:28%;animation-delay:-1.6s}
.fx-lily[data-tier="1"] .b1{opacity:.7}.fx-lily[data-tier="2"] .b1,.fx-lily[data-tier="2"] .b2{opacity:.82}.fx-lily[data-tier="3"] .bloom,.fx-lily[data-tier="4"] .bloom,.fx-lily[data-tier="5"] .bloom{opacity:1}
@keyframes bloomBob{50%{transform:translateY(-4px) rotate(4deg)}}

/* DOCK: flag + lanterns. */
.fx-dock{right:0;top:50%;width:26%;height:41%}
.dock-lamp{position:absolute;width:11px;height:15px;border-radius:3px;background:#ffe77b;box-shadow:0 0 12px 5px rgba(255,221,91,.72);opacity:0;animation:lampPulse 2.2s ease-in-out infinite}.lamp-1{left:36%;top:10%}.lamp-2{right:11%;top:8%;animation-delay:-1s}
.dock-flag{position:absolute;right:18%;top:0;width:28px;height:18px;background:#f46c45;border:2px solid #60331f;transform-origin:left center;opacity:0;animation:flagWave 1.1s ease-in-out infinite}
.fx-dock[data-tier="2"] .dock-flag,.fx-dock[data-tier="3"] .dock-flag,.fx-dock[data-tier="4"] .dock-flag,.fx-dock[data-tier="5"] .dock-flag{opacity:1}
.fx-dock[data-tier="3"] .dock-lamp,.fx-dock[data-tier="4"] .dock-lamp,.fx-dock[data-tier="5"] .dock-lamp{opacity:1}
@keyframes flagWave{0%,100%{transform:skewY(-4deg) scaleX(.92)}50%{transform:skewY(5deg) scaleX(1.04)}}

/* BRIDGE: warm lamps appear later. */
.fx-bridge{left:45%;top:18%;width:27%;height:29%}
.bridge-lamp{position:absolute;width:10px;height:12px;border-radius:2px;background:#ffdf6d;box-shadow:0 0 13px 5px rgba(255,217,82,.74);opacity:0;animation:lampPulse 2.5s ease-in-out infinite}.bl1{left:14%;top:33%}.bl2{right:9%;top:31%;animation-delay:-1.2s}
.fx-bridge[data-tier="3"] .bridge-lamp,.fx-bridge[data-tier="4"] .bridge-lamp,.fx-bridge[data-tier="5"] .bridge-lamp{opacity:1}

/* DECOR: fireflies are the late-game flex. */
.fx-decor{right:20%;bottom:0;width:25%;height:31%}
.firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff58d;box-shadow:0 0 8px 3px rgba(255,240,85,.9);opacity:0;animation:fireflyDrift 4.2s ease-in-out infinite}.f1{left:20%;top:50%}.f2{left:48%;top:31%;animation-delay:-1s}.f3{left:67%;top:62%;animation-delay:-2s}.f4{left:80%;top:22%;animation-delay:-3s}
.fx-decor[data-tier="4"] .firefly,.fx-decor[data-tier="5"] .firefly{opacity:1}
@keyframes fireflyDrift{0%,100%{transform:translate(0,0);filter:brightness(.8)}35%{transform:translate(10px,-8px);filter:brightness(1.35)}70%{transform:translate(-7px,-15px);filter:brightness(.9)}}

/* Stage overlay becomes positive late-game light, not just a static wash. */
.pond-stage-overlay{z-index:3;background:radial-gradient(circle at 52% 64%,rgba(154,244,255,.34),transparent 34%),radial-gradient(circle at 70% 22%,rgba(255,230,107,.28),transparent 29%);animation:stageShimmer 5s ease-in-out infinite}
.pond-scene-wrap[data-pond-stage="0"] .pond-stage-overlay{opacity:0}.pond-scene-wrap[data-pond-stage="1"] .pond-stage-overlay{opacity:.08}.pond-scene-wrap[data-pond-stage="2"] .pond-stage-overlay{opacity:.18}.pond-scene-wrap[data-pond-stage="3"] .pond-stage-overlay{opacity:.38}.pond-scene-wrap[data-pond-stage="4"] .pond-stage-overlay{opacity:.62}.pond-scene-wrap[data-pond-stage="5"] .pond-stage-overlay{opacity:.9}
@keyframes stageShimmer{50%{filter:brightness(1.18)}}

/* Upgrade celebration. */
.pond-scene-wrap.pond-upgrade-flash{animation:pondUpgradeFlash 1.2s ease-out}
@keyframes pondUpgradeFlash{0%{box-shadow:inset 0 0 0 0 rgba(255,229,80,0)}18%{box-shadow:inset 0 0 45px 12px rgba(255,229,80,.75)}100%{box-shadow:inset 0 0 0 0 rgba(255,229,80,0)}}
.pond-structure-fx.just-upgraded{animation:structurePop 1.1s ease-out}
.pond-hotspot.just-upgraded .pond-pin-label{animation:labelPop 1.1s ease-out}
@keyframes structurePop{0%{transform:scale(1);filter:brightness(1)}28%{transform:scale(1.09);filter:brightness(1.65) drop-shadow(0 0 14px rgba(255,228,68,.95))}100%{transform:scale(1);filter:none}}
@keyframes labelPop{0%{transform:scale(1)}30%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Live plaques continue to cover the fake baked level text, but now show tier color too. */
.pond-hotspot{z-index:20!important}
.pond-hotspot .pond-pin-label{transition:background .45s ease,box-shadow .45s ease,filter .45s ease!important}
.pond-hotspot[data-tier="0"] .pond-pin-label{background:rgba(211,204,184,.98)!important;filter:saturate(.45) brightness(.92)}
.pond-hotspot[data-tier="1"] .pond-pin-label{background:rgba(233,225,197,.98)!important}
.pond-hotspot[data-tier="2"] .pond-pin-label{background:rgba(241,247,213,.98)!important}
.pond-hotspot[data-tier="3"] .pond-pin-label{background:rgba(222,249,226,.98)!important}
.pond-hotspot[data-tier="4"] .pond-pin-label{background:rgba(214,241,255,.98)!important;box-shadow:3px 3px 0 rgba(23,34,43,.30),0 0 12px rgba(74,183,239,.24)!important}
.pond-hotspot[data-tier="5"] .pond-pin-label{background:rgba(255,245,190,.98)!important;box-shadow:3px 3px 0 rgba(23,34,43,.30),0 0 14px rgba(255,205,60,.46)!important}
.pond-hotspot .mini-progress i{transition:width .7s cubic-bezier(.2,.8,.2,1)!important}

/* Upgrade cards echo visual tier. */
.pond-upgrade-card[data-tier="3"]{background:#f5fff3}.pond-upgrade-card[data-tier="4"]{background:#f0fbff}.pond-upgrade-card[data-tier="5"]{background:#fff7cf;box-shadow:3px 3px 0 rgba(23,34,43,.16),0 0 14px rgba(255,207,68,.28)}

@media(max-width:900px){
  .pond-scene-wrap{min-height:430px}
  .pond-structure-fx{transform:scale(.86);transform-origin:center center}
  .pond-scene-status{left:9px;bottom:9px;min-width:125px;padding:6px 8px}
  .pond-scene-status strong{font-size:12px}
}
@media(max-width:700px){
  .pond-scene-wrap{min-height:360px}
  .pond-structure-fx{transform:scale(.72)}
  .pond-scene-status{display:none}
  .pond-hotspot{transform:scale(.66)!important}
  .pond-hotspot:hover{transform:scale(.66) translateY(-2px)!important}
}

/* QOL: use the baked-in static water wheel only; remove the fake CSS spinner. */
.pond-wheel-motion{display:none!important}
/* Batch/max structure upgrades */
.pond-upgrade-batch{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}.pond-upgrade-batch button{border:2px solid #17222b;border-radius:7px;background:#fffaf0;padding:8px 5px;font-family:'Orbitron',sans-serif;font-size:7px;font-weight:900;cursor:pointer;box-shadow:2px 2px 0 rgba(23,34,43,.35)}.pond-upgrade-batch button:last-child{background:#ffd85e}.pond-upgrade-batch button:hover{transform:translate(-1px,-1px)}.pond-upgrade-batch button:disabled{opacity:.42;cursor:not-allowed;transform:none}
