:root{font-family:Inter,system-ui,sans-serif;color:#f7f7ff;background:#080812;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 35%,#17132b 0,#080812 55%,#05050b);overflow:hidden}button,input,select{font:inherit}.topbar{height:58px;padding:0 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #29263d;background:#0c0b16cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar strong{font-size:22px;letter-spacing:.14em}.topbar span{opacity:.55;font-size:12px}.topbar button{margin-left:auto}.screen{height:calc(100vh - 58px);padding:16px}.hidden{display:none}.hud{height:46px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;max-width:900px;margin:auto}.hud>div:nth-child(2){text-align:center;font-variant-numeric:tabular-nums}.hud>div:last-child{text-align:right;color:#ff7bbd}.hud small{opacity:.5;font-size:10px}.hud #combo{font-size:22px;font-weight:800}.hud #score{font-size:18px;letter-spacing:.12em}.hud #health{letter-spacing:4px}.hud #health.hit{animation:flash .2s}.arena{position:relative;height:min(68vh,680px);max-width:900px;margin:auto;border:1px solid #2c2942;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#121022aa,#080812);box-shadow:0 20px 80px #0008}.arena:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 24.8%,#ffffff09 25%,transparent 25.2%,transparent 49.8%,#ffffff09 50%,transparent 50.2%,transparent 74.8%,#ffffff09 75%,transparent 75.2%)}#player{position:absolute;left:50%;top:50%;width:52px;height:52px;display:grid;place-items:center;font-size:28px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 16px #8f7cff);transition:transform .12s cubic-bezier(.2,.8,.2,1)}#feedback{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font-weight:900;letter-spacing:.15em;pointer-events:none;opacity:0}.feedback-show{animation:feedback .55s ease-out}.controls{display:flex;justify-content:center;gap:10px;margin:12px auto}.controls button{width:62px;height:48px;border:1px solid #393551;border-radius:12px;background:#141225;color:#fff;font-size:22px;touch-action:none}.controls button:active{transform:scale(.94);background:#282248}.transport{display:flex;justify-content:center;align-items:center;gap:10px}.transport span{font-variant-numeric:tabular-nums;opacity:.65;margin-left:10px}.song-loader{display:flex;justify-content:center;align-items:center;gap:10px;margin:10px auto 0;max-width:900px;color:#8f8ba7;font-size:12px}.file-button{display:inline-block;border:1px solid #393551;background:#141225;color:#fff;border-radius:9px;padding:8px 12px;cursor:pointer}.file-button:hover{background:#1e1a34}button{border:1px solid #393551;background:#141225;color:#fff;border-radius:9px;padding:8px 12px;cursor:pointer}button:hover{background:#1e1a34}.editor-head{max-width:1100px;margin:auto;display:flex;justify-content:space-between;gap:12px;align-items:center}.editor-head b{display:block;letter-spacing:.12em}.editor-head span{font-size:12px;opacity:.55}.editor-tools{display:flex;gap:8px;align-items:center}.editor-tools input{width:72px;background:#111020;border:1px solid #393551;color:#fff;border-radius:7px;padding:7px}.editor-tools select{background:#111020;border:1px solid #393551;color:#fff;border-radius:7px;padding:7px}.editor-tools label{font-size:12px;opacity:.8}.editor-actions{max-width:1100px;margin:12px auto;display:flex;gap:8px;flex-wrap:wrap}.hint{max-width:1100px;margin:8px auto;color:#8f8ba7;font-size:12px}.timeline{position:relative;height:min(68vh,680px);max-width:1100px;margin:14px auto 0;border:1px solid #2c2942;border-radius:14px;overflow:auto;background:#0d0c18}.grid{position:absolute;left:0;top:0;bottom:0;min-width:100%;background:repeating-linear-gradient(90deg,#ffffff07 0 1px,transparent 1px 40px),repeating-linear-gradient(0deg,#ffffff07 0 1px,transparent 1px 40px)}.note{position:absolute;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#8f7cff;border:2px solid #fff;box-shadow:0 0 14px #8f7cff99;cursor:pointer;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;z-index:2}.note[data-type=swipe]{border-radius:8px}.note[data-type=hold]{width:38px;border-radius:14px}.note.selected{outline:3px solid #ff7bbd}.playhead{position:absolute;top:0;bottom:0;width:2px;background:#ff7bbd;box-shadow:0 0 12px #ff7bbd;pointer-events:none;z-index:3}@keyframes feedback{0%{opacity:0;transform:translate(-50%,-20%) scale(.8)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-90%) scale(1.1)}}@keyframes flash{50%{opacity:.2}}@media(max-width:650px){.topbar span{display:none}.hud{font-size:12px}.arena{height:60vh;border-radius:16px}.controls button{width:58px}.editor-head{display:block}.editor-tools{margin-top:10px;flex-wrap:wrap}.timeline{height:58vh}.song-loader{flex-direction:column;gap:6px}}.approach-line{position:absolute;background:#8f7cff2e;pointer-events:none}.approach-line.horizontal{left:0;right:0;top:50%;height:1px}.approach-line.vertical{top:0;bottom:0;left:50%;width:1px}#noteLayer{position:absolute;inset:0}.game-note{position:absolute;left:50%;top:50%;width:42px;height:42px;display:grid;place-items:center;border:2px solid #fff;border-radius:12px;background:#705cff;color:#fff;font-size:26px;font-weight:900;box-shadow:0 0 10px #8f7cff,0 0 28px #8f7cff88;transform:translate(-50%,-50%);will-change:transform,opacity;z-index:2}.game-note.tap{border-radius:50%;background:#ff4fa3}.game-note.hold{border-radius:18px;background:#29c7c9}#player{z-index:4}#feedback{z-index:5}.timeline{touch-action:none}.grid{background:repeating-linear-gradient(90deg,#ffffff0d 0 1px,transparent 1px 50px),linear-gradient(0deg,transparent 24.7%,#ffffff18 25%,transparent 25.3%,transparent 49.7%,#ffffff18 50%,transparent 50.3%,transparent 74.7%,#ffffff18 75%,transparent 75.3%)}.lane-labels{position:sticky;left:8px;top:0;height:100%;width:72px;z-index:1;pointer-events:none;display:grid;grid-template-rows:repeat(4,1fr);color:#fff6;font-size:10px;font-weight:800;letter-spacing:.08em}.lane-labels span{padding-top:10px}.note{width:34px;height:34px;cursor:grab;touch-action:none}.note:active{cursor:grabbing}.arena canvas{display:block;width:100%!important;height:100%!important}.arena #feedback{z-index:10}.page{height:calc(100vh - 58px);padding:24px;overflow:auto}.title-page{display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 45%,#322664 0,transparent 38%)}.title-page.hidden{display:none}.hero{width:min(620px,100%)}.hero h1{margin:0;font-size:clamp(64px,13vw,132px);line-height:.85;letter-spacing:.08em;text-shadow:0 0 50px #8f7cff88}.hero h1 small{display:block;margin-top:22px;font-size:.22em;color:#b7afff}.hero>p:not(.eyebrow){color:#b4b0c7;font-size:18px;margin:28px 0}.eyebrow{margin:0 0 10px;color:#9f91ff;font-size:11px;font-weight:900;letter-spacing:.28em}.main-menu{display:grid;gap:10px;width:min(340px,100%);margin:auto}.main-menu button{min-height:50px;text-transform:uppercase;letter-spacing:.12em}.primary{background:linear-gradient(135deg,#7964ff,#a54fff);border-color:#ae9fff;box-shadow:0 8px 30px #705cff44}.primary:hover{background:linear-gradient(135deg,#8976ff,#b75fff)}.topbar .brand{border:0;background:transparent;padding:0;font-size:22px;font-weight:800;letter-spacing:.14em}.topbar .nav-home{margin-left:auto}.page-head{width:min(1100px,100%);margin:0 auto 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.page-head h2{margin:0;font-size:32px}.page-head.compact{margin-bottom:8px}.now-playing{display:grid;text-align:center}.now-playing small{color:#8f8ba7;font-size:9px;letter-spacing:.18em}.song-browser{width:min(900px,100%);margin:auto;display:grid;gap:18px}.song-card,.local-song,.settings-panel,.credits-panel{border:1px solid #302c48;border-radius:18px;background:#100f1dcc;box-shadow:0 16px 50px #0005}.song-card{padding:18px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}.song-card p,.local-song p{margin:5px 0;color:#8f8ba7}.song-art{width:82px;aspect-ratio:1;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#8f7cff,#d24893);font-size:38px;font-weight:900}.local-song{padding:24px}.local-song #songStatus{display:inline-block;margin-left:12px;color:#8f8ba7;font-size:12px}.narrow-page{padding-top:48px}.settings-panel,.credits-panel{width:min(680px,100%);margin:auto;padding:26px}.settings-panel{display:grid;gap:26px}.settings-panel label:not(.toggle-row){display:grid;gap:12px}.settings-panel label span{display:flex;justify-content:space-between}.settings-panel small,.muted{color:#8f8ba7}.settings-panel input[type=range]{width:100%}.toggle-row{display:flex;justify-content:space-between}.credits-panel h3{font-size:28px;margin-top:0}.credits-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:12px}.credits-panel dt{color:#8f8ba7}.credits-panel dd{text-align:right}.reduced-motion *{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}.title-splash-active .topbar{display:none}.title-splash-active .page{height:100vh}.splash-page{position:relative;height:100vh;padding:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 48%,#342568 0,#121024 35%,#07070e 72%)}.splash-page.hidden{display:none}.splash-page:before,.splash-page:after{content:"";position:absolute;inset:-30%;pointer-events:none}.splash-page:before{background:conic-gradient(from 0deg,transparent,#8f7cff22,transparent 28%,#ff4f9a18,transparent 55%);animation:ambientSpin 16s linear infinite}.splash-page:after{inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff07 4px);mix-blend-mode:overlay}.splash-enter{position:relative;z-index:1;width:100%;height:100%;border:0;border-radius:0;background:transparent;box-shadow:none;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.splash-enter:hover,.splash-enter:focus-visible{background:transparent;transform:none;filter:none;outline:0}.splash-enter strong{font-size:clamp(70px,16vw,180px);line-height:.8;letter-spacing:.12em;text-indent:.12em;text-shadow:0 0 25px #8f7cffaa,0 0 90px #704cff77;animation:splashLogo 2.4s ease-in-out infinite}.splash-enter small{margin-top:22px;font-size:clamp(22px,4vw,42px);font-weight:900;letter-spacing:.45em;text-indent:.45em;color:#c4bcff}.splash-kicker{margin-bottom:22px;color:#a99dff;font-size:11px;font-weight:900;letter-spacing:.45em}.splash-prompt{position:absolute;bottom:11vh;font-size:12px;font-weight:800;letter-spacing:.22em;animation:splashPrompt 1.15s ease-in-out infinite}.splash-credit{position:absolute;bottom:4vh;color:#8f8ba7;font-size:11px;letter-spacing:.16em}.splash-rings,.splash-rings:before,.splash-rings:after{position:absolute;width:min(58vw,620px);aspect-ratio:1;border:1px solid #b9adff24;border-radius:50%;content:"";animation:splashRing 3s ease-out infinite}.splash-rings:before{inset:12%;width:auto}.splash-rings:after{inset:25%;width:auto;animation-delay:.5s}@keyframes splashLogo{50%{transform:scale(1.035);letter-spacing:.15em;text-indent:.15em;filter:brightness(1.25)}}@keyframes splashPrompt{50%{opacity:.3;transform:translateY(3px)}}@keyframes splashRing{0%{transform:scale(.82);opacity:.1}50%{opacity:.65}to{transform:scale(1.18);opacity:0}}@media(max-width:650px){.page{padding:14px}.hero h1{font-size:58px}.song-card{grid-template-columns:auto 1fr}.song-card>button{grid-column:1/-1}.song-art{width:62px}.page-head h2{font-size:24px}.local-song #songStatus{display:block;margin:12px 0 0}.editorPage{padding:8px}}.topbar .brand{margin-left:0}.note.auto{opacity:.5}.game-loading{position:absolute;inset:58px 0 0;z-index:100;display:grid;place-items:center;text-align:center;background:#080812ef;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.game-loading.hidden{display:none}.loading-content{display:grid;place-items:center;gap:14px}.loading-spinner{width:54px;height:54px;border:4px solid #ffffff22;border-top-color:#9f91ff;border-radius:50%;animation:spin .8s linear infinite}.game-loading.countdown .loading-spinner{display:none}.game-loading strong{font-size:clamp(64px,15vw,140px);line-height:1;color:#fff;text-shadow:0 0 45px #8f7cff}.game-loading p{margin:0;color:#a9a4be;letter-spacing:.14em}@keyframes spin{to{transform:rotate(360deg)}}.gameplay-legend{position:absolute;left:14px;bottom:12px;z-index:12;display:flex;gap:14px;color:#aaa5bc;font-size:9px;font-weight:800;letter-spacing:.09em;pointer-events:none}.gameplay-legend span{display:flex;align-items:center;gap:5px}.gameplay-legend i{width:9px;height:9px;border-radius:2px;background:#8f7cff;box-shadow:0 0 8px #8f7cff}.gameplay-legend .auto-note-key{background:#656078;box-shadow:none;opacity:.5}.song-art{position:relative;overflow:hidden}.song-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.health-wrap{display:flex;align-items:center;justify-content:flex-end;gap:8px}.health-track{width:min(220px,24vw);height:13px;padding:2px;border:1px solid #ffffff44;border-radius:999px;background:#221525;overflow:hidden}.health-fill{width:100%;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff4f7d,#ffd45c,#55e38e);transform-origin:left;transition:width .18s ease,filter .18s}.health-fill.danger{background:#ff456d;filter:drop-shadow(0 0 7px #ff456d)}.pause-menu{position:absolute;inset:58px 0 0;z-index:110;display:grid;place-items:center;background:#070711e8;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.pause-menu.hidden{display:none}.pause-card{width:min(760px,90vw);min-height:420px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid #443b69;border-radius:24px;background:#100e1d;box-shadow:0 30px 100px #000}.pause-art{min-height:320px;background:linear-gradient(145deg,#302567,#151125)}.pause-art img{width:100%;height:100%;object-fit:cover}.pause-content{padding:38px;display:flex;flex-direction:column;justify-content:center;gap:12px}.pause-content h2{margin:0 0 16px;font-size:42px}.results-page{display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#322664 0,transparent 46%)}.results-page.hidden{display:none}.results-card{width:min(680px,100%);padding:38px;text-align:center;border:1px solid #493e70;border-radius:26px;background:#100e1ded;box-shadow:0 30px 100px #0008}.results-card h2{margin:0;font-size:36px}.result-grade{font-size:110px;line-height:1;margin:22px;color:#ffd45c;font-weight:1000;text-shadow:0 0 40px #ffd45c77}.result-score{display:grid}.result-score small,.result-stats small{color:#918ba8;font-size:10px;letter-spacing:.14em}.result-score strong{font-size:34px;letter-spacing:.1em}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0}.result-stats div{display:grid;gap:5px;padding:14px;border-radius:12px;background:#ffffff08}.result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}@media(max-width:650px){.pause-card{grid-template-columns:1fr}.pause-art{min-height:180px;max-height:35vh}.pause-content{padding:24px}.result-stats{grid-template-columns:1fr}.health-track{width:120px}}.pause-extra-toggle{display:flex;justify-content:space-between;align-items:center}.pause-extra-toggle[aria-expanded=true] span{transform:rotate(180deg)}.pause-extra-toggle span{transition:transform .18s}.pause-extra-panel{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border:1px solid #ffffff14;border-radius:12px;background:#080713}.pause-extra-panel.hidden{display:none}.pause-extra-panel button{font-size:12px;text-align:left}.pause-extra-panel button.active{color:#75f2a7;border-color:#55e38e88;background:#10271c}.song-actions{display:grid;gap:8px;min-width:130px}.difficulty-select{width:100%;padding:8px 10px;border:1px solid #393551;border-radius:9px;background:#141225;color:#fff}.song-actions button{width:100%}@media(max-width:650px){.song-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}}.song-card.hidden{display:none}.fnf-lane-head{margin-bottom:-34px}.section-nav{width:min(900px,100%);margin:10px auto;display:flex;align-items:center;justify-content:center;gap:12px}.section-nav strong{min-width:110px;text-align:center;color:#b9adff}.section-nav small{margin-left:auto;color:#8f8ba7}.fnf-timeline{width:min(900px,100%);height:min(62vh,680px);overflow-y:auto;overflow-x:hidden;border-radius:8px;background:#090911;touch-action:none}.fnf-grid{position:relative;width:100%;min-width:0;background:repeating-linear-gradient(to bottom,#ffffff16 0 1px,transparent 1px var(--editor-row,30px)),repeating-linear-gradient(to right,#ffffff20 0 1px,transparent 1px 12.5%),linear-gradient(to right,#50152a55 0 50%,#182b5a55 50% 100%)}.fnf-grid:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:#fff8;pointer-events:none}.fnf-lane-head{position:sticky;top:0;z-index:20;height:34px;display:grid;grid-template-columns:repeat(8,1fr);background:#0b0a15ee;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.fnf-lane-head span{display:grid;place-items:center;border-right:1px solid #ffffff1c;color:#aaa5bc;font-size:9px;font-weight:900}.fnf-lane-head span:nth-child(n+5){color:#c9c3ff}.fnf-timeline .note{width:min(38px,10%);height:30px;border-radius:5px;transform:translate(-50%,-50%);z-index:6}.fnf-timeline .note.opponent{background:#782441;opacity:.72}.fnf-timeline .note.player{background:#5142b8}.fnf-timeline .note[data-type=swipe]{border-radius:14px}.fnf-timeline .note[data-type=hold]{border-radius:5px}.hold-tail{position:absolute;left:50%;top:50%;width:8px;transform:translate(-50%);background:currentColor;border:1px solid #fff8;z-index:-1}.section-line{position:absolute;left:0;right:0;height:2px;background:#ffdc60aa;z-index:3;pointer-events:none}.section-line span{position:absolute;right:6px;top:3px;color:#ffdc60aa;font-size:8px;font-weight:900}.fnf-timeline .playhead{left:0;right:0;top:0;width:auto;height:3px;background:#ff4f9a;box-shadow:0 0 12px #ff4f9a;z-index:12}@media(max-width:760px){.section-nav{flex-wrap:wrap}.section-nav small{width:100%;margin:0;text-align:center}.fnf-lane-head span{font-size:7px}.fnf-timeline .note{width:10%}.editor-tools{max-height:130px;overflow:auto}}.input-locked .arena,.input-locked .transport{pointer-events:none}.input-locked .transport{opacity:.38;filter:grayscale(1)}.on-beat{animation:uiBeat var(--beat-pulse-duration,.15s) ease-out}@keyframes uiBeat{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.075);filter:brightness(1.35)}to{transform:scale(1);filter:brightness(1)}}.keybind-settings{display:grid;gap:12px;padding-top:20px;border-top:1px solid #ffffff14}.setting-title{display:flex;justify-content:space-between;align-items:end}.setting-title small{color:#8f8ba7}.keybind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.keybind-grid button{display:grid;gap:7px;text-align:left}.keybind-grid span{font-size:9px;color:#8f8ba7;letter-spacing:.12em}.keybind-grid kbd{font:700 12px system-ui;color:#fff}.ui-focus,.file-button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b9adff;outline-offset:3px;box-shadow:0 0 20px #8f7cff66}@media(max-width:650px){.keybind-grid{grid-template-columns:repeat(2,1fr)}}.appearance-settings{display:grid;gap:14px;padding-top:20px;border-top:1px solid #ffffff14}.shape-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.shape-picker button{font-size:24px;min-height:48px}.shape-picker button.selected{border-color:#b9adff;background:#302754;box-shadow:0 0 18px #8f7cff55}.color-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-settings label{display:flex!important;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#ffffff08}.color-settings input[type=color]{width:44px;height:32px;padding:2px;border-radius:7px;cursor:pointer}.custom-player-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.custom-player-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8f8ba7;font-size:12px}.botplay-indicator{position:absolute;right:14px;bottom:12px;z-index:12;padding:6px 9px;border:1px solid #ffd45c88;border-radius:7px;background:#18140dcc;color:#ffd45c;font-size:10px;font-weight:900;letter-spacing:.14em;box-shadow:0 0 16px #ffd45c33}.botplay-indicator.hidden{display:none}.practice-indicator{position:absolute;right:14px;top:12px;z-index:12;padding:7px 10px;border:1px solid #55e38e99;border-radius:7px;background:#0d2118dd;color:#75f2a7;font-size:10px;font-weight:900;letter-spacing:.11em;box-shadow:0 0 18px #55e38e33;animation:practicePulse 1.4s ease-in-out infinite}.practice-indicator.hidden{display:none}@keyframes practicePulse{50%{filter:brightness(1.35);transform:scale(1.025)}}.judgment-counters{max-width:900px;margin:4px auto 8px;display:flex;justify-content:center;gap:18px;color:#7f7a94;font-size:9px;font-weight:800;letter-spacing:.08em}.judgment-counters span{display:flex;align-items:center;gap:4px}.judgment-counters b{color:#fff;font-size:12px}.render-status{margin-left:auto;color:#ff526f;animation:recordBlink 1s steps(2,end) infinite}.render-status.hidden{display:none}@keyframes recordBlink{50%{opacity:.4}}@media(max-width:650px){.judgment-counters{gap:8px;flex-wrap:wrap}.render-status{width:100%;justify-content:center;margin:0}}.rendering-chart button,.rendering-chart input,.rendering-chart select,.rendering-chart .file-button{pointer-events:none}body:before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:conic-gradient(from 90deg at 50% 50%,transparent,#6f54ff12,transparent,#d2489310,transparent);animation:ambientSpin 24s linear infinite}.topbar{position:relative;z-index:200;animation:topbarDrop .5s cubic-bezier(.2,.8,.2,1) both}.topbar .brand{animation:brandBreath 2.8s ease-in-out infinite}.page.page-enter{animation:pageReveal .38s cubic-bezier(.16,.84,.32,1) both}.page.page-enter .page-head,.page.page-enter .hero>*,.page.page-enter .song-card,.page.page-enter .local-song,.page.page-enter .settings-panel>*,.page.page-enter .credits-panel>*,.page.page-enter .editor-head,.page.page-enter .section-nav,.page.page-enter .fnf-timeline,.page.page-enter .editor-actions>*,.page.page-enter .results-card>*{animation:itemRise .48s cubic-bezier(.16,.84,.32,1) both;animation-delay:calc(var(--stagger,0)*45ms)}.hero h1{animation:titleHover 3.4s ease-in-out infinite}.hero h1 small{animation:subtitlePulse 1.8s ease-in-out infinite}.eyebrow{animation:trackingPulse 2.4s ease-in-out infinite}.main-menu button{transform-origin:center;transition:transform .16s cubic-bezier(.2,.8,.2,1),border-color .16s,box-shadow .16s,filter .16s}.main-menu button:hover,.main-menu button:focus-visible{transform:translate(9px) scale(1.025);border-color:#bcaeff;box-shadow:-8px 0 #8f7cff55,0 12px 32px #0008}.main-menu button:nth-child(2n):hover{transform:translate(-9px) scale(1.025)}button,.file-button,.song-card{position:relative;transition:transform .15s cubic-bezier(.2,.8,.2,1),filter .15s,border-color .15s,box-shadow .15s}button:not(:disabled):hover,.file-button:hover{transform:translateY(-2px);filter:brightness(1.15)}button:not(:disabled):active,.file-button:active{transform:translateY(1px) scale(.96)}.ui-press{animation:controlPress .25s ease-out}.song-card{overflow:hidden;transform-origin:center}.song-card:before{content:"";position:absolute;inset:-100% 45%;z-index:0;pointer-events:none;background:linear-gradient(90deg,transparent,#ffffff1f,transparent);transform:rotate(24deg) translate(-220%);transition:transform .65s ease}.song-card>*{position:relative;z-index:1}.song-card:hover,.song-card:focus-within{transform:translateY(-5px) scale(1.012);border-color:#8f7cffaa;box-shadow:0 22px 65px #0008,0 0 30px #705cff22}.song-card:hover:before{transform:rotate(24deg) translate(220%)}.song-card:hover .song-art{transform:rotate(-4deg) scale(1.08)}.song-art{transition:transform .3s cubic-bezier(.2,.8,.2,1);animation:artGlow 3s ease-in-out infinite}.ui-spawn{animation:itemSpawn .55s cubic-bezier(.15,.9,.25,1.2) both}.settings-panel,.credits-panel,.results-card,.pause-card{transform-origin:center}.pause-menu:not(.hidden) .pause-card{animation:pausePop .34s cubic-bezier(.15,.9,.2,1.15) both}.pause-menu:not(.hidden) .pause-art{animation:pauseArtSlide .5s cubic-bezier(.15,.9,.2,1) both}.results-page:not(.hidden) .result-grade{animation:gradeSlam .65s cubic-bezier(.1,.9,.2,1.3) both}.health-fill{background-size:200% 100%;animation:healthFlow 2.3s linear infinite}.fnf-timeline{transition:box-shadow .25s,border-color .25s}.fnf-timeline:hover,.fnf-timeline:focus-within{border-color:#8f7cff88;box-shadow:0 18px 60px #0009,0 0 32px #705cff20}.fnf-timeline .note{transition:filter .12s,box-shadow .12s}.fnf-timeline .note:hover{filter:brightness(1.45);box-shadow:0 0 22px currentColor;z-index:15}.section-nav strong{animation:sectionPulse 2s ease-in-out infinite}.loading-content{animation:loadingFloat 1.2s ease-in-out infinite}.loading-countdown strong{animation:countSlam .5s cubic-bezier(.1,.9,.2,1.4)}@keyframes ambientSpin{to{transform:rotate(360deg)}}@keyframes topbarDrop{0%{transform:translateY(-100%);opacity:0}}@keyframes pageReveal{0%{opacity:0;filter:blur(5px);transform:scale(.985)}to{opacity:1;filter:none;transform:none}}@keyframes itemRise{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}@keyframes itemSpawn{0%{opacity:0;transform:translate(-35px) scale(.94)}to{opacity:1;transform:none}}@keyframes controlPress{0%{transform:scale(1)}45%{transform:scale(.92)}to{transform:scale(1)}}@keyframes titleHover{50%{transform:translateY(-7px);text-shadow:0 0 70px #8f7cffbb}}@keyframes subtitlePulse{50%{letter-spacing:.3em;filter:brightness(1.4)}}@keyframes trackingPulse{50%{letter-spacing:.34em;color:#c4bbff}}@keyframes brandBreath{50%{filter:drop-shadow(0 0 10px #8f7cff);transform:scale(1.035)}}@keyframes artGlow{50%{box-shadow:0 0 30px #8f7cff55;filter:saturate(1.2)}}@keyframes pausePop{0%{opacity:0;transform:scale(.78) rotate(-1.5deg)}to{opacity:1;transform:none}}@keyframes pauseArtSlide{0%{transform:translate(-35%);filter:blur(8px)}to{transform:none;filter:none}}@keyframes gradeSlam{0%{opacity:0;transform:scale(2.2) rotate(-8deg);filter:blur(8px)}65%{opacity:1;transform:scale(.88) rotate(2deg);filter:none}to{transform:none}}@keyframes healthFlow{to{background-position:-200% 0}}@keyframes sectionPulse{50%{color:#fff;text-shadow:0 0 15px #8f7cff}}@keyframes loadingFloat{50%{transform:translateY(-8px)}}@keyframes countSlam{0%{transform:scale(2);opacity:0}to{transform:none;opacity:1}}.reduced-motion:before{animation:none}.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}.reduced-motion .hero h1,.reduced-motion .hero h1 small,.reduced-motion .eyebrow,.reduced-motion .topbar .brand,.reduced-motion .song-art,.reduced-motion .health-fill,.reduced-motion .section-nav strong{animation:none!important}body.title-splash-active{background:#07070e}.splash-page{isolation:isolate;background:radial-gradient(ellipse at 50% 48%,#49358a 0,#21183f 22%,#0e0c1c 52%,#06060c)}.splash-page:before{inset:-10%;z-index:-2;background:radial-gradient(circle at 28% 30%,#795cff24 0,transparent 27%),radial-gradient(circle at 72% 68%,#ff4f9a1c 0,transparent 25%),conic-gradient(from 45deg at 50% 50%,transparent 0 18%,#8f7cff16 24%,transparent 31% 62%,#d2489312 70%,transparent 78%);animation:splashBackdrop 18s linear infinite}.splash-page:after{z-index:-1;background:linear-gradient(90deg,#0005,transparent 25% 75%,#0005),repeating-linear-gradient(0deg,transparent 0 3px,#ffffff06 4px)}body.title-splash-active #enterGame,body.title-splash-active #enterGame:hover,body.title-splash-active #enterGame:active,body.title-splash-active #enterGame:focus-visible{inset:0;margin:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:0;transform:none!important;filter:none!important;animation:none!important}.splash-rings{z-index:-1;pointer-events:none}@keyframes splashBackdrop{0%{transform:rotate(0) scale(1.5)}to{transform:rotate(360deg) scale(1.5)}}#gamePage{padding:10px 14px}#gamePage .page-head,#gamePage .hud,#gamePage .judgment-counters{max-width:1180px}.arena{width:min(1180px,100%);max-width:none;height:min(76vh,780px,calc(100dvh - 205px));min-height:360px}.transport{margin-top:8px}@media(max-width:650px){#gamePage{padding:8px}.arena{height:min(68vh,650px,calc(100dvh - 205px));min-height:300px;border-radius:14px}}.gameplay-head{justify-content:flex-end}.gameplay-head .now-playing{margin-right:auto;text-align:left}.gameplay-head #start{min-width:96px}.topbar .brand{margin-left:0;margin-right:0}.topbar .version-label{margin-left:auto;padding:4px 8px;border:1px solid #8f7cff55;border-radius:999px;color:#b9adff;font-size:9px;font-weight:800;letter-spacing:.08em;opacity:1}.github-link{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid #45405f;border-radius:9px;background:#171526;color:#fff;font-size:12px;font-weight:800;text-decoration:none;transition:transform .15s,filter .15s,border-color .15s}.github-link:hover,.github-link:focus-visible{transform:translateY(-2px);filter:brightness(1.2);border-color:#9f91ff;outline:none}.splash-version{position:absolute;bottom:7vh;color:#aaa3c5;font-size:10px;font-weight:800;letter-spacing:.13em}.splash-credit{bottom:3.5vh}@media(max-width:650px){.topbar .version-label{display:none}.github-link{margin-left:auto}}.language-toggle{display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:999px;font-size:9px;font-weight:900;color:#fff}.language-toggle i{position:relative;width:25px;height:14px;border-radius:999px;background:#343047}.language-toggle i:after{content:"";position:absolute;left:2px;top:2px;width:10px;height:10px;border-radius:50%;background:#9f91ff;transition:transform .2s}.language-toggle.is-id i:after{transform:translate(11px)}.language-toggle span:last-child,.language-toggle.is-id span:first-child{opacity:.4}.language-toggle.is-id span:last-child{opacity:1}@media(max-width:650px){.language-toggle{margin-left:auto}.github-link{font-size:0;padding:8px}.github-link:before{content:"GH";font-size:10px}}.ui-spawn{animation-fill-mode:backwards}
