@font-face{font-family:Cinzel Decorative;font-style:normal;font-display:swap;font-weight:700;src:url(./cinzel-decorative-latin-700-normal-CnX1aK6s.woff2) format("woff2"),url(./cinzel-decorative-latin-700-normal-ov6XPGpn.woff) format("woff")}@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:500;src:url(./quicksand-latin-500-normal-_DbwbYKP.woff2) format("woff2"),url(./quicksand-latin-500-normal-7J1fbcAD.woff) format("woff")}@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:700;src:url(./quicksand-latin-700-normal-Dpk7G9Y6.woff2) format("woff2"),url(./quicksand-latin-700-normal-HjJN-aaT.woff) format("woff")}:root{--bg: #020308;--ink: #dfe8d0;--ink-soft: #9fb0c0;--glow: #f2ffc2;--lime: #d4ff5a;--pollen: #fff27a;--lost: #7dfcff;--swarm: #9dffcf;--shadow: #b98bff;--danger: #ff8a5c;--dawn: #ffc98a;--dew: #bfe8ff;--panel: rgba(5, 7, 15, .84);--font-title: "Cinzel Decorative", Georgia, serif;--font-ui: "Quicksand", "Trebuchet MS", sans-serif}html,body{margin:0;padding:0;height:100%;overflow:hidden;background-color:var(--bg);color:var(--ink);font-family:var(--font-ui);touch-action:manipulation;-webkit-tap-highlight-color:transparent}#app{width:100%;height:100vh;height:100dvh;display:flex;justify-content:center;align-items:center}.stage{position:relative;width:min(100vw,calc(100dvh * 16 / 9));aspect-ratio:16 / 9;container-type:inline-size;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#game-container{position:absolute;top:0;right:0;bottom:0;left:0}#game-container canvas{display:block;cursor:crosshair}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-user-select:none;user-select:none}.overlay button{pointer-events:auto}.menu{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;animation:fade-in .8s ease both}.title{margin:0;font-family:var(--font-title);font-size:max(36px,8cqw);line-height:1;color:var(--glow);text-shadow:0 0 2cqw rgba(212,255,90,.7),0 0 5cqw rgba(212,255,90,.3);animation:breathe 4s ease-in-out infinite}.subtitle{margin:1.2cqw 0 3cqw;font-size:max(14px,1.9cqw);color:var(--ink-soft)}.howto{margin:0 0 3cqw;padding:0;list-style:none;font-size:max(12px,1.5cqw);line-height:2.1;text-shadow:0 2px 6px #000}.howto b{color:var(--glow)}.howto .c-pollen{color:var(--pollen)}.howto .c-lost{color:var(--lost)}.howto .c-shadow{color:var(--shadow)}.howto .c-dew{color:var(--dew)}.hint{margin:.8cqw 0 0;font-size:max(11px,1.1cqw);color:var(--ink-soft)}.best{margin:1cqw 0 0;font-size:max(12px,1.3cqw);color:var(--ink-soft)}.button{font-family:var(--font-ui);font-weight:700;font-size:max(13px,1.6cqw);padding:.8cqw 2.6cqw;border-radius:999px;border:1px solid rgba(242,255,194,.45);background:#05070f99;color:var(--glow);cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s}.button:hover{box-shadow:0 0 1.5cqw #d4ff5a59}.button:active{transform:scale(.97)}.button.primary{background:var(--glow);color:#11160a;border-color:var(--glow);box-shadow:0 0 2cqw #d4ff5a73}.button kbd{margin-left:.6cqw;font-family:var(--font-ui);font-size:.75em;opacity:.6}.hud{font-size:max(12px,1.2cqw)}.hud-left{position:absolute;top:1.4cqw;left:1.8cqw}.label{font-size:.85em;font-weight:700;letter-spacing:.4em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.4cqw}.bar-row{display:flex;align-items:center;gap:1.2cqw;margin-bottom:1.2cqw}.bar{position:relative;width:19cqw;height:.95cqw;padding:.25cqw;border-radius:999px;background:#0000008c}.bar-fill{height:100%;min-width:.95cqw;border-radius:999px;background:#e8ff7a;box-shadow:0 0 1cqw #e8ff7a99;transition:width .1s linear}.bar.low .bar-fill{animation:low-light .36s steps(2) infinite}.bar-mark{position:absolute;top:-.15cqw;bottom:-.15cqw;width:2px;background:#ffffff8c}.flash-dot{width:1.2cqw;height:1.2cqw;border-radius:50%;background:#454a56;opacity:.7}.flash-dot.ready{background:var(--glow);opacity:1;box-shadow:0 0 0 .25cqw #f2ffc259,0 0 1.2cqw var(--lime);animation:pulse 1.2s ease-in-out infinite}.swarm{display:flex;gap:.6cqw}.swarm span{width:.8cqw;height:.8cqw;border-radius:50%;background:#ffffff1f;transition:background .3s,box-shadow .3s}.swarm span.on{background:var(--swarm);box-shadow:0 0 .8cqw var(--swarm)}.hud-center{position:absolute;top:1.1cqw;left:50%;transform:translate(-50%);text-align:center}.dawn-label{font-weight:700;color:#b9c7ff;margin-bottom:.5cqw}.night{display:flex;align-items:center;gap:.8cqw}.night-track{width:23cqw;height:.4cqw;border-radius:999px;background:#ffffff1f;overflow:hidden}.night-fill{height:100%;background:linear-gradient(90deg,#8fa0ff,var(--dawn))}.moon,.sun{width:.8cqw;height:.8cqw;border-radius:50%}.moon{background:#dfe6ff}.sun{background:var(--dawn);box-shadow:0 0 .8cqw var(--dawn)}.hud-right{position:absolute;top:1.2cqw;right:1.8cqw;display:flex;flex-direction:column;align-items:flex-end;gap:.5cqw}.hud-buttons{display:flex;gap:.6cqw;margin-top:.4cqw}.combo{font-weight:700;color:var(--pollen);text-shadow:0 0 .8cqw rgba(255,242,122,.6);animation:pop .25s ease-out}.hud-score{font-size:max(20px,2.4cqw);font-weight:700;color:var(--glow);text-shadow:0 0 1cqw rgba(212,255,90,.4);font-variant-numeric:tabular-nums}.intro{position:absolute;top:20%;width:100%;text-align:center;font-family:var(--font-title);font-size:max(22px,3.3cqw);color:var(--glow);text-shadow:0 0 1.5cqw rgba(212,255,90,.6);animation:intro 3s ease forwards}.hud-hint{position:absolute;right:1.8cqw;bottom:1.4cqw;font-size:.9em;color:var(--ink-soft);opacity:.55}.hud-hint kbd{font-family:var(--font-ui);font-weight:700;padding:.1cqw .5cqw;border:1px solid rgba(159,176,192,.5);border-radius:.4cqw}.icon-button{width:2.6cqw;height:2.6cqw;min-width:30px;min-height:30px;padding:.5cqw;border-radius:50%;border:1px solid rgba(242,255,194,.3);background:#05070f8c;color:var(--ink-soft);cursor:pointer;transition:color .2s,box-shadow .2s}.icon-button:hover{color:var(--glow);box-shadow:0 0 1cqw #d4ff5a4d}.icon-button svg{display:block;width:100%;height:100%}.menu-corner{position:absolute;top:1.4cqw;right:1.8cqw;display:flex;align-items:center;gap:.8cqw}.lang-toggle{--knob-inset: 3px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:6.6cqw;height:2.6cqw;min-width:72px;min-height:30px;padding:0;border-radius:999px;border:1px solid rgba(242,255,194,.3);background:#05070f8c;cursor:pointer;pointer-events:auto;transition:box-shadow .2s,border-color .2s}.lang-toggle:hover{border-color:#f2ffc28c;box-shadow:0 0 1cqw #d4ff5a4d}.lang-toggle:focus-visible{outline:2px solid var(--glow);outline-offset:2px}.lang-toggle-knob{position:absolute;top:var(--knob-inset);bottom:var(--knob-inset);left:var(--knob-inset);width:calc(50% - var(--knob-inset));border-radius:999px;background:radial-gradient(circle at 50% 35%,#fdffe8,#eaff8f 45%,#bfe34f);box-shadow:0 0 .8cqw #d4ff5abf,0 0 2cqw #d4ff5a59;transition:transform .35s cubic-bezier(.34,1.4,.64,1);animation:firefly-breathe 2.6s ease-in-out infinite}.lang-toggle.en .lang-toggle-knob{transform:translate(100%)}.lang-toggle-label{position:relative;font-family:var(--font-ui);font-weight:700;font-size:max(11px,1cqw);letter-spacing:.12em;color:var(--ink-soft);transition:color .3s}.lang-toggle-label.active{color:#11160a}.lang-toggle.in-panel{margin:1.6cqw auto 0}.radiance{display:flex;align-items:center;gap:.8cqw;margin:-.4cqw 0 1cqw;font-size:.85em;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dew);text-shadow:0 0 .8cqw var(--dew)}.radiance-track{width:10cqw;height:.4cqw;border-radius:999px;background:#bfe8ff26;overflow:hidden}.radiance-fill{height:100%;background:var(--dew);box-shadow:0 0 .8cqw var(--dew)}.bar.shining .bar-fill{background:linear-gradient(90deg,#e8ff7a,var(--dew),#ffffff,var(--dew));background-size:200% 100%;animation:shimmer 1s linear infinite}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .5s;background:radial-gradient(ellipse at center,transparent 55%,rgba(255,40,60,.35) 100%)}.vignette.danger{animation:danger-pulse 1.1s ease-in-out infinite}.vignette.radiance{opacity:1;background:radial-gradient(ellipse at center,transparent 60%,rgba(191,232,255,.16) 100%)}.toast-layer{display:flex;justify-content:center}.toast{position:absolute;top:5.2cqw;padding:.6cqw 1.6cqw;border-radius:999px;background:var(--panel);border:1px solid rgba(242,255,194,.3);font-size:max(12px,1.35cqw);font-weight:700;color:var(--ink);white-space:nowrap;animation:toast 4s ease forwards}.toast.danger{border-color:#b98bff8c;color:#e4d4ff;box-shadow:0 0 1.4cqw #8a4dff59}.toast.gift{border-color:#bfe8ff99;color:var(--dew);box-shadow:0 0 1.4cqw #bfe8ff59}.touch-flash{position:absolute;right:2.4cqw;bottom:2.4cqw;width:9cqw;height:9cqw;min-width:72px;min-height:72px;border-radius:50%;border:2px solid rgba(242,255,194,.4);background:#05070f8c;color:var(--ink-soft);font-family:var(--font-ui);font-weight:700;font-size:max(14px,1.5cqw);touch-action:none}.touch-flash.ready{color:#11160a;background:var(--glow);box-shadow:0 0 2cqw #d4ff5a99}.rotate-notice{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:radial-gradient(circle at 50% 40%,rgba(212,255,90,.08),transparent 60%),var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none}.rotate-notice svg{width:72px;height:72px;color:var(--glow);filter:drop-shadow(0 0 10px rgba(212,255,90,.5));animation:rotate-hint 2.4s ease-in-out infinite}.rotate-notice h2{margin:0;font-family:var(--font-title);font-size:24px;color:var(--glow)}.rotate-notice p{margin:0;font-size:16px;color:var(--ink-soft)}.pause{display:flex;align-items:center;justify-content:center;pointer-events:auto;background:#02030873;-webkit-backdrop-filter:blur(3px) saturate(.7);backdrop-filter:blur(3px) saturate(.7);animation:fade-in .2s ease both}.pause .panel{min-width:26cqw}.pause-hint{color:var(--ink-soft)}.actions.vertical{flex-direction:column;align-items:stretch}.button.with-icon{display:flex;align-items:center;justify-content:center;gap:.6cqw}.button.with-icon svg{width:1.4em;height:1.4em}.end{display:flex;align-items:center;justify-content:center;animation:fade-in .6s ease both}.panel{pointer-events:auto;min-width:36cqw;padding:2.6cqw 3.4cqw;border-radius:1.6cqw;background:var(--panel);border:1px solid rgba(212,255,90,.3);box-shadow:0 0 4cqw #0009;text-align:center;font-size:max(13px,1.6cqw)}.panel.dawn{border-color:#ffc98a80}.panel h2{margin:0 0 1cqw;font-family:var(--font-title);font-size:max(20px,3cqw);color:var(--glow);text-shadow:0 0 1.4cqw rgba(212,255,90,.5)}.panel.dawn h2{color:var(--dawn);text-shadow:0 0 1.4cqw rgba(255,201,138,.6)}.panel p{margin:0;line-height:1.6}.best.record{color:var(--pollen);font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8cqw 1.6cqw;margin:1.6cqw 0 0;font-size:max(11px,.8em)}.stats div{display:flex;flex-direction:column-reverse}.stats dt{color:var(--ink-soft)}.stats dd{margin:0;font-size:1.5em;font-weight:700;color:var(--glow);font-variant-numeric:tabular-nums}.final-score{margin:1.4cqw 0 .2cqw;font-size:max(30px,5cqw);font-weight:700;color:var(--glow);font-variant-numeric:tabular-nums}.actions{display:flex;justify-content:center;gap:1.2cqw;margin-top:2cqw}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.82}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes low-light{0%{background:var(--danger)}to{background:#ffd36b}}@keyframes intro{0%,60%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1.5cqw)}}@keyframes firefly-breathe{0%,to{box-shadow:0 0 .8cqw #d4ff5abf,0 0 2cqw #d4ff5a59}50%{box-shadow:0 0 .5cqw #d4ff5a80,0 0 1.2cqw #d4ff5a26}}@keyframes rotate-hint{0%,20%{transform:rotate(0)}50%,70%{transform:rotate(-90deg)}to{transform:rotate(0)}}@keyframes pop{0%{transform:scale(1.4)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:0 0}to{background-position:-200% 0}}@keyframes danger-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes toast{0%{opacity:0;transform:translateY(-.8cqw)}8%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.4cqw)}}@media (prefers-reduced-motion: reduce){.title,.flash-dot.ready,.bar.low .bar-fill,.bar.shining .bar-fill,.vignette.danger,.combo,.lang-toggle-knob,.rotate-notice svg{animation:none}.lang-toggle-knob{transition:none}.vignette.danger{opacity:.7}}
