:root{color:#f8fafc;background:#0f7b47;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;overflow:hidden}button,input,textarea,select{font:inherit}.app-shell{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:#0d7444}.stadium-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;overflow:hidden;background:linear-gradient(180deg,#0412246b,#04122429 42%,#020a081a),url(/assets/stadium-v2-B8P7I196.webp) center / cover no-repeat,linear-gradient(180deg,#123c65,#0d7444)}.stadium-sky{position:absolute;top:0;right:0;bottom:54%;left:0;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.18),transparent 14%),radial-gradient(circle at 80% 18%,rgba(255,255,255,.16),transparent 14%),linear-gradient(180deg,#0412241f,#04122400)}.stadium-stands{position:absolute;inset:28% -8% auto;height:22%;background:linear-gradient(180deg,#04122400,#04122429);clip-path:polygon(0 18%,100% 0,100% 100%,0 100%);opacity:.42}.pitch-lines{position:absolute;top:42%;right:4%;bottom:-9%;left:4%;border:2px solid rgba(255,255,255,.42);border-radius:45% 45% 0 0;transform:perspective(440px) rotateX(58deg);transform-origin:center bottom;opacity:.34}.pitch-lines:before,.pitch-lines:after{position:absolute;content:"";left:50%;transform:translate(-50%)}.pitch-lines:before{top:30%;width:34%;aspect-ratio:1;border:2px solid rgba(255,255,255,.36);border-radius:50%}.pitch-lines:after{top:0;bottom:0;width:2px;background:#ffffff47}.start-screen,.goal-animation,.invitation-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;width:100%;min-height:100svh;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom))}.start-screen{justify-content:space-between;gap:1rem}.goal-animation,.invitation-screen{justify-content:center}.score-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;width:min(100%,25rem);min-height:3.25rem;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.28);border-radius:.5rem;background:#041224b8;box-shadow:0 1rem 2rem #030c1540;-webkit-backdrop-filter:blur(.55rem);backdrop-filter:blur(.55rem);text-align:center}.score-strip span{color:#e0f2fe;font-size:.88rem;font-weight:700}.score-strip strong{display:grid;place-items:center;width:2.3rem;aspect-ratio:1;border-radius:50%;background:#f7c948;color:#101820;font-size:1.28rem;line-height:1}.intro-copy{width:min(100%,28rem);margin:0 auto;padding:.9rem .85rem;border-radius:.5rem;background:linear-gradient(180deg,#030c1857,#030c181a);box-shadow:0 1.2rem 2.4rem #030c1524;text-align:center;text-shadow:0 .12rem .5rem rgba(4,13,24,.42);-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.kicker{margin:0 0 .55rem;color:#f7c948;font-size:.82rem;font-weight:800;text-transform:uppercase}.intro-copy h1{margin:0;color:#fff;font-size:2.25rem;line-height:1.02}.headline{margin:.75rem auto 0;max-width:24rem;color:#f8fafc;font-size:1.06rem;font-weight:750;line-height:1.34}.instruction{width:fit-content;max-width:100%;margin:.95rem auto 0;padding:.46rem .76rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff24;color:#fff;font-size:.94rem;font-weight:700}.field-stage{position:relative;width:min(100%,28rem);height:30svh;min-height:12.5rem;max-height:18rem;flex:0 0 auto}.ball-button,.animated-ball{position:absolute;left:50%;bottom:2.4rem;width:6.7rem;aspect-ratio:1;transform:translate(-50%);filter:drop-shadow(0 1rem .95rem rgba(4,13,24,.42)) drop-shadow(0 0 .65rem rgba(255,255,255,.22))}.ball-button{display:grid;place-items:center;border:0;border-radius:50%;background:transparent;cursor:pointer;touch-action:manipulation;transition:transform .18s ease,filter .18s ease;-webkit-tap-highlight-color:transparent}.ball-button:focus-visible{outline:4px solid #f7c948;outline-offset:.35rem}.ball-button:hover,.ball-button:focus-visible{transform:translate(-50%) translateY(-.22rem) scale(1.03);filter:drop-shadow(0 1.25rem 1.05rem rgba(4,13,24,.42))}.ball-button img{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none}.animated-ball{display:block;object-fit:contain;-webkit-user-select:none;user-select:none}.tap-hint{position:absolute;left:50%;bottom:0;margin:0;transform:translate(-50%);color:#fff;font-size:.95rem;font-weight:800;text-shadow:0 .14rem .5rem rgba(4,13,24,.55);white-space:nowrap}.shot-stage{position:absolute;top:0;right:0;bottom:0;left:0;min-height:100svh}.animated-ball{bottom:clamp(3.25rem,7svh,5.5rem);z-index:2}.goal-shout{position:absolute;top:37%;right:0;left:0;z-index:3;margin:0;color:#f7c948;font-size:3.35rem;font-weight:950;line-height:.95;text-align:center;text-shadow:0 .15rem 0 #111827,0 .8rem 1.5rem rgba(4,13,24,.45)}.invitation-screen{padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom))}.invitation-card{width:min(100%,28rem);max-height:calc(100svh - 2rem);overflow:auto;padding:1.35rem;border:1px solid rgba(255,255,255,.52);border-radius:.5rem;background:linear-gradient(180deg,#fffffffa,#eef7f2f5),#fff;box-shadow:0 1.6rem 3.2rem #02061752;-webkit-backdrop-filter:blur(.45rem);backdrop-filter:blur(.45rem);color:#101820;text-align:center}.club-badge{display:grid;place-items:center;width:4.4rem;aspect-ratio:1;margin:0 auto .65rem;border:.25rem solid #f7c948;border-radius:50%;background:#0b4ea2;color:#fff;font-size:1.2rem;font-weight:950}.invitation-card .kicker{margin-bottom:.45rem;color:#0b6f44}.invitation-card h1{margin:0;color:#0f172a;font-size:1.8rem;line-height:1.08}.birthday-line{margin:.9rem 0 1.1rem;color:#1f2937;font-size:1.18rem;font-weight:800}.birthday-line span{display:inline-grid;place-items:center;width:2.2rem;aspect-ratio:1;border-radius:50%;background:#f7c948;color:#101820}.event-details{display:grid;gap:.72rem;margin:0;text-align:left}.event-details div{padding:.78rem .86rem;border:1px solid rgba(15,123,71,.16);border-radius:.5rem;background:#0f7b4712}.event-details dt{margin:0 0 .18rem;color:#0b4ea2;font-size:.78rem;font-weight:900;text-transform:uppercase}.event-details dd{margin:0;color:#111827;font-size:1rem;font-weight:720;line-height:1.35}.retry-button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;margin:1rem auto 0;padding:.78rem 1.05rem;border:0;border-radius:999px;background:#0b4ea2;box-shadow:0 .85rem 1.5rem #0b4ea238;color:#fff;cursor:pointer;font-size:.96rem;font-weight:900;line-height:1;touch-action:manipulation}.retry-button:hover,.retry-button:focus-visible{background:#083f86}.retry-button:focus-visible{outline:4px solid #f7c948;outline-offset:.25rem}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;display:none;overflow:hidden;pointer-events:none}.confetti-layer.is-active{display:block}.confetti-piece{position:absolute;top:-1rem;width:.58rem;height:.9rem;border-radius:.12rem;opacity:.95;animation:confetti-fall var(--duration) linear var(--delay) infinite}.confetti-piece--circle{width:.56rem;height:.56rem;border-radius:50%}.confetti-piece--ribbon{width:.34rem;height:1.2rem;border-radius:999px}@keyframes confetti-fall{0%{transform:translate3d(0,-8svh,0) rotate(0)}to{transform:translate3d(var(--drift),112svh,0) rotate(var(--spin))}}@media(min-width:48rem){.start-screen,.goal-animation,.invitation-screen{padding:1.4rem 1.6rem}.score-strip{width:28rem}.intro-copy h1{font-size:3.25rem}.headline{font-size:1.25rem}.instruction{font-size:1rem}.field-stage{width:34rem;min-height:15rem}.ball-button,.animated-ball{width:7.8rem}.goal-shout{font-size:5.1rem}.invitation-card{width:32rem;padding:1.65rem}.invitation-card h1{font-size:2.15rem}}@media(max-height:40rem){.score-strip{min-height:2.85rem}.intro-copy h1{font-size:1.9rem}.headline{font-size:.98rem}.instruction{margin-top:.65rem}.field-stage{height:27svh;min-height:10rem}.ball-button,.animated-ball{width:5.7rem}.tap-hint{font-size:.86rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
