/* Whack-A-Foofie! — frontend styles */
#waf-app{max-width:480px;margin:0 auto}
.waf-wrap{--waf-accent:#534AB7;border-radius:18px;overflow:hidden;background:#241546;border:1px solid #4a3a7a;font-family:inherit;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

.waf-head{background:var(--waf-accent);padding:12px 16px 14px;color:#fff;position:relative}
.waf-back{display:inline-flex;color:#e7defb;text-decoration:none;font-size:12px;font-weight:600}
.waf-back:hover{color:#fff}
.waf-titlerow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.waf-title{font-size:22px;font-weight:800;color:#ffd54a;letter-spacing:.3px;line-height:1.05}
.waf-stats{display:flex;gap:8px;flex:none}
.waf-stat{background:rgba(0,0,0,.22);border-radius:10px;padding:4px 10px;text-align:center;min-width:56px}
.waf-stat span{display:block;font-size:10px;letter-spacing:.5px;color:#e7defb}
.waf-stat b{font-size:18px;color:#fff;font-weight:800}

.waf-fieldwrap{position:relative;padding:16px 16px 20px;background:#4f9d5b;box-shadow:inset 0 3px 16px rgba(0,0,0,.22)}
.waf-grid{display:grid;gap:14px}
.waf-cell{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer;touch-action:none}
.waf-mound{position:absolute;left:0;right:0;bottom:0;height:30%;background:rgba(0,0,0,.16);border-radius:50% 50% 0 0 / 80% 80% 0 0}
.waf-hole{position:absolute;left:9%;right:9%;bottom:6%;height:26%;background:#2c1a0c;border-radius:50%;box-shadow:inset 0 7px 10px rgba(0,0,0,.55)}
.waf-mole{position:absolute;left:5%;right:5%;top:0;bottom:6%;transform:translate3d(0,120%,0);transition:transform .15s cubic-bezier(.2,1.15,.4,1);z-index:2;pointer-events:none;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.waf-mole svg{width:100%;height:100%;display:block}
.waf-mole img{width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block}
.waf-lip{position:absolute;left:7%;right:7%;bottom:5%;height:13%;background:#6b4423;border-radius:50%;z-index:3;pointer-events:none;box-shadow:0 3px 6px rgba(0,0,0,.25)}
.waf-float{position:absolute;left:0;right:0;top:2%;text-align:center;font-weight:800;font-size:22px;opacity:0;pointer-events:none;transition:opacity .3s,transform .5s;text-shadow:0 1px 3px rgba(0,0,0,.7);z-index:4}
.waf-bomb-flash{outline:4px solid #ff5252;outline-offset:-4px;border-radius:12px}

.waf-overlay{position:absolute;inset:0;background:#1a0f33;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;z-index:6;overflow:auto}
.waf-splash{width:auto;max-width:100%;max-height:40%;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.45);display:block}
.waf-legend{margin-top:12px;display:flex;flex-direction:column;gap:8px;width:100%;max-width:340px}
.waf-leg-intro{color:#e7defb;font-size:14px;line-height:1.5;max-width:320px}
.waf-link{appearance:none;-webkit-appearance:none;background:none;border:none;color:#cdbdf2;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:2px;text-decoration:underline;-webkit-tap-highlight-color:transparent}
.waf-link:hover{color:#fff}
.waf-leg-row{display:flex;align-items:center;gap:8px}
.waf-leg-lbl{font-size:11px;font-weight:800;letter-spacing:.6px;color:#aef5b0;min-width:48px;text-align:right;text-transform:uppercase}
.waf-leg-lbl-bad{color:#ff9a9a}
.waf-leg-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.waf-leg-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:3px 9px 3px 3px}
.waf-leg-chip img{width:27px;height:27px;border-radius:50%;object-fit:cover;display:block}
.waf-leg-ph{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);font-size:15px}
.waf-leg-pts{font-size:13px;font-weight:800;color:#ffd54a}
.waf-leg-bad{border-color:rgba(255,107,107,.5);background:rgba(255,107,107,.13)}
.waf-leg-bad .waf-leg-pts{color:#ff8a8a}
.waf-ov-title{color:#ffd54a;font-size:23px;font-weight:800;line-height:1.1}
.waf-ov-sub{color:#e7defb;font-size:14px;line-height:1.6;max-width:330px}
.waf-final{font-size:16px;color:#fff}
.waf-best{font-size:13px;color:#cdbdf2}
.waf-cost-note{margin-top:8px;font-size:12px;color:#cdbdf2}
.waf-btn{appearance:none;-webkit-appearance:none;display:inline-block;background:#ffd54a;color:#5a3d04;border:none;border-radius:999px;padding:14px 34px;margin-top:6px;font-size:16px;font-weight:800;line-height:1.1;cursor:pointer;font-family:inherit;box-shadow:0 4px 0 #c79a18;-webkit-tap-highlight-color:transparent}
.waf-btn:hover{filter:brightness(.97)}
.waf-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #c79a18}

.waf-credits{padding:10px 16px;text-align:center;color:#cdbdf2;font-size:13px;background:#1a0f33}
.waf-credits b{color:#ffd54a}

.waf-lb{background:#150c2a;padding:12px 16px 14px}
.waf-lb-h{color:#ffd54a;font-weight:800;font-size:14px;margin-bottom:8px}
.waf-lb-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;color:#e7defb;font-size:14px}
.waf-lb-row:nth-child(odd){background:rgba(255,255,255,.04)}
.waf-lb-me{background:rgba(255,213,74,.16);color:#fff}
.waf-lb-rank{width:22px;text-align:center;font-weight:800;color:#b9a9e8}
.waf-lb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.waf-lb-score{font-weight:800;color:#ffd54a}
.waf-lb-empty{color:#cdbdf2;font-size:13px}

/* fullscreen takeover (active during a round) */
.waf-fs-lock{overflow:hidden!important;touch-action:none}
.waf-wrap.waf-fs{position:fixed;inset:0;z-index:99999;width:100%;height:100vh;height:100dvh;max-width:none;border:none;border-radius:0;display:flex;flex-direction:column;overscroll-behavior:none}
.waf-fs .waf-head{flex:none}
.waf-fs .waf-back{display:none}
.waf-fs .waf-fieldwrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:14px}
.waf-fs .waf-grid{width:min(94vw,72vh);max-width:560px;aspect-ratio:1}
.waf-fs .waf-credits{flex:none}
.waf-fs .waf-lb{display:none}
.waf-close{display:none;position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.28);color:#fff;border:none;font-size:15px;font-weight:800;line-height:1;cursor:pointer;z-index:8;-webkit-tap-highlight-color:transparent}
.waf-fs .waf-close{display:flex;align-items:center;justify-content:center}

@media(max-width:520px){ .waf-title{font-size:18px} .waf-grid{gap:11px} .waf-fieldwrap{padding:14px 14px 18px} }
