:root{--brand-primary: #f472b6;--brand-primary-dark: #db5a9e;--brand-surface: #faf5ff;--brand-surface-deep: #f3e8ff;--brand-ink: #3d2a4a;--brand-muted: #7c6594;--brand-subtle: #9b84b0;--shadow-soft: 0 4px 16px rgba(244, 114, 182, .12);--shadow-card: 0 8px 28px rgba(61, 42, 74, .08), 0 2px 8px rgba(244, 114, 182, .06);--shadow-card-hover: 0 12px 36px rgba(61, 42, 74, .12), 0 4px 12px rgba(244, 114, 182, .1);--radius-card: 24px;--radius-btn: 18px;--transition-fast: .15s ease;--transition-smooth: .25s cubic-bezier(.22, 1, .36, 1)}.app-root{position:relative;width:100%;max-width:430px;height:var(--app-height, 100dvh);min-height:var(--app-height, 100dvh);margin:0 auto;background:linear-gradient(168deg,#f8f4ff,#f5eefc 42%,#ede4f8);overflow-x:clip;overflow-y:auto}.app-root:has(.title-screen-hero){overflow:hidden}.app-root-play{position:fixed;inset:0;width:100%;max-width:430px;height:var(--app-height, 100dvh);min-height:0;margin:0 auto;background:#11192b;overflow:hidden;overscroll-behavior:none;touch-action:none}.screen{padding:24px 20px 40px}.hero-header{margin:-24px -20px 28px;padding:32px 20px 28px;border-radius:0 0 28px 28px;background:linear-gradient(145deg,#ffb8dc 0%,var(--brand-primary) 42%,var(--brand-primary-dark) 100%);color:#fff;box-shadow:0 12px 32px #ff8ec847}.hero-header-compact{padding:28px 20px 22px}.hero-header .eyebrow{color:#ffffffd1}.hero-header .hero-title{color:#fff;text-shadow:0 2px 12px rgba(27,58,102,.18)}.hero-header .hero-subtitle{margin-bottom:0;color:#ffffffe0}.hero-teaser{margin:12px 0 0;font-size:13px;font-weight:700;color:#ffffffe6}.home-quick-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.home-quick-stat{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#fff3;border:1px solid rgba(255,255,255,.28)}.home-quick-stat span{font-size:11px;font-weight:700;letter-spacing:.02em;color:#eff7ffe6}.home-quick-stat strong{font-size:16px;font-weight:800;color:#fff}.eyebrow{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--brand-muted)}.title{margin:0 0 12px;font-size:34px;font-weight:900;line-height:1.15;letter-spacing:-.03em}.hero-title{font-size:38px}.subtitle{margin:0 0 24px;color:var(--brand-muted);font-size:15px;line-height:1.55}.card{padding:20px;margin-bottom:14px;border-radius:var(--radius-card);background:#fff;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-smooth),transform var(--transition-fast)}.card-featured{background:linear-gradient(180deg,#fff,#f8fbff)}.card.secondary{background:#ffffffc7;backdrop-filter:blur(8px)}.result-card{margin-bottom:20px}.card-label{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--brand-primary)}.card-value{margin:0 0 4px;font-size:22px;font-weight:800;color:var(--brand-ink)}.card-meta{margin:0 0 16px;font-size:13px;color:var(--brand-subtle)}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;border:none;border-radius:var(--radius-btn);font-weight:700;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(180deg,#ffb0d8 0%,var(--brand-primary) 55%,var(--brand-primary-dark) 100%);color:#fff;box-shadow:0 4px 14px #ff8ec859}.btn.primary:hover{box-shadow:0 6px 20px #3182f673}.btn.primary:active{box-shadow:0 2px 8px #3182f64d}.btn.ghost{background:#eef4ff;color:var(--brand-ink);box-shadow:inset 0 0 0 1px #3182f61f}.btn.ghost:hover{background:#e4edff}.btn.ghost:active{background:#d8e6ff}.btn.text{background:transparent;color:var(--brand-muted)}.btn.text:hover{color:var(--brand-primary)}.btn.text:active{opacity:.7}.btn.small{width:auto;min-height:36px;padding:0 12px;font-size:13px;border-radius:10px}.hint{margin-top:20px;text-align:center;font-size:12px;color:var(--brand-subtle)}.play-shell{position:relative;width:100%;height:100%;min-height:0;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);box-sizing:border-box;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.play-header{display:flex;align-items:center;justify-content:space-between;position:absolute;z-index:6;inset:0 0 auto;padding:calc(8px + env(safe-area-inset-top,0px)) 14px 10px;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(180deg,#0d182ecc,#0d182e3d 60%,#0d182e00);box-shadow:none;pointer-events:none}.play-header .btn.text{pointer-events:auto;color:#ffffffeb;background:#ffffff1f;backdrop-filter:blur(8px)}.play-header .btn.text:hover{color:#fff}.fp-game-root{position:relative;width:100%;height:100%;min-height:0;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;overscroll-behavior:none;overflow:hidden;background:#101a2a}.fp-canvas{width:100%!important;height:100%!important}.fp-overlay{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px));padding-left:calc(14px + env(safe-area-inset-left,0px))}.fp-mid-tension-grade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 18%,#ffd6b629,#ffd6b600 58%),linear-gradient(180deg,#ffa48c14,#78386c24);animation:fp-mid-tension-breathe 2.2s ease-in-out infinite}.fp-final-stretch-grade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 14%,#ff707038,#ff707000 56%),linear-gradient(180deg,#ff765c24,#5d182c52);animation:fp-final-stretch-pulse .92s ease-in-out infinite}.fp-overlay-mid-tension .fp-hud-chip{border-color:#ffd3ca57;box-shadow:0 0 14px #ffa08e1a}.fp-overlay-mid-tension .fp-timing-bar{background:#22102261;border-color:#ffd3ca3d}.fp-overlay-mid-tension .fp-timing-perfect{background:#ff8d6f4d;box-shadow:inset 0 0 0 1px #ff8d6f80}.fp-overlay-final-stretch .fp-hud-chip{border-color:#ffb9ab80;box-shadow:0 0 18px #ff707033}.fp-overlay-final-stretch .fp-timing-bar{background:#280c1870;border-color:#ffa6a64d}.fp-overlay-final-stretch .fp-hole-progress-fill{background:linear-gradient(90deg,#ffb55a,#ff7c6f 55%,#ff586f);box-shadow:0 0 14px #ff7c6f9e}.fp-overlay-streak-pressure .fp-hud-chip{border-color:#dac1ff80;background:#25113c94;box-shadow:0 0 18px #ae79ff3d}.fp-overlay-streak-pressure .fp-timing-bar{background:#2912407a;border-color:#ddb5ff57}.fp-overlay-streak-pressure .fp-timing-perfect{background:#c17dff4d;box-shadow:inset 0 0 0 1px #d8a6ff9e}.fp-overlay-streak-pressure .fp-hole-progress-fill{background:linear-gradient(90deg,#ba85ff,#8a7dff,#55dbff);box-shadow:0 0 15px #a87dff99}.fp-hud-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.fp-hud-chip{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;background:#0c142480;border:1px solid rgba(183,213,255,.24);backdrop-filter:blur(8px);text-shadow:0 1px 4px rgba(11,19,34,.5)}.fp-hud-hole{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-hud-theme{color:#cce1ff}.fp-hud-wind{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#dcf3ff}.fp-juice-controls{display:inline-flex;align-items:center;gap:6px}.fp-juice-label{color:#cde2ff}.fp-wind-arrow{font-weight:900;color:#8fe4ff;text-shadow:0 0 8px rgba(143,228,255,.7)}.fp-wind-bars{display:inline-flex;gap:2px}.fp-wind-bars i{display:block;width:4px;height:7px;border-radius:2px;background:#d2ecff47}.fp-wind-bars i:nth-child(2){height:9px}.fp-wind-bars i:nth-child(3){height:11px}.fp-wind-bars i:nth-child(4){height:13px}.fp-wind-bars i.on{background:#98effff2;box-shadow:0 0 8px #98efffa6}.fp-juice-toggle{margin-left:0;pointer-events:auto;cursor:pointer;font-size:11px;letter-spacing:.02em;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.fp-juice-toggle.off{color:#d0d9e8;background:#0c142470}.fp-juice-toggle.on{color:#e6fff5;background:#1a816994;border-color:#a1ffe38a;box-shadow:0 0 14px #5affc947}.fp-juice-toggle:active{transform:scale(.96)}.fp-streak-pressure-card{margin-bottom:10px;padding:8px 14px;border-radius:14px;display:inline-flex;flex-direction:column;align-items:center;gap:2px;color:#efe6ff;background:linear-gradient(180deg,#3e1a62eb,#2d1156e6);border:1px solid rgba(210,172,255,.56);box-shadow:0 9px 24px #200b3880,0 0 20px #b881ff4d;animation:fp-pulse-soft .95s ease-in-out infinite}.fp-streak-pressure-card strong{font-size:12px;font-weight:900;letter-spacing:.08em}.fp-streak-pressure-card span{font-size:11px;font-weight:700;color:#e8d5fff2}.fp-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:14vh;position:relative}.fp-last-hole-banner{margin-bottom:12px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#ffdca8;background:#2c1010ad;border:1px solid rgba(255,220,168,.46);animation:fp-pulse-soft 1.05s ease-in-out infinite}.fp-final-stretch-card{margin-bottom:12px;padding:8px 13px;border-radius:16px;display:inline-flex;flex-direction:column;align-items:center;gap:3px;color:#ffe6cd;background:linear-gradient(180deg,#50161ce6,#370e1de0);border:1px solid rgba(255,191,168,.58);box-shadow:0 9px 24px #1f091470,0 0 20px #ff7e7040;animation:fp-final-card-pop .46s cubic-bezier(.16,.84,.3,1.16) both}.fp-final-stretch-card strong{font-size:13px;font-weight:900;letter-spacing:.08em}.fp-final-stretch-card span{font-size:11px;font-weight:700;color:#ffe3d4ed}.fp-final-stretch-card.is-last-hole{color:#fff3dd;background:linear-gradient(180deg,#7e1c1cf0,#591022eb);border-color:#ffd6a3cc;box-shadow:0 0 24px #ff7a666b,0 10px 28px #3b0b1480}.fp-final-stretch-dots{display:inline-flex;gap:5px}.fp-final-stretch-dots i{width:8px;height:8px;border-radius:50%;background:#ffdac647;border:1px solid rgba(255,218,198,.42)}.fp-final-stretch-dots i.on{background:#ff9a76;border-color:#ffd3b9;box-shadow:0 0 10px #ff9a76b8}.fp-hole-transition-banner{margin-bottom:10px;padding:10px 14px;border-radius:14px;display:inline-flex;flex-direction:column;align-items:center;gap:2px;color:#e7f3ff;background:linear-gradient(180deg,#2e6ddbeb,#1e4a9de6);border:1px solid rgba(175,217,255,.65);box-shadow:0 8px 28px #1f4a965c,0 0 20px #79b9ff52;animation:fp-hole-transition-beat .8s ease-out both}.fp-hole-transition-banner strong{font-size:15px;font-weight:900;letter-spacing:-.01em}.fp-hole-transition-banner span{font-size:11px;font-weight:700;color:#eaf7ffeb}.fp-power-ring{border:3px solid rgba(224,241,255,.92);border-radius:50%;box-shadow:0 0 32px #5db4ff6b,inset 0 0 16px #dff1ff6b;transition:width .07s ease,height .07s ease,opacity .07s ease}.fp-aim-arc{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:6px;pointer-events:none}.fp-aim-arc-svg{display:block;filter:drop-shadow(0 4px 12px rgba(8,18,36,.45))}.fp-aim-arc-track{stroke:#ffffff47}.fp-aim-arc-sweet{stroke:#38d9a9e0}.fp-aim-arc.is-sweet .fp-aim-arc-sweet{stroke:#48ffc6;filter:drop-shadow(0 0 8px rgba(56,217,169,.75))}.fp-aim-arc-needle{stroke:#fff5e6f2}.fp-aim-arc.is-sweet .fp-aim-arc-needle{stroke:#7dffc8}.fp-aim-arc.is-locked{transform:scale(1.04);transition:transform .12s ease}.fp-aim-arc.is-locked .fp-aim-arc-needle{stroke-width:4}.fp-aim-arc.is-locked .fp-aim-arc-meta{border-color:#7dffc873}.fp-aim-arc-hub{fill:#ffffffe6}.fp-aim-arc-meta{display:inline-flex;align-items:baseline;gap:6px;padding:2px 10px;border-radius:999px;background:#0c14246b;border:1px solid rgba(255,255,255,.16)}.fp-aim-arc-deg{font-size:15px;font-weight:900;color:#fff;letter-spacing:-.02em}.fp-aim-arc.is-sweet .fp-aim-arc-deg{color:#7dffc8}.fp-aim-arc-caption{font-size:11px;font-weight:700;color:#e6f0ffd1}.fp-hint{margin:18px 0 0;padding:6px 12px;border-radius:999px;font-size:14px;font-weight:700;color:#fff;text-shadow:0 1px 6px rgba(12,20,36,.6);background:#0c142459;border:1px solid rgba(255,255,255,.18)}.fp-shot-label{margin-bottom:10px;padding:8px 14px;border-radius:14px;font-size:18px;font-weight:900;letter-spacing:-.02em;color:#fff;text-shadow:0 3px 12px rgba(10,18,31,.45);animation:fp-shot-toast 1.5s ease-out both}.fp-shot-miss{background:#0c14248c;border:1px solid rgba(255,255,255,.2);font-size:15px;padding:6px 12px;border-radius:999px}@keyframes fp-shot-toast{0%{opacity:0;transform:translateY(8px) scale(.96)}14%{opacity:1;transform:translateY(0) scale(1)}72%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.fp-shot-perfect{background:linear-gradient(180deg,#33e0b0f2,#19b88af2)}.fp-shot-great{background:linear-gradient(180deg,#5eaffff5,#3083f1f0)}.fp-shot-good{background:linear-gradient(180deg,#ffbd6af2,#f38e37eb)}.fp-shot-near{background:linear-gradient(180deg,#ffd166f7,#f59040f0);animation:fp-pop-up .44s cubic-bezier(.15,.88,.28,1.15) both,fp-pulse-soft .7s ease-in-out 2}.fp-combo-label{margin-bottom:8px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800;color:#e0f3ff;background:#1638609e;border:1px solid rgba(173,220,255,.52);animation:fp-pop-up .4s cubic-bezier(.2,.8,.3,1.15) both}.fp-combo-milestone{padding:8px 15px;font-size:14px;color:#f2fbff;background:linear-gradient(180deg,#2c71c3e6,#1e4d98e6);border-color:#afe5ffb8;box-shadow:0 0 16px #70bcff66,0 7px 16px #112a5459;animation:fp-combo-pop-big .52s cubic-bezier(.14,.86,.26,1.2) both}.fp-combo-legend{padding:10px 18px;font-size:16px;letter-spacing:.01em;color:#fffaf0;background:linear-gradient(180deg,#ff9954f5,#ff6e3ded);border-color:#ffe1a9d6;box-shadow:0 0 22px #ffa56d85,0 10px 24px #5e1c1066;animation:fp-combo-pop-big .58s cubic-bezier(.12,.88,.24,1.24) both}.fp-combo-break{color:#ffd6d6;background:#541823a6;border-color:#ffa6a68f}.fp-shot-perfect{text-shadow:0 0 22px rgba(51,224,176,.85),0 3px 12px rgba(10,18,31,.45);animation:fp-pop-up .44s cubic-bezier(.15,.88,.28,1.15) both,fp-shot-glow .55s ease-out .15s both}@keyframes fp-shot-glow{0%{filter:brightness(1.5) saturate(1.8)}to{filter:brightness(1) saturate(1)}}.fp-combo-legend{padding:10px 18px;font-size:16px;letter-spacing:.01em;color:#fffaf0;background:linear-gradient(180deg,#ff9954f5,#ff6e3ded);border-color:#ffe1a9d6;box-shadow:0 0 28px #ffa56d99,0 10px 24px #5e1c1066;animation:fp-combo-pop-legendary .64s cubic-bezier(.12,.88,.24,1.28) both}@keyframes fp-combo-pop-legendary{0%{opacity:0;transform:scale(.62) rotate(-4deg)}38%{opacity:1;transform:scale(1.28) rotate(2deg)}65%{transform:scale(.94) rotate(-1deg)}to{opacity:1;transform:scale(1) rotate(0)}}.fp-bottom-stack{display:flex;flex-direction:column;gap:8px;pointer-events:auto}.fp-status-row{display:flex;align-items:center;gap:10px}.fp-status-row .fp-leg-progress{flex:1}.fp-flying-status{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-radius:14px;background:#0c142473;border:1px solid rgba(255,255,255,.14);font-size:13px;font-weight:700;color:#ffffffeb;backdrop-filter:blur(8px);animation:fp-flying-status-in .3s cubic-bezier(.22,1,.36,1) both}.fp-flying-remaining{font-variant-numeric:tabular-nums;color:#7ec8ff;font-weight:800}@keyframes fp-flying-status-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fp-hole-progress{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#e9f4fff2}.fp-hole-progress-track{flex:1;height:7px;border-radius:999px;background:#fff3;overflow:hidden}.fp-hole-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#7cc8ff,#4f9eff 55%,#5ae3bf);box-shadow:0 0 10px #6acbff8c;transition:width .32s ease}.fp-timing-bar{border-radius:18px;padding:12px 14px;min-height:94px;background:#060e1c9e;border:1px solid rgba(226,242,255,.32);box-shadow:inset 0 0 0 1px #ffffff0d;backdrop-filter:blur(10px)}.fp-timing-labels{display:flex;justify-content:space-between;margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:.03em;color:#edf8ffeb;text-shadow:0 1px 2px rgba(5,10,20,.55)}.fp-timing-labels .is-perfect{color:#aef1d9}.fp-timing-track{position:relative;height:24px;border-radius:999px;background:#f8fcfff5;box-shadow:inset 0 0 0 1px #96bae0f5;overflow:hidden}.fp-timing-perfect{position:absolute;top:3px;bottom:3px;border-radius:999px;background:#24bf916b;box-shadow:inset 0 0 0 1px #129872a8}.fp-timing-fill{position:absolute;left:0;top:3px;bottom:3px;border-radius:999px;background:#2476ebe6}.fp-timing-center-line{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#081c388f}.fp-timing-marker-rail{position:absolute;top:50%;left:0;width:100%;height:0;pointer-events:none;will-change:transform}.fp-timing-marker{position:absolute;top:0;left:0;width:18px;height:18px;transform:translate3d(0,-50%,0);border-radius:50%;background:#ff6b6b;box-shadow:0 0 12px #ff6b6bd1,0 0 0 3px #fffffff0}.fp-timing-marker.perfect{width:22px;height:22px;background:#20c997;box-shadow:0 0 14px #20c997d6,0 0 0 3px #ecfff6f2}.fp-timing-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;font-weight:700;color:#f7fcfffa;text-shadow:0 1px 3px rgba(9,24,48,.68)}.fp-timing-meta .perfect-text{color:#b2f2dd}.fp-timing-guide{margin:8px 0 0;font-size:11px;font-weight:700;color:#e2faeffa;text-shadow:0 1px 2px rgba(8,22,20,.45)}.fp-strokes{align-self:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fffffff2;background:#0a121f61;border:1px solid rgba(255,255,255,.15);text-shadow:0 1px 3px rgba(10,18,31,.5)}.fp-overlay-calm .fp-hud-chip{background:#0c1c2a70}.fp-overlay-focus .fp-hud-chip{background:#0c182e8f}.fp-overlay-pressure .fp-hud-chip{background:#23101e94;border-color:#ffc6c63d}.fp-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 45%,rgba(7,12,22,.75) 100%)}.fp-vignette-pressure{animation:fp-vignette-pulse 2.4s ease-in-out infinite}.fp-success-flash{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,#7fffd13d,#7fffd100 72%);animation:fp-flash .23s ease-out both}.fp-game-shake{animation:fp-shake .28s ease-out}@keyframes fp-pop-up{0%{opacity:0;transform:translateY(12px) scale(.88)}60%{opacity:1;transform:translateY(-3px) scale(1.06)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fp-combo-pop-big{0%{opacity:0;transform:translateY(15px) scale(.82)}50%{opacity:1;transform:translateY(-4px) scale(1.15)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fp-vignette-pulse{0%,to{opacity:.22}50%{opacity:.28}}@keyframes fp-flash{0%{opacity:1}to{opacity:0}}@keyframes fp-shake{0%,to{transform:translateZ(0)}25%{transform:translate3d(-3px,0,0)}50%{transform:translate3d(3px,0,0)}75%{transform:translate3d(-2px,0,0)}}@keyframes fp-mid-tension-breathe{0%,to{opacity:.68}50%{opacity:1}}@keyframes fp-final-stretch-pulse{0%,to{opacity:.75}50%{opacity:1}}@keyframes fp-pulse-soft{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes fp-hole-transition-beat{0%{opacity:0;transform:translateY(6px) scale(.94);filter:brightness(.9)}20%{opacity:1;transform:translateY(0) scale(1.04);filter:brightness(1.06)}62%{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}to{opacity:0;transform:translateY(-4px) scale(1.04);filter:brightness(.94)}}@keyframes fp-final-card-pop{0%{opacity:0;transform:translateY(10px) scale(.9)}55%{opacity:1;transform:translateY(-2px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-score-pop{0%{transform:scale(.9);opacity:.6}65%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}@keyframes result-diff-badge-pop{0%{opacity:0;transform:translateY(8px) scale(.92)}65%{opacity:1;transform:translateY(-2px) scale(1.04)}to{opacity:1;transform:translateY(0) scale(1)}}.hole-list{margin:0 0 12px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:13px}.hole-list li{padding:8px 6px;border-radius:10px;text-align:center;font-weight:600;background:#f4f8ff;color:var(--brand-subtle)}.hole-list .hole-ok{background:#e8f5ee;color:#1a7a4a}.hole-list .hole-miss{background:#f4f6f8;color:#9aa8bc}.meta{margin:0;font-size:13px;color:var(--brand-subtle)}.result-score{animation:result-score-pop .42s cubic-bezier(.14,.82,.28,1.2)}.result-diff-badge{margin:8px auto 6px;padding:8px 12px;min-width:112px;border-radius:999px;display:inline-flex;align-items:baseline;justify-content:center;gap:8px;border:1px solid transparent;animation:result-diff-badge-pop .44s cubic-bezier(.16,.84,.3,1.2)}.result-diff-badge span{font-size:10px;font-weight:800;letter-spacing:.05em}.result-diff-badge strong{font-size:18px;font-weight:900;line-height:1}.result-diff-even{color:#1f8f66;background:#e7f9f1;border-color:#289c743d}.result-diff-over{color:#b04444;background:#fff0f0;border-color:#c1545447}.result-diff-under{color:#2f5fd1;background:#edf3ff;border-color:#4875dc4d}.result-streak-fail-copy{max-width:340px;margin:10px auto 0;color:#3f516f;font-weight:700}.result-share-preview{margin-top:14px;padding:11px 12px;border-radius:12px;background:#f6f9ff;border:1px solid rgba(116,150,200,.2)}.result-share-label{margin:0 0 6px;font-size:11px;font-weight:800;letter-spacing:.04em;color:#6b84a8}.result-share-preview pre{margin:0;white-space:pre-wrap;word-break:keep-all;font-family:inherit;font-size:12px;line-height:1.45;color:#365a87}.actions{display:flex;flex-direction:column;gap:10px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px) scale(.94)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);padding:12px 20px;border-radius:999px;background:#1b3a66eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:13px;font-weight:700;box-shadow:0 8px 24px #1b3a6647;z-index:100;animation:toast-in .28s var(--transition-smooth) both;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--brand-muted);font-size:14px;font-weight:600}.loading-spinner{width:28px;height:28px;margin-right:10px;border:3px solid rgba(49,130,246,.2);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes fp-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fp-loading-skeleton{position:relative;width:100%;height:100%;min-height:0;padding:calc(14px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(14px + env(safe-area-inset-left,0px));display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,#131f35,#0f182a);overflow:hidden}.fp-loading-skeleton:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 20%,#5fa0ff3d,#5fa0ff00 58%),radial-gradient(circle at 50% 86%,#42e0c429,#42e0c400 62%)}.fp-loading-top,.fp-loading-center,.fp-loading-bottom{position:relative;z-index:1}.fp-loading-top{display:flex;align-items:center;gap:8px}.fp-loading-pill,.fp-loading-line,.fp-loading-bar,.fp-loading-track{background:linear-gradient(90deg,#3e5884b8 15%,#78a2dfd9,#3e5884b8 85%);background-size:200% 100%;animation:fp-skeleton-shimmer 1.2s ease-in-out infinite}.fp-loading-pill{width:82px;height:26px;border-radius:999px}.fp-loading-pill.short{width:54px}.fp-loading-pill.long{width:108px;margin-left:auto}.fp-loading-center{display:flex;flex-direction:column;align-items:center;gap:12px}.fp-loading-ring{width:clamp(136px,28vw,204px);aspect-ratio:1;border-radius:50%;border:4px solid rgba(180,216,255,.78);box-shadow:0 0 34px #67acff4d,inset 0 0 22px #93d7ff40}.fp-loading-line{width:min(280px,62vw);height:12px;border-radius:999px}.fp-loading-line.short{width:min(190px,46vw)}.fp-loading-bottom{display:flex;flex-direction:column;gap:10px}.fp-loading-bar{height:16px;padding:2px;border-radius:999px}.fp-loading-bar>span{display:block;height:100%;width:34%;border-radius:inherit;background:linear-gradient(90deg,#5dc3ffe6,#58f7d1f2)}.fp-loading-track{height:10px;padding:2px;border-radius:999px}.fp-loading-track>span{display:block;height:100%;width:56%;border-radius:inherit;background:linear-gradient(90deg,#80c2ffeb,#679effe6)}.fp-loading-text{position:relative;z-index:1;margin:12px 0 0;text-align:center;font-size:13px;font-weight:700;color:#e2f2fff0;text-shadow:0 1px 6px rgba(8,15,28,.58)}.title-screen{position:relative;width:100%;box-sizing:border-box;min-height:var(--app-height, 100dvh);padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(28px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));overflow-x:clip;overflow-y:auto}.title-screen-hero{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(4px,1.2vh,10px);height:100%;min-height:0;max-height:100%;padding:calc(8px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));overflow:hidden;box-sizing:border-box}.title-sky{position:absolute;inset:0;pointer-events:none;background:radial-gradient(90% 55% at 18% 8%,rgba(196,181,253,.42) 0%,transparent 58%),radial-gradient(70% 50% at 88% 14%,rgba(251,207,232,.38) 0%,transparent 52%),radial-gradient(80% 45% at 50% 100%,rgba(244,114,182,.14) 0%,transparent 62%),linear-gradient(182deg,#e8e0f8,#f3e8ff 38%,#faf5ff 72%,#f8f2fc)}.title-sky-mesh{position:absolute;inset:0;background:radial-gradient(ellipse 55% 38% at 72% 22%,rgba(167,139,250,.22) 0%,transparent 70%),radial-gradient(ellipse 48% 32% at 12% 58%,rgba(244,114,182,.16) 0%,transparent 68%);opacity:.9}.title-sky-orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55}.title-sky-orb-a{width:180px;height:180px;top:8%;right:-12%;background:#c084fc59}.title-sky-orb-b{width:140px;height:140px;bottom:22%;left:-8%;background:#fb718538}.title-sky-grain{position:absolute;inset:0;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:128px 128px;mix-blend-mode:multiply}.title-horizon{position:absolute;left:-10%;right:-10%;bottom:28%;height:42%;background:radial-gradient(ellipse at 50% 100%,rgba(244,114,182,.18) 0%,transparent 68%)}.title-streak{position:absolute;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:.35;animation:title-streak-fly 7.5s linear infinite}.title-streak-a{top:18%;width:42%;left:-20%;animation-duration:8.5s}.title-streak-b{top:28%;width:28%;left:-30%;animation-duration:6.8s;animation-delay:-2.2s;opacity:.22}.title-streak-c{top:46%;width:36%;left:-25%;animation-duration:9.2s;animation-delay:-4.5s;opacity:.28}.title-streak-d{top:58%;width:22%;left:-18%;animation-duration:7.1s;animation-delay:-1.1s;opacity:.18}.title-cloud{position:absolute;border-radius:999px;background:#ffffffb8;filter:blur(1px);animation:title-cloud-float 8s ease-in-out infinite}.title-cloud-a{width:88px;height:32px;top:12%;left:8%}.title-cloud-b{width:120px;height:38px;top:22%;right:6%;animation-delay:-2s}.title-cloud-c{width:72px;height:28px;top:38%;left:18%;animation-delay:-4s}.title-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:#ffd8f0;box-shadow:0 0 12px #ffb8dc;animation:title-spark-twinkle 2.4s ease-in-out infinite}.title-spark-a{top:18%;right:22%}.title-spark-b{top:30%;left:12%;animation-delay:-1.1s}.title-header{position:relative;z-index:2;text-align:center;padding-top:8px}.title-settings-btn{position:absolute;top:calc(6px + env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px));z-index:3;width:36px;height:36px;border:1px solid rgba(255,255,255,.42);border-radius:11px;background:#ffffff61;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:15px;cursor:pointer;box-shadow:0 2px 10px #3d2a4a0f}.title-hero{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;padding-top:clamp(4px,1vh,12px);flex:0 0 auto;justify-content:flex-start;min-height:0}.title-brand-mark{width:clamp(68px,17vw,92px);height:clamp(68px,17vw,92px);margin:0 auto 6px}.title-brand-mark-img{display:block;width:100%;height:100%;border-radius:22%;animation:title-brand-soar 3.8s ease-in-out infinite;filter:drop-shadow(0 8px 16px rgba(47,123,255,.28));will-change:transform}.title-eyebrow{margin:0 0 4px;font-size:clamp(10px,2.6vw,11px);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#7c6594d1}.title-logo{margin:0;display:flex;align-items:baseline;justify-content:center;gap:.18em;font-family:SF Pro Display,Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;font-size:clamp(32px,8.5vw,44px);font-weight:800;letter-spacing:-.04em;line-height:1}.title-logo-fly{background:linear-gradient(135deg,#3d2a4a,#5b3d6e);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 12px rgba(244,114,182,.18))}.title-logo-sheet{background:linear-gradient(135deg,#e879a8,#c084fc 55%,#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 14px rgba(192,132,252,.28))}.title-tagline{margin:clamp(4px,.8vh,8px) 0 0;font-size:clamp(12px,3.2vw,14px);font-weight:600;letter-spacing:.04em;color:#7c6594e0}.title-plane-stage{position:relative;z-index:2;width:100%;height:clamp(52px,11vh,88px);margin:clamp(4px,1vh,10px) auto 0;display:flex;align-items:center;justify-content:center}.title-plane-trail{position:absolute;width:72px;height:2px;left:calc(50% - 78px);top:48%;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,142,200,.55));transform:rotate(-12deg);animation:title-trail-pulse 2.8s ease-in-out infinite}.title-plane{position:relative;z-index:1;width:clamp(56px,14vw,72px);height:clamp(38px,9.5vw,48px);background:linear-gradient(145deg,var(--plane-top, #fff8fc) 0%,var(--plane-accent, #ff8ec8) 100%);clip-path:polygon(50% 0%,0% 100%,50% 72%,100% 100%);transform:rotate(-14deg);animation:title-plane-soar 3.4s ease-in-out infinite;filter:drop-shadow(0 8px 14px rgba(90,61,110,.2))}.title-plane-wing{position:absolute;top:42%;width:38%;height:28%;background:var(--plane-edge, #e86aad);opacity:.45}.title-plane-wing-l{left:6%;clip-path:polygon(100% 0,0 100%,100% 80%)}.title-plane-wing-r{right:6%;clip-path:polygon(0 0,100% 100%,0 80%)}.title-plane-fold{position:absolute;left:50%;top:8%;bottom:28%;width:2px;transform:translate(-50%);background:#5a3d6e47}.title-plane-shadow{position:absolute;bottom:10px;width:48px;height:8px;border-radius:50%;background:#5a3d6e24;filter:blur(4px);animation:title-shadow-breathe 3.4s ease-in-out infinite}.title-desk-props{position:absolute;bottom:8px;display:flex;gap:18px;font-size:20px;opacity:.85}.title-pills{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}.title-pill{padding:6px 12px;border-radius:999px;font-size:11px;font-weight:700;color:var(--brand-ink);background:#ffffffc7;border:1px solid rgba(255,184,220,.45)}.title-cta{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;width:100%;max-width:360px;margin-top:0;margin-inline:auto;padding-top:0;flex:1 1 auto;min-height:0;justify-content:center;gap:clamp(2px,.6vh,6px);box-sizing:border-box}.title-play-btn{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:100%;min-height:clamp(48px,8.5vh,58px);margin:0;padding:clamp(6px,1.2vh,10px) 16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:clamp(18px,5.2vw,24px);font-weight:900;letter-spacing:.08em;color:#fff;background:linear-gradient(165deg,#f9a8d4,#f472b6 48%,#db5a9e);box-shadow:0 10px 24px #db5a9e47,0 0 0 1px #ffffff1f inset;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box}.title-play-btn:active{transform:scale(.98);box-shadow:0 8px 18px #e86aad38}.title-play-btn span{margin-top:1px;font-size:11px;font-weight:700;letter-spacing:.01em;opacity:.92}.title-lifetime-btn{width:min(100%,320px);margin-top:10px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,196,120,.45);background:#fff8eceb;color:#5a3b12;font-size:.92rem;font-weight:700;line-height:1.3}.title-lifetime-btn span{display:block;margin-top:4px;font-size:.74rem;font-weight:500;opacity:.85}.title-lifetime-btn:disabled{opacity:.55;cursor:not-allowed}.title-mode-row{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.title-mode-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid rgba(255,184,220,.35);border-radius:18px;background:#ffffffd1;text-align:left;cursor:pointer}.title-mode-card strong{font-size:15px;color:var(--brand-ink)}.title-mode-card span{font-size:12px;color:var(--brand-muted)}.title-mode-card em{font-style:normal;font-size:11px;font-weight:700;color:var(--brand-primary-dark)}.title-mission-card{position:relative;z-index:2;padding:16px;border-radius:20px;background:#ffffffe0;border:1px solid rgba(255,184,220,.3);box-shadow:var(--shadow-card)}.title-mission-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.title-mission-head p{margin:0;font-size:14px;font-weight:800;color:var(--brand-ink)}.title-mission-head span{font-size:12px;color:var(--brand-subtle)}.title-mission-meta{margin:0 0 10px;font-size:12px;color:var(--brand-muted)}.title-leg-preview{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.title-leg-preview li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--brand-ink)}.title-leg-preview .leg-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:8px;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(180deg,#ffb8dc,#ff8ec8)}.title-leg-preview .leg-more{color:var(--brand-subtle);padding-left:30px}.title-footer-hint{position:relative;z-index:2;margin:14px 0 0;text-align:center;font-size:11px;color:var(--brand-subtle)}.options-backdrop{position:fixed;inset:0;z-index:40;background:#2a183a6b;backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}.options-sheet{width:min(430px,100%);max-height:86vh;overflow-y:auto;padding:18px 18px calc(24px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;background:linear-gradient(180deg,#fff8fc,#fff);box-shadow:0 -8px 32px #5a3d6e2e}.options-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.options-header h2{margin:0;font-size:20px;color:var(--brand-ink)}.options-close{width:36px;height:36px;border:none;border-radius:12px;background:#ffe8f4;cursor:pointer}.options-section{margin-bottom:18px}.options-label{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--brand-primary-dark)}.skin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.skin-chip{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:2px solid transparent;border-radius:16px;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.skin-chip.active{border-color:var(--brand-primary);background:#fff5fb}.skin-preview{width:36px;height:24px;clip-path:polygon(50% 0%,0% 100%,50% 70%,100% 100%);border-radius:4px}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.theme-chip,.difficulty-chip,.toggle-chip{padding:10px 12px;border:2px solid rgba(255,184,220,.35);border-radius:14px;background:#fff;text-align:left;cursor:pointer}.theme-chip.active,.difficulty-chip.active,.toggle-chip.on{border-color:var(--brand-primary);background:#fff0f8}.difficulty-row{display:flex;flex-direction:column;gap:8px}.difficulty-chip strong{display:block;font-size:14px;color:var(--brand-ink)}.difficulty-chip span{font-size:11px;color:var(--brand-muted)}.toggle-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toggle-chip{font-size:12px;font-weight:700;text-align:center}.countdown-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#1810288c;backdrop-filter:blur(6px)}.countdown-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 32px;border-radius:24px;background:#ffffffeb;box-shadow:0 16px 48px #5a3d6e38}.countdown-mode{margin:0;font-size:13px;font-weight:700;color:var(--brand-muted)}.countdown-plane{width:72px;height:48px;clip-path:polygon(50% 0%,0% 100%,50% 72%,100% 100%);animation:title-plane-bob 1.2s ease-in-out infinite}.countdown-number{margin:0;font-size:56px;font-weight:900;color:var(--brand-ink);animation:countdown-pop .42s cubic-bezier(.16,.84,.3,1.16) both}.countdown-number.is-go{font-size:36px;color:var(--brand-primary-dark)}.countdown-hint{margin:0;font-size:12px;color:var(--brand-muted)}.fp-overlay-windy .fp-hud-wind.is-strong{border-color:#ffc8a0a6;box-shadow:0 0 16px #ffb47859}.fp-wind-drift-hint{position:absolute;top:18%;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;color:#fff8f0;background:#5030589e;border:1px solid rgba(255,210,180,.45);animation:fp-wind-drift-pulse .9s ease-in-out infinite}.fp-wind-drift-left{transform:translate(-50%) translate(-8px)}.fp-wind-drift-right{transform:translate(-50%) translate(8px)}.fp-wind-drift-arrow{font-weight:900;letter-spacing:-2px}.fp-leg-progress,.fp-hole-progress{display:flex;align-items:center;gap:10px}.fp-leg-progress-track,.fp-hole-progress-track{flex:1;height:8px;border-radius:999px;background:#ffffff2e;overflow:hidden}.fp-leg-progress-fill,.fp-hole-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffb8dc,#ff8ec8)}.fp-attempts,.fp-strokes{font-size:13px;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.35)}.leg-list,.hole-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.leg-list li,.hole-list li{padding:8px;border-radius:12px;font-size:12px;font-weight:700;text-align:center;background:#fff5fb}.leg-list .leg-ok,.hole-list .hole-ok{color:#2a9d7a;background:#e8fff4}.leg-list .leg-miss,.hole-list .hole-miss{color:var(--brand-subtle);background:#f8f0ff}@keyframes title-cloud-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes title-spark-twinkle{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes title-plane-bob{0%,to{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(-5deg) translateY(-10px)}}@keyframes title-brand-soar{0%,to{transform:translate3d(0,2px,0) rotate(-5deg)}50%{transform:translate3d(6px,-7px,0) rotate(4deg)}}@keyframes title-plane-soar{0%,to{transform:rotate(-14deg) translate(0)}40%{transform:rotate(-10deg) translate(10px,-14px)}70%{transform:rotate(-16deg) translate(4px,-6px)}}@keyframes title-shadow-breathe{0%,to{transform:scale(1);opacity:.9}40%{transform:scale(.82);opacity:.55}70%{transform:scale(.92);opacity:.7}}@keyframes title-trail-pulse{0%,to{opacity:.25;transform:rotate(-12deg) scaleX(.85)}50%{opacity:.7;transform:rotate(-12deg) scaleX(1.05)}}@keyframes title-streak-fly{0%{transform:translate(0);opacity:0}12%{opacity:.35}88%{opacity:.28}to{transform:translate(140vw);opacity:0}}@keyframes countdown-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes fp-wind-drift-pulse{0%,to{opacity:.85}50%{opacity:1}}.fp-hud-distance{font-variant-numeric:tabular-nums;font-weight:800;background:#0c1424ad;color:#cce8ff;border:1px solid rgba(183,213,255,.28)}.fp-flight-distance-hud{position:absolute;top:16%;left:50%;transform:translate(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;user-select:none;animation:fp-flight-dist-enter .28s cubic-bezier(.22,1,.36,1) both}.fp-overlay-campaign .fp-flight-distance-hud{top:22%}.fp-flight-distance-main{position:relative;display:inline-flex;align-items:baseline;gap:4px;line-height:1}.fp-flight-distance-num{font-size:clamp(42px,11vw,64px);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:#fff;text-shadow:0 0 24px rgba(110,200,255,.55),0 2px 12px rgba(0,0,0,.45)}.fp-flight-distance-unit{font-size:clamp(16px,4vw,22px);font-weight:800;color:#b4dcffeb;text-shadow:0 1px 6px rgba(0,0,0,.4)}.fp-flight-distance-meta{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#dcebffc7;text-shadow:0 1px 4px rgba(0,0,0,.35)}.fp-flight-distance-cumul{color:#9fd4ff;font-variant-numeric:tabular-nums}.fp-flight-distance-trail{position:absolute;inset:-4px -18px -4px -8px;border-radius:12px;background:linear-gradient(90deg,transparent 0%,rgba(140,210,255,.12) 40%,transparent 100%);filter:blur(6px);opacity:.55;pointer-events:none;z-index:-1}.fp-flight-distance-hud.is-fast .fp-flight-distance-num{text-shadow:0 0 18px rgba(120,210,255,.7),2px 0 10px rgba(100,190,255,.35),-6px 0 14px rgba(80,160,255,.22),0 2px 12px rgba(0,0,0,.45)}.fp-flight-distance-hud.is-very-fast .fp-flight-distance-num{text-shadow:0 0 22px rgba(140,220,255,.8),3px 0 12px rgba(120,200,255,.4),-10px 0 18px rgba(90,170,255,.28),-18px 0 24px rgba(70,140,220,.14),0 2px 12px rgba(0,0,0,.45)}.fp-flight-distance-hud.is-very-fast .fp-flight-distance-trail{opacity:.85;filter:blur(8px);transform:scaleX(1.25)}.fp-flight-distance-hud.is-pop .fp-flight-distance-num{animation:fp-flight-dist-pop .16s cubic-bezier(.2,.9,.3,1.2) both}.fp-flight-distance-hud.is-tick .fp-flight-distance-num{color:#ffe566;text-shadow:0 0 28px rgba(255,220,100,.85),0 0 48px rgba(255,180,60,.4),0 2px 12px rgba(0,0,0,.45)}.fp-flight-distance-tick-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:13px;font-weight:900;color:#ffe566;letter-spacing:.06em;text-shadow:0 0 16px rgba(255,200,80,.7);animation:fp-flight-dist-tick-label .38s ease-out both;white-space:nowrap}@keyframes fp-flight-dist-enter{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.88)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes fp-flight-dist-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes fp-flight-dist-tick-label{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.8)}35%{opacity:1;transform:translate(-50%) translateY(0) scale(1.08)}to{opacity:0;transform:translate(-50%) translateY(-10px) scale(1)}}.fp-target-distance-3d{padding:6px 14px;border-radius:10px;font-size:15px;font-weight:900;font-variant-numeric:tabular-nums;color:#1a1a1a;background:#ffef5c;border:2px solid #ffffff;box-shadow:0 2px 10px #00000073;white-space:nowrap;pointer-events:none;user-select:none}.fp-booster-row{display:flex;flex-direction:row;gap:7px}.fp-booster-btn{position:relative;overflow:visible;display:inline-flex;align-items:center;gap:5px;padding:6px 11px 6px 9px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#0c142494;backdrop-filter:blur(10px);color:#fffffff2;font-size:12px;font-weight:700;cursor:pointer;pointer-events:auto;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .1s ease}.fp-booster-emoji{font-size:14px;line-height:1}.fp-booster-btn:active{transform:scale(.96)}.fp-booster-btn.active{border-color:#63f2c0cc;background:#1e785a9e;box-shadow:0 0 14px #63f2c061,inset 0 0 8px #63f2c01f}.fp-booster-btn.empty{opacity:.75;border-color:#ffffff2e}.fp-booster-btn em{font-style:normal;font-size:11px;color:#ffffffad;font-weight:600}.premium-section{padding:12px;border-radius:18px;background:linear-gradient(180deg,#fff8fc,#fff0f8);border:1px solid rgba(255,184,220,.45)}.premium-section-desc{margin:0 0 12px;font-size:11px;color:var(--brand-muted)}.premium-sub-label{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--brand-primary-dark)}.premium-chip.locked{opacity:.82;position:relative}.premium-lock{position:absolute;top:6px;right:8px;font-size:12px}.premium-lock-inline{margin-right:4px}.premium-unlock-hint{font-size:9px;font-weight:600;color:var(--brand-muted)}.premium-unlock-hint.block{display:block;margin-top:4px}.booster-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.booster-card{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:14px;background:#fff;border:1px solid rgba(255,184,220,.35);font-size:11px}.booster-card strong{font-size:12px;color:var(--brand-ink)}.booster-desc{color:var(--brand-muted);line-height:1.35}.booster-count{font-weight:800;color:var(--brand-primary-dark)}.booster-emoji{font-size:18px}.title-pill-premium{border:none;cursor:pointer;background:linear-gradient(135deg,#ffe8f8,#fff0f8);color:#8a4898;font-weight:800}.title-pill-premium.unlocked{cursor:default}.fp-perfect-burst-overlay{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 62%,rgba(99,242,192,.52) 0%,rgba(99,242,192,.18) 38%,transparent 68%);animation:perfect-burst-anim .72s ease-out forwards;pointer-events:none;z-index:200}@keyframes perfect-burst-anim{0%{opacity:0;transform:scale(.55)}28%{opacity:1}to{opacity:0;transform:scale(1.55)}}.fp-perfect-text-popup{position:fixed;top:26%;left:50%;transform:translate(-50%);font-size:54px;font-weight:900;letter-spacing:.06em;color:#63f2c0;text-shadow:0 0 22px rgba(99,242,192,.95),0 0 48px rgba(99,242,192,.55),0 4px 14px rgba(0,0,0,.3);animation:perfect-text-anim .85s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none;z-index:201;white-space:nowrap}@keyframes perfect-text-anim{0%{opacity:0;transform:translate(-50%) scale(.28) rotate(-6deg)}45%{opacity:1;transform:translate(-50%) scale(1.18) rotate(1.5deg)}65%{transform:translate(-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%) scale(.9) translateY(-36px)}}.result-stars{display:flex;justify-content:center;gap:6px;margin:10px 0 4px}.result-star{display:inline-block;font-size:38px;line-height:1;animation-fill-mode:both}.result-star.lit{color:gold;text-shadow:0 0 14px rgba(255,215,0,.85),0 0 28px rgba(255,215,0,.45);animation:star-pop .45s cubic-bezier(.22,1,.36,1) both}.result-star.dim{color:#c8c8c873;text-shadow:none}@keyframes star-pop{0%{transform:scale(0) rotate(-20deg)}60%{transform:scale(1.35) rotate(4deg)}to{transform:scale(1) rotate(0)}}.result-perfect-run{position:relative;overflow:hidden}.result-perfect-run:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(99,242,192,.12) 0%,transparent 65%);pointer-events:none;animation:perfect-run-pulse 2.4s ease-in-out infinite}@keyframes perfect-run-pulse{0%,to{opacity:.6}50%{opacity:1}}.result-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:10}.result-confetti:before,.result-confetti:after{content:"🎉✨🎊🌟💫⭐🎇";position:absolute;top:-10%;left:0;right:0;font-size:28px;letter-spacing:2rem;animation:confetti-fall 2.2s ease-in forwards;word-break:break-all;opacity:.85}.result-confetti:after{animation-delay:.4s;top:-5%;font-size:22px;letter-spacing:3rem}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.home-fly{position:absolute;font-size:20px;pointer-events:none;opacity:0;filter:drop-shadow(0 2px 6px rgba(255,142,200,.4))}.home-fly-1{top:18%;animation:fly-across 11s linear infinite;animation-delay:0s;font-size:22px;opacity:0}.home-fly-2{top:42%;animation:fly-across 8s linear infinite;animation-delay:-3.5s;font-size:15px}.home-fly-3{top:70%;animation:fly-across 14s linear infinite;animation-delay:-7s;font-size:26px}@keyframes fly-across{0%{left:-60px;opacity:0;transform:rotate(-8deg) scaleX(-1)}6%{opacity:.3}90%{opacity:.28}to{left:calc(100% + 60px);opacity:0;transform:rotate(-8deg) scaleX(-1)}}.booster-card-btn{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;text-align:left}.booster-card-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #ff8ec833;border-color:#ff8ec88c}.booster-card-btn:active{transform:translateY(0)}.booster-charge-cta{font-size:11px;font-weight:700;color:var(--brand-primary-dark);margin-top:2px}.fp-combo-label.fp-combo-legend{font-size:28px!important;text-shadow:0 0 20px rgba(255,215,0,.9),0 2px 8px rgba(0,0,0,.4)!important;animation-duration:.35s!important}.fp-speed-lines{position:fixed;inset:0;pointer-events:none;z-index:150;overflow:hidden}.fp-speed-lines:before,.fp-speed-lines:after{content:"";position:absolute;top:0;bottom:0;width:22%;opacity:.55}.fp-speed-lines:before{left:0;transform:scaleX(-1)}.fp-speed-lines:after{right:0}.fp-speed-lines:before{background:repeating-linear-gradient(to bottom,transparent 0px,transparent 22px,rgba(140,210,255,.28) 22px,rgba(140,210,255,.28) 26px),linear-gradient(to right,#8cd2ff00,#8cd2ff38);animation:fp-speed-lines-slide .42s linear infinite}.fp-speed-lines:after{background:repeating-linear-gradient(to bottom,transparent 0px,transparent 22px,rgba(140,210,255,.28) 22px,rgba(140,210,255,.28) 26px),linear-gradient(to left,#8cd2ff00,#8cd2ff38);animation:fp-speed-lines-slide .42s linear infinite}@keyframes fp-speed-lines-slide{0%{background-position:0 0}to{background-position:0 48px}}.fp-pull-wind-vfx{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.fp-pull-wind-streaks{position:absolute;inset:12% 0 28%;display:flex;flex-direction:column;justify-content:space-evenly}.fp-pull-wind-streak{display:block;height:3px;width:42%;border-radius:999px;background:linear-gradient(90deg,transparent 0%,rgba(220,240,255,.15) 20%,rgba(255,255,255,.75) 50%,rgba(220,240,255,.15) 80%,transparent 100%);animation:fp-pull-wind-streak-move .85s ease-in-out infinite;opacity:.55}.fp-pull-wind-left .fp-pull-wind-streak{margin-left:auto;animation-name:fp-pull-wind-streak-move-left}.fp-pull-wind-right .fp-pull-wind-streak{margin-right:auto;animation-name:fp-pull-wind-streak-move-right}.fp-pull-wind-vfx.is-strong .fp-pull-wind-streak{height:4px;opacity:.85;animation-duration:.65s}.fp-pull-wind-arrow-row{position:absolute;top:22%;left:50%;transform:translate(-50%);display:flex;gap:10px;font-size:28px;font-weight:900;color:#fff8f0eb;text-shadow:0 2px 10px rgba(40,70,120,.55);letter-spacing:-4px;animation:fp-pull-wind-arrow-bob .7s ease-in-out infinite}.fp-pull-wind-left .fp-pull-wind-arrow-row{animation-name:fp-pull-wind-arrow-bob-left}.fp-pull-wind-right .fp-pull-wind-arrow-row{animation-name:fp-pull-wind-arrow-bob-right}.fp-pull-wind-label{position:absolute;top:calc(22% + 42px);left:50%;transform:translate(-50%);margin:0;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800;color:#fff8f0;background:#32466e8c;border:1px solid rgba(200,220,255,.35);white-space:nowrap}@keyframes fp-pull-wind-streak-move-right{0%{transform:translate(-18vw);opacity:0}25%{opacity:.7}to{transform:translate(28vw);opacity:0}}@keyframes fp-pull-wind-streak-move-left{0%{transform:translate(18vw);opacity:0}25%{opacity:.7}to{transform:translate(-28vw);opacity:0}}@keyframes fp-pull-wind-arrow-bob-right{0%,to{transform:translate(-50%) translate(-6px)}50%{transform:translate(-50%) translate(8px)}}@keyframes fp-pull-wind-arrow-bob-left{0%,to{transform:translate(-50%) translate(6px)}50%{transform:translate(-50%) translate(-8px)}}.fp-landing-dist-popup{position:fixed;bottom:28%;left:50%;transform:translate(-50%);font-size:56px;font-weight:900;letter-spacing:-.02em;color:#fff;text-shadow:0 0 30px rgba(100,200,255,.9),0 0 60px rgba(100,200,255,.5),0 4px 16px rgba(0,0,0,.5);animation:fp-dist-popup-anim 2.2s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none;z-index:202;white-space:nowrap}@keyframes fp-dist-popup-anim{0%{opacity:0;transform:translate(-50%) scale(.4) translateY(24px)}20%{opacity:1;transform:translate(-50%) scale(1.22) translateY(-4px)}40%{transform:translate(-50%) scale(1) translateY(0)}72%{opacity:1;transform:translate(-50%) scale(1) translateY(0)}to{opacity:0;transform:translate(-50%) scale(.88) translateY(-28px)}}@media (prefers-color-scheme: dark){:root{--brand-primary: #ff8ec8;--brand-primary-dark: #ff6db6;--brand-surface: #1c1228;--brand-surface-deep: #261838;--brand-ink: #eddeff;--brand-muted: #c8a8e0;--brand-subtle: #a07cc0;--shadow-soft: 0 4px 16px rgba(0, 0, 0, .4);--shadow-card: 0 8px 28px rgba(0, 0, 0, .5), 0 2px 8px rgba(255, 142, 200, .08);--shadow-card-hover: 0 12px 36px rgba(0, 0, 0, .6), 0 4px 12px rgba(255, 142, 200, .1)}.app-root{background:linear-gradient(165deg,#1a1028,#221038 45%,#1c1232)}.card{background:#231540;border-color:#ffffff0f;color:var(--brand-ink)}.card-featured{background:linear-gradient(180deg,#231540,#1c1038)}.card.secondary{background:#281440c7}.card-value{color:var(--brand-ink)}.btn.ghost{background:#2e1a50;color:var(--brand-ink);box-shadow:inset 0 0 0 1px #ff8ec833}.btn.ghost:hover{background:#3a2060}.btn.ghost:active{background:#46286e}.btn.text{color:var(--brand-muted)}.title-sky{background:radial-gradient(90% 55% at 18% 8%,rgba(120,70,180,.32) 0%,transparent 58%),radial-gradient(70% 50% at 88% 14%,rgba(219,90,158,.22) 0%,transparent 52%),linear-gradient(182deg,#120c22,#1a1028 42%,#16102a)}.title-sky-mesh{background:radial-gradient(ellipse 55% 38% at 72% 22%,rgba(139,92,246,.18) 0%,transparent 70%),radial-gradient(ellipse 48% 32% at 12% 58%,rgba(244,114,182,.12) 0%,transparent 68%)}.title-sky-orb-a{background:#8b5cf647}.title-sky-orb-b{background:#f472b633}.title-sky-grain{opacity:.06;mix-blend-mode:soft-light}.title-horizon{background:radial-gradient(ellipse at 50% 100%,rgba(244,114,182,.14) 0%,transparent 70%)}.title-streak{background:linear-gradient(90deg,transparent,rgba(237,222,255,.42),transparent)}.title-settings-btn{background:#281840b8;box-shadow:inset 0 0 0 1px #ffffff14}.title-plane-trail{background:linear-gradient(90deg,transparent,rgba(255,142,200,.45))}.title-plane-shadow{background:#00000059}.title-logo-fly{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);-webkit-background-clip:text;background-clip:text;color:transparent}.title-logo-sheet{background:linear-gradient(135deg,#f9a8d4,#c084fc);-webkit-background-clip:text;background-clip:text;color:transparent}.title-eyebrow{color:#c8a8e0c7}.title-tagline{color:#c8a8e0b8}.title-stage-wheel-item{color:var(--brand-subtle)}.title-stage-wheel-item.current{color:var(--brand-ink)}.title-stage-wheel-highlight{background:#ff8ec838}.title-text-link{color:var(--brand-muted)}.title-text-link.accent{color:var(--brand-primary)}.title-pill{color:var(--brand-ink);background:#28143ce0;border-color:#ff8ec84d}.title-mode-card{background:#24143aeb;border-color:#ff8ec838}.title-mode-card strong{color:var(--brand-ink)}.title-mode-card span{color:var(--brand-muted)}.title-mode-card em{color:var(--brand-primary)}.title-mission-card{background:#24143aeb;border-color:#ff8ec833}.title-mission-head p{color:var(--brand-ink)}.title-mission-head span{color:var(--brand-subtle)}.title-mission-meta{color:var(--brand-muted)}.title-leg-preview li{color:var(--brand-ink)}.title-footer-hint{color:var(--brand-subtle)}.countdown-card{background:#1c122ef5;box-shadow:0 16px 48px #0009}.countdown-mode{color:var(--brand-muted)}.countdown-number{color:var(--brand-ink)}.countdown-number.is-go{color:var(--brand-primary)}.countdown-hint{color:var(--brand-muted)}.hero-header{box-shadow:0 12px 32px #0006}.hole-list li,.leg-list li{background:#2a1848;color:var(--brand-subtle)}.hole-list .hole-ok,.leg-list .leg-ok{background:#0e2e20;color:#5adf9a}.hole-list .hole-miss,.leg-list .leg-miss{background:#261838;color:var(--brand-subtle)}.result-share-preview{background:#1e1238;border-color:#7496c826}.result-share-label{color:#8090b8}.result-share-preview pre{color:#aac0e0}.result-streak-fail-copy{color:#b8c8e8}.options-sheet{background:linear-gradient(180deg,#1e1430,#191028);box-shadow:0 -8px 32px #00000080}.options-header h2{color:var(--brand-ink)}.options-close{background:#3a1e50;color:var(--brand-ink)}.skin-chip{background:#2a1840;color:var(--brand-ink);border-color:#ffffff14}.skin-chip.active{background:#38204e;border-color:var(--brand-primary)}.theme-chip,.difficulty-chip,.toggle-chip{background:#2a1840;color:var(--brand-ink);border-color:#ff8ec833}.theme-chip.active,.difficulty-chip.active,.toggle-chip.on{background:#38204e;border-color:var(--brand-primary);color:var(--brand-ink)}.difficulty-chip strong{color:var(--brand-ink)}.difficulty-chip span{color:var(--brand-muted)}.premium-section{background:linear-gradient(180deg,#261840,#1e1030);border-color:#ff8ec840}.premium-section-desc{color:var(--brand-muted)}.premium-sub-label{color:var(--brand-primary)}.premium-unlock-hint{color:var(--brand-muted)}.booster-card{background:#231540;border-color:#ff8ec833;color:var(--brand-ink)}.booster-card strong{color:var(--brand-ink)}.booster-desc{color:var(--brand-muted)}.booster-count{color:var(--brand-primary)}.home-quick-stat{background:#ffffff1a;border-color:#ffffff26}.loading-overlay,.meta,.subtitle,.eyebrow,.hint{color:var(--brand-muted)}}.campaign-hud{position:absolute;z-index:7;left:0;right:0;top:calc(44px + env(safe-area-inset-top,0px));padding:6px 14px 8px;display:flex;flex-direction:column;gap:5px;pointer-events:none}.campaign-launches{display:flex;gap:5px;justify-content:center}.campaign-launch-icon{font-size:18px;opacity:.92;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));animation:campaign-launch-pulse 2s ease-in-out infinite}.campaign-launch-icon:nth-child(2){animation-delay:.2s}.campaign-launch-icon:nth-child(3){animation-delay:.4s}.campaign-launch-icon:nth-child(4){animation-delay:.6s}.campaign-launch-icon:nth-child(5){animation-delay:.8s}@keyframes campaign-launch-pulse{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}}.campaign-progress-wrap{display:flex;flex-direction:column;gap:3px}.campaign-progress-bar{position:relative;height:8px;background:#ffffff2e;border-radius:999px;overflow:visible;box-shadow:inset 0 1px 3px #0000004d}.campaign-progress-fill{height:100%;background:linear-gradient(90deg,#4ade80,#22d3ee);border-radius:999px;transition:width .6s cubic-bezier(.22,1,.36,1);box-shadow:0 0 8px #4ade8080}.campaign-flag-icon{position:absolute;right:0;top:50%;transform:translate(50%,-50%);font-size:16px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.campaign-progress-labels{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:#ffffffbf;letter-spacing:.02em}.title-campaign-section{margin:12px 0;display:flex;flex-direction:column;gap:10px}.title-campaign-header{display:flex;align-items:center;gap:8px}.title-campaign-badge{font-size:13px;font-weight:800;color:var(--brand-primary-dark);background:var(--brand-surface-deep);border:1.5px solid rgba(255,142,200,.35);border-radius:999px;padding:3px 10px}.title-campaign-sub{font-size:12px;color:var(--brand-muted);font-weight:600}.title-campaign-stages{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.title-campaign-stages::-webkit-scrollbar{display:none}.title-campaign-stage-btn{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;border:1.5px solid rgba(255,142,200,.25);border-radius:14px;background:var(--brand-surface);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);min-width:52px}.title-campaign-stage-btn.current{border-color:var(--brand-primary);background:linear-gradient(145deg,var(--brand-surface),#ffd6f0);box-shadow:0 4px 14px #ff8ec84d}.title-campaign-stage-btn.locked{opacity:.38;cursor:not-allowed}.title-campaign-stage-btn:not(.locked):active{transform:scale(.95)}.title-campaign-stage-btn .stage-emoji{font-size:20px;line-height:1}.title-campaign-stage-btn .stage-num{font-size:10px;font-weight:800;color:var(--brand-ink)}.title-campaign-stage-btn .stage-stars{font-size:9px;letter-spacing:-1px}.title-campaign-stage-btn .star-lit{color:#f59e0b}.title-campaign-stage-btn .star-dim{color:#5a3d6e33}.title-campaign-play-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 20px;background:linear-gradient(135deg,var(--brand-primary) 0%,#e06aad 100%);border:none;border-radius:18px;color:#fff;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px #ff8ec866;transition:transform var(--transition-fast),box-shadow var(--transition-fast);width:100%}.title-campaign-play-btn span{font-size:12px;font-weight:600;opacity:.88}.title-campaign-play-btn:active{transform:scale(.97);box-shadow:0 2px 10px #ff8ec84d}.campaign-result-dist-meta{text-align:center;font-size:14px;font-weight:600;color:var(--brand-muted);margin-top:8px}.result-continue-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px}.result-continue-btn:disabled{opacity:.55;cursor:not-allowed}.result-continue-icon-wrap{display:inline-flex;width:28px;height:28px;flex-shrink:0}.result-continue-icon-wrap .fp-consumable-icon{width:28px;height:28px}.result-continue-label{text-align:left;line-height:1.25}.result-lifetime-btn{line-height:1.35;text-align:center}@media (prefers-color-scheme: dark){.title-campaign-stage-btn{background:#1c122ee6;border-color:#ff8ec833}.title-campaign-stage-btn.current{background:#28163ef2}.title-campaign-badge{background:#1c122ee6}}.title-screen-simple .title-mode-row,.title-screen-simple .title-mission-card,.title-screen-simple .title-pills,.title-screen-simple .title-campaign-section,.title-screen-hero .title-mode-row,.title-screen-hero .title-mission-card,.title-screen-hero .title-pills,.title-screen-hero .title-campaign-section{display:none}.title-play-meta{text-align:center;font-size:12px;font-weight:700;color:var(--brand-muted);margin:0;line-height:1.2}.title-secondary-links{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.title-link-btn{border:none;background:#ffffffb8;border-radius:14px;padding:12px 14px;font-size:14px;font-weight:700;color:var(--brand-ink);cursor:pointer}.title-link-btn.subtle{font-size:13px;font-weight:600;color:var(--brand-muted);background:transparent}.title-text-link{border:none;background:transparent;padding:4px 8px;font-size:12px;font-weight:700;color:var(--brand-muted);cursor:pointer;line-height:1.2}.title-text-link.accent{margin-top:0;color:var(--brand-primary-dark);letter-spacing:-.01em}.title-stage-panel{--stage-wheel-item: 28px;margin-top:2px;width:100%;max-width:200px;margin-inline:auto;padding:4px 8px 2px;border-radius:14px;background:#2d1c4438;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-sizing:border-box;flex:0 0 auto}.title-stage-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px;padding:0 4px}.title-stage-panel-title{margin:0;font-size:10px;font-weight:800;color:#ffffffb3;letter-spacing:-.01em}.title-stage-panel-meta{font-size:10px;font-weight:700;color:#ffffff6b;text-align:right}.title-stage-wheel-wrap{position:relative;height:calc(var(--stage-wheel-item) * 3);margin:0 auto;max-width:140px}.title-stage-wheel{position:relative;z-index:1;height:100%;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;outline:none}.title-stage-wheel::-webkit-scrollbar{display:none}.title-stage-wheel-spacer{height:var(--stage-wheel-item);flex-shrink:0;pointer-events:none}.title-stage-wheel-item{height:var(--stage-wheel-item);display:flex;align-items:center;justify-content:center;gap:6px;scroll-snap-align:center;scroll-snap-stop:always;color:#ffffff61;font-size:13px;font-weight:700;cursor:pointer;user-select:none;transition:color .12s ease,transform .12s ease}.title-stage-wheel-item.current{color:#fff;font-size:16px;font-weight:800;transform:scale(1.04)}.title-stage-wheel-item.cleared:not(.current){color:#ffd678b8}.title-stage-wheel-num{min-width:1.6em;text-align:center;font-variant-numeric:tabular-nums}.title-stage-wheel-stars{font-size:9px;letter-spacing:-.04em;color:#f6c35a;opacity:.9}.title-stage-wheel-highlight{position:absolute;z-index:0;left:0;right:0;top:50%;height:var(--stage-wheel-item);transform:translateY(-50%);border-radius:10px;background:#e86aad8c;pointer-events:none}.title-stage-wheel-fade{position:absolute;z-index:2;left:0;right:0;height:var(--stage-wheel-item);pointer-events:none}.title-stage-wheel-fade-top{top:0;background:linear-gradient(to bottom,#140c24b8,#140c2400)}.title-stage-wheel-fade-bottom{bottom:0;background:linear-gradient(to top,#140c24b8,#140c2400)}.title-stage-actions{display:flex;justify-content:center;flex-wrap:nowrap;gap:2px 10px;margin-top:0}.title-text-link.danger{color:#ff8fa8}.title-reset-dialog{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:#080412b8}.title-reset-card{width:min(100%,300px);padding:20px 18px 16px;border-radius:18px;background:#1a1230;border:1px solid rgba(255,255,255,.12);color:#fff;text-align:center}.title-reset-card h2{margin:0 0 8px;font-size:17px;font-weight:800}.title-reset-card p{margin:0 0 16px;font-size:13px;line-height:1.45;color:#ffffffb8}.title-reset-actions{display:flex;gap:8px}.title-reset-cancel,.title-reset-ok{flex:1;height:42px;border:none;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer}.title-reset-cancel{background:#ffffff1a;color:#fff}.title-reset-ok{background:#e85a8a;color:#fff}.title-footer{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;max-width:360px;margin-top:auto;margin-inline:auto;flex:0 0 auto;padding-top:2px}.title-footer-links{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:2px 4px;width:100%}.title-footer-links .title-text-link{padding:4px 6px;font-size:clamp(11px,3vw,12px);white-space:nowrap}.title-footer .title-footer-hint{margin:0;font-size:9px;line-height:1.25;opacity:.85}@media (max-height: 740px){.title-screen-hero .title-hero{padding-top:2px}.title-screen-hero .title-plane-stage{height:clamp(44px,9vh,64px);margin:2px auto 0}.title-screen-hero .title-logo{font-size:clamp(28px,7.5vw,38px)}.title-screen-hero .title-brand-mark{width:clamp(56px,14vw,72px);height:clamp(56px,14vw,72px);margin-bottom:4px}.title-screen-hero .title-play-btn{min-height:46px;font-size:clamp(16px,4.8vw,20px);padding:6px 14px}.title-stage-panel{margin-top:0;padding:3px 6px 1px}.title-footer .title-footer-hint{display:none}}@media (max-height: 640px){.title-screen-hero .title-tagline,.title-screen-hero .title-eyebrow{display:none}.title-screen-hero .title-plane-stage{height:40px}.title-screen-hero .title-plane{width:48px;height:32px}.title-screen-hero .title-brand-mark{width:48px;height:48px;margin-bottom:2px}}@media (prefers-reduced-motion: reduce){.title-streak,.title-plane,.title-plane-shadow,.title-plane-trail,.title-brand-mark-img{animation:none}}.title-campaign-mini{margin-top:8px}.title-campaign-mini-label{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--brand-muted)}.title-campaign-stages.compact .title-campaign-stage-btn{min-width:44px;padding:8px 6px}.play-header-minimal{justify-content:flex-start;width:auto;inset:0 auto auto 0;background:none;box-shadow:none;padding:calc(10px + env(safe-area-inset-top,0px)) 0 0 calc(10px + env(safe-area-inset-left,0px));z-index:8}.play-header-minimal .play-home-icon{width:40px;min-width:40px;min-height:40px;padding:0;border-radius:12px;font-size:18px;font-weight:800;line-height:1}.game-message-overlay{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:center;align-items:flex-start;padding-top:calc(10px + env(safe-area-inset-top,0px));pointer-events:none}.game-message-card.campaign-exhausted-prompt{border-radius:16px;padding:16px 18px;max-width:min(92%,360px);pointer-events:auto;animation:none}.campaign-exhausted-sub{margin:8px 0 0;font-size:12px;font-weight:600;opacity:.88}.campaign-exhausted-actions{display:flex;gap:8px;justify-content:center;margin-top:14px}.campaign-exhausted-actions .btn{min-width:0;flex:1 1 0;padding:10px 12px;font-size:13px}.shop-row-focus-continue{outline:2px solid rgba(255,196,86,.85);outline-offset:2px;border-radius:12px}.game-message-card{max-width:88%;padding:8px 14px;border-radius:999px;background:#0c1424b8;border:1px solid rgba(183,213,255,.28);color:#fff;font-size:14px;font-weight:800;text-align:center;backdrop-filter:blur(10px);animation:game-message-toast 1.5s ease-out both}@keyframes game-message-toast{0%{opacity:0;transform:translateY(-8px)}12%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.campaign-celebration-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;background:#080c189e;backdrop-filter:blur(6px)}.campaign-celebration-card{width:min(100%,320px);padding:24px 20px;border-radius:22px;background:linear-gradient(180deg,#1c243ef5,#12182cfa);border:1px solid rgba(183,213,255,.24);color:#fff;text-align:center}.campaign-celebration-emoji{margin:0;font-size:42px}.campaign-celebration-card h2{margin:8px 0 6px;font-size:24px}.campaign-celebration-stars{margin:0 0 8px;font-size:22px}.campaign-celebration-meta{margin:0 0 16px;font-size:13px;color:#ffffffc7}.campaign-celebration-actions{display:flex;flex-direction:column;gap:8px}.fp-consumable-hud-top{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:5;display:flex;flex-direction:row;align-items:flex-start;gap:5px;pointer-events:none}.fp-overlay-campaign .fp-consumable-hud-top{top:calc(68px + env(safe-area-inset-top,0px))}.fp-overlay:not(.fp-overlay-campaign) .fp-consumable-hud-top{top:calc(42px + env(safe-area-inset-top,0px))}.fp-consumable-hud-top .fp-booster-btn{pointer-events:auto;background:#0c1424c7;backdrop-filter:blur(10px)}.fp-consumable-hud-top .fp-booster-btn.active{background:#1e785ac2}.fp-consumable-hud-top .fp-booster-btn.empty{background:#0c1424b8}.fp-consumable-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fp-consumable-qty-badge{position:absolute;top:-4px;left:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;line-height:1;letter-spacing:-.02em;color:#fff;background:#080e1ceb;border:1.5px solid rgba(255,213,79,.85);box-shadow:0 1px 4px #00000073;pointer-events:none}.fp-booster-btn.empty .fp-consumable-qty-badge{display:none}.fp-consumable-stack-badge{position:absolute;right:-4px;bottom:-2px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:#ffd54ff2;color:#1a1a1a;font-size:9px;font-weight:800;line-height:14px;text-align:center;pointer-events:none}.fp-consumable-qty-badge.is-lifetime{font-size:11px;font-weight:900}.fp-booster-btn-display-only{pointer-events:none;cursor:default;opacity:.92}.fp-overlay-campaign .fp-campaign-progress-top{margin-top:2px;padding-left:48px;padding-right:156px}.fp-overlay-campaign .fp-campaign-hud-simple{padding-left:48px;padding-right:156px}.fp-campaign-progress-track{position:relative;height:10px;border-radius:999px;background:#ffffff29;overflow:hidden}.fp-campaign-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#4ade80,#22d3ee);transition:width .45s ease}.fp-campaign-flag{position:absolute;right:2px;top:50%;transform:translateY(-58%);font-size:14px}.fp-campaign-progress-labels{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;font-weight:600;color:#ffffffeb}.fp-campaign-progress-now{font-size:14px;font-weight:800;letter-spacing:.02em}.fp-campaign-hud-simple{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:14px;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45)}.fp-campaign-hud-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.fp-campaign-bonus-launch-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800;color:#052e16;background:linear-gradient(135deg,#bbf7d0,#4ade80);box-shadow:0 0 0 1px #ffffff59;animation:fp-campaign-bonus-badge-pulse 1.1s ease-in-out infinite}@keyframes fp-campaign-bonus-badge-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 1px #ffffff59}50%{transform:scale(1.06);box-shadow:0 0 12px #4ade808c}}.fp-booster-btn.is-pop{animation:fp-consumable-btn-pop .28s ease-out}@keyframes fp-consumable-btn-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}.fp-consumable-float{position:absolute;top:-4px;left:50%;transform:translate(-50%);font-size:13px;font-weight:900;color:#fef08a;text-shadow:0 1px 3px rgba(0,0,0,.55);pointer-events:none;animation:fp-consumable-float-up .75s ease-out both;z-index:2}@keyframes fp-consumable-float-up{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.85)}18%{opacity:1;transform:translate(-50%) translateY(0) scale(1.08)}to{opacity:0;transform:translate(-50%) translateY(-22px) scale(1)}}.fp-booster-row-compact{justify-content:flex-end;gap:6px;flex-wrap:wrap}.fp-booster-btn-compact{min-width:52px;min-height:44px;padding:4px 6px;flex-direction:column;gap:1px;border-radius:12px}.fp-booster-btn-compact .fp-booster-emoji{font-size:16px;line-height:1}.fp-booster-name{font-size:9px;font-weight:800;letter-spacing:-.02em;color:#ffffffeb;line-height:1.1;max-width:4.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-booster-count{font-size:10px;font-weight:800;font-style:normal;color:#fff0c8f2}.fp-booster-count.is-ad{color:#bae6fdf2;font-size:9px}.tutorial-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:#08101cb8;backdrop-filter:blur(6px)}.tutorial-card,.help-sheet{width:min(360px,100%);padding:18px 18px 16px;border-radius:20px;background:linear-gradient(165deg,#f7fbff,#e8f4ea);box-shadow:0 18px 48px #00000059;color:#243044}.tutorial-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tutorial-kicker{margin:0;font-size:12px;font-weight:700;color:#2430448c}.tutorial-skip{border:0;background:transparent;color:#2430448c;font-size:13px;font-weight:700;padding:4px 6px}.tutorial-emoji{font-size:42px;text-align:center;line-height:1.2;margin:6px 0 4px}.tutorial-title{margin:0 0 8px;text-align:center;font-size:22px;font-weight:900}.tutorial-body{margin:0 0 14px;text-align:center;font-size:14px;line-height:1.55;color:#243044d1}.tutorial-dots{display:flex;justify-content:center;gap:6px;margin-bottom:14px}.tutorial-dots i{width:7px;height:7px;border-radius:999px;background:#24304433}.tutorial-dots i.on{background:#2f9e44;width:16px}.tutorial-next{width:100%;border:0;border-radius:14px;padding:12px 14px;font-size:16px;font-weight:800;color:#fff;background:linear-gradient(135deg,#2f9e44,#1971c2)}.help-section{margin-bottom:14px}.help-list{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:#243044e0}.help-list li+li{margin-top:6px}.help-note{margin:8px 0 0;font-size:12px;color:#2430448c}.fp-timing-bar-large{padding:12px 10px 10px}.fp-timing-track-large{height:18px}.fp-timing-track-large .fp-timing-perfect{background:#38d9a98c;box-shadow:inset 0 0 0 1px #63f2c0bf}.fp-timing-track-large .fp-timing-marker{width:14px;height:22px}.title-level-line{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:clamp(2px,.5vh,6px) 0 0;font-size:11px;font-weight:800;color:#463048b8;letter-spacing:.02em}.title-xp-track{display:inline-block;width:56px;height:5px;border-radius:999px;background:#ffffff8c;overflow:hidden}.title-xp-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f0a0c8,#e86aad)}@media (prefers-color-scheme: dark){.title-level-line{color:#eddeffb8}.title-xp-track{background:#ffffff2e}}.fp-booster-count{font-size:10px;font-weight:800;opacity:.85}.shop-sheet-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:end center;background:#28183059;padding:16px}.shop-sheet{width:min(100%,380px);max-height:min(72vh,520px);overflow:auto;border-radius:20px 20px 16px 16px;background:#fffaf7;box-shadow:0 -8px 32px #3c1e322e;padding:18px 16px 20px}.shop-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.shop-sheet-header h2{margin:0;font-size:18px;color:#3d2a3a}.shop-close{border:none;background:transparent;font-size:16px;cursor:pointer;color:#8a6a7c}.shop-tabs{display:flex;gap:8px;margin:0 0 12px}.shop-tab{flex:1;border:none;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:700;cursor:pointer;background:#ffffffb3;color:#6a4a5c}.shop-tab.active{background:#ffb8d8;color:#3d2a3a}.shop-row-actions{display:flex;gap:6px;flex-shrink:0}.shop-buy-btn.secondary{background:#fff;color:#6a4a5c;border:1px solid rgba(106,74,92,.25)}.shop-coins{margin:0 0 8px;font-size:15px;font-weight:700;color:#212529}.shop-inventory{margin:0 0 12px;font-size:13px;font-weight:700;color:#6a4a5c}.shop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.shop-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:#ffffffd9}.shop-row strong{display:block;font-size:14px;color:#3d2a3a}.shop-row span{font-size:12px;color:#8a6a7c}.shop-buy-btn:disabled{opacity:.45;cursor:not-allowed}.shop-buy-btn,.shop-ad-btn{border:none;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer;background:#e86aade6;color:#fff}.shop-ad-label{margin:16px 0 8px;font-size:12px;font-weight:800;color:#6a4a5c}.shop-ad-row{display:flex;gap:8px;flex-wrap:wrap}.shop-ad-btn{background:#5a78c8e0}.shop-todo{margin:14px 0 0;font-size:11px;line-height:1.4;color:#9a7a8c}.fp-overlay.is-aim-phase{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.fp-overlay.is-aim-phase .fp-center{padding-bottom:26vh}.fp-overlay.is-aim-phase.is-pulling .fp-center{padding-bottom:30vh}.fp-overlay.is-aim-phase .fp-bottom-stack{gap:4px}.fp-campaign-progress-track{height:6px}.fp-campaign-progress-labels{margin-top:4px;font-size:10px;font-weight:700}.fp-campaign-progress-now{font-size:11px;font-weight:800}.fp-campaign-hud-simple{flex-direction:row;flex-wrap:wrap;align-items:center;gap:5px;margin-top:4px;font-size:11px;font-weight:700;line-height:1.2}.fp-campaign-hud-sep{opacity:.5;font-weight:400}.fp-hud-top{gap:5px}.fp-hud-chip{padding:4px 8px;font-size:10px;font-weight:700;line-height:1.2}.fp-hud-wind{gap:4px}.fp-wind-bars i{width:3px;height:6px}.fp-wind-bars i:nth-child(2){height:7px}.fp-wind-bars i:nth-child(3){height:8px}.fp-wind-bars i:nth-child(4){height:9px}.fp-juice-toggle{font-size:10px;padding:4px 7px}.fp-overlay.is-aim-phase .fp-aim-arc{margin-bottom:0;transform:translateY(-10px)}.fp-overlay.is-aim-phase .fp-aim-arc-deg{font-size:12px}.fp-overlay.is-aim-phase .fp-aim-arc-caption{font-size:9px}.fp-overlay.is-aim-phase .fp-aim-arc-meta{padding:1px 8px}.fp-overlay.is-aim-phase .fp-hint{margin-top:6px;padding:4px 10px;font-size:11px;font-weight:700}.fp-booster-row-icons{justify-content:center;gap:6px}.fp-booster-row-icons .fp-booster-btn,.fp-booster-row-icons .fp-booster-btn-compact{min-width:38px;min-height:36px;padding:3px 5px;border-radius:10px;flex-direction:column;gap:0}.fp-booster-row-icons .fp-booster-btn-consumable,.fp-booster-row-icons .fp-booster-btn-compact.fp-booster-btn-consumable{min-width:46px;min-height:52px;padding:4px 5px 3px;gap:1px}.fp-booster-row-icons .fp-booster-emoji{font-size:15px}.fp-booster-row-icons .fp-booster-btn:not(.fp-booster-btn-consumable) .fp-booster-name{display:none}.fp-booster-row-icons .fp-booster-btn-consumable .fp-booster-name{display:block;font-size:8px;font-weight:800;letter-spacing:-.03em;color:#fffffff2;line-height:1;max-width:none}.fp-booster-row-icons .fp-booster-btn-consumable .fp-booster-count,.fp-booster-row-icons .fp-booster-btn-consumable em{display:none}.fp-booster-row-icons .fp-booster-btn em,.fp-booster-row-icons .fp-booster-count{font-size:9px;line-height:1;margin-top:1px}.fp-consumable-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.fp-consumable-icon svg{width:100%;height:100%}.fp-consumable-icon-plus svg{width:100%;height:100%}.fp-booster-btn.active .fp-consumable-icon{color:#fff;filter:drop-shadow(0 0 5px rgba(99,242,192,.55))}.fp-booster-btn.empty .fp-consumable-icon{opacity:.42}.fp-booster-btn.empty .fp-consumable-icon .fp-consumable-accent,.fp-booster-btn.empty .fp-consumable-icon .fp-consumable-accent-stroke{opacity:.55}.fp-overlay.is-aim-phase .fp-timing-bar{padding:7px 10px;min-height:0;border-radius:14px;background:#060e1c66;border-color:#e2f2ff33}.fp-overlay.is-aim-phase.is-pulling .fp-timing-bar{background:#060e1c47;backdrop-filter:blur(6px)}.fp-overlay.is-aim-phase .fp-timing-track,.fp-overlay.is-aim-phase .fp-timing-track-large{height:16px}.fp-overlay.is-aim-phase .fp-timing-labels{margin-bottom:4px;font-size:9px;letter-spacing:.02em}.fp-overlay.is-pulling .fp-timing-labels,.fp-overlay.is-pulling .fp-timing-guide{display:none}.fp-overlay.is-aim-phase .fp-timing-meta{margin-top:4px;font-size:10px}.fp-overlay.is-aim-phase .fp-timing-marker{width:14px;height:14px}.fp-overlay.is-aim-phase .fp-timing-marker.perfect{width:17px;height:17px}.fp-overlay.is-aim-phase .fp-overhold-warning{font-size:10px;margin-bottom:4px}.fp-flight-distance-hud{top:14%}.fp-overlay-campaign .fp-flight-distance-hud{top:18%}.fp-flight-distance-num{font-size:clamp(32px,8.5vw,50px)}.fp-flight-distance-unit{font-size:clamp(12px,3vw,17px)}.fp-flight-distance-meta{font-size:10px;gap:8px}.fp-flight-distance-tick-label{font-size:11px;top:-14px}.bonus-play-shell{position:relative;min-height:var(--app-height, 100dvh);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.bonus-hud{position:absolute;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:linear-gradient(180deg,#080c18f5,#080c18c7 72%,#080c1800);color:#fff;pointer-events:none;-webkit-font-smoothing:antialiased}.bonus-hud>*{pointer-events:auto}.bonus-hud-badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#f472b6;color:#1e1b2e;font-size:10px;font-weight:700;letter-spacing:.04em}.bonus-hud-boss{display:inline-block;padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#e03131,#f59f00);color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;animation:bonus-boss-pulse 1.2s ease-in-out infinite}.bonus-hud-fever{display:inline-block;padding:2px 10px;border-radius:999px;background:linear-gradient(135deg,#ff6b6b,#ffd43b);color:#1e1b2e;font-size:11px;font-weight:900;letter-spacing:.08em;animation:bonus-fever-shake .35s ease-in-out infinite}@keyframes bonus-boss-pulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.15)}}@keyframes bonus-fever-shake{0%,to{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.08)}}.bonus-hud-left,.bonus-hud-center{display:flex;flex-direction:column;gap:2px}.bonus-hud-center{align-items:center;text-align:center}.bonus-hud-mode,.bonus-hud-score,.bonus-hud-wind,.bonus-hud-shots{font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45)}.bonus-hud-target{font-size:14px;font-weight:800;color:#cce8ff;text-shadow:0 1px 4px rgba(0,0,0,.5);font-variant-numeric:tabular-nums}.bonus-hud-wind{font-size:12px;font-weight:700;color:#e8f4ff}.bonus-hud-timer{font-size:18px;font-weight:800;color:#fde68a}.bonus-hud-timer.is-urgent{color:#fb7185;animation:bonus-timer-pulse .6s ease-in-out infinite}@keyframes bonus-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.bonus-hud-ammo{font-size:12px;font-weight:700;color:#fff;opacity:.95}.bonus-hud-shots{font-size:11px;opacity:.9}.bonus-hud-skip{pointer-events:auto;min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.32);border-radius:10px;background:#ffffff29;color:#fff!important;font-size:13px;font-weight:700;cursor:pointer;backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent}.bonus-hud-skip:hover{background:#ffffff3d;color:#fff!important}.bonus-hud-skip:active{opacity:.85}.fp-overlay.fp-overlay-minimal{padding-top:calc(58px + env(safe-area-inset-top,0px))}.fp-overlay.fp-overlay-minimal .fp-hint{background:#080c18b8;border-color:#ffffff47;text-shadow:0 1px 3px rgba(0,0,0,.65)}.fp-overlay.fp-overlay-minimal.is-aim-phase .fp-timing-bar{background:#060e1cb8;border-color:#e2f2ff59}.fp-overlay.fp-overlay-minimal .fp-timing-meta,.fp-overlay.fp-overlay-minimal .fp-aim-arc-deg,.fp-overlay.fp-overlay-minimal .fp-aim-arc-caption{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}.fp-overlay.fp-overlay-minimal .fp-timing-labels{color:#ffffffeb;text-shadow:0 1px 3px rgba(0,0,0,.7)}.bonus-swipe-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;padding-bottom:18%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;overscroll-behavior:none}.bonus-swipe-hint{padding:8px 14px;border-radius:999px;background:#00000073;color:#fff;font-size:13px;pointer-events:none}.bonus-swipe-hint-toast{position:absolute;left:50%;bottom:22%;transform:translate(-50%);z-index:35;padding:10px 16px;border-radius:999px;background:#080c18d1;color:#fff;font-size:14px;font-weight:600;pointer-events:none;animation:bonus-hint-fade 2.5s ease forwards}@keyframes bonus-hint-fade{0%{opacity:0;transform:translate(-50%) translateY(8px)}12%{opacity:1;transform:translate(-50%) translateY(0)}72%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.plane-ammo-stack{position:absolute;left:max(10px,env(safe-area-inset-left));bottom:max(18%,env(safe-area-inset-bottom));z-index:28;width:72px;pointer-events:none}.plane-ammo-stack-pile{position:relative;height:88px;margin-bottom:6px}.plane-ammo-stack-item{position:absolute;left:50%;bottom:calc(var(--stack-i, 0) * 7px);transform:translate(-50%) rotate(-18deg);font-size:22px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));transition:opacity .15s ease}.plane-ammo-stack.is-depleted .plane-ammo-stack-item{opacity:.2}.plane-ammo-stack-count{margin:0;text-align:center;font-size:13px;font-weight:800;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.55)}.plane-ammo-stack-total{font-size:11px;font-weight:600;opacity:.75}.plane-ammo-stack-flying-layer{position:absolute;left:50%;bottom:72px;width:0;height:0}.plane-ammo-stack-flyaway{position:absolute;left:0;bottom:0;font-size:20px;animation:plane-stack-flyaway .72s cubic-bezier(.22,.9,.28,1) forwards;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}@keyframes plane-stack-flyaway{0%{opacity:1;transform:translate(0) rotate(-18deg) scale(1)}to{opacity:0;transform:translate(72px,-120px) rotate(8deg) scale(.5)}}.bonus-weak-toast{position:absolute;top:42%;left:50%;transform:translate(-50%);z-index:40;padding:8px 16px;border-radius:12px;background:#000000b3;color:#fff;font-size:14px}.bonus-intro-overlay,.bonus-result-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#140c20b8}.bonus-intro-card,.bonus-result-card{width:min(100%,360px);padding:24px 20px;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow-card);text-align:center}.bonus-intro-card h2,.bonus-result-card h2{margin:0 0 4px;color:#1e1b2e}.bonus-intro-kicker,.bonus-result-kicker{font-size:12px;color:#6b6280;margin-bottom:8px}.bonus-intro-emoji,.bonus-result-grade{font-size:40px;margin:4px 0 8px}.bonus-intro-body,.bonus-result-score{color:#1e1b2e;line-height:1.5;margin:8px 0 12px}.bonus-intro-twist{margin:0 0 12px;padding:8px 10px;border-radius:10px;background:#ffd43b38;font-size:13px;font-weight:600;color:#e67700}.bonus-intro-meta,.bonus-result-rewards{list-style:none;padding:0;margin:0 0 16px;font-size:13px;color:#6b6280}.bonus-intro-meta li+li,.bonus-result-rewards li+li{margin-top:4px}.bonus-intro-actions{display:flex;flex-direction:column;gap:8px}.bonus-result-practice-note{margin:0 0 16px;font-size:14px;font-weight:600;color:#6b6280}.bonus-practice-overlay{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;padding:20px;background:#140c20b8}.bonus-practice-card{width:min(100%,380px);max-height:min(90vh,640px);overflow-y:auto;padding:24px 20px;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow-card);text-align:center;color:#1e1b2e}.bonus-practice-card h2{margin:0 0 4px;color:#1e1b2e}.bonus-practice-kicker{font-size:12px;color:#6b6280;margin-bottom:8px}.bonus-practice-body{color:#1e1b2e;line-height:1.5;margin:8px 0 16px;font-size:14px}.bonus-practice-fieldset{border:0;margin:0 0 16px;padding:0;text-align:left}.bonus-practice-fieldset legend{font-size:13px;font-weight:600;color:#1e1b2e;margin-bottom:8px}.bonus-practice-mode-grid{display:grid;grid-template-columns:1fr;gap:8px}.bonus-practice-mode-btn,.bonus-practice-tier-btn{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(30,27,46,.12);background:#f8fafc;color:#1e1b2e;font-size:14px;font-weight:600;cursor:pointer}.bonus-practice-mode-btn.selected,.bonus-practice-tier-btn.selected{border-color:#f472b6;background:#f472b624;color:#1e1b2e;box-shadow:0 0 0 1px #f472b659}.bonus-practice-tier-row,.bonus-practice-actions{display:flex;flex-direction:column;gap:8px}@media (prefers-color-scheme: dark){.bonus-hud{background:linear-gradient(180deg,#060812fa,#060812d1 72%,#06081200)}.bonus-hud-mode,.bonus-hud-score,.bonus-hud-wind,.bonus-hud-shots,.bonus-hud-ammo{color:#fff}.bonus-hud-target{color:#d6ecff}.bonus-hud-skip{background:#ffffff24;border-color:#ffffff47;color:#fff!important}.bonus-intro-card,.bonus-result-card,.bonus-practice-card{background:#fff;color:#1e1b2e}.bonus-intro-card h2,.bonus-result-card h2,.bonus-intro-body,.bonus-result-score,.bonus-practice-card h2,.bonus-practice-body,.bonus-practice-fieldset legend,.bonus-practice-mode-btn,.bonus-practice-tier-btn,.bonus-practice-mode-btn.selected,.bonus-practice-tier-btn.selected{color:#1e1b2e}.bonus-intro-kicker,.bonus-result-kicker,.bonus-intro-meta,.bonus-result-rewards,.bonus-result-practice-note,.bonus-practice-kicker{color:#6b6280}.bonus-intro-card .btn.ghost,.bonus-result-card .btn.ghost,.bonus-practice-card .btn.ghost{background:#eef4ff;color:#1e1b2e;box-shadow:inset 0 0 0 1px #1e1b2e1f}.bonus-intro-card .btn.primary,.bonus-result-card .btn.primary,.bonus-practice-card .btn.primary{color:#fff}}.campaign-celebration-bonus{margin:8px 0 0;font-size:14px;color:#fde68a;font-weight:600}:root{font-family:Apple SD Gothic Neo,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;color:#1b3a66;background:#e8f0fe;color-scheme:light dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{color:#eddeff;background:#120c1c}}*{box-sizing:border-box}html{height:-webkit-fill-available}html,body{margin:0;width:100%;min-height:100%;min-height:var(--app-height, 100dvh);overflow-x:hidden;overscroll-behavior:none}html.is-play-mode,html.is-play-mode body{overflow:hidden;touch-action:none}body{min-height:var(--app-height, 100dvh)}#root{width:100%;min-height:var(--app-height, 100dvh);height:var(--app-height, 100dvh);display:flex;justify-content:center}button{font:inherit;cursor:pointer}
