.amb{z-index:-1;pointer-events:none;contain:layout paint style;--amb-edge:.04;--amb-accent:var(--accent,#c8ff2e);--amb-pulse:0;--amb-vignette:.1;--amb-danger:0;--amb-tint:var(--accent,#c8ff2e);--amb-tint-a:.03;--amb-sat:0;--amb-speed:1;--amb-n:0;--amb-mote:var(--accent,#c8ff2e);position:absolute;inset:0;overflow:hidden}.amb__tint{background:var(--amb-tint);opacity:var(--amb-tint-a);position:absolute;inset:0}.amb__edge{position:absolute;inset:0}.amb__edge:before{content:"";box-shadow:inset 0 0 22px 2px var(--amb-accent);opacity:min(.85, calc(var(--amb-edge) + var(--amb-pulse) * .45));position:absolute;inset:0}.amb__vignette{opacity:var(--amb-vignette);background:radial-gradient(#0000 58%,#0d0b1ae6 135%);position:absolute;inset:0}.amb__flash{background:radial-gradient(ellipse at 50% 55%, transparent 52%, var(--amb-accent) 140%);opacity:calc(var(--amb-pulse) * .5);position:absolute;inset:0}.amb__ring{border:3px solid var(--amb-ring,var(--amb-accent));opacity:0;will-change:transform, opacity;border-radius:50%;width:46vmin;height:46vmin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.15)}.amb__mote{bottom:-8px;left:var(--x);width:var(--s);height:var(--s);background:var(--amb-mote);opacity:clamp(0, calc((var(--amb-n) - var(--i)) * .6), .6);animation:amb-rise var(--dur) linear var(--delay) infinite;border-radius:50%;position:absolute}.amb[data-profile=calm] .amb__mote{animation-duration:calc(var(--dur) * 1.6)}.amb[data-profile=surge] .amb__mote{animation-duration:calc(var(--dur) * .75)}.amb[data-profile=climax] .amb__mote{animation-duration:calc(var(--dur) * .55)}@keyframes amb-rise{0%{transform:translate(0,0)scale(1)}to{transform:translate3d(var(--drift), -105vh, 0) scale(.2)}}@media (prefers-reduced-motion:reduce){.amb__mote,.amb__ring{animation:none;display:none}}.flowaura{z-index:3;pointer-events:none;opacity:0;--fa-col:var(--accent);--fa-op:.5;--fa-dur:2.8s;--fa-spread:24px;transition:opacity .45s ease-out;position:absolute;inset:0;overflow:hidden}.flowaura:not([data-level="0"]){opacity:1}.flowaura[data-level="2"]{--fa-col:color-mix(in srgb, var(--accent) 45%, var(--acid));--fa-op:.8;--fa-dur:1.6s;--fa-spread:36px}.flowaura[data-level="3"]{--fa-col:var(--acid);--fa-op:.85;--fa-dur:.9s;--fa-spread:38px}.flowaura__glow,.flowaura__ring,.flowaura__burst{position:absolute;inset:0}.flowaura__glow:before{content:"";box-shadow:inset 0 0 var(--fa-spread) calc(var(--fa-spread) * .3) var(--fa-col);opacity:var(--fa-op);animation:fa-pulse var(--fa-dur) ease-in-out infinite alternate;position:absolute;inset:0}@keyframes fa-pulse{0%{opacity:calc(var(--fa-op) * .5)}to{opacity:var(--fa-op)}}.flowaura__ring:before{content:"";-webkit-mask-composite:xor;opacity:.8;background:conic-gradient(#ff4d6d,#ffd23f,#7bff6b,#3fd7ff,#9b5cff,#ff4d6d);padding:3px;animation:3.2s linear infinite fa-hue;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}@keyframes fa-hue{to{filter:hue-rotate(360deg)}}.flowaura__burst:before{content:"";box-shadow:inset 0 0 calc(var(--fa-spread) * 1.6) calc(var(--fa-spread) * .5) var(--fa-col);animation:.52s ease-out both fa-burst;position:absolute;inset:0}@keyframes fa-burst{0%{opacity:.95;transform:scale(1.03)}to{opacity:0;transform:scale(1)}}.flowaura__ember{background:var(--fa-col);width:6px;height:6px;box-shadow:0 0 6px 1px var(--fa-col);opacity:0;animation:fa-ember var(--dur) ease-out var(--delay) infinite;border-radius:50%;position:absolute;bottom:-8px}@keyframes fa-ember{0%{opacity:0;transform:translate(0,0)scale(.6)}15%{opacity:.9}to{opacity:0;transform:translate3d(var(--drift), -62vh, 0) scale(1.1)}}.flowaura__spark{background:hsl(var(--hue) 95% 62%);width:4px;height:14px;box-shadow:0 0 8px 2px hsl(var(--hue) 95% 62% / .8);opacity:0;animation:fa-spark var(--dur) ease-in-out var(--delay) infinite;border-radius:3px;position:absolute}@keyframes fa-spark{0%{opacity:0;transform:translate(0,0)scaleY(.4)}30%{opacity:1}to{opacity:0;transform:translateY(-48px)scaleY(1.2)}}@media (prefers-reduced-motion:reduce){.flowaura{display:none}}.flowaura[data-reduced=true]{display:none}.gframe{isolation:isolate;height:100%;padding:max(14px, env(safe-area-inset-top)) 11px max(14px, env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:relative}.gframe__stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.gframe__scorerow{align-items:baseline;gap:8px;display:flex}.gframe__flowchip{border:2px solid var(--ink);background:var(--acid);color:var(--ink);font:800 11px / 1.2 var(--font-display);font-variant-numeric:tabular-nums;box-shadow:0 2px 0 var(--ink);border-radius:999px;align-self:center;padding:1px 7px 2px;animation:.26s cubic-bezier(.2,1.5,.4,1) both gframe-chip}@keyframes gframe-chip{0%{transform:scale(.6)}to{transform:none}}@media (prefers-reduced-motion:reduce){.gframe__flowchip{animation:none}}.gframe__overlay{z-index:50;background:#0d0b1ac7;place-items:center;display:grid;position:absolute;inset:0}.gframe__panel{background:var(--surface);min-width:240px;box-shadow:0 0 0 2.5px var(--accent), 0 8px 0 2.5px var(--ink);border-radius:24px;justify-items:center;gap:12px;padding:24px 28px;display:grid}.gframe__panel h2{font:800 22px var(--font-display);margin:0}.gframe__panel--over{border:3px solid var(--ink);width:min(340px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:0 0 0 3px var(--accent), 0 10px 0 3px var(--ink);padding:22px 20px 20px;animation:.36s cubic-bezier(.2,1.4,.4,1) both gframe-over;overflow-y:auto}.gframe__panel--over h2{letter-spacing:.01em;font-size:24px}.gframe__panel--over .gframe__score{text-shadow:0 4px 0 var(--ink);font-size:52px;line-height:1}.gframe__panel--over .gframe__notes{max-width:none}.gframe__primary{letter-spacing:.02em;width:100%;min-height:56px;margin-top:4px;font-size:20px!important}.gframe__secondary{width:100%;min-height:44px}.gframe__share{background:#fff6dc}@keyframes gframe-over{0%{opacity:0;transform:translateY(18px)scale(.92)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gframe__panel--over{animation:none}}.gframe__panel--over[data-still=true]{animation:none}.gframe__score{font:800 40px var(--font-display);letter-spacing:-.02em}.gframe__meta{color:var(--muted);font-size:13px}.gframe__panel--win{box-shadow:0 0 0 3px var(--acid), 0 8px 0 3px var(--ink), 0 0 36px color-mix(in srgb, var(--acid) 45%, transparent);animation:.9s cubic-bezier(.2,1.4,.4,1) both gframe-win}.gframe__panel--win h2{color:var(--acid);letter-spacing:.02em;font-size:28px}@keyframes gframe-win{0%{transform:scale(.6)rotate(-3deg)}to{transform:none}}@media (prefers-reduced-motion:reduce){.gframe__panel--win{animation:none}}.gframe__revive[disabled]{opacity:.7}.gframe__notes{background:var(--well);text-align:center;width:100%;max-width:280px;color:var(--text);border-radius:12px;gap:4px;margin:0;padding:8px 12px;font-size:13px;line-height:1.3;list-style:none;display:grid;box-shadow:0 0 0 2px #3a3470}.gframe__notes li:first-child{font-weight:700}.gframe__streak{color:#0d0b1a;font:600 13px / 1.2 var(--font-ui);background:#ffe23a;border:2.5px solid #0d0b1a;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:5px 12px 5px 8px;animation:.45s cubic-bezier(.34,1.56,.64,1) .25s both gframe-streak-pop;display:flex;box-shadow:0 3px #0d0b1a}.gframe__streak b{font:800 13px var(--font-display)}.gframe__streak-plus{color:var(--acid);font:800 11px var(--font-display);background:#0d0b1a;border-radius:999px;padding:1px 6px}.gframe__streak-badge{text-align:center;font:800 11px var(--font-display);letter-spacing:.02em;flex-basis:100%}@keyframes gframe-streak-pop{0%{opacity:0;transform:scale(.6)rotate(-6deg)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gframe__streak{animation:none}}.gframe__streak[data-still=true]{animation:none}.gframe__assist{border:2px dashed var(--muted);text-align:center;width:100%;max-width:280px;color:var(--muted);border-radius:14px;justify-items:center;gap:6px;padding:10px 12px;font-size:12.5px;line-height:1.35;display:grid}.gframe__assist strong{font:700 12.5px var(--font-display);color:var(--text)}.gframe__assist-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}@media (prefers-reduced-motion:no-preference){.gframe:has(.flowaura:not([data-level="0"])) .amb__edge:before{opacity:0}.gframe:has(.flowaura:not([data-level="0"])) .amb__flash{opacity:calc(var(--amb-pulse) * .2)}}
