@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(./fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}:root{--bg:#27466e;--ink:#fff7ea;--cream:#fff7d6;--muted:#e9d7c4;--amber:#fbbf24;--amber-hi:#fcd34d;--orange:#f97316;--rose:#d07a8f;--plum:#4a2448;--sky:#67e8f9;--green:#86efac;--red:#fca5a5;--panel:#1e1b2e8c;--panel-strong:#1e1b2ed1;--edge:#fcd34d59;--display:"Fredoka", system-ui, sans-serif;--body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--ch-size:64px;--ch-colour:#fff7d6}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--body);overscroll-behavior:none;background:linear-gradient(#27466e,#d07a8f 60%,#f6a65a);margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}body.playing,body.playing #view{cursor:none}#view{width:100vw;height:100vh;height:100dvh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#ui>*{pointer-events:auto}#hud,#crosshair,#slowmo{pointer-events:none!important}#hud button{pointer-events:auto}[hidden]{display:none!important}button,select,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--amber-hi);outline-offset:2px}.screen{padding:calc(24px + var(--safe-t)) calc(28px + var(--safe-r)) calc(24px + var(--safe-b)) calc(28px + var(--safe-l));touch-action:pan-y;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.screen.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.screen.dim{-webkit-backdrop-filter:blur(5px);background:#1e142880}#title{background:linear-gradient(90deg,#271e3c9e 0%,#271e3c1f 55%,#0000 100%)}#scores,#howto,#settings{-webkit-backdrop-filter:blur(6px);background:#241a34bd}#loading{background:linear-gradient(#27466e,#d07a8f 65%,#f6a65a)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.gap{justify-content:center;gap:12px}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--red);min-height:1em;margin:4px 0}.logo{font-family:var(--display);letter-spacing:.01em;color:var(--cream);text-shadow:0 4px #c2410c,0 8px 24px #78283c8c,0 0 42px #fcd34d73;margin:0;font-size:clamp(56px,10vw,104px);font-weight:700;line-height:.92}.logo.small{font-size:36px}.logo.mid{font-size:clamp(34px,5.5vw,56px)}.pulse{animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.82}50%{opacity:1}}.eyebrow{font:600 12px var(--body);letter-spacing:.2em;color:var(--amber-hi);text-transform:uppercase;margin:0}.h2{font:700 30px var(--display);letter-spacing:.03em;color:var(--cream);text-shadow:0 2px #c2410cb3;margin:0}h3{font:600 19px var(--display);color:var(--cream);margin:0 0 12px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.chip{background:var(--panel-strong);min-height:44px;color:var(--ink);border:1px solid #fff7d659;border-radius:22px;align-items:center;gap:8px;padding:0 16px 0 8px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}a.chip{padding:0 16px}.chip .av{background:#b45309;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:inline-flex}.icon-btn{background:var(--panel-strong);width:44px;height:44px;color:var(--ink);border:1px solid #fff7d659;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.icon-btn.big{border-color:var(--edge);background:var(--panel);border-radius:14px;width:52px;height:52px}.title-main{flex-direction:column;gap:14px;max-width:560px;margin-top:3vh;display:flex}.lead{color:#fdf2e4;text-shadow:0 1px 6px #28143280;max-width:440px;margin:0;font-size:18px;line-height:1.5}.menu{flex-direction:column;gap:12px;width:300px;max-width:100%;margin-top:12px;display:flex}.btn{background:var(--panel-strong);min-height:48px;color:var(--cream);font:600 17px var(--display);letter-spacing:.04em;border:1px solid #fff7d666;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:0 22px;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover:not(:disabled){background:#3c2846e6;transform:translateY(-2px)}.btn.primary{color:#3b1606;background:linear-gradient(90deg,#f59e0b,#f97316);border-color:#ffedd5b3;min-height:58px;font-size:21px;font-weight:700;box-shadow:0 6px #9a3412,0 10px 28px #f9731673}.btn.primary:hover:not(:disabled){background:linear-gradient(90deg,#fbbf24,#fb923c)}.btn.primary:active{transform:translateY(3px);box-shadow:0 3px #9a3412}.btn.small{min-height:40px;margin-top:10px;font-size:14px}.btn:disabled{opacity:.45;cursor:not-allowed}.menu-card .menu{margin:16px auto 4px}.title-foot{left:calc(28px + var(--safe-l));right:calc(28px + var(--safe-r));bottom:calc(22px + var(--safe-b));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute}.best-chip{background:var(--panel-strong);border:1px solid var(--edge);color:var(--muted);border-radius:14px;padding:10px 18px;font-size:15px}.best-chip b{font:700 20px var(--display);color:var(--amber-hi);margin-left:6px}.card{background:var(--panel-strong);border:1px solid var(--edge);text-align:left;border-radius:18px;max-width:560px;padding:22px}.card.wide{max-width:760px}.screen.center .card{text-align:center}.menu-card{min-width:min(380px,92vw)}.score-table{border-collapse:collapse;width:100%;font-size:16px}.score-table th{text-align:left;font:600 12px var(--body);letter-spacing:.14em;color:var(--amber-hi);border-bottom:1px solid #fff7d633;padding:8px}.score-table td{border-bottom:1px solid #fff7d61a;padding:12px 8px}.score-table td.rank{font:700 20px var(--display);color:var(--amber-hi);width:3ch}.score-table td.pts{font:700 22px var(--display);color:var(--cream);font-variant-numeric:tabular-nums}.score-table tr.latest td{background:#fbbf2424}.score-stats{color:var(--muted);flex-wrap:wrap;gap:22px;margin-top:16px;font-size:14px;display:flex}.score-stats b{color:var(--cream);font:600 18px var(--display);margin-left:4px}.howto,.settings{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:18px;max-width:1100px;display:grid}.legend,.tips{color:#fdf2e4;flex-direction:column;gap:10px;margin:0;padding:0;font-size:15px;line-height:1.45;list-style:none;display:flex}.tips{margin-bottom:12px;padding-left:18px;list-style:outside}.legend b,.tips b{color:var(--cream)}.legend li{align-items:center;gap:12px;display:flex}.sw{border:2px solid #fff7d699;border-radius:50%;flex:none;width:30px;height:30px}.sw-bird{background:radial-gradient(circle at 35% 35%,#fff,#c9ccd6 45%,#6b7280)}.sw-gold{background:radial-gradient(circle at 35% 35%,#fff7d6,#fbbf24 50%,#b45309);box-shadow:0 0 12px #fbbf24b3}.sw-clock{background:radial-gradient(circle,#fffdf2 50%,#d4a24c 54%)}.sw-bomb{background:linear-gradient(#7c5cc4 40%,#facc15 40% 58%,#3b2470 58%)}.keys{border-collapse:collapse;width:100%;font-size:14px}.keys td{border-bottom:1px solid #fff7d61f;padding:6px 4px}.keys td:first-child{color:var(--muted)}kbd{min-width:26px;font:600 13px var(--body);text-align:center;background:#1e1b2ee6;border:1px solid #fff7d673;border-radius:6px;margin:0 2px;padding:2px 8px;display:inline-block}.keys button{border:1px solid var(--edge);min-height:36px;color:var(--cream);background:#50321e80;border-radius:8px;padding:0 12px;font-size:13px}.keys button.listening{border-color:var(--amber-hi);color:var(--amber-hi)}.field{color:#fdf2e4;flex-direction:column;gap:6px;margin-bottom:14px;font-size:14px;display:flex}.field select,.field input[type=text]{background:#1e1b2ef2;border:1px solid #fff7d666;border-radius:10px;min-height:44px;padding:0 12px}.field input[type=range]{accent-color:var(--amber);min-height:32px}.check{color:#fdf2e4;align-items:center;gap:10px;min-height:32px;margin-bottom:14px;font-size:14px;display:flex}.check input{width:20px;height:20px;accent-color:var(--amber)}.swatches{gap:10px;display:flex}.swatches button{border:2px solid #fff7d659;border-radius:50%;width:40px;height:40px}.swatches button[aria-checked=true]{border:3px solid #fff;box-shadow:0 0 0 3px #fbbf2499}.panel{background:var(--panel);border:1px solid var(--edge);-webkit-backdrop-filter:blur(3px);border-radius:14px}#hud{font-family:var(--body);position:absolute;top:0;bottom:0;left:0;right:0}.hud-tl{top:calc(18px + var(--safe-t));left:calc(22px + var(--safe-l));flex-direction:column;gap:2px;min-width:150px;padding:10px 18px;display:flex;position:absolute}.score-num{font:700 34px/1.05 var(--display);color:var(--cream);font-variant-numeric:tabular-nums}.score-num.bump{animation:.25s ease-out bump}@keyframes bump{40%{color:var(--amber-hi);transform:scale(1.12)}}.hud-tc{top:calc(18px + var(--safe-t));flex-direction:column;align-items:center;gap:6px;padding:10px 18px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tracker{gap:6px;display:flex}.tracker i{background:#ffffff14;border:2px solid #fff7d68c;border-radius:50%;width:20px;height:20px;display:inline-block}.tracker i.hit{background:radial-gradient(circle at 35% 35%,#fff7d6,#fbbf24 55%,#d97706);border-color:#fde68a;box-shadow:0 0 10px #fbbf24cc}.tracker i.miss{background:#3c283cb3;border-color:#fff7d640;position:relative}.tracker i.miss:after{content:"";background:#fff7d64d;border-radius:50%;position:absolute;top:7px;bottom:7px;left:7px;right:7px}.tracker i.now{border-color:#fff;animation:.8s ease-in-out infinite pulse}.tracker i.quota{outline-offset:2px;outline:2px dashed #86efacb3}.tracker.big i{width:30px;height:30px}[data-bind=quotaText].ok{color:var(--green);font-weight:600}.hud-tr{top:calc(18px + var(--safe-t));right:calc(22px + var(--safe-r));align-items:center;gap:12px;display:flex;position:absolute}.shots{flex-direction:column;align-items:center;gap:6px;padding:8px 16px;display:flex}.shells{align-items:flex-end;gap:6px;height:30px;display:flex}.shells i{background:linear-gradient(#fde68a,#d4a24c 40%,#b45309);border-radius:6px 6px 3px 3px;width:12px;height:30px;transition:opacity .15s,transform .15s;display:inline-block;box-shadow:inset 0 -8px #9a3412}.shells i.used{opacity:.18;transform:translateY(4px)}.buddy{left:calc(18px + var(--safe-l));bottom:calc(16px + var(--safe-b));align-items:flex-end;gap:6px;transition:opacity .3s;display:flex;position:absolute}.buddy.off{display:none}.buddy-bot{filter:drop-shadow(0 6px 10px #28143266);width:86px;height:86px}.buddy-bot .bob{transform-origin:50%;animation:2.2s ease-in-out infinite bob}.buddy-bot .rotor{transform-box:fill-box;transform-origin:50%;animation:.18s linear infinite rotor}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes rotor{50%{transform:scaleX(.35)}}.bubble{color:#3b2414;max-width:280px;font:500 15px/1.35 var(--body);opacity:0;background:#fffbebf2;border-radius:16px 16px 16px 4px;margin:0 0 46px;padding:10px 14px;transition:opacity .2s,transform .2s;transform:translateY(6px)scale(.96);box-shadow:0 6px 18px #2814324d}.bubble.show{opacity:1;transform:none}.combo{right:calc(26px + var(--safe-r));top:calc(110px + var(--safe-t));font:700 30px var(--display);color:var(--amber-hi);text-shadow:0 3px #9a3412,0 0 18px #fbbf2499;opacity:0;transition:opacity .2s;position:absolute}.combo.show{opacity:1;animation:.3s ease-out bump}.banner{text-align:center;font:700 64px/1 var(--display);color:var(--cream);text-shadow:0 4px #c2410c,0 0 30px #fcd34d99;opacity:0;white-space:nowrap;transition:opacity .25s;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.banner small{font:600 20px var(--body);color:#fff1d6;text-shadow:0 2px 8px #281432b3;margin-top:10px;display:block}.banner.show{opacity:1}.popups{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.pop{font:700 26px var(--display);color:var(--cream);text-shadow:0 2px #9a3412,0 0 14px #fbbf24b3;white-space:nowrap;animation:.95s ease-out forwards floatUp;position:absolute;transform:translate(-50%,-50%)}.pop.gold{color:#fff1a8;font-size:34px}.pop.bad{color:#e9d5ff;text-shadow:0 2px #4c1d95,0 0 14px #a78bfacc}.pop.blue{color:#dbeafe;text-shadow:0 2px #1e40af,0 0 14px #60a5facc}.pop small{font:600 14px var(--body);text-align:center;display:block}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.7)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.1)}to{opacity:0;transform:translate(-50%,-190%)scale(1)}}.edge-arrows i{border-top:14px solid #0000;border-bottom:14px solid #0000;border-left:24px solid var(--amber-hi);filter:drop-shadow(0 0 6px #fbbf24e6)drop-shadow(0 2px 2px #28143299);will-change:transform;width:0;height:0;margin:-14px 0 0 -12px;display:none;position:absolute;top:0;left:0}.edge-arrows i.on{display:block}.edge-arrows i.gold{border-left-color:#fff1a8}#crosshair{width:var(--ch-size);height:var(--ch-size);margin:calc(var(--ch-size) / -2) 0 0 calc(var(--ch-size) / -2);will-change:transform;position:absolute;top:0;left:0}#crosshair svg{width:100%;height:100%;stroke:var(--ch-colour);fill:var(--ch-colour);filter:drop-shadow(0 0 3px #000000b3);transition:transform 80ms}#crosshair.lock svg{stroke:#fff;fill:#fff;transform:scale(.82)rotate(45deg)}#crosshair.fire svg{transform:scale(1.3)}#crosshair.empty{opacity:.45}#slowmo{background:radial-gradient(#0000 55%,#3b82f659);position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 120px #60a5fa66}.results{flex-direction:column;align-items:center;gap:18px;width:min(660px,94vw);display:flex}.res-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}.stat{background:var(--panel-strong);flex-direction:column;gap:6px;padding:14px;display:flex}.stat b{font:700 28px var(--display);color:var(--cream);font-variant-numeric:tabular-nums}.gold-edge{border-color:#fbbf24b3;box-shadow:0 0 22px #fbbf2440}.new-best{color:var(--green);font-weight:600}.prof-list{flex-wrap:wrap;justify-content:center;gap:10px;margin:14px 0;display:flex}.prof{min-height:48px;color:var(--ink);background:#1e1b2ee6;border:1px solid #fff7d666;border-radius:24px;align-items:center;gap:8px;padding:0 16px 0 8px;font-weight:600;display:flex}.prof.on{border:2px solid var(--amber)}.prof .av{font-size:22px}.prof-add{text-align:left;border-top:1px solid #fff7d633;padding-top:14px}.avatars{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.avatars button{background:#1e1b2ee6;border:1px solid #fff7d659;border-radius:50%;width:44px;height:44px;font-size:22px}.avatars button[aria-checked=true]{border:2px solid var(--amber);background:#78350fb3}.big-icon{margin:0;font-size:56px}@media (max-width:760px),(max-height:460px){.logo{font-size:clamp(44px,12vw,68px)}.title-main{gap:10px;margin-top:0}.lead{font-size:15px}.hud-tl{min-width:0;padding:6px 12px}.score-num{font-size:24px}.hud-tc{padding:6px 10px}.tracker i{width:14px;height:14px}.shells i{width:9px;height:22px}.shells{height:22px}.buddy-bot{width:60px;height:60px}.bubble{max-width:200px;margin-bottom:30px;font-size:13px}.banner{font-size:44px}.res-grid{grid-template-columns:1fr}.stat b{font-size:22px}}@media (max-height:460px){.title-main{max-width:60vw}.menu{gap:8px;margin-top:6px}.btn{min-height:44px}.btn.primary{min-height:48px}.eyebrow+.logo{font-size:44px}.logo br{display:none}.title-foot{margin-top:14px;position:static}.title-foot>p:last-child{display:none}.results{gap:10px}}@media (prefers-reduced-motion:reduce){.pulse,.buddy-bot .bob,.buddy-bot .rotor,.tracker i.now,.score-num.bump,.combo.show{animation:none}.btn{transition:none}}body.reduce-motion .pulse,body.reduce-motion .buddy-bot .bob,body.reduce-motion .buddy-bot .rotor,body.reduce-motion .tracker i.now,body.reduce-motion .score-num.bump,body.reduce-motion .combo.show{animation:none}body.reduce-motion .pop{animation-duration:.6s}
