*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#0e3450; --ink2:#17506f;
  --cream:#fffaf0; --white:#fff;
  --sand:#ffe3a8; --coral:#ff6b81; --yellow:#ffcf3f; --green:#57d977;
  --aqua:#3fc2ef; --deep:#0b6a99;
  --disp:'Luckiest Guy',system-ui,sans-serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --out:3px solid var(--ink);
  --sh:6px 6px 0 var(--ink);
  --sh-sm:4px 4px 0 var(--ink);
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;
  background:linear-gradient(180deg,#9ae6ff 0%,#6fd3f5 14%,#39b6e4 38%,#1f9bcf 70%,#127aa8 100%);
  background-attachment:fixed;min-height:100vh}
img,canvas{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ---------- CLOUDS ---------- */
.clouds{position:fixed;inset:0 0 auto 0;height:60vh;z-index:0;pointer-events:none;overflow:hidden}
.clouds i{position:absolute;display:block;background:rgba(255,255,255,.85);border-radius:100px;
  box-shadow:0 0 0 3px rgba(14,52,80,.10)}
.clouds i::before,.clouds i::after{content:'';position:absolute;background:inherit;border-radius:100px}
.c1{width:150px;height:36px;top:11%;left:-180px;animation:cloud 58s linear infinite}
.c1::before{width:70px;height:60px;top:-26px;left:26px}
.c1::after{width:52px;height:44px;top:-18px;left:84px}
.c2{width:110px;height:28px;top:26%;left:-160px;animation:cloud 82s linear infinite;animation-delay:-20s;opacity:.75}
.c2::before{width:56px;height:46px;top:-20px;left:20px}
.c3{width:190px;height:40px;top:6%;left:-240px;animation:cloud 104s linear infinite;animation-delay:-55s;opacity:.6}
.c3::before{width:86px;height:70px;top:-32px;left:40px}
@keyframes cloud{to{transform:translateX(calc(100vw + 320px))}}

/* ---------- NAV ---------- */
#nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;gap:14px;
  padding:11px 18px;background:var(--cream);border-bottom:var(--out)}
.brand{font-family:var(--disp);font-size:21px;letter-spacing:1px;color:var(--ink);
  text-shadow:2px 2px 0 var(--yellow)}
#nav nav{display:flex;gap:16px;margin-left:auto;font-size:12px;font-weight:800;letter-spacing:.1em}
#nav nav a{color:var(--ink2);transition:color .15s}
#nav nav a:hover{color:var(--coral)}
.snd{font-family:var(--sans);font-weight:800;font-size:11px;padding:8px 10px;background:var(--white);
  color:var(--ink);border:2px solid var(--ink);border-radius:8px;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.snd:active{transform:translate(2px,2px);box-shadow:none}

/* ---------- HERO ---------- */
.hero{position:relative;z-index:5;padding:90px 18px 34px;min-height:100svh;display:flex;align-items:center}
.heroGrid{width:100%;max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}

.heroText{background:rgba(255,250,240,.93);border:var(--out);border-radius:20px;box-shadow:var(--sh);
  padding:26px 24px 24px}
.word{font-family:var(--disp);font-size:clamp(40px,6.6vw,74px);line-height:.95;letter-spacing:1px;color:var(--white);
  -webkit-text-stroke:3px var(--ink);paint-order:stroke fill;
  text-shadow:0 6px 0 rgba(14,52,80,.18)}
.word span{color:var(--yellow)}
.tick{font-family:var(--disp);font-size:18px;letter-spacing:2px;color:var(--coral);margin-top:8px}
.pitch{margin-top:12px;font-size:15.5px;line-height:1.62;color:var(--ink2)}

.castwrap{margin-top:20px}
.cast{font-family:var(--disp);font-size:20px;letter-spacing:1px;padding:16px 26px;cursor:pointer;
  color:var(--ink);background:var(--yellow);border:var(--out);border-radius:14px;box-shadow:var(--sh);
  transition:transform .08s,box-shadow .08s}
.cast:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}
.cast:active{transform:translate(6px,6px);box-shadow:0 0 0 var(--ink)}
.cast.hook{background:var(--coral);color:var(--white);animation:hookp .5s ease-out infinite}
@keyframes hookp{0%{box-shadow:6px 6px 0 var(--ink),0 0 0 0 rgba(255,107,129,.7)}
  100%{box-shadow:6px 6px 0 var(--ink),0 0 0 24px rgba(255,107,129,0)}}
.cast:disabled{opacity:.6;cursor:default}
.casthint{font-size:12.5px;color:#5b7f97;margin-top:10px;font-weight:600}

.cabar{margin-top:16px;display:inline-flex;align-items:center;gap:9px;cursor:pointer;padding:8px 11px;
  border:2px dashed var(--ink2);border-radius:10px;background:var(--white);font-size:12.5px;max-width:100%}
.calab{font-family:var(--disp);font-size:13px;color:var(--deep);letter-spacing:1px}
.caval{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.cacopy{font-weight:800;font-size:10px;letter-spacing:.1em;color:var(--coral)}
.herolinks{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

.btn{display:inline-block;font-family:var(--disp);font-size:15px;letter-spacing:.5px;padding:12px 18px;
  border:var(--out);border-radius:12px;color:var(--ink);background:var(--white);cursor:pointer;
  box-shadow:var(--sh-sm);transition:transform .08s,box-shadow .08s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn:active{transform:translate(4px,4px);box-shadow:none}
.btn.primary{background:var(--green)}
.btn.ghost{background:var(--sand)}

/* ---------- THE POOL ---------- */
.castMob{display:none;width:100%;margin-top:12px}
.castMobHint{display:none;text-align:center;background:rgba(255,250,240,.9);color:var(--ink2);
  border:2px solid var(--ink);border-radius:10px;padding:7px 12px;width:fit-content;max-width:100%;
  margin:10px auto 0;font-weight:700}
@media(max-width:900px){
  .castMob,.castMobHint{display:block}
  .heroText .castwrap{display:none}
}
.heroPool{position:relative}
#hookTag{position:absolute;left:50%;top:16%;transform:translate(-50%,-50%) scale(.6);opacity:0;
  font-family:var(--disp);font-size:clamp(20px,4.6vw,34px);letter-spacing:1px;color:var(--white);
  background:var(--coral);border:3px solid var(--ink);border-radius:14px;padding:8px 18px;
  box-shadow:5px 5px 0 var(--ink);pointer-events:none;z-index:8;white-space:nowrap}
#hookTag.on{animation:hookTagIn .3s cubic-bezier(.2,1.6,.4,1) forwards,hookTagPulse .5s .3s ease-in-out infinite}
@keyframes hookTagIn{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes hookTagPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.07)}}
.poolFrame{cursor:pointer;position:relative;border:5px solid var(--ink);border-radius:22px;overflow:hidden;
  box-shadow:8px 8px 0 var(--ink),0 0 0 7px var(--white) inset;background:var(--aqua);
  aspect-ratio:1/1;max-width:540px;margin:0 auto}
.poolFrame img{width:100%;height:100%;object-fit:cover}
.poolFrame.biting{animation:poolShake .28s ease-in-out infinite}
.poolFrame.biting::after{content:'';position:absolute;inset:0;border-radius:16px;pointer-events:none;z-index:7;
  box-shadow:inset 0 0 0 6px var(--coral),inset 0 0 46px rgba(255,107,129,.5);
  animation:poolGlow .5s ease-in-out infinite}
@keyframes poolShake{0%,100%{transform:translate(0,0)}25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}
@keyframes poolGlow{0%,100%{opacity:.65}50%{opacity:1}}
.caustic{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:.35;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.5) 0 3px,transparent 3px 16px);
  animation:caus 7s ease-in-out infinite}
@keyframes caus{0%,100%{transform:translateX(0)}50%{transform:translateX(14px)}}
.poolTag{position:absolute;left:10px;bottom:10px;font-family:var(--disp);font-size:13px;letter-spacing:1px;
  background:var(--cream);border:2px solid var(--ink);border-radius:8px;padding:5px 10px;box-shadow:2px 2px 0 var(--ink)}
.rodsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rodstick{stroke:#7a4b22;stroke-width:1.4;stroke-linecap:round;fill:none;
  filter:drop-shadow(0 0 .4px rgba(14,52,80,.8))}
.rodline{stroke:rgba(20,40,55,.8);stroke-width:.45;fill:none;transition:opacity .2s}

#bobber{position:absolute;left:50%;top:62%;margin:-18px 0 0 -13px;width:26px;height:36px;opacity:0;
  transition:opacity .2s;filter:drop-shadow(0 3px 0 rgba(14,52,80,.35));z-index:5}
#bobber.on{opacity:1;animation:bob 2.4s ease-in-out infinite}
#bobber.bite{animation:bite .24s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes bite{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
.bStick{position:absolute;left:12px;top:0;width:3px;height:10px;background:var(--ink);display:block}
.bTop{position:absolute;left:2px;top:10px;width:22px;height:12px;background:var(--coral);
  border:2px solid var(--ink);border-bottom:0;border-radius:11px 11px 0 0;display:block}
.bBot{position:absolute;left:2px;top:22px;width:22px;height:12px;background:var(--white);
  border:2px solid var(--ink);border-top:0;border-radius:0 0 11px 11px;display:block}

#rings{position:absolute;inset:0;pointer-events:none;z-index:4}
.ring{position:absolute;width:26px;height:12px;margin:-6px 0 0 -13px;
  border:2px solid rgba(255,255,255,.9);border-radius:50%;animation:ring 1.6s ease-out forwards}
@keyframes ring{from{transform:scale(.3);opacity:.95}to{transform:scale(6);opacity:0}}
.drop{position:absolute;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;
  background:#fff;border:1px solid rgba(14,52,80,.45)}

#flash{position:absolute;left:50%;top:50%;width:200px;height:200px;margin-left:-100px;margin-top:-100px;
  border-radius:50%;pointer-events:none;z-index:5;opacity:0;
  background:radial-gradient(circle,rgba(255,255,255,.92) 0%,rgba(255,246,200,.55) 34%,rgba(255,255,255,0) 68%)}
#flash.on{animation:flash .9s ease-out forwards}
@keyframes flash{0%{opacity:0;transform:scale(.3)}22%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.25)}}

#hookFish{position:absolute;left:50%;top:60%;width:42%;max-width:250px;height:auto;
  transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none;z-index:6;
  filter:drop-shadow(0 8px 0 rgba(14,52,80,.22))}
#hookFish.on{animation:fishUp .95s cubic-bezier(.2,1.25,.35,1) forwards}
#hookFish.big{width:58%;max-width:330px}
@keyframes fishUp{
  0%{transform:translate(-50%,30%) scale(.28) rotate(-16deg);opacity:0}
  20%{opacity:1}
  55%{transform:translate(-50%,-88%) scale(1.07) rotate(10deg);opacity:1}
  72%{transform:translate(-50%,-78%) scale(1) rotate(-7deg);opacity:1}
  87%{transform:translate(-50%,-83%) scale(1.03) rotate(4deg);opacity:1}
  100%{transform:translate(-50%,-80%) scale(1) rotate(0deg);opacity:1}
}
#alertMark{position:absolute;left:50%;top:40%;transform:translate(-50%,0) scale(0);font-family:var(--disp);
  font-size:44px;color:var(--yellow);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;
  pointer-events:none;z-index:7}
#alertMark.on{animation:pop .3s cubic-bezier(.2,1.7,.4,1) forwards}
@keyframes pop{to{transform:translate(-50%,-30px) scale(1)}}

#status{margin:14px auto 0;max-width:520px;text-align:center;font-size:14px;font-weight:700;color:var(--ink);
  background:var(--cream);border:2px solid var(--ink);border-radius:12px;padding:9px 14px;
  box-shadow:3px 3px 0 var(--ink);min-height:20px}

/* ---------- TILE MARQUEE ---------- */
.marquee{position:relative;z-index:5;overflow:hidden;white-space:nowrap;background:var(--cream);
  border-top:var(--out);border-bottom:var(--out);padding:12px 0}
.mtrack{display:inline-block;animation:mar 32s linear infinite;font-family:var(--disp);font-size:16px;
  letter-spacing:1px;color:var(--deep)}
.mtrack span{padding:0 18px}
.mtrack span.d{color:var(--coral)}
@keyframes mar{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ---------- SECTIONS ---------- */
.sec{position:relative;z-index:5;max-width:1080px;margin:26px auto;padding:30px 22px 34px;
  background:rgba(255,250,240,.95);border:var(--out);border-radius:22px;box-shadow:var(--sh);
  width:calc(100% - 32px)}
.h2{font-family:var(--disp);font-size:clamp(26px,4.4vw,40px);letter-spacing:1px;margin-bottom:10px;
  color:var(--white);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}
.sub{color:var(--ink2);max-width:720px;line-height:1.65;margin-bottom:22px;font-size:15px}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-bottom:20px}
.stat{background:var(--white);border:var(--out);border-radius:14px;padding:13px 10px;text-align:center;
  box-shadow:var(--sh-sm)}
.stat b{display:block;font-family:var(--disp);font-size:20px;color:var(--deep);margin-bottom:5px;word-break:break-word}
.stat span{font-size:10px;letter-spacing:.14em;color:var(--ink2);font-weight:800}

.bucketlist{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding-right:4px}
.bitem{display:flex;align-items:center;gap:12px;background:var(--white);border:2px solid var(--ink);
  border-left-width:8px;border-radius:12px;padding:9px 12px;animation:slidein .3s ease}
@keyframes slidein{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.bitem img{height:48px;width:auto;flex:0 0 auto}
.bitem .bn{font-family:var(--disp);font-size:14px;letter-spacing:.5px}
.bitem .bw{margin-left:auto;color:var(--ink2);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.empty{color:var(--ink2);font-size:14px;font-style:italic}

.dexgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.dcell{background:var(--white);border:var(--out);border-radius:16px;padding:12px 8px 11px;text-align:center;
  cursor:pointer;box-shadow:var(--sh-sm);transition:transform .1s,box-shadow .1s}
.dcell:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.dimg{height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:7px}
.dimg img{max-height:100%;max-width:100%;width:auto;height:auto}
.dcell .dn{font-family:var(--disp);font-size:13px;letter-spacing:.5px;line-height:1.25}
.dcell .dr{font-size:9px;letter-spacing:.16em;margin-top:6px;color:var(--ink2);font-weight:800}
.dcell.locked{background:#dfeef6}
.dcell.locked .dimg img{filter:brightness(0) opacity(.2)}
.dcell.locked .dn{color:#8aa8b8}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}
.card{background:var(--white);border:var(--out);border-radius:16px;padding:18px;box-shadow:var(--sh-sm)}
.card h3{font-family:var(--disp);font-size:15px;line-height:1.35;color:var(--deep);margin-bottom:10px;letter-spacing:.5px}
.card p{color:var(--ink2);line-height:1.68;font-size:14.5px}

.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.step{background:var(--white);border:var(--out);border-radius:16px;padding:18px;box-shadow:var(--sh-sm)}
.step b{font-family:var(--disp);font-size:26px;color:var(--yellow);-webkit-text-stroke:2px var(--ink);
  paint-order:stroke fill;display:block;margin-bottom:7px}
.step h4{font-size:16px;margin-bottom:7px;font-weight:800}
.step p{color:var(--ink2);line-height:1.65;font-size:14px}

#foot{position:relative;z-index:5;text-align:center;padding:44px 18px 70px}
.fbig{font-family:var(--disp);font-size:clamp(28px,6vw,52px);color:var(--white);letter-spacing:1px;
  margin-bottom:18px;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}
.flinks{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.fnote{color:#0a4664;font-size:13px;font-weight:700}

/* ---------- MODAL ---------- */
.modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:18px;
  background:rgba(9,58,84,.72);backdrop-filter:blur(4px)}
.modal.on{display:flex}
.mbox{position:relative;width:min(420px,100%);background:var(--cream);border:4px solid var(--ink);
  border-radius:22px;padding:22px 20px;text-align:center;box-shadow:10px 10px 0 rgba(14,52,80,.55);
  animation:mIn .32s cubic-bezier(.2,1.4,.4,1);max-height:92svh;overflow-y:auto}
@keyframes mIn{from{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:none}}
.mrar{font-family:var(--disp);font-size:15px;letter-spacing:2px;margin-bottom:10px}
#mImg{width:auto;max-width:100%;margin:0 auto 12px;object-fit:contain;
  filter:drop-shadow(0 6px 0 rgba(14,52,80,.18))}
.mbox h3{font-family:var(--disp);font-size:30px;letter-spacing:1px;margin-bottom:8px;line-height:1.1;
  -webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;color:var(--white)}
.mmeta{font-size:12px;color:var(--ink2);letter-spacing:.1em;margin-bottom:12px;font-weight:800}
.dotsep{margin:0 8px}
.mbox p#mDesc{color:var(--ink2);line-height:1.66;font-size:14px;margin-bottom:18px;text-align:left}
.mbtns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.mbtns .btn{font-size:13px;padding:10px 13px}

/* ---------- COINS ---------- */
#coins{position:fixed;inset:0;z-index:95;pointer-events:none;overflow:hidden}
.coin{position:absolute;width:22px;height:22px;border-radius:50%;border:2px solid var(--ink);
  background:radial-gradient(circle at 34% 32%,#fff3bd,var(--yellow) 60%,#e0a200)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .heroGrid{grid-template-columns:1fr;gap:20px}
  .heroPool{order:-1}
  .poolFrame{max-width:440px}
  .hero{padding-top:82px;min-height:0}
}
@media(max-width:760px){
  #nav{padding:9px 12px;gap:8px}
  #nav nav{gap:11px;font-size:11px}
  .brand{font-size:17px}
  .snd{font-size:10px;padding:7px 8px}
  .heroText{padding:20px 18px}
  .cast{font-size:17px;padding:14px 20px;width:100%}
  .sec{padding:24px 16px 28px;margin:18px auto}
  .word{-webkit-text-stroke-width:2.5px}
}
@media(max-width:430px){
  #nav nav a:nth-child(3){display:none}
  .h2{-webkit-text-stroke-width:2.5px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001s!important;animation-iteration-count:1!important}
}
