:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--game-ui-shell-width:30rem;--game-ui-space-1:.25rem;--game-ui-space-2:.5rem;--game-ui-space-3:.75rem;--game-ui-space-4:1rem;--game-ui-space-6:1.5rem;--game-ui-space-8:2rem;--game-ui-radius-sm:.5rem;--game-ui-radius-md:1rem;--game-ui-focus-color:currentColor;--game-ui-toast-bg:CanvasText;--game-ui-toast-text:Canvas}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-width:20rem;min-height:100%}body{min-height:100dvh;margin:0;overflow-x:hidden}button,a,input,select,textarea,.tap-target{min-width:2.75rem;min-height:2.75rem}button,a{touch-action:manipulation}:focus-visible{outline:.1875rem solid var(--game-ui-focus-color);outline-offset:.1875rem}.game-shell{width:min(100%, var(--game-ui-shell-width));min-height:100dvh;padding:max(var(--game-ui-space-4), env(safe-area-inset-top)) max(var(--game-ui-space-4), env(safe-area-inset-right)) max(var(--game-ui-space-4), env(safe-area-inset-bottom)) max(var(--game-ui-space-4), env(safe-area-inset-left));margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-toast{z-index:100;right:max(var(--game-ui-space-4), env(safe-area-inset-right));bottom:max(var(--game-ui-space-4), env(safe-area-inset-bottom));left:max(var(--game-ui-space-4), env(safe-area-inset-left));width:fit-content;max-width:min(28rem,100% - 2rem);padding:var(--game-ui-space-3) var(--game-ui-space-4);color:var(--game-ui-toast-text);background:var(--game-ui-toast-bg);border-radius:var(--game-ui-radius-sm);margin-inline:auto;position:fixed;box-shadow:0 .5rem 1.5rem #0003}@media (width>=48rem){body{place-items:center;display:grid}.game-shell{min-height:min(50rem,100dvh - 2rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{color:var(--rhythm-text,#f8f5ff);background:var(--rhythm-bg,#111015);font-synthesis:none;--game-ui-shell-width:32rem;--game-ui-focus-color:var(--rhythm-accent,#d8ff3e);--game-ui-toast-bg:var(--rhythm-text,#f8f5ff);--game-ui-toast-text:var(--rhythm-bg,#111015);font-family:Inter,Arial Narrow,Helvetica Neue,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}body{background:radial-gradient(circle at 80% 0%, color-mix(in srgb, var(--rhythm-secondary) 22%, transparent), transparent 42%), radial-gradient(circle at 0% 100%, color-mix(in srgb, var(--rhythm-accent) 12%, transparent), transparent 48%), var(--rhythm-bg)}button,a{color:inherit;font:inherit;letter-spacing:.06em;font-weight:850}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}.rhythm-shell{background:linear-gradient(145deg, #ffffff0a, transparent 38%), var(--rhythm-bg);border-inline:1px solid #ffffff17;position:relative;overflow:hidden}.rhythm-shell:before{z-index:0;pointer-events:none;content:"";background-image:repeating-linear-gradient(90deg,#0000 0 31px,#ffffff05 32px);position:absolute;inset:0}.screen{z-index:1;min-height:calc(100dvh - max(1rem, env(safe-area-inset-top)) - max(1rem, env(safe-area-inset-bottom)));display:grid;position:relative}.campaign-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.campaign-header p{margin:0}.artist-name{color:var(--rhythm-accent);letter-spacing:.15em;font-size:.78rem;font-weight:900}.release-name{color:color-mix(in srgb, var(--rhythm-text) 64%, transparent);letter-spacing:.09em;font-size:.72rem;margin-top:.2rem!important}.icon-button{min-height:2.2rem;color:var(--rhythm-text);background:0 0;border:1px solid #ffffff3d;border-radius:999px;padding:.45rem .65rem;font-size:.64rem}.ready-screen{grid-template-rows:auto 1fr auto;gap:clamp(1rem,3vh,2rem)}.hero-lockup{align-content:center;display:grid}.eyebrow{color:var(--rhythm-accent);letter-spacing:.18em;margin:0 0 .75rem;font-size:.72rem;font-weight:900}.hero-lockup h1{letter-spacing:-.09em;text-transform:uppercase;text-wrap:balance;max-width:8ch;margin:0;font-size:clamp(4rem,20vw,7.2rem);font-weight:950;line-height:.78;transform:skewY(-3deg)}.hero-copy{max-width:26rem;color:color-mix(in srgb, var(--rhythm-text) 72%, transparent);margin:1.25rem 0 0;font-size:.95rem;line-height:1.65}.ready-card{background:color-mix(in srgb, var(--rhythm-surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff1f;border-radius:1rem;justify-items:stretch;gap:.65rem;padding:1rem;display:grid}.ready-card p{color:color-mix(in srgb, var(--rhythm-text) 67%, transparent);margin:0;font-size:.78rem;line-height:1.45}.ready-card p strong{color:var(--rhythm-text);font-size:.95rem}.wave-mark{align-items:center;gap:.23rem;height:1.6rem;display:flex}.wave-mark i{background:var(--rhythm-secondary);border-radius:999px;width:.22rem;height:35%;animation:.85s ease-in-out infinite alternate wave}.wave-mark i:nth-child(2n){height:100%;animation-delay:-.3s}.wave-mark i:nth-child(3n){height:60%;animation-delay:-.55s}.primary-button,.secondary-button,.stream-link{border-radius:.55rem;place-items:center;width:100%;min-height:3.75rem;padding:.8rem 1rem;text-decoration:none;display:grid}.primary-button{color:var(--rhythm-bg);background:var(--rhythm-accent);box-shadow:0 .4rem 0 color-mix(in srgb, var(--rhythm-accent) 38%, #000)}.primary-button:active{box-shadow:0 .12rem 0 color-mix(in srgb, var(--rhythm-accent) 38%, #000);transform:translateY(.28rem)}.secondary-button{color:var(--rhythm-text);background:0 0;border:1px solid #ffffff47}.keyboard-note{text-align:center;letter-spacing:.15em}.play-screen{grid-template-rows:auto auto minmax(18rem,1fr) auto auto;gap:.75rem}.hud{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.hud p{gap:.1rem;margin:0;display:grid}.hud p:nth-child(2){text-align:center}.hud p:last-child{text-align:right}.hud span{color:color-mix(in srgb, var(--rhythm-text) 55%, transparent);letter-spacing:.12em;font-size:.6rem}.hud strong{font-size:1.15rem}.note-highway{cursor:pointer;background:linear-gradient(90deg, transparent, #ffffff0d, transparent), color-mix(in srgb, var(--rhythm-surface) 74%, transparent);outline-offset:-.35rem;perspective:24rem;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:1px solid #ffffff1a;border-radius:1rem;min-height:18rem;position:relative;overflow:hidden}.lane-lines{border-inline:1px solid #ffffff17;position:absolute;inset:0 13%;transform:perspective(18rem)rotateX(8deg)}.lane-lines:before,.lane-lines:after{content:"";background:#ffffff0f;width:1px;position:absolute;top:0;bottom:0}.lane-lines:before{left:33.333%}.lane-lines:after{right:33.333%}.rhythm-note{--note-y:-20;z-index:3;top:calc(var(--note-y) * 1%);background:var(--rhythm-accent);border:2px solid color-mix(in srgb, var(--rhythm-accent) 70%, #fff);width:min(11rem,44%);height:1.1rem;box-shadow:0 0 1.2rem color-mix(in srgb, var(--rhythm-accent) 45%, transparent), inset 0 0 .3rem #ffffffa6;border-radius:999px;position:absolute;left:50%;transform:translate(-50%,-50%)}.hit-line{z-index:2;background:var(--rhythm-secondary);height:.28rem;box-shadow:0 0 1.1rem var(--rhythm-secondary);border-radius:999px;position:absolute;bottom:18%;left:8%;right:8%}.hit-line:after{content:"";border:1px solid color-mix(in srgb, var(--rhythm-secondary) 45%, transparent);border-radius:50%;width:4rem;height:4rem;animation:.7s ease-out infinite target-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.judgement,.count-in,.pause-overlay{z-index:5;text-align:center;letter-spacing:.04em;pointer-events:none;margin:0;font-weight:950;position:absolute;inset:47% 0 auto}.judgement{color:var(--rhythm-accent);text-shadow:0 0 1rem var(--rhythm-bg);font-size:1.6rem}.judgement[data-rank=great]{color:#73d7ff}.judgement[data-rank=good],.judgement[data-rank=miss]{color:var(--rhythm-secondary)}.count-in{opacity:.28;font-size:clamp(3.8rem,18vw,6rem);inset:30% 0 auto}.pause-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#111015d1;place-items:center;font-size:2rem;display:grid;inset:0}.progress-track{background:#ffffff1c;border-radius:999px;height:.25rem;overflow:hidden}.progress-track span{background:var(--rhythm-secondary);width:0;height:100%;display:block}.tap-button{min-height:3.7rem;color:var(--rhythm-text);background:var(--rhythm-surface);border:1px solid var(--rhythm-accent);box-shadow:inset 0 0 1.2rem color-mix(in srgb, var(--rhythm-accent) 7%, transparent);border-radius:.55rem}.result-screen{grid-template-rows:auto 1fr auto;gap:1rem}.result-card{text-align:center;background:radial-gradient(circle at 50% 15%, color-mix(in srgb, var(--rhythm-secondary) 24%, transparent), transparent 38%), var(--rhythm-surface);border:1px solid #ffffff21;border-radius:1.2rem;place-content:center;align-self:center;width:100%;padding:1.5rem;display:grid}.grade{width:5rem;height:5rem;color:var(--rhythm-bg);background:var(--rhythm-accent);box-shadow:0 0 2rem color-mix(in srgb, var(--rhythm-accent) 35%, transparent);border-radius:50%;place-items:center;margin:0 auto .5rem;font-size:3rem;font-weight:950;display:grid;transform:rotate(-6deg)}.result-card h1{letter-spacing:-.08em;margin:0;font-size:clamp(4.5rem,23vw,7rem);line-height:.9}.result-title{color:var(--rhythm-accent);letter-spacing:.15em;margin:.65rem 0 1.25rem;font-size:.86rem;font-weight:900}.result-stats{grid-template-columns:repeat(3,1fr);gap:.55rem;margin:0;display:grid}.result-stats div{background:#ffffff0a;border-radius:.5rem;gap:.2rem;padding:.65rem .3rem;display:grid}.result-stats dt{color:color-mix(in srgb, var(--rhythm-text) 55%, transparent);letter-spacing:.12em;font-size:.54rem}.result-stats dd{margin:0;font-size:.92rem;font-weight:900}.result-actions{gap:.65rem;display:grid}.stream-link{min-height:2.8rem;color:var(--rhythm-accent)}@keyframes wave{to{opacity:.45;height:25%}}@keyframes target-pulse{0%{opacity:.75;transform:translate(-50%,-50%)scale(.45)}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)}}@media (width>=48rem){.screen{min-height:min(48rem,100dvh - 4rem)}}@media (prefers-reduced-motion:reduce){.wave-mark i,.hit-line:after{animation:none}.primary-button:active{transform:none}}
