.underwater-bingo{background:#063b66;overflow:hidden}.underwater-bingo .topbar{position:relative;z-index:50}.underwater-stage{position:relative;height:calc(100vh - 78px);min-height:610px;overflow:hidden;background:url('assets/bingo/underwater-bingo-bg-v151.webp') center/cover no-repeat;border-radius:0 0 24px 24px;color:#fff}.underwater-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,49,80,.06),rgba(0,75,111,.02) 45%,rgba(0,42,79,.18))}.reef-side{position:absolute;z-index:4;inset:0 48% 0 0}.oyster-field{position:absolute;inset:0}.bingo-instruction{position:absolute;left:50%;bottom:2.2%;transform:translateX(-50%);white-space:nowrap;padding:.55rem 1.1rem;border:2px solid rgba(255,255,255,.82);border-radius:999px;background:rgba(0,67,105,.82);box-shadow:0 7px 18px rgba(0,27,49,.28);font-size:clamp(.88rem,1.2vw,1.15rem);font-weight:900;color:#fff8c7}.reef-oyster{position:absolute;left:var(--ox);top:var(--oy);width:clamp(58px,7.1vw,108px);height:clamp(46px,5.3vw,80px);padding:0;border:0;background:transparent;transform:translate(-50%,-50%) scale(var(--os));cursor:pointer;filter:drop-shadow(0 8px 7px rgba(0,24,37,.34));transition:filter .2s ease}.reef-oyster:hover,.reef-oyster:focus-visible{filter:drop-shadow(0 0 13px #fff5aa) drop-shadow(0 8px 7px rgba(0,24,37,.3));outline:0}.shell-bottom,.shell-top{position:absolute;left:5%;width:90%;height:52%;border:2px solid #e0b481;background:repeating-radial-gradient(ellipse at 50% 100%,#f7d7ad 0 8px,#e9b982 9px 15px,#c98d5e 16px 18px);clip-path:polygon(50% 0,63% 8%,79% 21%,91% 42%,100% 72%,89% 91%,50% 100%,11% 91%,0 72%,9% 42%,21% 21%,37% 8%)}.shell-bottom{bottom:4%;transform:rotate(180deg)}.shell-bottom i{position:absolute;left:41%;top:25%;width:18%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff,#e4fbff 24%,#a9dbe5 67%,#67a8bd);box-shadow:0 0 11px #d9fbff}.shell-top{bottom:43%;transform-origin:50% 100%;transition:transform .45s cubic-bezier(.2,.85,.25,1)}.reef-oyster.closed .shell-top{animation:oyster-glint 3.2s ease-in-out infinite}.reef-oyster.open .shell-top,.reef-oyster.done .shell-top{transform:rotateX(68deg) translateY(-24%)}.reef-oyster.done{cursor:default;filter:saturate(.75) drop-shadow(0 6px 5px rgba(0,24,37,.3))}.reef-oyster.done b{position:absolute;z-index:4;left:50%;top:52%;transform:translate(-50%,-50%);display:grid;place-items:center;width:28%;aspect-ratio:1;border-radius:50%;background:#35d48c;color:#fff;font-size:clamp(13px,1.6vw,24px);box-shadow:0 0 9px #baffdc}@keyframes oyster-glint{0%,72%,100%{filter:none}82%{filter:brightness(1.32) drop-shadow(0 0 7px #fff4be)}}
.word-pearl{position:absolute;z-index:12;left:47%;top:38%;width:clamp(90px,11vw,165px);min-height:clamp(104px,14vw,205px);transform:translate(-50%,-50%) scale(.75);opacity:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.75rem;border:4px solid rgba(255,255,255,.9);border-radius:46% 54% 50% 50%;background:radial-gradient(circle at 36% 25%,#fff,#e8fff9 42%,#94d8e8 78%,#55aabe);box-shadow:0 0 28px rgba(206,255,249,.8),0 12px 22px rgba(0,32,55,.32);color:#073f61;transition:.35s ease}.word-pearl.visible{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}.word-pearl button{position:absolute;right:-10px;top:-10px;width:42px;height:42px;border-radius:50%;border:2px solid #fff;background:#ffcb49;font-size:1.25rem;cursor:pointer}.word-pearl-image{width:74%;height:clamp(58px,8vw,112px);display:grid;place-items:center;overflow:hidden;border-radius:22px;background:#fff}.word-pearl-image img{width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box}.word-pearl strong{max-width:100%;font-size:clamp(.75rem,1.15vw,1.05rem);line-height:1.05;text-align:center}
.bubble-card{position:absolute;z-index:8;right:1.8%;top:3%;width:min(48vw,72vh);height:min(48vw,72vh);padding:clamp(11px,1.4vw,22px);border:3px solid rgba(212,251,255,.82);border-radius:34px;background:linear-gradient(145deg,rgba(7,75,117,.72),rgba(0,42,83,.62));box-shadow:inset 0 0 30px rgba(120,238,255,.18),0 15px 35px rgba(0,30,57,.32);backdrop-filter:blur(5px)}.bubble-card-title{position:absolute;left:50%;top:-18px;transform:translateX(-50%);display:flex;align-items:center;gap:.55rem;padding:.38rem 1.1rem;border:2px solid #fff;border-radius:999px;background:#08789a;box-shadow:0 5px 12px rgba(0,32,55,.3);white-space:nowrap}.bubble-card-title span{font-weight:800}.bubble-card-title b{color:#fff1a6;font-size:1.16rem}.bubble-board-4{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:clamp(5px,.7vw,11px);width:100%;height:100%}.bubble-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:10%;border:3px solid rgba(224,253,255,.9);border-radius:50%;overflow:hidden;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.5),rgba(121,226,244,.2) 44%,rgba(10,112,161,.38) 72%,rgba(0,50,92,.55));box-shadow:inset -8px -10px 16px rgba(0,57,93,.24),inset 5px 6px 10px rgba(255,255,255,.28),0 6px 11px rgba(0,28,57,.28);cursor:pointer;transition:transform .18s ease,filter .18s ease}.bubble-cell:hover:not(:disabled),.bubble-cell:focus-visible{transform:scale(1.045);filter:brightness(1.15);outline:3px solid #fff49d}.bubble-cell img{width:100%;height:100%;object-fit:contain;box-sizing:border-box;padding:5%;border-radius:50%;background:#fff}.bubble-sheen{position:absolute;z-index:3;left:17%;top:12%;width:25%;height:14%;border-radius:50%;background:rgba(255,255,255,.72);transform:rotate(-25deg);pointer-events:none}.bubble-cell.wrong{animation:bubble-wrong .45s ease;border-color:#ff7782}.bubble-cell.popping{animation:bubble-pop .5s ease forwards}.bubble-cell.marked{background:radial-gradient(circle at 34% 28%,#fff,#e5faff 31%,#9bd7df 65%,#4a9dad);border-color:#f9ffff}.bubble-cell.marked img{opacity:.45;filter:saturate(.75)}.pearl-mark{position:absolute;z-index:5;inset:13%;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 33% 26%,#fff,#fffbe5 28%,#e8d5a3 62%,#b58a43);box-shadow:0 0 14px #fff7bf}.pearl-mark b{color:#0b7082;font-size:clamp(1rem,2.4vw,2.3rem);text-shadow:0 1px #fff}.bubble-cell.bonus:not(.revealed){opacity:.4}.bubble-cell.bonus.revealed{animation:bonus-arrive .55s ease}.bubble-cell.bonus .pearl-mark b{color:#e3a516}.bubble-cell.winning{animation:winner-pulse .75s ease-in-out infinite alternate;z-index:3}@keyframes bubble-wrong{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}@keyframes bubble-pop{0%{transform:scale(1)}60%{transform:scale(1.22);opacity:.45}100%{transform:scale(.75);opacity:0}}@keyframes bonus-arrive{0%{transform:scale(.25) rotate(-50deg);opacity:0}75%{transform:scale(1.12) rotate(8deg)}100%{transform:scale(1);opacity:1}}@keyframes winner-pulse{to{transform:scale(1.07);filter:drop-shadow(0 0 12px #fff074)}}
.underwater-bingo-win{position:fixed;z-index:200;inset:0;display:grid;place-items:center;background:rgba(0,44,78,.45);backdrop-filter:blur(3px);overflow:hidden}.bingo-rays{position:absolute;width:90vmin;height:90vmin;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,240,122,.26) 0 8deg,transparent 8deg 18deg);animation:ray-spin 14s linear infinite}.bingo-treasure{position:relative;text-align:center;padding:2rem 3rem;border:5px solid #fff5b5;border-radius:38px;background:linear-gradient(#087b9a,#03547f);box-shadow:0 0 45px #ffe779,0 20px 45px rgba(0,20,42,.48)}.bingo-treasure>span{font-size:5rem}.bingo-treasure h2{margin:.1rem 0;color:#fff49b;font-size:clamp(2.6rem,6vw,5rem)}.bingo-treasure p{font-size:1.4rem;font-weight:900}.bingo-treasure .win-actions{display:flex;gap:1rem;justify-content:center}.bingo-treasure button{padding:.7rem 1.2rem;border:2px solid #fff;border-radius:18px;background:#fff;color:#075575;font-weight:900;font-size:1rem}@keyframes ray-spin{to{transform:rotate(360deg)}}
@media(max-aspect-ratio:4/3){.underwater-stage{min-height:0}.reef-side{right:52%}.bubble-card{right:1%;top:7%;width:50vw;height:50vw}.word-pearl{left:45%;top:35%;width:95px}.bingo-instruction{bottom:1%}}@media(max-width:900px){.underwater-stage{height:calc(100vh - 64px)}.bubble-card{top:5%;padding:8px;border-radius:22px}.bubble-board-4{gap:4px}.bubble-cell{border-width:2px}.reef-oyster{width:64px;height:48px}.bingo-instruction{font-size:.72rem}.word-pearl{left:46%;top:28%;width:80px;min-height:96px;padding:.4rem}.word-pearl-image{height:54px}.word-pearl strong{font-size:.67rem}}

/* v140: zestien goed leesbare, afzonderlijke luchtbellen */
.underwater-bingo .bubble-card{right:.7%;top:1.2%;width:min(52vw,80vh);height:min(52vw,80vh);padding:clamp(7px,1vw,15px);border-color:rgba(214,252,255,.64);background:linear-gradient(145deg,rgba(5,69,108,.54),rgba(0,39,76,.42))}
.underwater-bingo .bubble-board-4{gap:clamp(1px,.25vw,4px)}
.underwater-bingo .bubble-cell{border:0;overflow:visible;padding:0;background:transparent;box-shadow:none;isolation:isolate}
.underwater-bingo .bubble-cell:before{content:"";position:absolute;z-index:0;inset:-2%;background-image:var(--bubble-art);background-size:contain;background-position:center;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 5px 7px rgba(0,35,62,.2))}
.underwater-bingo .bubble-cell .bubble-sheen{display:none}
.underwater-bingo .bubble-cell img{position:relative;z-index:1;width:67%;height:67%;padding:2%;border-radius:43%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.8);object-fit:contain}
.underwater-bingo .bubble-cell:hover:not(:disabled),.underwater-bingo .bubble-cell:focus-visible{filter:brightness(1.06);outline:0}
.underwater-bingo .bubble-cell:focus-visible:after{content:"";position:absolute;z-index:4;inset:4%;border:4px solid #fff49d;border-radius:50%;box-shadow:0 0 12px #fff49d}
.underwater-bingo .bubble-cell.marked{background:transparent;border:0}
.underwater-bingo .bubble-cell.marked img{opacity:.32}
.underwater-bingo .bubble-cell .pearl-mark{z-index:3;inset:20%;box-shadow:0 0 15px #fff7bf,0 5px 10px rgba(0,50,80,.24)}
@media(max-aspect-ratio:4/3){.underwater-bingo .bubble-card{right:.4%;top:4%;width:53vw;height:53vw}}

/* v141: realistische oesters, acht parelmoerkleuren en rustige stroming */
.underwater-bingo .reef-oyster{width:clamp(82px,9.2vw,148px);height:clamp(58px,6.7vw,106px);transform:translate(-50%,-100%) scale(var(--os)) rotate(var(--or));filter:drop-shadow(0 5px 4px rgba(0,24,37,.42));transform-origin:50% 100%}
.underwater-bingo .reef-oyster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(var(--of));transition:filter .2s ease}
.underwater-bingo .reef-oyster .shell-top,.underwater-bingo .reef-oyster .shell-bottom{display:none}
.underwater-bingo .reef-oyster:hover img,.underwater-bingo .reef-oyster:focus-visible img{filter:brightness(1.14)}
.underwater-bingo .reef-oyster.open,.underwater-bingo .reef-oyster.done{width:clamp(96px,10.6vw,168px);height:clamp(74px,8.4vw,126px)}
.underwater-bingo .reef-oyster .oyster-pearl{display:none;position:absolute;z-index:3;left:50%;top:61%;width:22%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:var(--pearl);box-shadow:inset 7px 8px 12px rgba(255,255,255,.72),inset -6px -7px 10px rgba(42,63,91,.18),0 0 13px var(--pearl-glow)}
.underwater-bingo .reef-oyster.open .oyster-pearl,.underwater-bingo .reef-oyster.done .oyster-pearl{display:block;animation:small-pearl-rise .48s ease-out both}
.underwater-bingo .reef-oyster.done b{top:62%;width:25%;font-size:clamp(12px,1.35vw,20px)}
.underwater-bingo .word-pearl{width:clamp(145px,15vw,225px);min-height:0;aspect-ratio:1;padding:1rem;background:var(--pearl);border-color:rgba(255,255,255,.94);box-shadow:inset 18px 20px 30px rgba(255,255,255,.78),inset -14px -16px 24px rgba(48,62,92,.18),0 0 30px var(--pearl-glow),0 13px 24px rgba(0,32,55,.3)}
.underwater-bingo .word-pearl strong{display:flex;align-items:center;justify-content:center;width:78%;min-height:52%;font-size:clamp(1rem,1.55vw,1.45rem);line-height:1.12;color:#123b58;text-shadow:0 1px 1px #fff;text-align:center}
.underwater-bingo .pearl-0{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffe2e5 35%,#e996a4 72%,#b85467);--pearl-glow:#ff96aa}.underwater-bingo .pearl-1{--pearl:radial-gradient(circle at 32% 25%,#fff,#dff7dd 35%,#8dcf93 72%,#398257);--pearl-glow:#8bf1a6}.underwater-bingo .pearl-2{--pearl:radial-gradient(circle at 32% 25%,#fff,#ddecff 35%,#83b7ed 72%,#3974b2);--pearl-glow:#81c8ff}.underwater-bingo .pearl-3{--pearl:radial-gradient(circle at 32% 25%,#fff,#efe2ff 35%,#b999e4 72%,#7451a7);--pearl-glow:#c5a1ff}.underwater-bingo .pearl-4{--pearl:radial-gradient(circle at 32% 25%,#fff,#fff1c9 35%,#e8c268 72%,#aa7a25);--pearl-glow:#ffe28b}.underwater-bingo .pearl-5{--pearl:radial-gradient(circle at 32% 25%,#fff,#d9fbf8 35%,#75cec9 72%,#248982);--pearl-glow:#72fff0}.underwater-bingo .pearl-6{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffe3d1 35%,#efa27c 72%,#b85c3c);--pearl-glow:#ffad82}.underwater-bingo .pearl-7{--pearl:radial-gradient(circle at 32% 25%,#fff,#f9deef 35%,#dc8fc0 72%,#9c467c);--pearl-glow:#ff9ed6}
.underwater-bingo .bubble-cell{--drift-x:3px;animation:bubble-drift 6.4s ease-in-out infinite alternate}.underwater-bingo .bubble-cell:nth-child(2n){--drift-x:-3px;animation-duration:7.6s;animation-delay:-2.1s}.underwater-bingo .bubble-cell:nth-child(3n){--drift-x:2px;animation-duration:8.7s;animation-delay:-4.3s}.underwater-bingo .bubble-cell:nth-child(4n){--drift-x:-2px;animation-duration:5.9s;animation-delay:-1.2s}.underwater-bingo .bubble-cell:nth-child(5n){animation-duration:9.1s;animation-delay:-5.4s}.underwater-bingo .bubble-cell:before{animation:bubble-shimmer 7s ease-in-out infinite alternate}.underwater-bingo .bubble-cell:nth-child(3n):before{animation-delay:-3.3s;animation-duration:8.4s}.underwater-bingo .bubble-cell:hover,.underwater-bingo .bubble-cell:focus-visible,.underwater-bingo .bubble-cell.popping{animation-play-state:paused}
@keyframes oyster-rest{0%,100%{margin-top:0}50%{margin-top:-3px}}@keyframes small-pearl-rise{from{opacity:0;transform:translate(-50%,20%) scale(.45)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes bubble-drift{0%{translate:0 -2px;rotate:-.35deg}50%{translate:var(--drift-x) 1px}100%{translate:calc(var(--drift-x) * -.7) 3px;rotate:.35deg}}@keyframes bubble-shimmer{from{filter:drop-shadow(0 5px 7px rgba(0,35,62,.2)) brightness(.98)}to{filter:drop-shadow(0 6px 9px rgba(0,35,62,.23)) brightness(1.07) saturate(1.08)}}

/* v143: vijftien begrippenparels, gouden bonusparel en zichtbare parelroute */
.underwater-bingo .reef-oyster.done .oyster-pearl{display:none}
.underwater-bingo .reef-oyster.done{pointer-events:none;filter:saturate(.82) brightness(.94) drop-shadow(0 6px 5px rgba(0,24,37,.3))}
.underwater-bingo .bubble-cell.bonus.empty{opacity:1}
.underwater-bingo .bubble-cell.bonus.empty:not(.marked):after{content:"";position:absolute;inset:24%;border:2px dashed rgba(224,253,255,.58);border-radius:50%}
.underwater-bingo .bubble-cell.marked img{display:none}
.underwater-bingo .bubble-cell .pearl-mark{inset:15%;display:grid;place-items:center;background:var(--pearl);box-shadow:inset 9px 10px 15px rgba(255,255,255,.65),inset -7px -8px 12px rgba(37,52,80,.17),0 0 13px var(--pearl-glow),0 5px 10px rgba(0,50,80,.24)}
.underwater-bingo .bubble-cell .pearl-mark strong{width:78%;font-size:clamp(.55rem,.88vw,.9rem);line-height:1.05;color:#123b58;text-align:center;text-shadow:-1px -1px 0 rgba(255,255,255,.9),1px 1px 0 rgba(255,255,255,.9)}
.underwater-bingo .word-pearl.gold-celebration{animation:golden-yes .8s cubic-bezier(.2,.9,.2,1) both}
.flying-bingo-pearl{position:fixed;z-index:1000;border-radius:50%;pointer-events:none;background:var(--pearl);box-shadow:inset 12px 14px 20px rgba(255,255,255,.75),inset -10px -11px 17px rgba(45,51,73,.18),0 0 25px var(--pearl-glow),0 10px 20px rgba(0,28,50,.3)}
@keyframes golden-yes{0%{transform:translate(-50%,-50%) scale(.25);opacity:0}58%{transform:translate(-50%,-50%) scale(1.32);opacity:1;filter:brightness(1.35)}78%{transform:translate(-50%,-50%) scale(.94)}100%{transform:translate(-50%,-50%) scale(1)}}
.underwater-bingo .pearl-0,.pearl-0{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffdce8 34%,#ec8fb0 71%,#b84f79);--pearl-glow:#ff9fc2}
.underwater-bingo .pearl-1,.pearl-1{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffd9d8 34%,#ef8b83 71%,#bd4d51);--pearl-glow:#ff9b91}
.underwater-bingo .pearl-2,.pearl-2{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffd6d7 34%,#e76470 71%,#a92f42);--pearl-glow:#ff7783}
.underwater-bingo .pearl-3,.pearl-3{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffe2cf 34%,#f2aa81 71%,#bd6848);--pearl-glow:#ffc09a}
.underwater-bingo .pearl-4,.pearl-4{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffe1bd 34%,#ef9d52 71%,#b95c20);--pearl-glow:#ffb66c}
.underwater-bingo .pearl-5,.pearl-5{--pearl:radial-gradient(circle at 32% 25%,#fff,#fff5b9 34%,#ead94f 71%,#a98c18);--pearl-glow:#fff06d}
.underwater-bingo .pearl-6,.pearl-6{--pearl:radial-gradient(circle at 32% 25%,#fff,#e6ffc1 34%,#95d957 71%,#4b942b);--pearl-glow:#adf36d}
.underwater-bingo .pearl-7,.pearl-7{--pearl:radial-gradient(circle at 32% 25%,#fff,#d5f5dc 34%,#62bd7c 71%,#237247);--pearl-glow:#7be59a}
.underwater-bingo .pearl-8,.pearl-8{--pearl:radial-gradient(circle at 32% 25%,#fff,#d9fff0 34%,#77d7ae 71%,#27866d);--pearl-glow:#8cf5cb}
.underwater-bingo .pearl-9,.pearl-9{--pearl:radial-gradient(circle at 32% 25%,#fff,#d2fbf7 34%,#59c9c2 71%,#187e82);--pearl-glow:#6debe3}
.underwater-bingo .pearl-10,.pearl-10{--pearl:radial-gradient(circle at 32% 25%,#fff,#daefff 34%,#72bde9 71%,#2876ad);--pearl-glow:#8bd2ff}
.underwater-bingo .pearl-11,.pearl-11{--pearl:radial-gradient(circle at 32% 25%,#fff,#d9e3ff 34%,#668ee5 71%,#294eae);--pearl-glow:#7fa4ff}
.underwater-bingo .pearl-12,.pearl-12{--pearl:radial-gradient(circle at 32% 25%,#fff,#ebdeff 34%,#b18de3 71%,#7049a8);--pearl-glow:#c4a2ff}
.underwater-bingo .pearl-13,.pearl-13{--pearl:radial-gradient(circle at 32% 25%,#fff,#e5d5ff 34%,#9363d9 71%,#552b9d);--pearl-glow:#aa7af4}
.underwater-bingo .pearl-14,.pearl-14{--pearl:radial-gradient(circle at 32% 25%,#fff,#ffd5f0 34%,#e55bad 71%,#9f2975);--pearl-glow:#ff72c6}
.underwater-bingo .pearl-gold,.pearl-gold{--pearl:radial-gradient(circle at 32% 24%,#fffbe1,#f8df8d 30%,#dcae3d 65%,#9a6819);--pearl-glow:#ffe17a}

/* v144: ronde geometrie en diepe parelmoerglans */
.underwater-bingo .word-pearl{
  box-sizing:border-box;
  width:clamp(160px,15vw,230px);
  height:clamp(160px,15vw,230px);
  min-width:clamp(160px,15vw,230px);
  min-height:clamp(160px,15vw,230px);
  aspect-ratio:1/1;
  flex:none;
  overflow:hidden;
  border-radius:50%;
  background:
    radial-gradient(ellipse at 27% 18%,rgba(255,255,255,.96) 0 5%,rgba(255,255,255,.48) 10%,transparent 24%),
    radial-gradient(ellipse at 76% 69%,rgba(255,244,204,.34),transparent 27%),
    radial-gradient(ellipse at 22% 77%,rgba(169,229,255,.30),transparent 31%),
    conic-gradient(from 205deg at 51% 49%,rgba(255,181,229,.20),rgba(177,235,255,.25),rgba(255,249,190,.23),rgba(210,179,255,.22),rgba(255,181,229,.20)),
    var(--pearl);
  box-shadow:
    inset 15px 18px 25px rgba(255,255,255,.52),
    inset -17px -19px 25px rgba(47,55,86,.20),
    inset 0 0 18px rgba(255,255,255,.48),
    0 0 28px var(--pearl-glow),
    0 13px 24px rgba(0,32,55,.30)
}
.underwater-bingo .word-pearl:before,.underwater-bingo .pearl-mark:before,.flying-bingo-pearl:before,.underwater-bingo .oyster-pearl:before{
  content:"";position:absolute;pointer-events:none;border-radius:50%;inset:4%;
  background:
    linear-gradient(118deg,transparent 18%,rgba(255,255,255,.22) 34%,transparent 48%),
    radial-gradient(ellipse at 31% 22%,rgba(255,255,255,.82) 0 4%,rgba(255,255,255,.24) 13%,transparent 25%),
    radial-gradient(ellipse at 68% 78%,rgba(255,255,255,.23),transparent 31%);
  mix-blend-mode:screen;opacity:.88
}
.underwater-bingo .word-pearl:after,.underwater-bingo .pearl-mark:after,.flying-bingo-pearl:after{
  content:"";position:absolute;pointer-events:none;left:16%;right:18%;bottom:7%;height:13%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,255,255,.34),transparent 68%);filter:blur(2px)
}
.underwater-bingo .word-pearl strong,.underwater-bingo .word-pearl button,.underwater-bingo .pearl-mark strong{position:relative;z-index:3}
.underwater-bingo .reef-oyster .oyster-pearl,.underwater-bingo .bubble-cell .pearl-mark,.flying-bingo-pearl{
  overflow:hidden;
  background:
    radial-gradient(ellipse at 27% 18%,rgba(255,255,255,.92) 0 5%,rgba(255,255,255,.38) 12%,transparent 26%),
    radial-gradient(ellipse at 73% 72%,rgba(255,245,205,.28),transparent 28%),
    conic-gradient(from 205deg,rgba(255,181,229,.17),rgba(177,235,255,.23),rgba(255,249,190,.19),rgba(210,179,255,.20),rgba(255,181,229,.17)),
    var(--pearl)
}
.underwater-bingo .bubble-cell .pearl-mark{border-radius:50%;aspect-ratio:1/1}
.underwater-bingo .bubble-cell .pearl-mark strong{display:flex;align-items:center;justify-content:center;height:72%;overflow-wrap:anywhere}
@media(max-width:900px){.underwater-bingo .word-pearl{width:112px;height:112px;min-width:112px;min-height:112px}}

/* v145: gouden bingolijn, vonken en superbingo */
.underwater-bingo .bubble-cell.winning{z-index:5;animation:winner-gold-pulse .82s ease-in-out infinite alternate;filter:drop-shadow(0 0 9px #ffe16b)}
.underwater-bingo .bubble-cell.winning:after{content:"✦";position:absolute;z-index:8;inset:5%;display:grid;place-items:start end;padding:3%;box-sizing:border-box;border:clamp(3px,.32vw,6px) solid #ffd34d;border-radius:50%;color:#fff3a3;font-size:clamp(.7rem,1.25vw,1.25rem);line-height:1;text-shadow:-35px 10px #ffd34d,-19px -10px #fff4a3,8px -14px #ffd34d,21px 4px #fff4a3,29px 30px #ffc928,5px 37px #fff4a3,-27px 34px #ffd34d;box-shadow:inset 0 0 8px #fff7b5,0 0 8px #fff2a2,0 0 17px #e9a800;pointer-events:none;animation:bingo-sparks .7s ease-in-out infinite alternate}
.underwater-bingo-win .win-actions{flex-wrap:wrap}.underwater-bingo-win .win-actions button{min-width:126px}
.full-card-win:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle,rgba(255,239,121,.38),transparent 46%);animation:full-card-wave 1.25s ease-out infinite}
.full-card-win .bingo-treasure{border-color:#ffe36e;box-shadow:0 0 70px #ffd84f,0 20px 45px rgba(0,20,42,.48)}
.full-card-win .open-chest{display:block;animation:chest-celebrate .7s cubic-bezier(.2,.9,.2,1) infinite alternate}
@keyframes winner-gold-pulse{from{transform:scale(1);filter:drop-shadow(0 0 7px #ffd34d)}to{transform:scale(1.065);filter:drop-shadow(0 0 17px #fff4a3)}}
@keyframes bingo-sparks{from{transform:rotate(-2deg) scale(.97);opacity:.72}to{transform:rotate(2deg) scale(1.05);opacity:1}}
@keyframes full-card-wave{from{transform:scale(.4);opacity:.9}to{transform:scale(1.2);opacity:0}}
@keyframes chest-celebrate{from{transform:translateY(2px) scale(1)}to{transform:translateY(-8px) scale(1.13);filter:drop-shadow(0 0 15px #fff0a0)}}

/* v146: goedgekeurde parelafbeeldingen, ongebroken woorden en schelpkeuze */
.underwater-bingo .pearl-0,.pearl-0{--pearl-art:url('assets/bingo/pearls/pearl-01.webp')}.underwater-bingo .pearl-1,.pearl-1{--pearl-art:url('assets/bingo/pearls/pearl-02.webp')}.underwater-bingo .pearl-2,.pearl-2{--pearl-art:url('assets/bingo/pearls/pearl-03.webp')}.underwater-bingo .pearl-3,.pearl-3{--pearl-art:url('assets/bingo/pearls/pearl-04.webp')}.underwater-bingo .pearl-4,.pearl-4{--pearl-art:url('assets/bingo/pearls/pearl-05.webp')}.underwater-bingo .pearl-5,.pearl-5{--pearl-art:url('assets/bingo/pearls/pearl-06.webp')}.underwater-bingo .pearl-6,.pearl-6{--pearl-art:url('assets/bingo/pearls/pearl-07.webp')}.underwater-bingo .pearl-7,.pearl-7{--pearl-art:url('assets/bingo/pearls/pearl-08.webp')}.underwater-bingo .pearl-8,.pearl-8{--pearl-art:url('assets/bingo/pearls/pearl-09.webp')}.underwater-bingo .pearl-9,.pearl-9{--pearl-art:url('assets/bingo/pearls/pearl-10.webp')}.underwater-bingo .pearl-10,.pearl-10{--pearl-art:url('assets/bingo/pearls/pearl-11.webp')}.underwater-bingo .pearl-11,.pearl-11{--pearl-art:url('assets/bingo/pearls/pearl-12.webp')}.underwater-bingo .pearl-12,.pearl-12{--pearl-art:url('assets/bingo/pearls/pearl-13.webp')}.underwater-bingo .pearl-13,.pearl-13{--pearl-art:url('assets/bingo/pearls/pearl-14.webp')}.underwater-bingo .pearl-14,.pearl-14{--pearl-art:url('assets/bingo/pearls/pearl-15.webp')}.underwater-bingo .pearl-gold,.pearl-gold{--pearl-art:url('assets/bingo/pearls/pearl-gold.webp')}
.underwater-bingo .word-pearl,.underwater-bingo .reef-oyster .oyster-pearl,.underwater-bingo .bubble-cell .pearl-mark,.flying-bingo-pearl{background-image:var(--pearl-art)!important;background-color:transparent!important;background-size:100% 100%!important;background-position:center!important;background-repeat:no-repeat!important}
.underwater-bingo .word-pearl:before,.underwater-bingo .word-pearl:after,.underwater-bingo .pearl-mark:before,.underwater-bingo .pearl-mark:after,.flying-bingo-pearl:before,.flying-bingo-pearl:after,.underwater-bingo .oyster-pearl:before{display:none}
.underwater-bingo .word-pearl strong,.underwater-bingo .pearl-mark strong{display:block;width:auto;max-width:91%;min-width:0;height:auto;min-height:0;white-space:nowrap;overflow:visible;overflow-wrap:normal;word-break:keep-all;hyphens:none;text-align:center;color:#123b58;text-shadow:-1px -1px 0 rgba(255,255,255,.96),1px -1px 0 rgba(255,255,255,.96),-1px 1px 0 rgba(255,255,255,.96),1px 1px 0 rgba(255,255,255,.96),0 2px 3px rgba(0,34,58,.18)}
.underwater-bingo .word-pearl{border-color:rgba(255,255,255,.94);box-shadow:0 0 25px var(--pearl-glow),0 13px 24px rgba(0,32,55,.32)}
.underwater-bingo .pearl-gold{--pearl-glow:#ffd45a;filter:saturate(1.16) contrast(1.06)}
.shell-choice-win{background:rgba(0,44,78,.28);backdrop-filter:blur(2px)}
.sea-win-actions{display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,52px);width:min(94vw,980px)}
.shell-action{position:relative;width:clamp(180px,20vw,260px);height:clamp(150px,18vw,225px);padding:0;border:0;background:transparent;color:#083f59;cursor:pointer;filter:drop-shadow(0 13px 13px rgba(0,27,48,.42));transition:transform .2s ease,filter .2s ease}
.shell-action span{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(9rem,16vw,13rem);line-height:1;transform:rotate(-8deg);filter:saturate(.72) brightness(1.25)}
.shell-action i{position:absolute;z-index:2;left:50%;top:39%;transform:translate(-50%,-50%);display:grid;place-items:center;width:clamp(48px,5vw,68px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 27%,#fff,#cdeff1 36%,#68bdc3 72%,#2e7d88);box-shadow:0 0 12px #fff;color:#07536a;font-style:normal;font-size:clamp(1.5rem,2.5vw,2.4rem);font-weight:1000}
.shell-action b{position:absolute;z-index:3;left:50%;bottom:13%;transform:translateX(-50%);width:76%;padding:.5rem .35rem;border:2px solid rgba(255,255,255,.9);border-radius:999px;background:#086e86;color:#fff9d5;font-size:clamp(.85rem,1.25vw,1.08rem);white-space:nowrap;box-shadow:0 4px 9px rgba(0,34,54,.24)}
.shell-action:hover,.shell-action:focus-visible{transform:translateY(-9px) scale(1.05);filter:drop-shadow(0 0 15px #fff5a2) drop-shadow(0 15px 13px rgba(0,27,48,.42));outline:0}
.shell-again span{filter:hue-rotate(315deg) saturate(.85) brightness(1.2)}.shell-continue span{transform:rotate(4deg);filter:hue-rotate(45deg) saturate(.9) brightness(1.18)}.shell-close span{transform:rotate(10deg);filter:hue-rotate(175deg) saturate(.8) brightness(1.12)}
.shell-again b{background:#277d66}.shell-continue b{background:#087d9a}.shell-close b{background:#b64f49}
@media(max-width:760px){.sea-win-actions{gap:4px}.shell-action{width:31vw;height:28vw}.shell-action span{font-size:25vw}.shell-action b{font-size:.65rem;bottom:4%}}

/* v148: levende achtergrond zonder ingebakken vissen of luchtbellen */
.underwater-bingo .reef-life{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none}
.underwater-bingo .swimming-fish{position:absolute;left:-14%;width:clamp(38px,4.5vw,86px);height:auto;opacity:.88;filter:drop-shadow(0 4px 5px rgba(0,45,75,.22));animation:fish-swim 22s linear infinite}
.underwater-bingo .fish-1{top:10%;animation-duration:25s;animation-delay:-7s}.underwater-bingo .fish-2{top:19%;width:clamp(31px,3.7vw,70px);animation-duration:30s;animation-delay:-22s}.underwater-bingo .fish-3{top:31%;width:clamp(25px,3vw,58px);animation-duration:34s;animation-delay:-12s}.underwater-bingo .fish-4{top:43%;width:clamp(34px,4vw,76px);animation-duration:28s;animation-delay:-3s}.underwater-bingo .fish-5{top:57%;width:clamp(24px,2.7vw,52px);animation-duration:37s;animation-delay:-29s}.underwater-bingo .fish-6{top:69%;width:clamp(28px,3.2vw,61px);animation-duration:32s;animation-delay:-17s}.underwater-bingo .fish-7{top:78%;width:clamp(22px,2.5vw,48px);animation-duration:39s;animation-delay:-9s}
.underwater-bingo .rising-bubbles{position:absolute;inset:0}.underwater-bingo .rising-bubbles i{position:absolute;left:calc(4% + var(--bi)*5.15%);bottom:-8%;width:calc(7px + var(--bi)*.32px);aspect-ratio:1;border:1.5px solid rgba(223,251,255,.7);border-radius:50%;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.9) 0 8%,rgba(201,245,255,.18) 26%,rgba(94,203,230,.08) 58%,transparent 62%);box-shadow:inset 1px 1px 3px rgba(255,255,255,.55);opacity:0;animation:bubble-rise calc(9s + var(--bi)*.55s) ease-in infinite;animation-delay:calc(var(--bi)*-.83s)}
@keyframes fish-swim{0%{transform:translateX(0) translateY(0) rotate(-1deg)}24%{transform:translateX(31vw) translateY(-8px) rotate(1deg)}52%{transform:translateX(66vw) translateY(7px) rotate(-1deg)}78%{transform:translateX(99vw) translateY(-5px) rotate(1deg)}100%{transform:translateX(128vw) translateY(0) rotate(-1deg)}}
@keyframes bubble-rise{0%{transform:translate(0,0) scale(.72);opacity:0}10%{opacity:.72}50%{transform:translate(13px,-52vh) scale(1)}88%{opacity:.58}100%{transform:translate(-9px,-108vh) scale(1.18);opacity:0}}
@media(prefers-reduced-motion:reduce){.underwater-bingo .swimming-fish,.underwater-bingo .rising-bubbles i{animation-duration:1ms;animation-iteration-count:1;opacity:.45}}

/* v149: volle kaart wordt in de onderwaterwereld gevierd */
.underwater-bingo-win.full-card-win{background:rgba(0,34,67,.12);backdrop-filter:none}
.full-card-win .full-treasure-scene{position:absolute;z-index:1;left:13.5%;bottom:10%;width:clamp(190px,22vw,360px);height:clamp(180px,24vw,390px);pointer-events:none}
.full-card-win .treasure-aura{position:absolute;left:50%;bottom:5%;width:150%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#fffbd0 0 5%,rgba(255,221,75,.75) 13%,rgba(255,193,25,.3) 34%,transparent 67%);animation:treasure-aura 1.1s ease-out both}
.full-card-win .treasure-light{position:absolute;left:50%;bottom:18%;width:115%;height:120%;transform:translateX(-50%);clip-path:polygon(43% 100%,0 0,30% 0,49% 100%,43% 0,61% 0,55% 100%,72% 0,100% 0,61% 100%);background:linear-gradient(to top,rgba(255,210,48,.78),rgba(255,250,181,.12));filter:blur(2px);transform-origin:50% 100%;animation:treasure-beams 1.25s .2s ease-out both}
.full-card-win .treasure-lid{position:absolute;z-index:3;left:16%;bottom:12%;width:68%;height:25%;border:clamp(5px,.55vw,9px) solid #c6922d;border-radius:55% 55% 14% 14%;background:linear-gradient(165deg,#7d3d18 0 34%,#b26325 50%,#5d2d17 77%);box-shadow:inset 0 7px 8px rgba(255,208,99,.35),0 8px 12px rgba(0,20,31,.45);transform-origin:50% 100%;animation:treasure-open .95s cubic-bezier(.15,.9,.25,1) both}
.full-card-win .full-treasure-scene i{position:absolute;z-index:4;left:50%;bottom:21%;width:clamp(6px,.65vw,12px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#fff09a 28%,#f5b615 68%,#9b5a00);box-shadow:0 0 10px #fff3a0;opacity:0;animation:treasure-particle calc(.9s + var(--pi)*.025s) calc(.25s + var(--pi)*.035s) ease-out infinite}
.full-card-win .full-card-actions{position:relative;z-index:5;opacity:0;transform:translateY(24px);animation:full-actions-in .55s 1.65s ease-out forwards}
@keyframes treasure-open{0%{transform:perspective(300px) rotateX(0);filter:brightness(.8)}35%{transform:perspective(300px) translateY(-5%) rotateX(-28deg)}100%{transform:perspective(300px) translateY(-45%) rotateX(-108deg);filter:brightness(1.18)}}
@keyframes treasure-aura{0%{transform:translateX(-50%) scale(.15);opacity:0}35%{opacity:1}100%{transform:translateX(-50%) scale(1);opacity:.82}}
@keyframes treasure-beams{0%{transform:translateX(-50%) scaleY(.08);opacity:0}45%{opacity:1}100%{transform:translateX(-50%) scaleY(1);opacity:.78}}
@keyframes treasure-particle{0%{transform:translate(0,0) scale(.4);opacity:0}16%{opacity:1}65%{transform:translate(var(--px),calc(-1 * var(--rise))) scale(1)}100%{transform:translate(var(--px),calc(-1 * var(--rise2))) scale(.55);opacity:0}}
@keyframes full-actions-in{to{opacity:1;transform:translateY(0)}}

/* De schatkist is een losse spel-laag; zo kan dezelfde kist werkelijk open. */
.underwater-bingo .game-treasure{position:absolute;z-index:3;left:10.5%;bottom:10.5%;width:clamp(180px,16vw,305px);height:auto;transform:translateX(-50%);filter:drop-shadow(0 8px 7px rgba(0,24,37,.4));transition:opacity .18s ease}
.underwater-bingo .game-treasure.hidden{opacity:0}
.full-card-win .full-treasure-scene{left:10.5%;bottom:8.5%;width:clamp(220px,19vw,365px);height:clamp(210px,23vw,420px);transform:translateX(-50%)}
.full-card-win .treasure-open-chest{position:absolute;z-index:3;left:50%;bottom:0;width:100%;height:auto;transform:translateX(-50%) scale(.92);transform-origin:50% 100%;filter:drop-shadow(0 10px 9px rgba(0,24,37,.46)) drop-shadow(0 0 16px rgba(255,211,66,.6));animation:open-chest-arrive .72s cubic-bezier(.15,.9,.25,1) both}
.full-card-win .treasure-light{z-index:2;bottom:43%}
@keyframes open-chest-arrive{0%{transform:translateX(-50%) scale(.78,.62);opacity:0;filter:brightness(.72)}55%{opacity:1}100%{transform:translateX(-50%) scale(.92);opacity:1}}

/* v150: de drie goedgekeurde, realistische schelpknoppen */
.underwater-bingo-win .sea-win-actions{gap:clamp(10px,1.7vw,28px);width:min(98vw,1120px)}
.underwater-bingo-win .shell-action{width:clamp(210px,21vw,310px);height:clamp(175px,19vw,280px);display:grid;place-items:center;overflow:visible}
.underwater-bingo-win .shell-action img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(0,25,45,.42));transform:none}
.underwater-bingo-win .shell-action:hover img,.underwater-bingo-win .shell-action:focus-visible img{filter:drop-shadow(0 0 16px #fff3a0) drop-shadow(0 15px 13px rgba(0,25,45,.42))}
.underwater-bingo-win .shell-again span,.underwater-bingo-win .shell-again i,.underwater-bingo-win .shell-again b,.underwater-bingo-win .shell-continue span,.underwater-bingo-win .shell-continue i,.underwater-bingo-win .shell-continue b,.underwater-bingo-win .shell-close span,.underwater-bingo-win .shell-close i,.underwater-bingo-win .shell-close b{display:none}
@media(max-width:760px){.underwater-bingo-win .shell-action{width:32vw;height:31vw}.underwater-bingo-win .sea-win-actions{gap:0}}

/* v151: correcte diepte bij de kist en vertrekpunt uit de opening */
.underwater-bingo .game-foreground-rock{position:absolute;z-index:4;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.full-card-win .treasure-foreground-rock{position:fixed;z-index:4;left:0;right:0;top:78px;width:100%;height:calc(100vh - 78px);object-fit:cover;pointer-events:none}
.full-card-win .full-treasure-scene i{bottom:48%}

/* v152: ook lange begrippen blijven binnen het ronde leesvlak */
.underwater-bingo .word-pearl strong{max-width:76%;line-height:1.08}




/* v165: grotere Chromebook-bingokaart en kleinere passe-partouts */
.underwater-bingo .bubble-card{right:4px;top:6px;width:min(56vw,calc(100% - 12px));height:min(56vw,calc(100% - 12px));padding:clamp(3px,.48vw,7px);border-width:2px;border-radius:clamp(20px,2vw,30px)}
.underwater-bingo .bubble-board-4{gap:clamp(0px,.12vw,2px)}
.underwater-bingo .bubble-cell:before{inset:-4%;background-size:104% 104%}
.underwater-bingo .bubble-cell img{width:79%;height:79%;padding:.5%;border-radius:47%;box-shadow:0 0 5px rgba(255,255,255,.72)}
.underwater-bingo .word-pearl{left:40.5%}
.underwater-bingo .bubble-cell .pearl-mark{inset:11%}
@media (orientation:landscape) and (max-height:820px){
  .underwater-bingo .bubble-card{right:2px;top:3px;width:min(57vw,calc(100% - 6px));height:min(57vw,calc(100% - 6px));padding:2px}
  .underwater-bingo .bubble-board-4{gap:0}
  .underwater-bingo .bubble-cell img{width:81%;height:81%;padding:0}
  .underwater-bingo .word-pearl{left:39.5%;top:37%}
}
