/* ── "Sticker Sea" theme (2026-09-25, user-approved preview artifact 3ARHdt4ZizwU8atstXgBoo,
   tab "Sticker Sea · ฟ้าสด": "เอาอันนี้แหละคับ ทำจริงเลย") ─────────────────────────────────
   Replaces the dark Jellyfish Lanterns look in gacha.html's inline <style> with bright blue
   water, white stars, cute die-cut stickers and sticker clouds (art drawn by
   gachaBuildSeaScene() in render.js into #gachaSeaScene). One shared file linked by BOTH
   gacha.html and preview-gacha.html right after their inline <style>, so it wins on source
   order and there's no second copy to keep in sync. Remove the two <link> tags to get the
   Jellyfish look back. The reveal overlay stays deep blue on purpose so the rarity glows still
   read. Tokens are re-pointed on main.gacha-page (light surfaces, dark ink) and put back to
   the light-on-dark values inside the hatch overlay. Not immutable-cached (vercel.json only
   pins site.css/fonts/icons), so no ?v= bump is needed on edits. */
main.gacha-page{
  --gacha-ink:#34508f; --gacha-ink-dim:#6f86b8; --gacha-line:#dbe7fb; --gacha-panel:#ffffff;
  --jl-ink:#34508f; --jl-dim:#6f86b8; --jl-pink:#ff7fb0; --jl-lilac:#5b8ff0; --jl-line:#dbe7fb;
  --ss-card:rgba(255,255,255,.92); --ss-drop:0 5px 0 rgba(90,130,210,.22);
}
.gacha-hatch-overlay{
  --gacha-ink:#eef5ff; --gacha-ink-dim:#b9cdf0; --gacha-line:rgba(255,255,255,.35);
  --jl-ink:#ffffff; --jl-dim:#c9daf7; --jl-line:rgba(255,255,255,.35);
  /* `color` itself must be re-declared: main.gacha-page's dark ink is inherited as a computed
     colour, so re-pointing the token alone left the creature name dark-on-dark (user report). */
  color:var(--gacha-ink);
}
html{background:#4a98ee !important;}
body{background:linear-gradient(180deg,#4a98ee 0%,#68adf4 38%,#8fc5f9 72%,#c9e3ff 100%) fixed !important;}
.gacha-sunrays,.gacha-jellies{display:none;}
.gacha-bubbles::before,.gacha-bubbles::after{display:none;}
main.gacha-page,.gacha-serif,.gacha-page h1,.gacha-egg-name,.gacha-result-name,.gacha-modal h3,.gacha-auth-title,
.gacha-egg-price,.gacha-egg-price b,.gacha-chip,.gacha-qty-btn,.gacha-qty-custom,.gacha-panel-tag,.gacha-cat-count,.gacha-cat-count b,
.gacha-booth-num b,.gacha-secrets-count b,.gacha-sup-rank,.gacha-sup-votes b,.gacha-modal-price b,.gacha-rank-badge,.gacha-egg-sub,
#gachaPanelEggSub,.gacha-tk-item b,.gacha-cat-dupe,.gacha-coll-stats b,.gacha-pull-progress,.gacha-gt-chip{
  font-family:'DBHelvethaica','Kanit',sans-serif; font-style:normal;
}
/* these two carry font-style:italic at higher specificity in the inline block */
.gacha-section-title .gacha-serif,.gacha-panel-head .gacha-serif{font-style:normal;}

/* Sea scene layer */
.gacha-sea-scene{position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden;}
.gs-caustic{position:absolute; left:0; right:0; top:0; width:100%; height:170px;}
.gs-clouds{position:absolute; left:0; right:0; bottom:0; width:100%; height:clamp(170px,26vh,300px);}
.gs-dec{position:absolute;}
.gs-stk{display:block; filter:drop-shadow(0 4px 0 rgba(90,110,170,.18));}
.gs-spark{color:#fff; font-size:22px; opacity:.9;}
.gs-bob{animation:gsBob 4s ease-in-out infinite alternate;}
.gs-bob2{animation:gsBob 5.5s ease-in-out infinite alternate-reverse;}
@keyframes gsBob{to{translate:0 -16px; rotate:4deg;}}
.gs-swim{animation:gsSwim 48s linear infinite;}
@keyframes gsSwim{from{transform:translateX(-25vw);} to{transform:translateX(125vw);}}
@media (max-width:900px){ .gs-side{opacity:.55; scale:.7;} }

/* Bubbles: clear glossy rings instead of pink glow specks */
.gacha-bubble{
  max-width:none; max-height:none; box-shadow:none;
  background:radial-gradient(circle at 34% 30%, rgba(255,255,255,.9) 0 12%, rgba(255,255,255,.2) 13% 60%, rgba(255,255,255,.08) 61%);
  border:2px solid rgba(255,255,255,.95);
}
.gacha-bubble-big{border-width:2.6px; background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.95) 0 9%, rgba(255,255,255,.12) 10% 64%, rgba(255,255,255,.18) 65%);}

/* Header */
.gacha-page header{padding-top:40px;}
.gacha-eyebrow{color:#fff; letter-spacing:.2em; text-shadow:0 2px 0 rgba(40,90,170,.3);}
.gacha-page h1{
  font-weight:700; letter-spacing:.02em; text-transform:none; color:#fff;
  background:none; -webkit-background-clip:border-box; background-clip:border-box;
  text-shadow:0 4px 0 #3f7fd9, 0 0 24px rgba(255,255,255,.4);
  -webkit-text-stroke:0;
}
.gacha-sub{color:#f2f8ff; text-shadow:0 1px 0 rgba(40,90,170,.35);}
.gacha-section-title .gacha-serif{color:#fff; font-weight:700; text-shadow:0 3px 0 rgba(40,90,170,.35);}
.gacha-section-title .gacha-serif::after{background:linear-gradient(90deg,transparent,#fff,#ffb3cf,#fff,transparent); height:3px;}
.gacha-section-title p{color:#f2f8ff; text-shadow:0 1px 0 rgba(40,90,170,.3);}
.gacha-closed-note{background:var(--ss-card); border:4px solid #fff; color:var(--gacha-ink); box-shadow:var(--ss-drop);}

/* Eggs — sticker egg with a face; multi-egg cards become white sticker cards */
.gacha-egg-card{background:var(--ss-card); border:4px solid #fff; border-radius:26px; box-shadow:var(--ss-drop);}
.gacha-egg-card.selected{background:#fff; box-shadow:0 0 0 4px var(--c), var(--ss-drop);}
.gacha-egg-card::before{opacity:.35;}
.gacha-egg-card::after{display:none;}
.gacha-egg-visual{
  border:5px solid #fff;
  background:radial-gradient(circle at 32% 24%, #fff 0 8%, transparent 20%), linear-gradient(165deg, #f4fbff, color-mix(in srgb, var(--c) 45%, #fff));
  box-shadow:0 6px 0 rgba(90,140,230,.25);
  animation:gsEggBob 2.6s ease-in-out infinite;
}
@keyframes gsEggBob{0%,100%{transform:translateY(0) scale(1,1);} 45%{transform:translateY(-8px) scale(.98,1.02);} 90%{transform:translateY(0) scale(1.03,.97);}}
.gacha-egg-name{color:#e46a98; text-shadow:none; font-weight:700;}
.gacha-egg-sub{color:var(--gacha-ink-dim); letter-spacing:.14em;}
.gacha-egg-price{color:var(--gacha-ink);}
.gacha-egg-price b{color:#e46a98; text-shadow:none;}
.gacha-egg-best{color:#fff; box-shadow:0 3px 0 rgba(0,0,0,.12); border:2px solid #fff;}
.gacha-egg-cta{color:var(--gacha-ink); border:3px solid #fff; background:color-mix(in srgb, var(--c) 18%, #fff); box-shadow:0 3px 0 color-mix(in srgb, var(--c) 35%, #fff);}
.gacha-odds-bar{background:#eef3fc; box-shadow:none;}
/* background-color, not the shorthand — the shorthand would wipe the secret chip's rainbow background-image */
.gacha-chip{border:2px solid #fff; background-color:color-mix(in srgb, var(--cc,#5b8ff0) 16%, #fff); color:color-mix(in srgb, var(--cc,#5b8ff0) 72%, #1d2b55); box-shadow:0 3px 0 color-mix(in srgb, var(--cc,#5b8ff0) 30%, #fff); font-weight:700;}
.gacha-chip-secret{border-color:#fff; color:#fff; text-shadow:0 1px 0 rgba(0,0,0,.2);}

.gacha-egg-face{position:absolute; left:50%; top:52%; transform:translateX(-50%); width:46%; height:22%; pointer-events:none;}
.gacha-egg-face i{position:absolute; top:6%; width:14%; height:44%; border-radius:50%; background:#3f5a9c;}
.gacha-egg-face i::after{content:''; position:absolute; top:12%; left:14%; width:34%; height:28%; border-radius:50%; background:#fff;}
.gacha-egg-face i.l{left:16%;} .gacha-egg-face i.r{right:16%;}
.gacha-egg-face b{position:absolute; top:62%; width:24%; height:28%; border-radius:50%; background:#ffadc9; opacity:.85;}
.gacha-egg-face b.l{left:0;} .gacha-egg-face b.r{right:0;}
.gacha-egg-face u{position:absolute; left:50%; top:46%; width:17%; height:24%; transform:translateX(-50%); border:3px solid #3f5a9c; border-top:0; border-radius:0 0 12px 12px;}
.gacha-egg-star{position:absolute; width:24%; height:auto;}
.gacha-egg-star.a{left:6%; top:26%; transform:rotate(-14deg);}
.gacha-egg-star.b{right:6%; top:18%; width:20%; transform:rotate(12deg);}
.gacha-egg-buddy{display:none;}

/* Single egg: big sticker egg on a white rock with the turtle buddy peeking */
.gacha-single-mode .gacha-eggs .gacha-egg-card{--c:#8cc6f7;}
.gacha-single-mode .gacha-egg-card::before{background:radial-gradient(circle, #fff 0 28%, rgba(255,255,255,.5) 48%, transparent 68%); opacity:1;}
.gacha-single-mode .gacha-egg-card::after{
  display:block; top:212px; left:50%; width:290px; height:80px; margin-left:-145px; opacity:1; z-index:0;
  border-radius:50% 50% 30px 30px/70% 70% 30px 30px; background:linear-gradient(#fff,#e3ecfb);
  border:4px solid #fff; box-shadow:0 6px 0 rgba(90,130,210,.25);
}
.gacha-single-mode .gacha-egg-visual{
  z-index:1; border-width:7px;
  background:radial-gradient(circle at 32% 24%, #fff 0 8%, transparent 20%), linear-gradient(165deg, #f4fbff, #cde7ff);
  box-shadow:0 8px 0 rgba(90,140,230,.22);
}
.gacha-single-mode .gacha-egg-buddy{display:block; position:absolute; right:-86px; bottom:-18px; width:108px; animation:gsPeek 4s ease-in-out infinite;}
.gacha-single-mode .gacha-egg-buddy svg{width:100%; height:auto;}
@keyframes gsPeek{0%,100%{transform:translateY(0) rotate(0);} 50%{transform:translateY(-6px) rotate(-4deg);}}
.gacha-single-mode .gacha-egg-name{
  position:relative; z-index:2; align-self:center; margin-top:-8px; padding:4px 26px 2px;
  background:#fff; border:3px solid #ffd0e1; border-radius:20px; box-shadow:0 5px 0 #ffd0e1;
}
.gacha-single-mode .gacha-egg-sub{margin-top:8px;}
.gacha-single-mode .gacha-egg-price{
  align-self:center; display:inline-flex; align-items:baseline; gap:6px; padding:4px 30px; border-radius:999px;
  background:#5b8ff0; color:#fff; border:4px solid #fff; box-shadow:0 6px 0 #3f6fd0;
}
.gacha-single-mode .gacha-egg-price b{color:#fff;}
.gacha-single-mode .gacha-egg-card .gacha-odds-bar{border:2px solid #fff;}
.gacha-single-mode .gacha-chip:not(.gacha-chip-secret){background-color:color-mix(in srgb, var(--cc,#5b8ff0) 16%, #fff); color:color-mix(in srgb, var(--cc,#5b8ff0) 72%, #1d2b55); border-color:#fff;}
.gacha-single-mode .gacha-chip-secret{box-shadow:0 3px 0 rgba(90,130,210,.3);}

/* Panel / buy flow */
.gacha-panel{background:var(--ss-card); border:4px solid #fff; border-radius:26px; box-shadow:var(--ss-drop);}
.gacha-panel-head .gacha-serif{color:#e46a98; font-weight:700;}
.gacha-panel-tag{color:#fff; background:#5b8ff0; border:3px solid #fff; box-shadow:0 3px 0 #3f6fd0; font-weight:700;}
.gacha-panel-odds,.gacha-qty-row{border-top:2px dashed var(--gacha-line);}
.gacha-odds-list .gacha-dot{box-shadow:0 0 0 2px #fff;}
.gacha-qty-label{color:var(--gacha-ink-dim);}
.gacha-qty-btn,.gacha-qty-custom{background:#fff; border:3px solid #e3ebfb; color:var(--gacha-ink); font-weight:700; box-shadow:0 3px 0 #e3ebfb; border-radius:14px;}
.gacha-qty-btn:hover{border-color:#cfe0fb; color:var(--gacha-ink);}
.gacha-qty-btn.selected,.gacha-qty-custom.selected{background:#5b8ff0; color:#fff; border-color:#fff; box-shadow:0 3px 0 #3f6fd0;}
.gacha-qty-custom:focus{border-color:#5b8ff0;}
.gacha-buy-btn{background:#ff8fb8; color:#fff; border:4px solid #fff; border-radius:999px; box-shadow:0 6px 0 #e46a98; font-weight:700;}
.gacha-buy-btn:active{transform:translateY(3px); box-shadow:0 2px 0 #e46a98;}
.gacha-guarantee{border:2px dashed #cad8f3; background:#f7faff;}
.gacha-gt-line{color:var(--gacha-ink);}
.gacha-gt-line b{color:#e46a98;}
.gacha-gt-chip{background:#fff; color:color-mix(in srgb, var(--cc) 72%, #1d2b55); border:2px solid color-mix(in srgb, var(--cc) 40%, #fff);}
.gacha-gt-chip:hover{background:color-mix(in srgb, var(--cc) 10%, #fff);}
.gacha-gt-chip.on{background:color-mix(in srgb, var(--cc) 20%, #fff); border-color:var(--cc); box-shadow:0 3px 0 color-mix(in srgb, var(--cc) 40%, #fff);}

/* Ticker / booth / secrets / name list */
.gacha-ticker{background:var(--ss-card); border:3px solid #fff; box-shadow:var(--ss-drop);}
.gacha-ticker-label{background:#ff8fb8; color:#fff; box-shadow:none;}
.gacha-ticker-view::after{background:linear-gradient(90deg,transparent,#fff);}
.gacha-tk-item.big{color:var(--gacha-ink); text-shadow:none; font-weight:700;}
.gacha-tk-sep{color:#cad8f3;}
.gacha-booth{background:var(--ss-card); border:4px solid #fff; border-radius:22px; padding:10px 18px 12px; box-shadow:var(--ss-drop);}
.gacha-booth-num b{color:#e46a98; text-shadow:none;}
.gacha-booth-bar{background:#eef3fc; border:0; height:14px;}
.gacha-booth-fill{background:repeating-linear-gradient(-45deg,#ffa9c8 0 8px,#ffc3d8 8px 16px); box-shadow:none;}
.gacha-booth.done .gacha-booth-label{color:#e0a100;}
.gacha-secrets-title{color:#fff; text-shadow:0 2px 0 rgba(40,90,170,.35); font-weight:700;}
.gacha-secrets-count,.gacha-secrets-foot{color:#f2f8ff;}
.gacha-secrets-count b{color:#fff;}
.gacha-secret-card{background:var(--ss-card); border:3px solid #fff; border-radius:20px; box-shadow:var(--ss-drop);}
.gacha-secret-q{color:#ff7fb0; text-shadow:none; font-family:'DBHelvethaica','Kanit',sans-serif;}
.gacha-secret-card.found{background:#fff; border-color:#ffd0e1; box-shadow:0 5px 0 #ffd0e1;}
.gacha-secret-card.found .gacha-secret-state{color:#e0a100;}
.gacha-sup{background:var(--ss-card); border:4px solid #fff; border-radius:22px; box-shadow:var(--ss-drop);}
.gacha-sup-title{color:#e46a98; font-weight:700;}
.gacha-sup-row{border-bottom:2px dashed var(--gacha-line);}
.gacha-sup-votes b{color:#5b8ff0;}

/* Collection */
.gacha-cat-head{background:var(--ss-card); border:4px solid #fff; border-radius:22px; padding:10px 18px; box-shadow:var(--ss-drop);}
.gacha-cat-count b{color:#e46a98; text-shadow:none;}
.gacha-cat-bar{background:#eef3fc; box-shadow:none;}
.gacha-cat-bar span{box-shadow:none;}
.gacha-cat-tier-name{color:#fff; text-shadow:0 2px 0 rgba(40,90,170,.35);}
.gacha-cat-tier-name::after{background:#fff; opacity:.6;}
.gacha-cat-item{background:var(--ss-card); border:3px solid #fff; border-radius:18px; box-shadow:0 4px 0 rgba(90,130,210,.2);}
.gacha-cat-item.owned{background:color-mix(in srgb, var(--cc) 16%, #fff); border-color:#fff; box-shadow:0 4px 0 color-mix(in srgb, var(--cc) 40%, #fff);}
.gacha-cat-item.locked{border-style:solid;}
.gacha-cat-item.locked .gacha-cat-art{filter:brightness(0) invert(.78) sepia(.4) hue-rotate(185deg); opacity:.75;}
.gacha-cat-dupe{border:2px solid #fff;}
.gacha-coll-stats span{background:var(--ss-card); border:3px solid #fff; color:var(--gacha-ink-dim);}
.gacha-reset-link{color:#fff; opacity:.85;}
.gacha-reset-link:hover{color:#fff; opacity:1;}
.gacha-page footer{color:#f2f8ff;}
.gacha-page footer b{color:#fff;}
.gacha-empty{color:#fff;}

/* Pay modal + staff gate */
.gacha-overlay:not(.gacha-hatch-overlay){background:rgba(40,90,170,.45);}
.gacha-modal:not(.gacha-hatch-modal){background:#fff; border:4px solid #fff; border-radius:26px; box-shadow:0 8px 0 rgba(90,130,210,.3), 0 30px 60px -20px rgba(20,50,110,.5); color:var(--gacha-ink);}
.gacha-modal h3{color:#e46a98; font-weight:700;}
.gacha-modal-price b,.gacha-demo-note b{color:#e46a98;}
.gacha-qr-box{border:3px solid #dbe7fb;}
.gacha-scan-btn{background:#5b8ff0; color:#fff; border:4px solid #fff; border-radius:999px; box-shadow:0 5px 0 #3f6fd0; font-weight:700;}
.gacha-scan-btn:hover{background:#6a9af2; border-color:#fff;}
.gacha-auth-gate{background:linear-gradient(180deg,#4a98ee,#8fc5f9 70%,#c9e3ff);}
.gacha-auth-box{background:#fff; border:4px solid #fff; border-radius:26px; box-shadow:0 8px 0 rgba(90,130,210,.3);}
.gacha-auth-title{color:#e46a98; font-weight:700;}
.gacha-auth-box input{background:#f4f8ff; border:3px solid #e3ebfb; color:#34508f;}
.gacha-auth-box button{background:#ff8fb8; color:#fff; border:4px solid #fff; border-radius:999px; box-shadow:0 5px 0 #e46a98;}

/* Reveal overlay: deep blue so the rarity light still pops */
.gacha-hatch-overlay{background:radial-gradient(ellipse at center, rgba(52,110,210,.95) 0%, rgba(14,40,100,.985) 72%);}
.gacha-skip-all{border:3px solid #fff; color:#fff; background:rgba(255,255,255,.12);}
.gacha-skip-all:hover{border-color:#fff; color:#fff; background:rgba(255,255,255,.22);}
.gacha-again-btn{background:#ff8fb8; color:#fff; border:4px solid #fff; box-shadow:0 5px 0 #e46a98;}
.gacha-result-name{font-weight:700; color:#fff; text-shadow:0 4px 0 rgba(10,30,80,.35), 0 0 24px rgba(255,255,255,.35);}
.gacha-rank-badge{border:3px solid #fff;}
/* skip-all summary reuses the white catalog cards, but sits inside the overlay's light-ink scope */
.gacha-skip-summary .gacha-cat-name,.gacha-skip-summary .gacha-cat-item.owned .gacha-cat-name{color:#34508f;}
.gacha-hatch-egg{
  border:7px solid #fff;
  background:radial-gradient(circle at 32% 24%, #fff 0 8%, transparent 20%), linear-gradient(165deg, #f4fbff, #cde7ff);
  box-shadow:0 0 50px color-mix(in srgb, var(--hc) 40%, transparent), 0 8px 0 rgba(0,0,0,.15);
}
.gacha-hatch-egg.crack2{box-shadow:0 0 80px 6px color-mix(in srgb, var(--hc) 60%, transparent), 0 8px 0 rgba(0,0,0,.15);}
.gacha-hatch-egg.crack3{box-shadow:0 0 120px 24px color-mix(in srgb, var(--hc) 80%, transparent), 0 8px 0 rgba(0,0,0,.15);}
.gacha-hatch-cracks path{stroke:#5b8ff0;}
.gacha-swarm{background:radial-gradient(ellipse at 50% 60%, rgba(120,180,255,.5), rgba(40,90,170,.75));}
.gacha-swarm-big{text-shadow:0 5px 0 #3f7fd9, 0 0 30px rgba(255,255,255,.6);}

@media (max-width:860px){
  .gacha-single-mode .gacha-egg-buddy{right:-54px; width:84px;}
  .gacha-cat-head{margin-left:8px; margin-right:8px;}
}
@media (prefers-reduced-motion: reduce){
  .gs-bob,.gs-bob2,.gs-swim,.gacha-single-mode .gacha-egg-buddy{animation:none !important;}
  .gs-swim{display:none;}
}

/* ── "Sticker Book" layer (2026-09-26, user picked tab 3 of artifact DMhAEprauYRiTaKboN6mgh:
   "3 น่ารักกกก") ─────────────────────────────────────────────────────────────────────────
   Sits on top of Sticker Sea: the egg becomes a tilted die-cut sticker (a peeled-corner ::after was
   tried and dropped — on the curved egg it read as a stray square box, user: "ตรงนี้คือไรอะ") + washi
   tape (tap = lift and slap back, gachaEggPeel() in render.js), the turtle holds a "แตะเลย!"
   sign, the reveal opens on a lined notebook page where the creature is slapped down as a
   sticker with tapes and a "NEW! ★N" stamp, and the buy panel is grid paper with stamps,
   tilted sticker chips and stitched buttons. Delete this block to get plain Sticker Sea back. */
:root{--sb-grid:#e3eefc; --sb-tape:repeating-linear-gradient(45deg,rgba(255,170,200,.88) 0 8px,rgba(255,210,226,.88) 8px 16px);
  --sb-tape-b:repeating-linear-gradient(90deg,rgba(150,200,255,.85) 0 6px,rgba(255,255,255,.85) 6px 12px);
  --sb-paper:repeating-linear-gradient(0deg,var(--sb-grid) 0 1.5px,transparent 1.5px 22px),repeating-linear-gradient(90deg,var(--sb-grid) 0 1.5px,transparent 1.5px 22px),#fbfdff;}

/* Egg sticker */
.gacha-egg-visual{rotate:-4deg; box-shadow:0 0 0 3px #e3ecf8, 0 8px 0 rgba(60,90,160,.16);}
.gacha-egg-visual.peel{animation:sbPeel .9s ease, gsEggBob 2.6s ease-in-out .9s infinite;}
@keyframes sbPeel{0%{transform:none;} 35%{transform:translateY(-22px) rotate(-8deg) scale(1.06); box-shadow:0 0 0 3px #e3ecf8, 0 30px 18px rgba(60,90,160,.22);} 70%{transform:translateY(2px) rotate(2deg) scale(.98);} 100%{transform:none;}}
.gacha-egg-pop{position:absolute; left:50%; top:-10px; z-index:5; pointer-events:none; font-weight:800; font-size:26px; color:#fff;
  text-shadow:0 2px 0 #e46a98; white-space:nowrap; animation:sbPop 1.2s ease-out forwards;}
@keyframes sbPop{0%{opacity:0; transform:translate(-50%,0) scale(.4);} 20%{opacity:1; transform:translate(-50%,-12px) scale(1.15);} 100%{opacity:0; transform:translate(-50%,-70px);}}
.gacha-egg-tape,.gacha-egg-sign{display:none;}
.gacha-single-mode .gacha-egg-tape{display:block; position:absolute; left:-26px; top:14px; width:96px; height:24px; rotate:-32deg; background:var(--sb-tape); z-index:3;}
.gacha-single-mode .gacha-egg-sign{
  display:block; position:absolute; right:-118px; bottom:88px; z-index:3; rotate:8deg; white-space:nowrap;
  background:#fff; border:3px solid #ffb3cf; border-radius:16px; padding:3px 12px 1px; font-weight:800; font-size:20px; color:#e46a98;
  box-shadow:0 4px 0 rgba(60,90,160,.14); animation:gsPeek 4s ease-in-out infinite;
}
.gacha-single-mode .gacha-egg-sign::after{content:''; position:absolute; left:22px; bottom:-10px; width:14px; height:14px; background:#fff;
  border:3px solid #ffb3cf; border-top:0; border-left:0; rotate:45deg;}
.gacha-single-mode .gacha-egg-buddy{rotate:6deg;}
.gacha-single-mode .gacha-egg-name{rotate:-2deg; background:var(--sb-tape); border:0; box-shadow:none; color:#b83f72; border-radius:0;
  clip-path:polygon(2% 0,98% 5%,100% 50%,97% 100%,1% 95%,0 50%);}
.gacha-single-mode .gacha-egg-price{background:#fff; color:#e46a98; border:3px dashed #ff9fc2; box-shadow:0 0 0 4px #fff, 0 6px 0 4px rgba(60,90,160,.14); rotate:-3deg;}
.gacha-single-mode .gacha-egg-price b{color:#e46a98;}
@media (max-width:860px){ .gacha-single-mode .gacha-egg-sign{right:-78px; bottom:78px; font-size:17px;} }

/* Chips = small stickers, alternately tilted */
.gacha-chip{border-radius:8px;}
.gacha-chip:nth-child(odd){rotate:-3deg;} .gacha-chip:nth-child(even){rotate:3deg;}
.gacha-chip:not(.gacha-chip-secret),.gacha-single-mode .gacha-chip:not(.gacha-chip-secret){
  background-color:#fff; border:2px solid #fff; box-shadow:0 0 0 2px color-mix(in srgb, var(--cc,#5b8ff0) 45%, #fff), 0 3px 0 rgba(60,90,160,.15);
  color:color-mix(in srgb, var(--cc,#5b8ff0) 75%, #1d2b55);
}

/* Grid-paper cards; the panel and dialogs get a tape strip on top */
.gacha-panel,.gacha-booth,.gacha-sup,.gacha-cat-head,.gacha-ticker,.gacha-modal:not(.gacha-hatch-modal),.gacha-auth-box{
  background:var(--sb-paper); border-color:#fff; border-radius:8px; box-shadow:0 0 0 3px #fff, 0 8px 0 3px rgba(40,90,170,.2);
}
.gacha-panel,.gacha-modal:not(.gacha-hatch-modal),.gacha-auth-box{position:relative; padding-top:30px;}
.gacha-panel::before,.gacha-modal:not(.gacha-hatch-modal)::before,.gacha-auth-box::before{
  content:''; position:absolute; left:50%; top:-12px; width:130px; height:26px; margin-left:-65px; rotate:-3deg; background:var(--sb-tape); pointer-events:none;}
.gacha-panel-head .gacha-serif,.gacha-modal h3,.gacha-auth-title,.gacha-sup-title{color:#b83f72;}
/* price tag = round rubber stamp */
.gacha-panel-tag{background:#fff; color:#e46a98; border:3px solid #ff8fb8; border-radius:50%; min-width:78px; aspect-ratio:1; display:grid; place-items:center;
  text-align:center; line-height:1; padding:6px; rotate:-12deg; box-shadow:0 0 0 3px #fff, 0 0 0 5px #ffd0e1;}
.gacha-panel-odds,.gacha-qty-row{border-top:2px dashed #ffc0d6;}
/* stitched qty buttons */
.gacha-qty-btn,.gacha-qty-custom{background:#fff; border:2px dashed #b9cff0; border-radius:10px; box-shadow:none;}
.gacha-qty-btn:hover{border-color:#8fb3ea;}
.gacha-qty-btn.selected,.gacha-qty-custom.selected{background:#fff1f6; color:#e46a98; border:2px dashed #e46a98; box-shadow:0 3px 0 #ffd0e1; rotate:-3deg;}
.gacha-guarantee{background:#fff; border:0; border-left:4px solid #ffc0d6; border-radius:4px;}
/* buy / scan / gate buttons = big stickers with a peeled corner */
.gacha-buy-btn,.gacha-scan-btn,.gacha-auth-box button{position:relative; overflow:hidden; border:0; border-radius:14px;
  box-shadow:0 0 0 4px #fff, 0 0 0 6px #ffd0e1, 0 8px 0 6px rgba(60,90,160,.14);}
.gacha-scan-btn{box-shadow:0 0 0 4px #fff, 0 0 0 6px #cfe0fb, 0 8px 0 6px rgba(60,90,160,.14);}
.gacha-buy-btn::after,.gacha-scan-btn::after,.gacha-auth-box button::after{content:''; position:absolute; right:0; bottom:0; width:24px; height:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.45) 50%, #fff 50%);}
.gacha-buy-btn:active{transform:rotate(-2deg) translateY(2px); box-shadow:0 0 0 4px #fff, 0 0 0 6px #ffd0e1, 0 3px 0 6px rgba(60,90,160,.14);}

/* Reveal = notebook page */
.gacha-hatch-overlay{
  --gacha-ink:#34508f; --gacha-ink-dim:#6f86b8; --gacha-line:#dbe7fb; --jl-ink:#34508f; --jl-dim:#6f86b8; --jl-line:#dbe7fb;
  --sb-rule:clamp(30px,4.4vmin,56px); --sb-margin:clamp(28px,6vw,90px);
  color:var(--gacha-ink);
  background:linear-gradient(90deg,transparent var(--sb-margin),#ffc0d6 var(--sb-margin) calc(var(--sb-margin) + 2px),transparent calc(var(--sb-margin) + 2px)),
    repeating-linear-gradient(180deg,transparent 0 var(--sb-rule),#d6e6fb var(--sb-rule) calc(var(--sb-rule) + 2px)),#fbfdff;
}
.gacha-rays{display:none;}
.gacha-aura{mix-blend-mode:normal;}
.gacha-reveal-sparkle{background:#ffb3cf; box-shadow:none;}
.gacha-hatch-egg{box-shadow:0 0 0 3px #e3ecf8, 0 0 50px color-mix(in srgb, var(--hc) 40%, transparent), 0 8px 0 rgba(60,90,160,.15);}
.gacha-reveal-icon{--sb-edge:clamp(3px,.6vmin,7px);}
/* the inline rarity-glow filter becomes a white die-cut edge */
.gacha-reveal-icon > img,.gacha-reveal-icon > svg{
  filter:drop-shadow(var(--sb-edge) 0 0 #fff) drop-shadow(calc(var(--sb-edge) * -1) 0 0 #fff) drop-shadow(0 var(--sb-edge) 0 #fff) drop-shadow(0 calc(var(--sb-edge) * -1) 0 #fff) drop-shadow(0 8px 0 rgba(60,90,160,.18)) !important;
}
.gacha-reveal-icon.go{animation:sbSlap .45s cubic-bezier(.2,1.3,.5,1) forwards .3s;}
@keyframes sbSlap{0%{opacity:0; transform:scale(1.9) rotate(-25deg);} 70%{opacity:1; transform:scale(.95) rotate(-4deg);} 100%{opacity:1; transform:scale(1) rotate(-6deg);}}
.gacha-rv-tape{position:absolute; width:38%; height:clamp(20px,3.4vmin,40px); rotate:-35deg; background:var(--sb-tape); opacity:0; pointer-events:none;}
.gacha-rv-tape.a{left:-10%; top:6%;}
.gacha-rv-tape.b{right:-10%; bottom:8%; background:var(--sb-tape-b);}
.gacha-reveal-icon.go .gacha-rv-tape{animation:sbFade .15s ease forwards .8s;}
@keyframes sbFade{to{opacity:.95;}}
.gacha-rv-stamp{position:absolute; right:-18%; top:-4%; width:clamp(70px,12vmin,160px); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; text-align:center;
  border:clamp(3px,.5vmin,6px) solid var(--c); color:var(--c); background:rgba(255,255,255,.7); font-weight:900; line-height:1;
  font-size:clamp(14px,2.2vmin,30px); rotate:-14deg; opacity:0; pointer-events:none;}
.gacha-reveal-icon.go .gacha-rv-stamp{animation:sbStamp .35s cubic-bezier(.2,1.4,.5,1) forwards 1.1s;}
@keyframes sbStamp{0%{opacity:0; transform:scale(2.6);} 100%{opacity:.92; transform:scale(1);}}
.gacha-result-name{color:#b83f72; text-shadow:none; background:var(--sb-tape); padding:.08em .7em 0; rotate:-2deg;
  clip-path:polygon(2% 0,98% 5%,100% 50%,97% 100%,1% 95%,0 50%);}
.gacha-result-name:empty{background:none;}
.gacha-rank-badge{color:#fff; border:3px solid #fff; box-shadow:0 0 0 2px var(--c,#f2b544), 0 3px 0 rgba(60,90,160,.18); rotate:4deg;}
.gacha-hatch-modal .gacha-result-zone,.gacha-tap-hint,.gacha-pull-progress{color:var(--gacha-ink-dim);}
.gacha-hatch-modal .gacha-modal-close{color:#6f86b8;}
.gacha-again-btn{background:#fff; color:#e46a98; border:3px dashed #ff9fc2; box-shadow:0 4px 0 #ffd0e1;}
.gacha-skip-all{color:#e46a98; border:3px dashed #ff9fc2; background:#fff;}
.gacha-skip-all:hover{color:#e46a98; border-color:#e46a98; background:#fff1f6;}
@media (prefers-reduced-motion: reduce){ .gacha-single-mode .gacha-egg-sign{animation:none;} }
