:root{--velvet-bg: #faf6f8;--velvet-bg-deep: #f3e4ec;--velvet-rose: #c97a94;--velvet-rose-dark: #9e4d6a;--velvet-gold: #c9a06a;--velvet-text: #2d1f28;--velvet-muted: #6b5a64;--shadow-soft: 0 12px 40px rgba(158, 77, 106, .15);--radius-lg: 24px;font-family:Poppins,system-ui,sans-serif;line-height:1.5;font-weight:400;color:var(--velvet-text);background:var(--velvet-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse 80% 50% at 50% -10%,#f8dce8 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 100%,#efe0d4 0%,transparent 50%),var(--velvet-bg)}#root{min-height:100dvh;width:100%}.page{min-height:100dvh;width:100%;display:flex;flex-direction:column;align-items:stretch;padding:max(.75rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.page--game{max-width:none}.page--gate .main--gate{justify-content:center}.top-bar{width:100%;max-width:960px;margin:0 auto .35rem;display:flex;justify-content:flex-end;flex-shrink:0}.btn-records{font-family:inherit;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--velvet-rose-dark);background:#ffffffd9;border:1px solid rgba(201,122,148,.45);border-radius:999px;padding:.45rem .85rem;cursor:pointer;box-shadow:0 2px 8px #9e4d6a1f}.btn-records:active{transform:scale(.98)}.header{text-align:center;margin-bottom:.5rem;width:100%}.logo-link{display:inline-block}.logo{max-width:min(200px,70vw);height:auto;display:block;margin:0 auto}.tagline{margin:.35rem 0 0;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--velvet-rose-dark)}.main{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;min-height:0}.main--game{flex:1;width:100%;max-width:960px;margin:0 auto;align-self:center}.game-intro{width:100%;text-align:center;flex-shrink:0}.game-footer{width:100%;text-align:center;flex-shrink:0;padding-top:.25rem}.subtitle--game{margin-bottom:.65rem;max-width:36ch}.gate{width:100%;max-width:min(420px,100%)}.gate-lead{max-width:none}.gate-form{display:flex;flex-direction:column;gap:1rem;width:100%;margin-bottom:.5rem}.field{display:flex;flex-direction:column;gap:.35rem;text-align:left}.field-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--velvet-muted)}.field input{font-family:inherit;font-size:1rem;padding:.75rem 1rem;border:1px solid rgba(201,122,148,.35);border-radius:12px;background:#fff;color:var(--velvet-text)}.field input:focus{outline:2px solid var(--velvet-rose);outline-offset:1px}.field-error{margin:0;font-size:.85rem;font-weight:600;color:#b4234a;text-align:left}.btn-full{width:100%}.player-chip{margin:0 0 .25rem;font-size:.85rem;color:var(--velvet-muted);text-align:center}.player-chip strong{color:var(--velvet-rose-dark)}.title--compact{margin-top:.25rem}.title{margin:.75rem 0 .25rem;font-size:clamp(1.75rem,6vw,2.1rem);font-weight:800;letter-spacing:-.02em;text-align:center}.retry-banner{margin:0 0 .75rem;padding:.65rem 1rem;background:linear-gradient(135deg,#f5dce8,#fff);border-radius:12px;font-size:.85rem;font-weight:600;color:var(--velvet-rose-dark);text-align:center;border:1px solid rgba(201,122,148,.35);animation:slide-up .3s ease}.subtitle{margin:0 0 1.25rem;font-size:.95rem;color:var(--velvet-muted);text-align:center;max-width:28ch}.carnival{width:100%;flex:1;min-height:min(52dvh,420px);max-height:72dvh;margin:.15rem 0 .35rem;display:flex;flex-direction:column}.carnival-awning{height:2.1rem;border-radius:14px 14px 0 0;background:repeating-linear-gradient(90deg,#f8b4c8 0,#f8b4c8 14px,#fff 14px,#fff 28px);display:flex;align-items:center;justify-content:center;box-shadow:0 4px #e8a0b4}.carnival-awning-text{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--velvet-rose-dark);background:#ffffffd9;padding:.2rem .65rem;border-radius:999px}.carnival-stage{position:relative;flex:1;min-height:280px;border-radius:0 0 18px 18px;overflow:hidden;border:3px solid #f0b8ca;border-top:none;background:linear-gradient(180deg,#fce8f0,#f9dfe9 45%,#f3d0de)}.carnival-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 40% at 50% 0%,rgba(255,255,255,.55),transparent 60%),linear-gradient(180deg,transparent 55%,rgba(201,122,148,.12) 100%);pointer-events:none}.balloon{position:absolute;width:calc(min(12vw,5.5rem) * var(--balloon-scale, 1));height:calc(min(15vw,7rem) * var(--balloon-scale, 1));padding:0;border:none;background:transparent;cursor:pointer;transform-origin:center bottom;animation:balloon-float 3.2s ease-in-out infinite;animation-delay:var(--float-delay, 0s);transition:opacity .35s ease,transform .35s ease,filter .25s;z-index:2;-webkit-tap-highlight-color:transparent}.balloon:disabled{cursor:default}.balloon--target{filter:drop-shadow(0 0 8px rgba(255,220,120,.9));animation:balloon-wiggle .45s ease-in-out infinite}.balloon-body{display:flex;align-items:center;justify-content:center;width:100%;height:82%;border-radius:50% 50% 48% 48%;background:radial-gradient(circle at 32% 28%,#fff8fb 0%,var(--balloon-color) 42%,#b86a86 100%);box-shadow:inset -6px -10px 16px #9e4d6a38,0 8px 18px #9e4d6a33}.balloon-mark{font-size:1.35rem;font-weight:800;line-height:1;color:#ffffffeb;text-shadow:0 1px 3px rgba(158,77,106,.45);pointer-events:none;opacity:.85}.balloon-shine{position:absolute;top:14%;left:22%;width:22%;height:28%;border-radius:50%;background:#ffffffa6;pointer-events:none}.balloon-string{position:absolute;bottom:0;left:50%;width:1px;height:20%;background:linear-gradient(to bottom,rgba(158,77,106,.45),transparent);transform:translate(-50%);pointer-events:none}.balloon-burst{position:absolute;top:20%;left:50%;width:120%;height:120%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,200,220,.5) 40%,transparent 70%);animation:burst-flash .5s ease forwards;pointer-events:none}.balloon--dim{opacity:.4;transform:scale(.94);animation:none}.balloon--pop{animation:balloon-pop .52s ease forwards;pointer-events:none}.balloon--pop .balloon-string{opacity:0}.bunny{position:absolute;width:4.5rem;height:4.75rem;transform:translate(-50%,-50%) scaleX(var(--bunny-face, 1));transition:left .9s cubic-bezier(.34,1.15,.48,1),top .9s cubic-bezier(.34,1.15,.48,1);z-index:5;pointer-events:none}.bunny--idle .bunny-body{animation:bunny-idle 2.2s ease-in-out infinite}.bunny--idle .bunny-ear--left{animation:ear-wiggle-left 2.8s ease-in-out infinite}.bunny--idle .bunny-ear--right{animation:ear-wiggle-right 2.8s ease-in-out infinite .4s}.bunny--hop .bunny-body{animation:bunny-hop-run .9s ease}.bunny--hop .bunny-foot--left,.bunny--hop .bunny-foot--right{animation:bunny-feet .9s ease}.bunny--pop .bunny-body{animation:bunny-pop-jump .55s ease}.bunny--pop .bunny-wand{animation:wand-pop .55s ease}.bunny-shadow{position:absolute;bottom:-.15rem;left:50%;width:2.2rem;height:.45rem;transform:translate(-50%);background:#9e4d6a33;border-radius:50%;filter:blur(1px)}.bunny-wand{position:absolute;top:.15rem;right:.1rem;width:2rem;height:2rem;transform-origin:10% 90%;z-index:2}.bunny-wand-stick{position:absolute;bottom:0;left:0;width:1.85rem;height:3px;background:linear-gradient(90deg,#b8894a,#e8c07a);transform:rotate(-42deg);border-radius:2px}.bunny-wand-star{position:absolute;top:-.1rem;right:-.05rem;font-size:1rem;color:#f5d76e;text-shadow:0 1px 3px rgba(0,0,0,.2);animation:star-sparkle 1.6s ease-in-out infinite}.bunny-body{position:relative;width:100%;height:100%}.bunny-head{position:absolute;bottom:.85rem;left:50%;width:2.25rem;height:2.1rem;transform:translate(-50%);border-radius:50% 50% 45% 45%;background:linear-gradient(180deg,#fff,#f5eef2);box-shadow:0 6px 14px #9e4d6a38}.bunny-cheek{position:absolute;bottom:1.15rem;width:.45rem;height:.28rem;border-radius:50%;background:#f4a4bc8c}.bunny-cheek--left{left:1.15rem}.bunny-cheek--right{right:1.15rem}.bunny-ear{position:absolute;bottom:2.15rem;width:.58rem;height:1.75rem;border-radius:999px;background:linear-gradient(180deg,#fff,#f0e4ea);border:1px solid rgba(201,122,148,.25)}.bunny-ear--left{left:1rem;transform:rotate(-10deg)}.bunny-ear--right{right:1rem;transform:rotate(10deg)}.bunny-tail{position:absolute;bottom:.55rem;left:50%;width:.7rem;height:.7rem;transform:translate(-50%);border-radius:50%;background:#fff;box-shadow:0 0 0 2px #c97a9426}.bunny-foot{position:absolute;bottom:.15rem;width:.55rem;height:.35rem;border-radius:50% 50% 40% 40%;background:#fff;box-shadow:0 2px 4px #9e4d6a26}.bunny-foot--left{left:1.35rem}.bunny-foot--right{right:1.35rem}.hint-play{margin:0 0 .5rem;min-height:1.25rem;font-size:.9rem;font-weight:600;color:var(--velvet-rose-dark);text-align:center}@keyframes balloon-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes balloon-wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes balloon-pop{0%{transform:scale(1);opacity:1}35%{transform:scale(1.12);opacity:1}to{transform:scale(.15);opacity:0}}@keyframes burst-flash{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(1.4)}}@keyframes bunny-idle{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.02)}}@keyframes bunny-hop-run{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-16px) rotate(-4deg)}55%{transform:translateY(-8px) rotate(3deg)}75%{transform:translateY(-14px) rotate(-2deg)}}@keyframes bunny-pop-jump{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.05)}to{transform:translateY(0) scale(1)}}@keyframes bunny-feet{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes ear-wiggle-left{0%,to{transform:rotate(-10deg)}50%{transform:rotate(-16deg)}}@keyframes ear-wiggle-right{0%,to{transform:rotate(10deg)}50%{transform:rotate(16deg)}}@keyframes star-sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.15) rotate(18deg);opacity:.85}}@keyframes wand-pop{0%{transform:rotate(0)}35%{transform:rotate(-42deg) scale(1.12)}65%{transform:rotate(-18deg) scale(1.05)}to{transform:rotate(-10deg)}}.btn{font-family:inherit;font-weight:600;border:none;cursor:pointer;border-radius:999px;transition:transform .15s ease,box-shadow .15s ease,opacity .15s}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-spin{font-size:1.05rem;padding:.95rem 2.5rem;color:#fff;background:linear-gradient(135deg,var(--velvet-rose) 0%,var(--velvet-rose-dark) 100%);box-shadow:0 8px 24px #9e4d6a59}.btn-spin:not(:disabled):active{transform:scale(.98)}.btn-primary{padding:.75rem 1.5rem;color:#fff;background:var(--velvet-rose-dark);width:100%}.btn-ghost{padding:.75rem 1.5rem;background:transparent;color:var(--velvet-muted);width:100%}.fine-print{margin-top:1.25rem;font-size:.7rem;color:var(--velvet-muted);text-align:center;max-width:32ch;line-height:1.4}.footer{margin-top:auto;padding-top:.75rem;display:flex;gap:.5rem;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;flex-shrink:0}@media(min-width:768px){.logo{max-width:min(240px,40vw)}.carnival{min-height:480px;max-height:65dvh}.title--compact{font-size:2.25rem}}@media(min-width:1024px){.carnival{max-width:900px;margin-left:auto;margin-right:auto}}.footer a{color:var(--velvet-rose-dark);text-decoration:none}.footer a:hover{text-decoration:underline}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d1f2873;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:fade-in .25s ease}.modal{background:#fff;border-radius:var(--radius-lg);padding:1.75rem 1.5rem;max-width:360px;width:100%;box-shadow:0 24px 64px #0003;text-align:center;animation:slide-up .3s ease}.modal-player{margin:.35rem 0 0;font-size:.8rem;font-weight:600;color:var(--velvet-muted)}.modal-eyebrow{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--velvet-rose)}.modal-title{margin:.5rem 0 1rem;font-size:1.5rem;font-weight:800}.modal-title--win{color:var(--velvet-rose-dark)}.modal-body{margin:0 0 1.25rem;font-size:.9rem;color:var(--velvet-muted)}.coupon-box{background:var(--velvet-bg-deep);border-radius:12px;padding:1rem;margin-bottom:1.25rem}.coupon-label{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--velvet-muted)}.coupon-code{display:block;margin:.5rem 0;font-size:1.15rem;font-weight:800;color:var(--velvet-rose-dark);letter-spacing:.06em}.coupon-hint{margin:0;font-size:.75rem;color:var(--velvet-muted)}.modal-actions{display:flex;flex-direction:column;gap:.5rem}.modal--wide{max-width:min(96vw,520px);max-height:min(88dvh,640px);overflow:auto;text-align:left}.modal-title--left{text-align:left;margin-bottom:.35rem}.modal-body--left{text-align:left;margin-bottom:.75rem}.records-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.btn-icon{font-family:inherit;border:none;background:transparent;font-size:1.1rem;line-height:1;color:var(--velvet-muted);cursor:pointer;padding:.25rem .4rem}.records-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.btn-sm{padding:.45rem .75rem;font-size:.75rem;width:auto}.btn-danger-text{color:#b4234a}.records-empty{margin:0 0 1rem;font-size:.9rem;color:var(--velvet-muted);text-align:center;padding:1.5rem 0}.records-table-wrap{overflow:auto;max-height:min(45dvh,320px);border:1px solid rgba(201,122,148,.25);border-radius:12px;margin-bottom:1rem}.records-table{width:100%;border-collapse:collapse;font-size:.72rem}.records-table th,.records-table td{padding:.5rem .45rem;text-align:left;border-bottom:1px solid rgba(201,122,148,.15);vertical-align:top}.records-table th{position:sticky;top:0;background:var(--velvet-bg-deep);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;color:var(--velvet-muted)}.records-prize{display:block;font-weight:600;color:var(--velvet-rose-dark)}.records-code{display:block;font-size:.65rem;color:var(--velvet-muted);margin-top:.15rem;word-break:break-all}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
