:root{color-scheme:dark;--bg:#0b0716;--surface:#171020;--text:#f5f1fc;--muted:#ada0bc;--purple:#b486ff;--lime:#c4eb9a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:280px;background:radial-gradient(ellipse at 80% 22%,#51207328,transparent 45%),var(--bg);color:var(--text)}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--lime);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:12px;left:12px;z-index:10;background:var(--purple);color:#160b25;border-radius:8px;padding:12px;transform:translateY(-180%)}.skip:focus{transform:none}.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.25;background-image:radial-gradient(circle at 17px 39px,#ad8bd4 1px,transparent 1.6px),radial-gradient(circle at 160px 120px,#9276b6 .7px,transparent 1.3px);background-size:280px 220px,370px 310px}.page{width:min(1220px,calc(100% - 96px));margin:0 auto}.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #bd96e31f}.brand{display:flex;align-items:center;gap:10px;font-size:22px;letter-spacing:2px;font-weight:850}.brand svg{height:30px;width:30px;color:var(--purple)}.brand-dot{color:var(--purple)}.back-link{display:flex;align-items:center;gap:10px;font-size:12px;color:#cab6e0}.back-link svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5}.back-link:hover{color:white}.intro{position:relative;padding:52px 0 38px}.eyebrow{display:flex;align-items:center;gap:9px;color:#b590d5;letter-spacing:1.8px;font-size:9px;font-weight:650;margin:0}.eyebrow>span{height:1px;width:18px;background:var(--purple)}h1{font-size:clamp(38px,5vw,64px);line-height:1.07;letter-spacing:-2.4px;font-weight:760;margin:20px 0 17px;position:relative;z-index:1}h1 em{font-style:normal;color:#c8a3ff}.intro-copy{color:var(--muted);font-size:13px;line-height:1.8;margin:0}.arrows{position:absolute;right:0;bottom:52px;display:flex;gap:10px;transform:rotate(-7deg);user-select:none;pointer-events:none}.arrows span{width:55px;height:55px;display:grid;place-items:center;border:1px solid #be97f54a;border-radius:11px;background:linear-gradient(145deg,#4f296047,#231733);box-shadow:0 5px 0 #08050c;color:#caa3f3;font-size:38px;font-weight:800}.arrows span:nth-child(2){transform:translateY(12px);color:#8fcaf3;border-color:#8fcaf333}.arrows span:nth-child(3){transform:translateY(-8px);color:#c4e6a4;border-color:#c4e6a433}.arrows span:nth-child(4){color:#e4a4c2;border-color:#e4a4c233}.mod-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,1fr);gap:0;border:1px solid #ae7ed23b;border-radius:22px;overflow:hidden;box-shadow:0 20px 65px #0003;background:linear-gradient(130deg,#20132f,#15101e)}.mod-art{min-height:540px;position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#33192b,#1a102a)}.cover{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:58% center;opacity:.85}.art-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0b0619 3%,#170b288c 42%,#1d103321 100%),linear-gradient(100deg,#13091f73,transparent 75%)}.art-tag{position:absolute;top:30px;left:30px;padding:7px 10px;color:#e9d4fb;background:#1b0d2696;border:1px solid #e2c3fd38;border-radius:5px;font-size:9px;letter-spacing:2px}.art-title{position:absolute;left:34px;right:28px;bottom:36px}.art-title p{font-size:12px;letter-spacing:4px;color:#d6afe9;margin:0 0 14px}.art-title h2{font-size:clamp(48px,5.2vw,70px);font-weight:830;line-height:.98;letter-spacing:-3px;margin:0 0 22px;text-shadow:0 2px 35px #13091f}.art-title em{font-style:normal;color:#d2acff}.art-title>span{font-size:8px;letter-spacing:2px;color:#b89cca}.art-bars{position:absolute;right:28px;top:34px;display:flex;align-items:center;gap:3px;height:23px}.art-bars i{background:#dec5f3;width:3px;border-radius:3px;height:9px;opacity:.7}.art-bars i:nth-child(3n){height:22px}.art-bars i:nth-child(4n){height:15px}.art-bars i:nth-child(5n){height:5px}.selection-panel{padding:31px 30px 24px;display:flex;flex-direction:column;min-width:0;border-left:1px solid #d6a6fc1c}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.mod-count{font-size:10px;letter-spacing:1px;padding:5px 8px;color:#cda7eb;background:#966db21f;border:1px solid #b186d529;border-radius:5px}.mod-options{margin:0;padding:0;border:0;display:grid;gap:10px}.mod-option{position:relative;display:flex;align-items:center;gap:14px;padding:18px 16px;border:1px solid #bd89ff2b;border-radius:12px;background:#100b181f;cursor:pointer;transition:border-color .15s,background .15s}.mod-option:has(input:checked){border-color:#bd89ff83;background:linear-gradient(120deg,#af71ed1c,#81439f12)}.mod-option:hover{border-color:#bd89ff83}.mod-options:disabled .mod-option{cursor:wait}.mod-option input{position:absolute;left:15px;top:29px;margin:0;width:19px;height:19px;opacity:0}.mod-option:has(input:focus-visible){outline:3px solid var(--lime);outline-offset:5px}.mod-radio{width:19px;height:19px;flex:0 0 19px;border-radius:50%;border:1px solid #a985ce;display:grid;place-items:center}.mod-option input:checked+.mod-radio:after{content:"";width:9px;height:9px;background:var(--purple);border-radius:50%;box-shadow:0 0 12px #b486ff80}.mod-option strong{font-size:16px;line-height:1.4;font-weight:650;letter-spacing:-.25px}.mod-option small{display:block;font-size:9px;color:#ae97bc;margin-top:8px}.selected-check{visibility:hidden;margin-left:auto;color:#cba6f6;font-size:15px;align-self:flex-start;padding-top:2px}.mod-option:has(input:checked) .selected-check{visibility:visible}.mod-description{margin:22px 0 20px;color:#b5a3c4;font-size:12px;line-height:1.85}.availability{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:550;color:#dbc89e}.status-dot{width:6px;height:6px;border-radius:50%;background:#d7b877;flex:0 0 auto}.availability.ready{color:#cae8b2}.availability.ready .status-dot{background:var(--lime);box-shadow:0 0 9px #c4eb9a33}.runtime-note{font-size:10px;line-height:1.7;color:#ae9bbe;margin:10px 0 20px}.play-button{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid #d7b5ff55;background:linear-gradient(105deg,#b486ff,#a571e9);color:#190b29;border-radius:9px;min-height:49px;padding:13px 18px;font-size:13px;font-weight:750;box-shadow:0 5px 24px #bd89ff1a;transition:background .2s,transform .2s}.play-button:hover{background:#c89dff;transform:translateY(-1px)}.play-button:disabled{opacity:.68;cursor:wait;transform:none}.play-button svg{width:20px;height:20px;fill:currentColor}.launch-status{margin:0;font-size:11px;line-height:1.7;color:#efd7a6;overflow-wrap:anywhere}.launch-status:not(:empty){margin:14px 0 0;padding:12px 14px;border:1px solid #cda26145;border-radius:8px;background:#b7923810}.panel-foot{display:flex;align-items:center;gap:12px;border-top:1px solid #b68fda21;padding-top:18px;margin-top:auto;min-height:72px}.panel-foot svg{width:23px;height:23px;fill:none;stroke:#b59ace;stroke-width:1.4;flex:0 0 auto}.panel-foot p{font-size:10px;line-height:1.7;margin:0;color:#9f8bb1}.credits{border-bottom:1px solid #bd96e31f;padding:0 2px;margin-top:17px}.credits summary{list-style:none;cursor:pointer;padding:18px 0;display:flex;justify-content:space-between;align-items:center;color:#ac96bc;font-size:10px;min-height:48px}.credits summary::-webkit-details-marker{display:none}.credits summary span{font-size:17px;color:#bea0d4}.credits[open] summary span{transform:rotate(45deg)}.credits-content{padding:0 0 18px;max-width:950px}.credits-content p{color:#ab99b7;font-size:11px;line-height:1.8;margin:0 0 10px}.credits-content strong{font-weight:600;color:#cfb5de}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 0 36px}footer a{font-size:10px;color:#bda1d4}footer a:hover{color:white}footer>span{font-weight:750;font-size:10px;letter-spacing:2px;color:#bca7cb}footer b{color:#9470aa;font-size:8px;font-weight:500;margin-left:7px}footer p{font-size:10px;color:#8f7b9f;margin:0}.game-dialog{padding:0;background:#0b0716;border:1px solid #ac79ff77;border-radius:15px;color:var(--text);width:min(1440px,calc(100vw - 32px));max-width:none;height:min(950px,calc(100dvh - 32px));max-height:none;overflow:hidden;box-shadow:0 30px 120px #000c}.game-dialog::backdrop{background:#08040de8}.game-toolbar{height:55px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:#1c122a;border-bottom:1px solid #ac79ff33}.game-toolbar h2{font-size:12px;line-height:1.5;margin:0;font-weight:600}.game-toolbar button{display:flex;align-items:center;gap:10px;background:#ab79ff1a;border:1px solid #ac79ff44;border-radius:7px;padding:8px 12px;color:#e9d7ff;font-size:11px;white-space:nowrap}.game-toolbar button span{font-size:18px;line-height:1}#game-container{height:calc(100% - 55px);width:100%;background:#07040b}#game-container iframe{display:block;width:100%;height:100%;border:0}.game-dialog[open]{display:flex;flex-direction:column}.game-dialog[open] #game-container{flex:1}.game-dialog[open] .game-toolbar{flex:0 0 55px}
@media(max-width:980px){.page{width:calc(100% - 56px)}.mod-layout{grid-template-columns:minmax(0,1.1fr) minmax(310px,1fr)}.selection-panel{padding:27px 24px 20px}.art-title{left:26px}.art-title h2{font-size:57px}.arrows{opacity:.45;transform:scale(.85) rotate(-7deg);transform-origin:right bottom}.intro-copy{max-width:60%}.art-tag{left:26px;top:28px}.art-bars{right:24px}.mod-art{min-height:550px}}
@media(max-width:700px){.page{width:calc(100% - 36px)}.topbar{height:78px}.brand{font-size:19px;gap:8px}.brand svg{height:26px;width:26px}.back-link{font-size:10px;gap:6px}.intro{padding:35px 0 28px}.eyebrow{font-size:8px;letter-spacing:1.4px}h1{font-size:44px;letter-spacing:-1.8px;max-width:420px;margin-top:18px}.intro-copy{font-size:11px;max-width:90%}.arrows{display:none}.mod-layout{grid-template-columns:1fr;border-radius:17px}.mod-art{min-height:350px}.cover{object-position:center 42%}.art-title{left:25px;bottom:25px}.art-title h2{font-size:57px;letter-spacing:-2.5px;margin-bottom:15px}.art-title p{font-size:10px;letter-spacing:3px;margin-bottom:12px}.art-title>span{font-size:7px;letter-spacing:1.4px}.art-shade{background:linear-gradient(0deg,#0b0619 0%,#170b285a 56%,#1d103321 100%),linear-gradient(100deg,#13091f99,transparent 75%)}.art-tag{top:22px;left:24px;font-size:8px}.art-bars{top:24px}.selection-panel{border-left:0;border-top:1px solid #d6a6fc1c;padding:26px 24px 18px}.panel-heading{margin-bottom:19px}.mod-option{padding:18px}.mod-description{font-size:12px;margin-top:20px}.availability{font-size:11px}.runtime-note{font-size:11px;margin-bottom:20px}.play-button{min-height:50px}.panel-foot{margin-top:22px;min-height:61px}.mod-option small{font-size:10px}.mod-option strong{font-size:17px}footer{gap:12px;padding-top:26px}footer>span{font-size:9px;letter-spacing:1.4px}footer p{display:none}.game-dialog{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;margin:0}.game-toolbar{padding:0 12px}.game-toolbar h2{font-size:10px}.game-toolbar button{padding:8px 10px;font-size:10px}}
@media(max-width:360px){.page{width:calc(100% - 28px)}.brand{font-size:17px}.brand svg{width:23px;height:23px}.back-link{font-size:9px}h1{font-size:38px}.intro-copy{max-width:100%;font-size:10px}.mod-art{min-height:310px}.art-title h2{font-size:49px}.selection-panel{padding:23px 18px 17px}.mod-option{padding:16px 12px;gap:10px}.mod-option strong{font-size:15px}.mod-option small{font-size:9px}.art-title{left:22px}.art-tag{left:22px}.art-bars{right:20px}.credits summary{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.play-button{transition:none}.play-button:hover{transform:none}}
.game-actions{display:flex;align-items:center;gap:8px}.game-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:0;padding:10px 17px;color:#b9a4ca;font-size:10px;border-bottom:1px solid #ac79ff22;background:#130c1d}.game-controls span{display:inline-flex;align-items:center;gap:5px}.game-controls kbd{font:inherit;padding:2px 5px;min-width:20px;border:1px solid #ae84d347;border-radius:4px;color:#ddc8ef;background:#aa77de0b;text-align:center}#game-container{position:relative;height:auto;min-height:0}.runtime-loading{position:absolute;inset:0;background:radial-gradient(ellipse at center,#231037,#08050f 65%);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:28px;text-align:center;z-index:1}.runtime-loading p{margin:0;font-size:16px;font-weight:650;color:#d6b6f1}.runtime-loading small{font-size:11px;line-height:1.7;color:#a38bad;max-width:330px}.loading-ring{height:40px;width:40px;border:2px solid #ae79ed22;border-top-color:#b786ef;border-radius:50%;animation:load-spin 1s linear infinite;margin-bottom:10px}html:fullscreen .game-dialog{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0;margin:0}.game-dialog[open] .game-controls{flex:0 0 auto}@keyframes load-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.game-toolbar{min-height:60px;padding:8px 12px}.game-dialog[open] .game-toolbar{flex-basis:60px}.game-toolbar h2{max-width:145px}.game-actions{gap:5px}.game-toolbar button{padding:7px 8px;font-size:9px}.game-toolbar button span{font-size:16px}.game-controls{padding:9px 12px;gap:9px 14px;font-size:9px}.game-controls kbd{padding:1px 3px;min-width:16px}}@media(max-width:400px){.game-toolbar h2{font-size:9px;max-width:115px}.game-toolbar button{padding:7px 6px;font-size:8px;gap:5px}.game-actions{gap:4px}}@media(prefers-reduced-motion:reduce){.loading-ring{animation:none;border-color:#b786ef}}
.game-heading{min-width:0}.game-heading #game-state{display:block;color:#a890bd;font-size:8px;margin-top:4px}.touch-controls{display:none;flex:0 0 auto;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#140b20;border-top:1px solid #ac79ff33;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-notes{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:9px;max-width:480px;margin:0 auto}.touch-controls button{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:52px;border:1px solid #ab78dd69;border-radius:11px;background:linear-gradient(145deg,#4b285f,#281737);box-shadow:0 3px 0 #08050e;color:#dec4f4;font-weight:750;font-size:32px;padding:4px 10px}.touch-controls button:nth-child(2){color:#a7d9f5;border-color:#8dc5ee57}.touch-controls button:nth-child(3){color:#d0ecb5;border-color:#b9e29557}.touch-controls button:nth-child(4){color:#e9b0ce;border-color:#ecafd04f}.touch-controls button:disabled{opacity:.36}.touch-controls button.pressed{box-shadow:0 0 24px #c390ff50;background:#6c438b;transform:translateY(2px)}.touch-actions{display:flex;justify-content:center;gap:10px;margin-top:10px}.touch-actions button{font-size:10px;min-height:38px;min-width:105px;padding:9px 14px;font-weight:600;color:#c3a7d9!important;border-color:#ac79ff40!important;background:#af79ff13;box-shadow:none}@media(pointer:coarse){.touch-controls{display:block}.game-controls{display:none}}@media(pointer:coarse) and (max-height:600px) and (orientation:landscape){.touch-controls{display:flex;gap:14px;justify-content:center;align-items:center;padding:6px 14px calc(6px + env(safe-area-inset-bottom))}.touch-notes{flex:1;max-width:480px;margin:0;gap:8px}.touch-notes button{min-height:44px;height:44px;font-size:29px}.touch-actions{margin:0;gap:8px}.touch-actions button{min-height:44px;min-width:70px;font-size:9px;padding:7px 10px}.game-dialog[open] .game-toolbar{flex-basis:49px;min-height:49px}}@media(max-width:340px){.touch-notes{gap:6px}.touch-controls{padding-left:10px;padding-right:10px}.touch-notes button{min-height:48px}}

.has-touch .touch-controls{display:block}.has-touch .game-controls{display:none}@media(max-height:600px) and (orientation:landscape){.has-touch .touch-controls{display:flex;gap:14px;justify-content:center;align-items:center;padding:6px 14px calc(6px + env(safe-area-inset-bottom))}.has-touch .touch-notes{flex:1;max-width:480px;margin:0;gap:8px}.has-touch .touch-notes button{min-height:44px;height:44px;font-size:29px}.has-touch .touch-actions{margin:0;gap:8px}.has-touch .touch-actions button{min-height:44px;min-width:70px;font-size:9px;padding:7px 10px}.has-touch .game-dialog[open] .game-toolbar{flex-basis:49px;min-height:49px}}

.display-mode{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 18px;padding:12px 0;border-top:1px solid #bd96e31f;border-bottom:1px solid #bd96e31f}.display-mode-label{display:inline-flex;align-items:center;gap:7px;color:#bba7cb;font-size:10px;line-height:1.6}.display-mode-label:before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#8e759f}.display-mode-label.is-optimized{color:#d4edbc}.display-mode-label.is-optimized:before{background:var(--lime)}.display-mode>button{flex:0 0 auto;border:1px solid #b486ff44;color:#d9bafa;background:#b486ff0e;border-radius:7px;min-height:36px;padding:7px 10px;font-size:10px}.display-mode>button:hover{background:#b486ff24}.display-mode-dialog{width:min(460px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:30px;border:1px solid #b486ff80;border-radius:20px;color:var(--text);background:radial-gradient(ellipse at top right,#6b348544,transparent 65%),#160e22;box-shadow:0 25px 100px #000b;overflow:auto;overscroll-behavior:contain}.display-mode-dialog::backdrop{background:#08040de8}.mode-eyebrow{display:block;font-size:9px;letter-spacing:1.7px;line-height:1.6;color:#b897d7}.mode-icon{display:grid;place-items:center;width:58px;height:58px;margin:22px 0 18px;border:1px solid #b486ff4a;border-radius:15px;background:#b486ff13;color:#cba7ff}.mode-icon svg{height:42px;width:42px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.display-mode-dialog h2{margin:0 0 14px;font-size:24px;line-height:1.25;letter-spacing:-.65px;font-weight:730}.display-mode-dialog>p{margin:0;color:#b9a5cc;font-size:13px;line-height:1.8}.mode-choices{display:grid;gap:10px;margin:24px 0 18px}.mode-choices button{border:1px solid #d7b5ff55;border-radius:9px;min-height:48px;padding:12px 14px;font-size:13px;font-weight:700}.mode-enable{color:#190b29;background:linear-gradient(105deg,#b486ff,#a571e9)}.mode-enable:hover{background:#c89dff}.mode-standard{color:#d2b8e6;background:#b486ff09!important;border-color:#b486ff3c!important}.mode-standard:hover{background:#b486ff1e!important}.display-mode-dialog>.mode-remember{font-size:10px;line-height:1.6;color:#9e87b3;text-align:center}.mobile-optimized .stars{display:none}.mobile-optimized .game-dialog{box-shadow:none}@media(max-width:360px){.display-mode-dialog{padding:24px}.display-mode-dialog h2{font-size:22px}.display-mode{gap:8px}.display-mode-label{font-size:9px}.display-mode>button{font-size:9px;padding:7px 8px}}@media(max-height:460px) and (orientation:landscape){.display-mode-dialog{width:min(560px,calc(100% - 32px));padding:20px 24px}.mode-icon{display:none}.display-mode-dialog h2{margin-top:12px;font-size:22px}.display-mode-dialog>p{font-size:12px}.mode-choices{grid-template-columns:1fr 1fr;margin:16px 0 12px}.mode-choices button{font-size:12px}}

[data-selected-mod="silly-billy"] .cover{object-position:center center}[data-selected-mod="silly-billy"] .art-title em{color:#b9c3ff}

/* Four full-height note hitboxes replace the separate mobile arrow keypad. */
.game-dialog.game-expanded{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0}
#runtime-mount{position:absolute;inset:0}
#game-hitboxes{display:none;position:absolute;inset:0;z-index:2;grid-template-columns:repeat(4,minmax(0,1fr));touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.has-touch #game-hitboxes{display:grid}
.game-dialog.ink-native-menu #game-hitboxes{display:none}
.game-dialog.combat-result-active #game-hitboxes{display:none}
#game-hitboxes:has(button:disabled){visibility:hidden}
#game-hitboxes .hitbox{--lane:194,105,244;position:relative;min-width:0;padding:0;border:1px solid rgba(var(--lane),.34);border-radius:0;background:rgba(var(--lane),.055);color:rgb(var(--lane));touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;appearance:none;-webkit-appearance:none;box-shadow:inset 0 -38px 35px -38px rgba(var(--lane),.45)}
#game-hitboxes .hitbox:nth-child(2){--lane:67,207,245}
#game-hitboxes .hitbox:nth-child(3){--lane:122,229,72}
#game-hitboxes .hitbox:nth-child(4){--lane:245,87,117}
#game-hitboxes .hitbox.pressed{background:rgba(var(--lane),.24);border-color:rgba(var(--lane),.85);box-shadow:inset 0 0 30px rgba(var(--lane),.25)}
#game-hitboxes .hitbox:disabled{pointer-events:none}
#game-hitboxes .hitbox:focus-visible{outline:2px solid rgb(var(--lane));outline-offset:-4px}
.hitbox-hint{margin:0 0 7px;text-align:center;color:#aa92bd;font-size:9px;line-height:1.4}
.touch-actions{margin-top:0}
@media(max-height:600px) and (orientation:landscape){.has-touch .touch-controls{padding:5px 12px calc(5px + env(safe-area-inset-bottom))}.has-touch .hitbox-hint{margin:0;max-width:210px;font-size:8px}.has-touch .touch-actions button{min-height:32px;padding:5px 10px}.has-touch .touch-actions{gap:8px}}

#save-status{display:block;font-size:.65rem;line-height:1.4;color:#b5d59c;margin-top:3px}
#save-status[data-state="error"]{color:#ffb7c6}
#exit-without-save[hidden]{display:none}
.game-dialog[open] .game-toolbar{height:auto;min-height:72px;flex:0 0 auto;padding-top:8px;padding-bottom:8px}
.game-actions{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:650px){.game-dialog[open] .game-toolbar{flex-direction:column;align-items:stretch;gap:6px;min-height:0}.game-heading h2{max-width:none}.game-actions{justify-content:space-between;gap:5px}.game-actions button{padding:7px;font-size:9px}.game-heading{min-width:0}#save-status{font-size:9px}}



/* Ink Street uses the original logo atlas over a paper-and-ink poster. */
.cover-frame{position:absolute;inset:0}
[data-selected-mod="ink-street"] .mod-art{background:radial-gradient(ellipse at 50% 32%,#eddbad 0%,#c5a565 42%,#785834 76%,#1d112c 100%)}
[data-selected-mod="ink-street"] .mod-art:before{content:"";position:absolute;inset:20px;z-index:3;border:1px solid #cab2ec80;border-radius:12px;box-shadow:inset 0 0 32px #341c4326;pointer-events:none}
[data-selected-mod="ink-street"] .cover-frame{inset:auto;left:50%;top:44%;width:min(76%,480px);aspect-ratio:553/552;transform:translate(-50%,-50%);overflow:hidden}
[data-selected-mod="ink-street"] .cover{inset:auto;left:-.904159%;top:-.905797%;width:1017.7215%;height:106.3406%;max-width:none;object-fit:fill;opacity:1}
[data-selected-mod="ink-street"] .art-shade{background:linear-gradient(0deg,#160b24ed,transparent 31%),linear-gradient(90deg,#31203526,transparent 20%,transparent 80%,#31203526)}
[data-selected-mod="ink-street"] .art-title{left:30px;right:30px;bottom:42px;text-align:center}
[data-selected-mod="ink-street"] .art-title h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
[data-selected-mod="ink-street"] .art-title p{color:#f0dcaf;letter-spacing:3px}
[data-selected-mod="ink-street"] .art-title>span{color:#e9d3aa}
[data-selected-mod="ink-street"] .art-bars i{background:#2d153e}
@media(max-width:700px){[data-selected-mod="ink-street"] .mod-art{min-height:430px}[data-selected-mod="ink-street"] .cover-frame{top:45%;width:min(78%,340px)}[data-selected-mod="ink-street"] .art-title{bottom:31px;left:25px;right:25px}[data-selected-mod="ink-street"] .mod-art:before{inset:14px}}
@media(max-width:360px){[data-selected-mod="ink-street"] .mod-art{min-height:390px}[data-selected-mod="ink-street"] .art-title{bottom:27px}[data-selected-mod="ink-street"] .art-title>span{font-size:6px;letter-spacing:1.1px}}

/* Atrozix role menu: the preference never changes an already running song. */
.brand-menu-button{border:0;padding:8px 0;background:none;text-align:left;min-height:44px;font-family:inherit}
.brand-menu-button .brand-menu-caret{font-size:17px;color:#b59bc9;letter-spacing:0;margin-left:2px}
.brand-menu-button:disabled{opacity:.6;cursor:wait}
.game-toolbar .game-brand-menu{min-width:40px;min-height:38px;justify-content:center;padding:7px;color:#bf8aff}
.game-brand-menu svg{display:block;width:23px;height:23px;flex:0 0 23px;filter:drop-shadow(0 0 6px #a662ff55)}
.player-role-label{display:block;font-size:10px;line-height:1.5;color:#cab4e2;margin:0 0 12px}
.game-heading .player-role-label{font-size:9px;margin:4px 0 0;color:#d7b7ff}
.player-role-dialog{width:min(420px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:25px;border:1px solid #bc88ff70;border-radius:18px;background:radial-gradient(ellipse at top left,#62308135,transparent 65%),#130b1f;color:var(--text);box-shadow:0 25px 100px #000b;overflow:auto;overscroll-behavior:contain}
.player-role-dialog::backdrop{background:#07040bd9}
.role-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.role-menu-heading button{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;background:#b486ff0f;border:1px solid #b486ff3a;border-radius:9px;font-size:23px;color:#d4b5ee}
.player-role-dialog h2{font-size:29px;letter-spacing:-.7px;line-height:1.2;margin:0 0 14px}
.player-role-dialog p{font-size:12px;line-height:1.8;color:#bba5cc;margin:0 0 16px}
.player-role-dialog .opponent-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:56px;padding:14px;border:1px solid #b486ff55;border-radius:11px;background:#b486ff13;color:#e7d4ff;font-size:13px;font-weight:650;text-align:left;line-height:1.5}
.opponent-toggle[aria-pressed="true"]{background:#b486ff2b;border-color:#c19aff}
.role-switch{position:relative;flex:0 0 35px;width:35px;height:20px;background:#554463;border:1px solid #9c7ab9;border-radius:20px}
.role-switch:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;background:#d0bbdf;border-radius:50%}
.opponent-toggle[aria-pressed="true"] .role-switch{background:#a276d8;border-color:#d5afff}
.opponent-toggle[aria-pressed="true"] .role-switch:after{left:18px;background:#fff}
.player-role-dialog #opponent-toggle-help{font-size:10px;color:#9f86b5;margin:8px 1px 16px}
.player-role-dialog .role-selection{color:#d9baff;font-weight:650;font-size:12px;margin-bottom:8px}
.player-role-dialog #role-change-note{font-size:11px;line-height:1.7;margin-bottom:18px}
#restart-with-role,.role-menu-done{display:block;width:100%;min-height:44px;padding:11px 12px;border:1px solid #b486ff50;border-radius:9px;background:#b486ff19;color:#e3cbff;font-size:12px;line-height:1.5;font-weight:650}
#restart-with-role[hidden]{display:none}
#restart-with-role{margin-bottom:12px;background:#b486ff;color:#1a0d28}
#restart-with-role:disabled,.opponent-toggle:disabled{opacity:.6;cursor:wait}
.player-role-dialog #role-restart-status{font-size:11px;color:#edcca4;margin-bottom:12px}
.player-role-dialog #role-restart-status:empty{display:none}
.role-menu-done:hover{background:#b486ff2b}
[data-role-menu],.player-role-dialog button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(max-width:360px){.player-role-dialog{padding:20px}.player-role-dialog h2{font-size:26px}.player-role-dialog .opponent-toggle{font-size:12px;gap:10px;padding:12px}.game-toolbar .game-brand-menu{min-width:34px;min-height:34px;padding:5px}.game-brand-menu svg{width:22px;height:22px;flex-basis:22px}}
@media(max-height:500px) and (orientation:landscape){.player-role-dialog{width:min(520px,calc(100% - 28px));padding:18px 22px}.role-menu-heading{margin-bottom:8px}.player-role-dialog h2{font-size:24px}.player-role-dialog p{margin-bottom:10px}.player-role-dialog .opponent-toggle{min-height:48px}}

/* Two-device duet: safe DOM text and a modal invitation above native engines. */
.fnf-online-dialog{width:min(600px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:34px;border:1px solid #a778ff66;border-radius:28px;background:radial-gradient(ellipse at 50% 0,#542b8555,transparent 60%),#100a20;color:#f7f0ff;box-shadow:0 0 70px #812cff44,0 30px 100px #000b;text-align:center}
.fnf-online-dialog::backdrop{background:#080410cc;backdrop-filter:blur(9px)}
.fnf-online-dialog h2{font-size:clamp(23px,4vw,34px);line-height:1.2;text-wrap:balance;overflow-wrap:anywhere;margin:18px 0}.fnf-online-message{color:#cfbfdf;line-height:1.65}.fnf-online-eyebrow{color:#b993ff;font-size:10px;letter-spacing:.2em;font-weight:800}.fnf-online-choices{display:grid;gap:11px;margin-top:24px}.fnf-online-choices button{padding:15px 18px;border:1px solid #af7cff;border-radius:13px;background:linear-gradient(110deg,#9a55f5,#682cbd);color:#fff;font:inherit;font-weight:800;cursor:pointer}.fnf-online-choices button.secondary{background:#21132f;border-color:#674879}.fnf-online-choices button:disabled{opacity:.45;cursor:default}.fnf-online-choices button:focus-visible{outline:3px solid #cbff7b;outline-offset:4px}.fnf-online-people{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fnf-online-people span{font-size:12px;border:1px solid #8055a855;border-radius:30px;background:#2e1742;padding:9px 13px;overflow-wrap:anywhere}.fnf-online-status{color:#d7ff96;font-size:13px;line-height:1.5;min-height:1.5em;margin:16px 0 0}.fnf-online-scoreboard{display:flex;flex-wrap:wrap;gap:6px 16px;font:600 11px/1.5 system-ui;color:#d4ffb0;max-width:100%;overflow-wrap:anywhere}.fnf-online-scoreboard span{white-space:normal}.fnf-orbit{position:relative;width:92px;height:92px;margin:0 auto;display:grid;place-items:center}.fnf-orbit span{font-family:Arial,sans-serif;color:#b57aff;font-size:44px;text-shadow:0 0 22px #a344ff}.fnf-orbit i{position:absolute;inset:4px;border:1px solid #9d63ff77;border-radius:50%;transform:rotate(-30deg) scaleY(.45)}.fnf-orbit i:nth-child(2){transform:rotate(55deg) scaleY(.45)}.fnf-online-dialog.is-invitation{animation:fnf-invite-arrive .6s cubic-bezier(.16,1,.3,1)}.fnf-online-dialog.is-invitation .fnf-orbit{animation:fnf-orbit-pulse 2.4s ease-in-out infinite}@keyframes fnf-invite-arrive{from{opacity:0;transform:translateY(24px) scale(.94);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes fnf-orbit-pulse{50%{transform:scale(1.08);filter:brightness(1.4)}}@media(max-width:600px){.fnf-online-dialog{padding:24px 18px}.fnf-online-scoreboard{flex-basis:100%;font-size:10px}.fnf-orbit{width:70px;height:70px}}@media(prefers-reduced-motion:reduce){.fnf-online-dialog.is-invitation,.fnf-online-dialog.is-invitation .fnf-orbit{animation:none}}

/* Floating live controls stay above the canvas and mobile note hitboxes. */
.fnf-control-orb{position:absolute;left:12px;top:12px;z-index:7;display:grid;place-items:center;width:54px;height:54px;padding:13px;border:1px solid #d3a4ff96;border-radius:50%;background:radial-gradient(circle at 35% 25%,#6731a8,#25133f 68%);color:#d9b0ff;box-shadow:inset 0 1px 9px #dab5ff24,0 3px 18px #0009,0 0 20px #9649ef34;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;isolation:isolate;transition:box-shadow .2s,border-color .2s}
.fnf-control-orb>svg{width:100%;height:100%;filter:drop-shadow(0 0 6px #b367fa88);pointer-events:none;transition:transform .3s}
.fnf-control-orb:hover>svg,.fnf-control-orb[aria-expanded="true"]>svg{transform:rotate(45deg)}
.fnf-control-orb:hover{border-color:#e1c6ff;box-shadow:inset 0 1px 9px #dab5ff24,0 3px 18px #0009,0 0 28px #a35bf965}
.fnf-control-orb.is-dragging{cursor:grabbing;border-color:#d4ffad;box-shadow:0 0 0 4px #caff961b,0 6px 28px #000a}
.fnf-control-orb:focus-visible{outline:3px solid #d2ff9c;outline-offset:4px}
.orb-halo{position:absolute;inset:4px;border:1px solid #e1c6ff24;border-radius:50%;pointer-events:none}
.orb-assist-dot{position:absolute;width:9px;height:9px;right:2px;bottom:3px;border:2px solid #211132;border-radius:50%;background:#ceff99;box-shadow:0 0 8px #ceff9977;opacity:0;transition:opacity .2s}
.fnf-control-orb[data-botplay="true"] .orb-assist-dot{opacity:1}
.fnf-botplay-indicator{position:absolute;right:12px;bottom:12px;z-index:6;display:flex;align-items:center;gap:7px;max-width:calc(100% - 24px);padding:7px 11px;border:1px solid #c5ec9544;border-radius:20px;background:#130c21ed;color:#d5ffa9;font:750 9px/1.3 inherit;letter-spacing:1.1px;pointer-events:none;box-shadow:0 3px 14px #0006}
.fnf-botplay-indicator[hidden]{display:none}.fnf-botplay-indicator>span{width:5px;height:5px;border-radius:50%;background:#d5ffa9;box-shadow:0 0 8px #d5ffa97a}.fnf-botplay-indicator small{font-size:8px;letter-spacing:.3px;font-weight:500;color:#b4a4c4;border-left:1px solid #ae8bce44;padding-left:7px}
.game-toolbar .game-brand-menu{border-radius:50%;width:38px;height:38px;min-width:38px;padding:8px;background:#38214f}
.fnf-flight-panel{isolation:isolate;width:min(410px,calc(100% - 24px));padding:24px;max-height:calc(100dvh - 24px);border-color:#bc86ff88;border-radius:22px;background:radial-gradient(ellipse at 100% 0,#52288788,transparent 48%),radial-gradient(ellipse at 0 100%,#3e1c5d50,transparent 55%),#120c1fed;box-shadow:inset 0 1px 0 #e2c5ff20,0 18px 60px #000a,0 0 42px #7e32c729;scrollbar-width:thin;scrollbar-color:#775197 #170d26;overflow:auto;overflow-x:hidden;color:#f5edff}
.fnf-flight-panel[open]{animation:fnf-flight-in .34s cubic-bezier(.16,1,.3,1)}
.fnf-flight-panel.is-in-game{position:absolute;inset:12px 12px auto auto;margin:0;max-height:calc(100% - 24px);z-index:8}
.fnf-flight-panel::backdrop{background:#090411c9;backdrop-filter:blur(5px)}
.flight-stars{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.38;background-image:radial-gradient(circle at 18% 8%,#dfbeff 1px,transparent 1.6px),radial-gradient(circle at 84% 19%,#fff .8px,transparent 1.4px),radial-gradient(circle at 72% 7%,#b78be8 .6px,transparent 1.2px),radial-gradient(circle at 43% 11%,#fff .6px,transparent 1.2px);background-size:370px 370px}
.fnf-flight-panel .role-menu-heading{margin:0 0 20px;gap:8px}.fnf-flight-panel .mode-eyebrow{font-size:9px;font-weight:750;letter-spacing:2px;color:#bba2d6}
.fnf-flight-panel .role-menu-heading>button{width:34px;height:34px;flex-basis:34px;border-radius:50%;background:#d7acff0a;transition:background .18s,transform .18s}.role-menu-heading>button:hover{background:#d7acff20;transform:rotate(90deg)}.role-menu-heading>button svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.7;fill:none}
.flight-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.fnf-flight-panel h2{font-size:32px;line-height:1.1;letter-spacing:-1.25px;font-weight:760;margin:0 0 12px}.fnf-flight-panel h2 em{font-style:normal;color:#c598ff}
.live-settings-label{display:inline-flex;align-items:center;gap:6px;max-width:115px;flex-shrink:0;padding:6px 9px;border:1px solid #bc8aff3d;background:#ad72e70e;border-radius:20px;color:#b79bcd;font-size:8px;line-height:1.45;text-align:left}.live-settings-label:before{content:"";height:5px;width:5px;flex:0 0 5px;border-radius:50%;background:#9b7cb5}.live-settings-label[data-ready="true"]{color:#d2f7aa;border-color:#c4ee9440;background:#a9df6b09}.live-settings-label[data-ready="true"]:before{background:#ccfa9d;box-shadow:0 0 7px #ccfa9d55}
.fnf-flight-panel #player-role-description{font-size:10px;line-height:1.7;color:#b49ec8;margin:0 0 22px}.flight-section-label{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:8px;letter-spacing:1.6px;font-weight:700;color:#a48ab9}.flight-section-label>span{font-size:9px;color:#d4b5ed;letter-spacing:0}.flight-section-label>i{flex:1;height:1px;background:linear-gradient(90deg,#ba84e433,transparent);margin-left:3px}
.fnf-live-options{display:grid;gap:8px}.fnf-setting-toggle{display:flex;align-items:center;gap:11px;width:100%;min-height:66px;padding:12px;border:1px solid #bf89f32c;border-radius:12px;background:linear-gradient(110deg,#ab72df0b,#ad7ad004);color:#e9d9fb;text-align:left;transition:background .2s,border-color .2s,box-shadow .2s;user-select:none;-webkit-user-select:none}.fnf-setting-toggle:hover{background:#b986ed12;border-color:#cfa2f759}.fnf-setting-toggle[aria-checked="true"]{background:linear-gradient(100deg,#a256ee23,#8f4bcc0e);border-color:#b886f47a;box-shadow:inset 2px 0 0 #c59bff}
.setting-icon{display:grid;place-items:center;width:33px;height:36px;flex:0 0 33px;color:#a784c6}.setting-icon svg{width:29px;height:29px;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.fnf-setting-toggle[aria-checked="true"] .setting-icon{color:#d4adff}.setting-copy{display:grid;gap:4px;flex:1;min-width:0}.setting-copy strong{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;line-height:1.35}.setting-copy strong small{padding:2px 4px;border:1px solid #c5e39135;border-radius:3px;color:#bddc96;font-size:6px;font-weight:650;letter-spacing:.8px}.setting-copy>span{font-size:9px;line-height:1.5;color:#a994bc}.flight-switch{height:22px;width:38px;flex:0 0 38px;padding:3px;border:1px solid #82629a60;border-radius:20px;background:#382843;transition:background .2s,border-color .2s}.flight-switch>i{display:block;width:14px;height:14px;border-radius:50%;background:#a58fb7;transition:transform .22s cubic-bezier(.2,.8,.3,1),background .2s;box-shadow:0 1px 3px #0005}.fnf-setting-toggle[aria-checked="true"] .flight-switch{background:#ae77ec;border-color:#c69ff7}.fnf-setting-toggle[aria-checked="true"] .flight-switch>i{transform:translateX(16px);background:#fff}
.fnf-flight-panel .live-settings-status{font-size:9px;line-height:1.6;color:#d1bce5;margin:12px 0 5px}.fnf-flight-panel .botplay-note{font-size:8px;line-height:1.6;color:#977eaf;margin:0 0 24px}.fnf-flight-panel .opponent-toggle{padding:11px 12px;min-height:49px;font-size:11px;background:#b486ff08;border-color:#b486ff30}.fnf-flight-panel .opponent-toggle[aria-pressed="true"]{background:#b486ff1c;border-color:#b486ff73}.fnf-flight-panel .opponent-toggle:disabled{cursor:not-allowed;opacity:.55}.fnf-flight-panel #opponent-toggle-help{font-size:9px;line-height:1.6;margin:8px 1px 12px;color:#9f87b6}.fnf-flight-panel .role-selection{font-size:10px;margin:0 0 5px;color:#d2b5e9}.fnf-flight-panel #role-change-note{font-size:9px;line-height:1.6;margin:0 0 18px;color:#a28bb8}.fnf-flight-panel #restart-with-role{font-size:11px;border-radius:10px;background:#bc8bf5;color:#170c25}.flight-footer{display:flex;align-items:center;gap:10px;border-top:1px solid #ba84e424;padding-top:16px;margin-top:4px}.flight-footer>.reset-control-position{flex:0 0 auto;background:none;border:0;color:#b49dc9;font-size:9px;line-height:1.4;min-height:40px;padding:6px 0}.flight-footer>.reset-control-position:hover{color:#e0c5f7}.flight-footer>.role-menu-done{display:flex;justify-content:center;align-items:center;gap:9px;min-height:40px;flex:1;border-radius:10px;font-size:10px;background:linear-gradient(110deg,#ac76e7,#8b54ce);color:#160a25;border-color:#c599f462}.flight-footer>.role-menu-done:hover{background:linear-gradient(110deg,#c194f5,#a575df)}.role-menu-done span{font-size:16px}.fnf-flight-panel .flight-footnote{font-size:8px;line-height:1.6;text-align:center;color:#8e759f;margin:12px 0 0}
@keyframes fnf-flight-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:450px){.fnf-flight-panel{padding:20px;border-radius:18px}.fnf-flight-panel h2{font-size:29px}.fnf-flight-panel .role-menu-heading{margin-bottom:16px}.fnf-flight-panel .setting-copy>span{font-size:8px}.fnf-setting-toggle{padding:10px;gap:8px;min-height:62px}.setting-icon{width:28px;flex-basis:28px}.setting-copy strong{font-size:11px}.fnf-flight-panel #player-role-description{font-size:9px;margin-bottom:20px}.live-settings-label{max-width:104px}.fnf-control-orb{width:50px;height:50px;padding:12px}}
@media(max-height:520px) and (orientation:landscape){.fnf-flight-panel{padding:16px 20px}.fnf-flight-panel .role-menu-heading{margin-bottom:9px}.fnf-flight-panel h2{font-size:25px}.fnf-flight-panel h2 br{display:none}.fnf-flight-panel h2 em:before{content:" "}.fnf-flight-panel #player-role-description{margin-bottom:14px}.fnf-flight-panel .botplay-note{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.fnf-flight-panel[open]{animation:none}.fnf-control-orb,.fnf-control-orb>svg,.orb-assist-dot,.fnf-setting-toggle,.flight-switch,.flight-switch>i,.fnf-flight-panel .role-menu-heading>button{transition:none}.fnf-control-orb:hover>svg,.fnf-control-orb[aria-expanded="true"]>svg,.role-menu-heading>button:hover{transform:none}}
.topbar .brand-menu-button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:10px;border:1px solid #bc88ff65;border-radius:50%;background:radial-gradient(circle at 30% 20%,#512e7c,#211332);box-shadow:0 0 20px #9c4ee41c}.topbar .brand-menu-button svg{width:24px;height:24px}.fnf-botplay-indicator{font-family:inherit;font-size:9px;font-weight:750;line-height:1.3}.fnf-botplay-indicator strong{font:inherit}
#game-container{--fnf-safe-left:env(safe-area-inset-left,0px);--fnf-safe-right:env(safe-area-inset-right,0px);--fnf-safe-top:env(safe-area-inset-top,0px);--fnf-safe-bottom:env(safe-area-inset-bottom,0px)}
.fnf-flight-panel.is-in-game{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:min(410px,calc(100% - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right))));max-height:calc(100% - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)))}

/* Four-player teams: compact totals remain readable on small screens. */
.fnf-online-scoreboard .fnf-online-team{padding:.35rem .65rem;border:1px solid #b282ff66;border-radius:999px;background:#29103ed9;color:#ead7ff;font-size:.75rem}.fnf-online-scoreboard .fnf-online-team[data-side="right"]{border-color:#a5e56a66;color:#d6f6ba}.fnf-online-people{flex-wrap:wrap}.fnf-online-people>span{max-width:100%;overflow-wrap:anywhere}

/* The V5 cover uses the supplied atlas unmodified; crop its first idle frame in CSS. */
[data-selected-mod="impostor-v5"] .mod-art{background:radial-gradient(ellipse at 52% 35%,#c526674f,transparent 47%),url("./fnf-impostor-v5-background.png?v=1.0.0") center/cover,#090511}
[data-selected-mod="impostor-v5"] .cover-frame{inset:auto;left:50%;top:40%;width:88%;aspect-ratio:757/446;transform:translate(-50%,-50%);overflow:hidden;filter:drop-shadow(0 18px 35px #06020f)}
[data-selected-mod="impostor-v5"] .cover{inset:auto;left:-85.204756%;top:-89.686099%;width:541.083223%;height:459.192825%;max-width:none;object-fit:fill;opacity:1}
[data-selected-mod="impostor-v5"] .art-shade{background:linear-gradient(0deg,#0b0619 0%,#170b2840 30%,transparent 57%)}
[data-selected-mod="impostor-v5"] .art-title h2{font-size:clamp(38px,4.8vw,65px);letter-spacing:-2px}
[data-selected-mod="impostor-v5"] .art-title em{color:#ff5d81;text-shadow:0 0 30px #e83c6b45}
[data-selected-mod="impostor-v5"] .art-title p{color:#edb6d6}
@media(max-width:700px){[data-selected-mod="impostor-v5"] .mod-art{min-height:430px}[data-selected-mod="impostor-v5"] .cover-frame{top:37%;width:88%;max-width:470px}[data-selected-mod="impostor-v5"] .art-title h2{font-size:48px}}

/* Native range controls retain keyboard and touch semantics beneath the galaxy. */
.fnf-difficulty{padding:17px 14px 13px;margin:0 0 25px;border:1px solid #bc86ff55;border-radius:14px;background:radial-gradient(ellipse at 85% 0,#8a3dcd25,transparent 65%),#21112d66;box-shadow:inset 0 1px 0 #dfb8ff0c}
.fnf-difficulty[hidden]{display:none}
.flight-control-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#ead9fa;font-size:11px;line-height:1.5;font-weight:650}
.flight-control-heading label{cursor:pointer}
.flight-control-heading output{flex-shrink:0;min-width:47px;padding:3px 8px;border:1px solid #be86f63d;border-radius:20px;background:#ad6cf01a;color:#d9b0ff;text-align:center;font-size:10px;font-variant-numeric:tabular-nums}
.fnf-flight-panel .flight-control-caption{font-size:9px;line-height:1.65;color:#b29ac6;margin:9px 0 3px}
.flight-range{--range-progress:100%;display:block;width:100%;height:44px;margin:3px 0;padding:0;appearance:none;-webkit-appearance:none;border:0;background:transparent;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;accent-color:#bd8aff}
.flight-range::-webkit-slider-runnable-track{height:5px;border-radius:9px;background:linear-gradient(to right,#9d53ee 0%,#d0a3ff var(--range-progress),#493054 var(--range-progress),#493054 100%);box-shadow:0 1px 0 #0007}
.flight-range::-moz-range-track{height:5px;border-radius:9px;background:#493054;box-shadow:0 1px 0 #0007}
.flight-range::-moz-range-progress{height:5px;border-radius:9px;background:linear-gradient(90deg,#9d53ee,#d0a3ff)}
.flight-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;margin-top:-9px;width:23px;height:23px;border:1px solid #f0daff;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 1px,#efc9ff 2px,#c18bf2 6px,#7543b1 12px,#382051);box-shadow:0 0 0 4px #b875ff17,0 0 18px #ab66ee55,0 2px 5px #0007;transition:box-shadow .18s,transform .18s}
.flight-range::-moz-range-thumb{width:23px;height:23px;border:1px solid #f0daff;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 1px,#efc9ff 2px,#c18bf2 6px,#7543b1 12px,#382051);box-shadow:0 0 0 4px #b875ff17,0 0 18px #ab66ee55,0 2px 5px #0007;transition:box-shadow .18s,transform .18s}
.flight-range:active::-webkit-slider-thumb{transform:scale(1.13);box-shadow:0 0 0 6px #c990ff25,0 0 25px #ab66ee88}
.flight-range:active::-moz-range-thumb{transform:scale(1.13);box-shadow:0 0 0 6px #c990ff25,0 0 25px #ab66ee88}
.flight-range:focus-visible{outline:2px solid #d4ffa2;outline-offset:1px;border-radius:8px}
.flight-range:disabled{opacity:.45;cursor:not-allowed}
.difficulty-stops{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin:-2px -5px 12px;color:#ba9cd2;font-size:8px;line-height:1.4;text-align:center}
.difficulty-stops span{position:relative;padding-top:9px}
.difficulty-stops span:before{content:"";position:absolute;top:0;left:50%;width:1px;height:4px;background:#b28acd66}
.fnf-flight-panel #difficulty-description{font-size:10px;line-height:1.7;color:#e0c6f3;margin:0 0 5px}
.fnf-flight-panel #difficulty-availability{margin:0;font-size:9px}
.fnf-flight-panel .cpu-live-stats{font-size:9px;line-height:1.6;color:#d2edb3;padding:9px 0 0;border-top:1px solid #b184cf25;margin:10px 0 0;font-variant-numeric:tabular-nums}
.flight-audio-mix{padding:14px 14px 6px;margin-bottom:10px;border:1px solid #bc86ff25;border-radius:12px;background:#0c071b40}
.flight-audio-control+.flight-audio-control{margin-top:3px;border-top:1px solid #b184cf1a;padding-top:12px}
.flight-pitch-english{margin-left:5px;color:#a88bbb;font-size:9px;font-weight:450}
.pitch-stops{display:flex;justify-content:space-between;margin:-2px 0 0;color:#ba9cd2;font-size:9px;font-variant-numeric:tabular-nums;line-height:1.5}
.pitch-stops span{position:relative;padding-top:7px;min-width:23px;text-align:center}
.pitch-stops span:before{content:"";position:absolute;top:0;left:50%;width:1px;height:4px;background:#b28acd66}
.pitch-caption-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.fnf-flight-panel .pitch-caption-row .flight-control-caption{margin:0}
.fnf-flight-panel .reset-pitch{min-height:44px;margin:0;padding:7px 9px;border:1px solid #bc86ff38;border-radius:9px;background:#9c5ac311;color:#dfb5ff;font:inherit;font-size:9px;line-height:1.4;white-space:nowrap;cursor:pointer}
.fnf-flight-panel .reset-pitch:hover:not(:disabled){border-color:#c996ff85;background:#9c5ac326}
.fnf-flight-panel .reset-pitch:focus-visible{outline:2px solid #d4ffa2;outline-offset:3px}
.fnf-flight-panel .reset-pitch:disabled{opacity:.45;cursor:default}
.fnf-flight-panel #pitch-availability,.fnf-flight-panel #speed-availability{margin:5px 0 9px}

.fnf-comfort-options .setting-copy strong{font-size:11px}
.fnf-flight-panel #advanced-settings-status{margin-bottom:18px}
.flight-restart{margin:19px 0 23px}
.flight-restart>button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:11px;border:1px solid #bb8ae84a;border-radius:10px;background:#a774d713;color:#d8bdeb;font-family:inherit;font-size:11px;font-weight:650;transition:background .2s,border-color .2s}
.flight-restart>button:hover:enabled{background:#b986ed22;border-color:#d2a2fc88}
.flight-restart>button:disabled{opacity:.45;cursor:not-allowed}
.flight-restart svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fnf-flight-panel #restart-song-help{font-size:9px;line-height:1.7;margin:8px 2px 0;color:#aa91bf}
.fnf-flight-panel #restart-song-status{font-size:10px;line-height:1.6;margin:9px 2px 0;color:#ecd2ac}
.fnf-flight-panel #restart-song-status:empty{display:none}
@media(max-width:360px){.fnf-difficulty{padding:14px 11px}.flight-control-heading{font-size:10px}.difficulty-stops{font-size:7px}.fnf-comfort-options .setting-copy strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){.flight-range::-webkit-slider-thumb{transition:none}.flight-range::-moz-range-thumb{transition:none}.flight-restart>button{transition:none}}

/* Independent opponent and CPU life settings share the original galaxy controls. */
.fnf-combat{padding:15px 12px;margin:0 0 25px;border:1px solid #b976ee55;border-radius:14px;background:radial-gradient(ellipse at 0 0,#9332cc29,transparent 70%),#1b0e2b80;box-shadow:inset 0 1px 0 #dfb8ff0c}
.fnf-combat[hidden],.combat-live-stats[hidden]{display:none}
.fnf-combat h3{margin:0;font-size:12px;font-weight:700;letter-spacing:.1px}
.combat-badge{font-size:7px;letter-spacing:1.2px;padding:4px 7px;border:1px solid #c5a3ff44;border-radius:20px;color:#cda5ef;background:#8f4ec41a}
.fnf-flight-panel #combat-help{margin:9px 0 13px}
.fnf-combat-options{gap:7px}
.fnf-combat-options .fnf-setting-toggle{padding:10px 9px;gap:8px;min-height:67px}
.fnf-combat-options .setting-icon{width:25px;flex-basis:25px}
.fnf-combat-options .setting-icon svg{width:25px;height:25px}
.fnf-combat-options .setting-copy strong{font-size:10px;line-height:1.5}
.fnf-combat-options .setting-copy>span{font-size:8px;line-height:1.6}
.fnf-combat-options .fnf-setting-toggle:disabled{opacity:.48;cursor:not-allowed}
.fnf-combat-options .fnf-setting-toggle:disabled:hover{background:linear-gradient(110deg,#ab72df0b,#ad7ad004);border-color:#bf89f32c}
.fnf-combat-options .fnf-setting-toggle:focus-visible{outline:2px solid #d4ffa2;outline-offset:3px}
.fnf-flight-panel #combat-availability{margin:11px 2px 0;font-size:9px}
.combat-live-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px;padding-top:13px;border-top:1px solid #b983e433}
.fnf-flight-panel .combat-meters-help{grid-column:1/-1;margin:0;color:#bba1d1;font-size:8px;line-height:1.65;font-weight:400}
.combat-life{display:grid;grid-template-columns:1fr auto;gap:6px 4px;min-width:0;color:#d0a5f6;font-size:8px;font-weight:650;line-height:1.5;font-variant-numeric:tabular-nums}
.combat-life output{font-size:8px;color:#eed7ff}
.combat-life meter{--health-progress:50%;width:100%;height:6px;grid-column:1/-1;appearance:none;-webkit-appearance:none;background:#46304f;border:0;border-radius:20px;overflow:hidden}
.combat-life meter::-webkit-meter-bar{background:#46304f;border:0;border-radius:20px;height:6px}
.combat-life meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#8d4ad8,#d7a7ff);border-radius:20px}
.combat-life meter::-moz-meter-bar{background:linear-gradient(90deg,#8d4ad8,#d7a7ff);border-radius:20px}
.combat-life-cpu{color:#c3dbaa}.combat-life-cpu output{color:#ddf5c3}
.combat-life-cpu meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#719b53,#d0efa9)}
.combat-life-cpu meter::-moz-meter-bar{background:linear-gradient(90deg,#719b53,#d0efa9)}
.fnf-flight-panel #combat-outcome{grid-column:1/-1;margin:0;font-size:10px;line-height:1.6;color:#e4c2ff}
.fnf-flight-panel #combat-outcome:empty{display:none}
@media(max-width:360px){.fnf-combat{padding:13px 9px}.fnf-combat-options .setting-icon{display:none}.fnf-combat-options .setting-copy strong{font-size:10px}.fnf-combat-options .setting-copy>span{font-size:8px}}

/* Original Legacy atlas, cropped with CSS to its original logo bumpin0001 frame. */
[data-selected-mod="impostor-legacy"] .mod-art{background:radial-gradient(ellipse at 50% 30%,#5336a34a,transparent 63%),url("./fnf-impostor-legacy-background.png?v=1.0.0") center/cover,#080611}
[data-selected-mod="impostor-legacy"] .cover-frame{inset:auto;left:50%;top:36%;width:90%;aspect-ratio:868/720;transform:translate(-50%,-50%);overflow:hidden;filter:drop-shadow(0 15px 32px #03020e)}
[data-selected-mod="impostor-legacy"] .cover{inset:auto;left:-0.115207%;top:-0.138889%;width:103.686636%;height:495.833333%;max-width:none;object-fit:fill;opacity:1}
[data-selected-mod="impostor-legacy"] .art-shade{background:linear-gradient(0deg,#0b0619 0%,#170b2840 25%,transparent 50%)}
[data-selected-mod="impostor-legacy"] .art-title h2{font-size:clamp(36px,4.8vw,60px);letter-spacing:-2px}
[data-selected-mod="impostor-legacy"] .art-title em{font-size:.6em;color:#a5f7bc;text-shadow:0 0 28px #61d98b45;letter-spacing:-1px}
[data-selected-mod="impostor-legacy"] .art-title p{color:#c8b7ff}
@media(max-width:700px){[data-selected-mod="impostor-legacy"] .mod-art{min-height:480px}[data-selected-mod="impostor-legacy"] .cover-frame{top:35%;width:78%;max-width:380px}[data-selected-mod="impostor-legacy"] .art-title h2{font-size:46px}}

/* Unsupported host controls are absent for Legacy; its native Options remain. */
#fnf-custom-controls[hidden],#fnf-native-options-note[hidden]{display:none!important}
[data-native-options-only="true"] #live-settings-label{display:none}
.fnf-native-options-note{margin:20px 0;padding:20px;border:1px solid #bf89f344;border-radius:18px;background:linear-gradient(140deg,#8a40c61a,#09071555)}
.fnf-flight-panel .fnf-native-options-note h3{margin:0 0 12px;color:#ead9ff;font-size:16px}
.fnf-flight-panel .fnf-native-options-note p{font-size:12px;line-height:1.7;color:#c8b8d9;margin:10px 0}
.fnf-native-options-note strong{color:#d5ffa7}

/* Independent game tab: retain the Atrozix toolbar/overlay and give the
   renderer the viewport without painting the mod selector behind it. */
.fnf-player-tab .game-dialog[open]{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none}
.fnf-player-tab .game-dialog::backdrop{background:#07040b;backdrop-filter:none}
.fnf-player-tab:has(.game-dialog[open])>.page,
.fnf-player-tab:has(.game-dialog[open])>.stars,
.fnf-player-tab:has(.game-dialog[open])>.skip{display:none}
.fnf-selector.selector-backgrounded *,
.fnf-selector.selector-backgrounded *::before,
.fnf-selector.selector-backgrounded *::after{animation-play-state:paused!important}
#launch-status a[data-fnf-open-tab]{display:inline-block;margin-top:8px;padding:10px 14px;border:1px solid var(--purple);border-radius:9px;color:var(--text);background:#291637;text-decoration:underline}

/* A session is a standalone game surface, not a second catalogue page. */
.fnf-player-tab{min-height:100dvh;overflow:hidden;background:#07040b}
.fnf-session-shell{width:min(440px,calc(100% - 40px));min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;text-align:center;padding:30px 0}
.fnf-session-shell[hidden]{display:none}
.fnf-session-shell h1{margin:0;max-width:100%;font-size:clamp(22px,5vw,32px);letter-spacing:-.6px;line-height:1.3}
.fnf-session-shell .launch-status{margin:0;min-height:1.6em;font-size:13px;line-height:1.7;color:#c7aedc}
.session-pulse{width:38px;height:38px;border:2px solid #b184ff20;border-top-color:#b184ff;border-radius:50%;animation:load-spin 1s linear infinite}
.fnf-session-shell[data-state="closed"] .session-pulse,.fnf-session-shell[data-state="idle"] .session-pulse,.fnf-session-shell[data-state="error"] .session-pulse{display:none}
.session-actions{display:grid;gap:10px;width:min(290px,100%)}
.session-actions button,.session-actions a{min-height:44px;display:grid;place-items:center;padding:10px 14px;border:1px solid #b184ff44;border-radius:9px;background:#b184ff12;color:#e6d2ff;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;text-decoration:none}
.session-actions .play-button{background:linear-gradient(120deg,#b184ff,#7844c5);color:#fff}
.fnf-session-shell[data-state="loading"] .session-actions{visibility:hidden}
.fnf-session-shell .display-mode-label{margin:0;font-size:10px}
@media(prefers-reduced-motion:reduce){.session-pulse{animation:none}}
