.ff-app{--ff-ink:#173a40;--ff-deep:#0f2b31;--ff-paper:#fff8ec;--ff-orange:#ff6a2b;--ff-gold:#ffd76a;--ff-green:#4ed38a;--ff-red:#ff4d4d;--ff-sky:#8fd0ff;--play-accent:#e8642a;--ff-btn-dark:#a8441a;overflow:hidden;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;height:100dvh;background:#f6c896;color:#fff}.ff-scene{width:100%;height:100%;display:block;z-index:0;touch-action:none}.ff-scene,.ff-vignette{position:absolute;inset:0}.ff-vignette{z-index:1;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,transparent 55%,rgba(40,20,10,.35))}.ff-app:not([data-phase=play]) :is(.ff-head,.ff-sub,.ff-meter,.ff-hint,.ff-action,.ff-keys,.ff-quit,.ff-toast,.ff-banner,.ff-catch){display:none}.ff-head{position:absolute;z-index:4;left:0;right:0;top:calc(env(safe-area-inset-top, 0px) + 10px);pointer-events:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;grid-gap:8px;gap:8px;padding:0 12px}.ff-stats{justify-self:start;display:flex;gap:6px}.ff-pill{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 14px 0 9px;border-radius:21px;background:rgba(15,43,49,.62);border:2px solid rgba(255,255,255,.85);box-shadow:0 4px 0 rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ff-pill i{font-style:normal;font-size:20px;line-height:1;filter:drop-shadow(0 2px 0 rgba(0,0,0,.3))}.ff-pill b{font:800 22px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:1.2ch;text-align:center}.ff-caught.bump{animation:ff-bump .55s cubic-bezier(.3,1.8,.5,1)}@keyframes ff-bump{30%{transform:scale(1.35);background:var(--ff-orange)}}.ff-timer{position:relative;width:58px;height:58px;display:grid;place-items:center;--k:1}.ff-timer svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}.ff-timer .track{fill:rgba(15,43,49,.7);stroke:rgba(255,255,255,.25);stroke-width:5}.ff-timer .ring{fill:none;stroke:var(--ff-gold);stroke-width:5;stroke-linecap:round;stroke-dasharray:calc(var(--k) * 100) 100;transition:stroke .3s}.ff-timer b{position:relative;font:800 21px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ff-timer.urgent .ring{stroke:var(--ff-red)}.ff-timer.urgent b{color:#ffd6d0;animation:ff-throb 1s ease-in-out infinite}@keyframes ff-throb{50%{transform:scale(1.22)}}.ff-sub{position:absolute;z-index:4;left:12px;top:calc(env(safe-area-inset-top, 0px) + 60px);pointer-events:none;display:flex;align-items:center;gap:6px}.ff-lines{display:flex;gap:4px;padding:5px 8px;border-radius:14px;background:rgba(15,43,49,.55)}.ff-lines i{width:16px;height:16px;border-radius:50%;position:relative;background:radial-gradient(circle at 50% 50%,#fff 0 22%,#9fdcff 24% 58%,#3a8db8 60%);box-shadow:0 0 0 2px rgba(255,255,255,.85);transition:filter .3s,opacity .3s,transform .3s}.ff-lines i.gone{filter:grayscale(1) brightness(.55);opacity:.45;transform:scale(.82)}.ff-lines i.gone:after{content:"";position:absolute;left:-2px;right:-2px;top:7px;height:2px;background:var(--ff-red);transform:rotate(-35deg)}.ff-wind{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:14px;background:rgba(15,43,49,.55);font:800 12px/1 Playful,sans-serif;letter-spacing:.06em;color:#dff4ff;text-transform:uppercase}.ff-wind svg{transition:transform .4s}.ff-wind[data-level="0"] svg{opacity:.45}.ff-wind[data-level="2"]{color:#fff;background:rgba(200,90,40,.75)}.ff-banner{position:absolute;z-index:7;left:50%;top:30%;transform:translate(-50%,-50%) scale(.4);opacity:0;pointer-events:none;white-space:nowrap;font:800 clamp(44px,12vw,80px)/1 Playful,sans-serif;color:#fff7d6;-webkit-text-stroke:4px var(--ff-ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ff-ink),0 0 30px rgba(255,215,106,.7)}.ff-banner.show{animation:ff-banner 1.3s cubic-bezier(.2,1.4,.4,1) forwards}.ff-banner.red{color:#ffe1dc;-webkit-text-stroke-color:#8e1b12;text-shadow:0 6px 0 #8e1b12,0 0 30px rgba(255,77,77,.8)}@keyframes ff-banner{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-8deg)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(-3deg)}80%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}to{opacity:0;transform:translate(-50%,-60%) scale(1) rotate(-3deg)}}.ff-toast{position:absolute;z-index:7;left:50%;top:calc(env(safe-area-inset-top, 0px) + 104px);transform:translate(-50%,-6px);opacity:0;pointer-events:none;width:max-content;max-width:calc(100% - 32px);padding:8px 16px;border-radius:18px;background:var(--ff-paper);color:var(--ff-ink);font:800 16px/1.25 Playful,sans-serif;text-align:center;box-shadow:0 4px 0 var(--ff-gold)}.ff-toast.bad{box-shadow:0 4px 0 var(--ff-red)}.ff-toast.show{animation:ff-toast 2.3s ease forwards}@keyframes ff-toast{8%{opacity:1;transform:translate(-50%) scale(1.05)}15%{transform:translate(-50%) scale(1)}88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}.ff-hint{position:absolute;z-index:5;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 150px);transform:translateX(-50%);margin:0;pointer-events:none;padding:7px 15px;border-radius:16px;background:rgba(15,43,49,.66);font:800 15px/1.2 Playful,sans-serif;white-space:nowrap;color:#fff;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.ff-hint:empty{display:none}.ff-app[data-sim=fight] .ff-hint{bottom:calc(env(safe-area-inset-bottom, 0px) + 252px)}.ff-app.tutorial .ff-hint{animation:ff-throb 1.6s ease-in-out infinite}.ff-meter{position:absolute;z-index:5;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 148px);width:min(360px,calc(100% - 28px));transform:translate(-50%,16px) scale(.92);opacity:0;pointer-events:none;transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1);display:flex;flex-direction:column;gap:5px;--danger:0}.ff-meter.show{opacity:1;transform:translate(-50%)}.ff-meter-top{display:flex;justify-content:space-between;align-items:center;font:800 11px/1 Playful,sans-serif;letter-spacing:.1em;color:rgba(255,255,255,.85);text-shadow:0 1px 2px rgba(0,0,0,.5)}.ff-meter-top b{font-size:17px;letter-spacing:0;padding:3px 10px;border-radius:10px;background:rgba(15,43,49,.72);color:#fff;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ff-meter-bar{position:relative;height:30px;border-radius:15px;overflow:hidden;border:3px solid #fff;background:linear-gradient(90deg,#6fb8d8 0 12%,#f1d78a 12% 40%,#f1d78a 75%,#ff8a6a 88%,#e8402e);box-shadow:0 5px 0 rgba(0,0,0,.3),inset 0 3px 0 rgba(255,255,255,.35),0 0 calc(var(--danger) * 26px) rgba(255,77,77,calc(var(--danger)))}.ff-zone{position:absolute;top:0;bottom:0;background:linear-gradient(#8ff0b8,#2fbf71);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 0 14px rgba(78,211,138,.8);transition:left .3s,width .3s}.ff-needle{position:absolute;top:-4px;bottom:-4px;left:50%;width:8px;margin-left:-4px;border-radius:4px;background:#fff;box-shadow:0 0 0 2px var(--ff-ink),0 0 10px #fff}.ff-meter[data-state=good] .ff-zone{animation:ff-glow .6s ease-in-out infinite alternate}@keyframes ff-glow{to{filter:brightness(1.25)}}.ff-meter[data-state=danger] .ff-meter-bar{animation:ff-shake .12s linear infinite}.ff-meter[data-state=danger] .ff-needle{background:var(--ff-red)}.ff-meter[data-state=slack] .ff-needle{background:var(--ff-sky)}@keyframes ff-shake{25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.ff-energy{display:flex;align-items:center;gap:6px;font:800 10px/1 Playful,sans-serif;letter-spacing:.1em;color:rgba(255,255,255,.85);text-shadow:0 1px 2px rgba(0,0,0,.5)}.ff-energy div{flex:1 1;height:7px;border-radius:4px;background:rgba(15,43,49,.6);overflow:hidden}.ff-energy i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ffb24a,#ff6a2b);transition:width .15s}.ff-action{position:absolute;z-index:5;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 30px);width:104px;height:104px;margin-left:-52px;border-radius:50%;display:grid;place-items:center;pointer-events:none;transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1);background:radial-gradient(circle,rgba(15,43,49,.55) 0 60%,rgba(255,255,255,.95) 62% 66%,rgba(15,43,49,.4) 68%)}.ff-action[data-mode=off]{opacity:0;transform:scale(.7)}.ff-action span{width:78%;height:78%;border-radius:50%;display:grid;place-items:center;transform:translateY(-5px);font:800 17px/1 Playful,sans-serif;letter-spacing:.06em;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.35);background:radial-gradient(circle at 38% 28%,#fff 0 7%,#ffc28a 8% 22%,var(--ff-orange) 52%,#b8401a 100%);box-shadow:0 5px 0 #7a2a10,inset 0 -6px 10px rgba(90,20,0,.45);transition:transform .08s,box-shadow .08s}.ff-action[data-mode=strike] span{background:radial-gradient(circle at 38% 28%,#fff 0 7%,#fff1a8 8% 22%,#f5b81c 52%,#a86a06 100%);box-shadow:0 5px 0 #6e4504,inset 0 -6px 10px rgba(90,50,0,.45)}.ff-action.held span{transform:translateY(0);box-shadow:0 1px 0 #7a2a10,0 0 26px rgba(255,106,43,.9);animation:ff-reel .3s linear infinite}@keyframes ff-reel{50%{filter:brightness(1.15)}}.ff-keys{position:absolute;z-index:5;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 10px);transform:translateX(-50%);pointer-events:none;font:700 12px/1.3 Playful,sans-serif;color:rgba(255,255,255,.78);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media (hover:none),(max-width:1000px),(pointer:coarse){.ff-keys{display:none}}.ff-corner{position:absolute;z-index:8;top:calc(env(safe-area-inset-top, 0px) + 12px);right:12px;display:flex;gap:6px}.ff-icon-btn{width:44px;height:42px;padding:0;border-radius:13px;border:2px solid rgba(255,255,255,.9);display:grid;place-items:center;background:rgba(15,43,49,.62);color:#fff;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ff-icon-btn .off,.ff-icon-btn[aria-pressed=true] .on{display:none}.ff-icon-btn[aria-pressed=true] .off{display:inline}.ff-app:has(.overlay.show:not(.ff-menu)) .ff-corner{display:none}.ff-catch{--fin:#e35b2b;position:absolute;z-index:9;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 22px);width:min(340px,calc(100% - 32px));transform:translate(-50%,40px) scale(.9);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.3,1.5,.5,1),opacity .2s;background:var(--ff-paper);color:var(--ff-ink);border-radius:26px;border:4px solid #fff;padding:14px 18px;text-align:center;box-shadow:0 8px 0 var(--fin),0 0 40px color-mix(in srgb,var(--fin) 50%,transparent);display:flex;flex-direction:column;align-items:center;gap:5px}.ff-catch.show{opacity:1;transform:translate(-50%);pointer-events:auto}.ff-catch-tag{padding:3px 12px;border-radius:12px;background:var(--fin);color:#fff;font:800 13px/1.3 Playful,sans-serif;letter-spacing:.06em;text-shadow:0 1px 0 rgba(0,0,0,.2)}.ff-catch-tag[data-kind=new]{background:linear-gradient(90deg,#ffb820,#ff6a2b,#ff5fa2,#ffb820);background-size:200% 100%;animation:ff-shine 2s linear infinite}@keyframes ff-shine{to{background-position:200% 0}}.ff-catch-name{margin:0;font:800 30px/1.05 Playful,sans-serif;color:var(--ff-ink)}.ff-catch-row{display:flex;gap:10px;align-items:baseline;font:800 22px/1 Playful,sans-serif}.ff-catch-row b:first-child{color:#4b6f73}.ff-catch-points{color:var(--ff-orange)}.ff-catch-line{margin:0;font-size:14px;font-weight:700;line-height:1.3;color:#4b6f73}.ff-catch[data-species=minnow] .ff-catch-line{color:#c2410c}.ff-catch-ok{margin-top:4px;min-width:190px;min-height:48px;border-radius:16px;border:3px solid var(--ff-btn-dark);cursor:pointer;background:linear-gradient(#ffa06e,var(--ff-orange));color:#fff;font:800 20px/1 Playful,sans-serif;box-shadow:inset 0 3px 0 rgba(255,255,255,.45),0 5px 0 var(--ff-btn-dark);text-shadow:0 2px 0 rgba(0,0,0,.3)}.ff-catch-ok:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ff-btn-dark)}.playful-game .ff-menu,.playful-game .ff-results{background:linear-gradient(90deg,rgba(15,43,49,0) 40%,rgba(15,43,49,.55) 70%);-webkit-backdrop-filter:none;backdrop-filter:none;align-items:flex-end;padding-right:max(5vw,24px);pointer-events:none}.ff-menu>*,.ff-results>*{pointer-events:auto}.ff-app .backlink{background:rgba(255,248,236,.95)}.ff-card{width:min(430px,100%);background:var(--ff-paper);border:4px solid #fff;border-radius:30px;color:var(--ff-ink);box-shadow:0 9px 0 var(--ff-orange),0 20px 50px rgba(0,0,0,.35);padding:22px 22px 18px;display:flex;flex-direction:column;gap:10px;text-align:left}.ff-card,.ff-card>*{flex-shrink:0}.ff-kicker{font:800 12px/1.2 Playful,sans-serif;letter-spacing:.1em;color:var(--ff-orange)}.ff-title{margin:0;font:800 clamp(44px,5.6vw,62px)/.9 Playful,sans-serif;color:#fff;letter-spacing:0;-webkit-text-stroke:3px var(--ff-ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ff-orange);background:none}.ff-blurb{margin:0;font-size:15px;font-weight:700;line-height:1.35;color:#4b6f73}.ff-lineup{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px}.ff-lineup li{--fin:#e35b2b;position:relative;aspect-ratio:1/1.05;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#ffffff,#e6f3ef);border:2px solid #d9ece6;box-shadow:inset 0 -4px 0 var(--fin);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:6px}.ff-lineup img{position:absolute;inset:4% 4% 34%;width:92%;height:62%;object-fit:contain;pointer-events:none}.ff-lineup li:not(.have) img{filter:brightness(.15) saturate(0);opacity:.35}.ff-lineup span{position:relative;font:800 10.5px/1.1 Playful,sans-serif;color:var(--ff-ink);text-align:center;padding:0 3px}.ff-lineup em{position:relative;font:700 9.5px/1.2 Playful,sans-serif;font-style:normal;color:#6a8a8d}.ff-lineup li.have em{color:var(--ff-orange)}.ff-rules{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.ff-rules li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;line-height:1.25;background:#fff;border-radius:12px;padding:6px 10px}.ff-rules span{font-size:19px}.ff-rules b{color:var(--ff-orange)}.playful-game .ff-results button.big,.playful-game button.big.ff-start{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;background:linear-gradient(#ffa06e,var(--ff-orange));color:#fff;border-color:var(--ff-btn-dark);text-shadow:0 2px 0 rgba(0,0,0,.3);box-shadow:inset 0 3px 0 rgba(255,255,255,.45),0 5px 0 var(--ff-btn-dark);font-size:23px}.playful-game .ff-results button.big:active,.playful-game button.big.ff-start:active{box-shadow:0 1px 0 var(--ff-btn-dark)}.ff-best{margin:0;text-align:center;font-weight:800;color:var(--ff-orange);min-height:1.2em}.ff-link-btn{background:none;border:0;color:var(--ff-ink);font:800 16px/1.2 Playful,sans-serif;padding:8px;min-height:44px;cursor:pointer}.ff-small-card{width:min(400px,100%);align-items:stretch;text-align:center}.ff-result-title{margin:0;font:800 clamp(36px,9vw,50px)/1 Playful,sans-serif;color:#fff1b8;transform:rotate(-3deg);-webkit-text-stroke:3px var(--ff-ink);paint-order:stroke fill;text-shadow:0 5px 0 rgba(232,100,42,.6)}.ff-results.empty .ff-result-title{color:#dceff2}.ff-result-line{margin:0;font-size:16px;font-weight:700}.ff-result-big{display:flex;align-items:baseline;justify-content:center;gap:6px}.ff-result-big b{font:800 62px/1 Playful,sans-serif;color:var(--ff-orange);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ff-result-big span{font-weight:800;font-size:20px;color:#6a8a8d}.ff-r-catches{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px;max-height:180px;overflow-y:auto}.ff-r-catches[hidden]{display:none}.ff-r-catches li{--fin:#e35b2b;display:grid;grid-template-columns:54px 1fr auto auto;align-items:center;grid-gap:8px;gap:8px;padding:3px 10px 3px 4px;border-radius:12px;background:#fff;box-shadow:inset 4px 0 0 var(--fin);font-weight:800;font-size:14px;text-align:left;animation:ff-pop .45s cubic-bezier(.3,1.6,.5,1) backwards;animation-delay:calc(var(--i) * .07s)}.ff-r-catches img{width:54px;height:34px;object-fit:contain}.ff-r-catches em{font-style:normal;color:#6a8a8d}.ff-r-catches b{color:var(--ff-orange);min-width:3ch;text-align:right}@keyframes ff-pop{0%{transform:scale(.4);opacity:0}}.ff-result-list{margin:0;display:grid;grid-template-columns:1fr 1.4fr 1fr;grid-gap:6px;gap:6px}.ff-result-list>div{display:flex;flex-direction:column;gap:2px;background:#fff;border-radius:12px;padding:7px 8px;min-width:0}.ff-result-list dt{color:#6a8a8d;font-weight:700;font-size:12px}.ff-result-list dd{margin:0;font-weight:800;color:var(--ff-orange);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.ff-r-lost{font-weight:700;color:#6a8a8d}.ff-r-lost,.ff-release{margin:0;font-size:13px}.ff-release{font-weight:800;color:#2f8f6a}.ff-loading{background:radial-gradient(ellipse at 50% 40%,#ffd9a8,#e79d6a)}@media (min-width:900px) and (min-aspect-ratio:1/1){.ff-action{width:120px;height:120px;margin-left:-60px;bottom:44px}.ff-meter{width:420px}.ff-hint,.ff-meter{bottom:186px}.ff-app[data-sim=fight] .ff-hint{bottom:296px}}@media (max-aspect-ratio:4/5),(max-width:700px){.playful-game :is(.ff-menu,.ff-results){align-items:center;justify-content:flex-end;padding:0 12px calc(env(safe-area-inset-bottom, 0px) + 12px);background:linear-gradient(180deg,rgba(15,43,49,0) 45%,rgba(15,43,49,.55) 75%)}.ff-menu .ff-card,.ff-results .ff-card{max-height:66dvh;overflow-y:auto;gap:8px;padding:16px 16px 12px;overscroll-behavior:contain;touch-action:pan-y}.ff-menu .ff-card{padding:14px 14px 10px;border-radius:24px}.ff-title{font-size:40px}.ff-title br{display:none}.ff-menu :is(.ff-blurb){display:none}.ff-rules li{font-size:13px;padding:5px 9px}.ff-menu #ff-start,.ff-results #ff-again{position:-webkit-sticky;position:sticky;bottom:0;z-index:1}.ff-result-big b{font-size:50px}.ff-stats{flex-direction:column;align-items:flex-start}.ff-pill{height:38px}.ff-sub{top:calc(env(safe-area-inset-top, 0px) + 98px)}.ff-toast{top:calc(env(safe-area-inset-top, 0px) + 140px)}}@media (max-height:640px){.ff-menu .ff-rules{display:none}.ff-action{width:88px;height:88px;margin-left:-44px;bottom:16px}.ff-hint,.ff-meter{bottom:116px}.ff-app[data-sim=fight] .ff-hint{bottom:210px}}@media (prefers-reduced-motion:reduce){.ff-app.tutorial .ff-hint,.ff-banner.show,.ff-catch-tag[data-kind=new],.ff-meter[data-state] *,.ff-timer.urgent b,.ff-toast.show{animation:none}.ff-banner.show,.ff-toast.show{opacity:1}}