/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@font-face{font-family:Phira UI;src:url(/phira/font.ttf)format("truetype");font-display:swap}@font-face{font-family:Phira Bold;src:url(/phira/bold.ttf)format("truetype");font-display:swap}@font-face{font-family:Phigros;src:url(/phira/phigros.ttf)format("truetype");font-display:swap}:root{--cyan:#58e9e2;--cyan-soft:#b9fffb;--ink:#080a11;--panel:#0f121dd1;--panel-light:#ffffff1a;--line:#ffffff38;--muted:#eef5ff9e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body{overscroll-behavior:none;color:#f7fbff;touch-action:none;background:#030409;width:100%;height:100%;margin:0;font-family:Phira UI,Noto Sans SC,Microsoft YaHei,Arial,sans-serif;overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation}.viewport-root{background:#030409;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.orientation-shell{position:absolute;overflow:hidden}.landscape-shell{isolation:isolate;background:#090b12;width:100dvw;min-width:0;height:100dvh;min-height:0;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 56px #000000c7}.screen,.game-stage{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.home-screen,.detail-screen,.result-screen{background:radial-gradient(circle at 72% 28%,#3f568752,#0000 34%),linear-gradient(130deg,#111520 0%,#080a11 55%,#04050a 100%)}.home-backdrop{filter:saturate(.72)brightness(.72);background:linear-gradient(90deg,#05070dfa 0%,#05070d8f 44%,#05070dc7 100%),url(/phira/background.jpg) 50%/cover;position:absolute;inset:-8%;transform:scale(1.05)}.home-backdrop:after,.result-art:after{content:"";background:repeating-linear-gradient(116deg,#0000 0 54px,#5ceee409 55px 56px);position:absolute;inset:0}.home-header{z-index:2;top:max(18px, env(safe-area-inset-top));left:max(26px, env(safe-area-inset-left));right:max(26px, env(safe-area-inset-right));justify-content:space-between;align-items:flex-start;display:flex;position:absolute}.brand-lockup{letter-spacing:.06em;text-shadow:0 3px 18px #0000008c;align-items:baseline;gap:8px;display:flex}.brand-lockup span{letter-spacing:-.055em;font-size:clamp(34px,4.8vw,72px);font-weight:300;transform:skew(-8deg)}.brand-lockup b{color:var(--cyan);letter-spacing:.22em;font-size:clamp(13px,1.5vw,22px)}.brand-lockup small{color:#ffffff70;text-transform:uppercase;align-self:flex-end;margin:0 0 8px 6px;font-size:clamp(8px,.85vw,12px)}.brand-lockup.large span{font-size:clamp(48px,8vw,96px)}.local-profile{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:left;clip-path:polygon(7px 0,100% 0,100% 100%,0 100%,0 7px);background:#090c139e;border-radius:4px;align-items:center;gap:10px;min-width:220px;padding:8px 15px 8px 9px;display:flex}.avatar-mark{color:#061010;background:linear-gradient(135deg,#4ee5dd,#45528b);place-items:center;width:38px;height:38px;font-size:21px;font-weight:900;display:grid;transform:skew(-7deg)}.local-profile>span:last-child{gap:2px;display:grid}.local-profile b{font-size:13px}.local-profile small{color:var(--muted);letter-spacing:.05em;font-size:9px}.home-grid{z-index:2;left:max(5.3vw, env(safe-area-inset-left));right:max(5.3vw, env(safe-area-inset-right));grid-template-columns:minmax(340px,1.35fr) minmax(250px,.65fr);gap:clamp(22px,4vw,68px);display:grid;position:absolute;top:25%;bottom:11%}.play-board{text-align:left;clip-path:polygon(0 0,calc(100% - 44px) 0,100% 44px,100% 100%,28px 100%,0 calc(100% - 28px));background:#131722;border:1px solid #ffffff57;min-height:0;padding:0;position:relative;overflow:hidden;box-shadow:0 22px 50px #00000059}.play-board-art{filter:contrast(1.05)saturate(.78);background:linear-gradient(90deg,#070a1047,#070a10b3),url(/phira/background.jpg) 50%/cover;transition:all .25s;position:absolute;inset:0}.play-board:hover .play-board-art,.play-board:active .play-board-art{filter:contrast(1.1)saturate();transform:scale(1.025)}.play-board:after{content:"";background:linear-gradient(90deg, var(--cyan), transparent 82%);height:5px;position:absolute;bottom:0;left:0;right:0}.play-arrow{width:clamp(56px,6vw,92px);height:clamp(56px,6vw,92px);color:var(--cyan-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03070b61;border:2px solid #ffffffc7;border-radius:50%;place-items:center;font-size:clamp(22px,2.3vw,34px);display:grid;position:absolute;top:50%;left:7%;transform:translateY(-50%)}.play-board>div:last-child{margin-left:clamp(78px,8vw,120px);display:grid;position:absolute;bottom:8%;left:7%}.play-board b{letter-spacing:-.04em;font-size:clamp(24px,3.2vw,50px);font-weight:500}.play-board small{color:var(--cyan-soft);letter-spacing:.55em;font-size:clamp(9px,1vw,14px)}.home-menu{grid-template-rows:repeat(4,1fr);gap:clamp(7px,1.3vh,14px);min-height:0;display:grid}.home-menu button{text-align:left;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 15px,100% 100%,0 100%);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:linear-gradient(100deg,#0e121ce6,#151c2975);border:0;border-left:2px solid #ffffff6b;align-items:center;gap:clamp(14px,2vw,28px);min-height:0;padding:8px 20px;display:flex;position:relative;overflow:hidden}.home-menu button:after{content:"";background:var(--cyan);width:0;height:3px;transition:width .18s;position:absolute;bottom:0;left:0}.home-menu button:active:after,.home-menu button:hover:after{width:68%}.home-menu i{width:34px;color:var(--cyan-soft);text-align:center;place-items:center;font-size:clamp(20px,2vw,32px);font-style:normal;display:grid}.home-menu i img{object-fit:contain;filter:drop-shadow(0 0 7px #58e9e261);width:27px;height:27px}.home-menu span{gap:2px;display:grid}.home-menu b{font-size:clamp(14px,1.45vw,21px);font-weight:500}.home-menu small{color:var(--muted);letter-spacing:.15em;font-size:clamp(7px,.7vw,10px)}.home-footer{z-index:2;left:max(26px, env(safe-area-inset-left));right:max(26px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));color:#ffffff61;letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;font-size:clamp(8px,.75vw,11px);display:flex;position:absolute}.topbar,.floating-header{z-index:5;height:clamp(54px,10vh,78px);padding:max(6px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:linear-gradient(#07090ff0,#090c13b3);border-bottom:1px solid #ffffff24;align-items:center;display:flex;position:relative}.back-button,.icon-button{color:#f8ffff;background:0 0;border:0;place-items:center;width:clamp(40px,5vw,58px);height:100%;padding:0;font-size:clamp(28px,3.6vw,48px);font-weight:200;display:grid}.icon-button{color:var(--cyan-soft);margin-left:auto;font-size:clamp(22px,2.5vw,32px)}.topbar h1{letter-spacing:.06em;margin:0 4vw 0 1vw;font-size:clamp(20px,2.6vw,36px);font-weight:400}.top-tabs{align-self:stretch;align-items:stretch;gap:clamp(8px,2.3vw,30px);display:flex}.top-tabs button{color:#ffffff7a;background:0 0;border:0;min-width:clamp(50px,7vw,92px);padding:0 8px;font-size:clamp(11px,1.35vw,18px);position:relative}.top-tabs button:after{content:"";background:var(--cyan);height:3px;transition:transform .15s;position:absolute;bottom:-1px;left:10%;right:10%;transform:scaleX(0)}.top-tabs button.active{color:#fff}.top-tabs button.active:after{transform:scaleX(1)}.library-screen,.settings-screen,.history-screen{background:radial-gradient(circle at 74% 5%,#4b699a38,#0000 30%),linear-gradient(145deg,#111520,#070910 72%)}.library-tools{height:clamp(48px,8vh,64px);padding:7px max(4vw, env(safe-area-inset-right)) 6px max(4vw, env(safe-area-inset-left));background:#080a117a;justify-content:space-between;align-items:center;display:flex}.library-tools form{background:#ffffff0d;border-bottom:1px solid #ffffff57;align-items:center;width:min(54%,620px);height:100%;display:flex}.library-tools form>span{color:var(--cyan-soft);padding:0 12px;font-size:22px}.library-tools input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;font-size:clamp(11px,1.2vw,16px)}.library-tools form button{min-width:66px;color:var(--cyan-soft);background:#58e9e229;border:0;align-self:stretch;font-size:12px}.library-tools form .search-clear{color:#ffffffb8;background:0 0;min-width:38px;font-size:20px}.source-status,.history-summary{color:var(--muted);letter-spacing:.08em;font-size:clamp(9px,.9vw,13px)}.chart-grid{height:calc(100% - clamp(102px,18vh,142px));padding:clamp(12px, 2vh, 20px) max(4vw, env(safe-area-inset-right)) clamp(34px, 5vh, 50px) max(4vw, env(safe-area-inset-left));scrollbar-width:thin;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:118px;align-content:start;gap:clamp(10px,1.7vw,20px);transition:opacity .15s;display:grid;overflow-y:auto}.access-screen{padding:max(22px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));place-items:center;display:grid;overflow:auto}.access-backdrop{filter:blur(16px)saturate(.7);background:linear-gradient(120deg,#02050a80,#02050aeb),url(/phira/abstract.jpg) 50%/cover;position:absolute;inset:-8%;transform:scale(1.12)}.access-card{z-index:1;border-top:2px solid var(--cyan);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);background:linear-gradient(135deg,#0c1019f5,#070a11eb);width:min(660px,78vw);min-height:270px;padding:clamp(24px,5vh,42px) clamp(28px,5vw,58px);position:relative;box-shadow:0 24px 80px #00000094}.access-card .brand-lockup{margin-bottom:clamp(18px,3vh,28px)}.access-card h1{margin:0 0 6px;font-size:clamp(20px,2.6vw,34px);font-weight:300}.access-card p{color:var(--muted);margin:0 0 18px;font-size:clamp(9px,.9vw,12px)}.access-card form{grid-template-columns:1fr auto;gap:10px;display:grid}.access-card form h1,.access-card form p{grid-column:1/-1}.access-card form input{color:#fff;background:#00000047;border:1px solid #ffffff38;outline:0;min-width:0;height:clamp(38px,7vh,50px);padding:0 15px;font-size:16px}.access-card form input:focus{border-color:var(--cyan)}.access-card form .phira-button{min-height:38px}.access-error{color:#ff9fac;margin-top:10px;font-size:11px;display:block}.access-checking{color:var(--muted);align-items:center;gap:14px;font-size:12px;display:flex}.access-checking i{border:2px solid #58e9e233;border-top-color:var(--cyan);width:26px;height:26px;animation:.9s linear infinite spin}.role-picker>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.role-picker button{color:#fff;background:linear-gradient(135deg,#ffffff14,#58e9e20f);border:1px solid #ffffff2e;place-items:center;gap:6px;min-height:clamp(76px,16vh,112px);display:grid}.role-picker button b{color:var(--cyan-soft);font-size:clamp(24px,4vw,42px);font-weight:300}.role-picker button span{letter-spacing:.08em;font-size:clamp(11px,1.2vw,15px)}.chart-grid.is-loading{opacity:.42}.chart-card{text-align:left;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);background:linear-gradient(110deg,#1d2331f0,#0e111be6);border:1px solid #ffffff2e;border-left:2px solid #ffffff7a;grid-template-columns:42% 1fr;min-height:118px;padding:0;display:grid;position:relative;overflow:hidden}.chart-card:after{content:"";background:var(--cyan);transform-origin:0;width:45%;height:3px;transition:transform .15s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.chart-card:active:after,.chart-card:hover:after{transform:scaleX(1)}.chart-art{background:linear-gradient(135deg, #25ddd34d, #161c2fcc), var(--chart-art,linear-gradient(135deg, #25575b, #232943 68%, #0c101b)) center / cover;min-width:0;height:100%;position:relative}.chart-art:before{content:"";background:linear-gradient(115deg,#0000 42%,#07090fa8);position:absolute;inset:0}.chart-art>span{z-index:1;color:var(--cyan-soft);letter-spacing:.14em;background:#03080ca8;padding:2px 7px;font-size:9px;position:absolute;bottom:7px;left:8px}.chart-card-info{flex-direction:column;min-width:0;padding:clamp(12px,1.3vw,18px) 55px 10px clamp(12px,1.4vw,18px);display:flex}.chart-card-info b{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(13px,1.4vw,19px);font-weight:500;line-height:1.25;overflow:hidden}.chart-card-info span,.chart-card-info small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(8px,.8vw,11px);line-height:1.5;overflow:hidden}.chart-card-info small{color:#ffffff5c;margin-top:auto}.difficulty{text-align:right;min-width:38px;display:grid;position:absolute;top:10px;right:10px}.difficulty span{color:var(--cyan);font-size:9px}.difficulty b{font-size:clamp(16px,1.8vw,24px);font-weight:400}.chart-card em{color:#58e9e29e;letter-spacing:.16em;font-size:8px;font-style:normal;position:absolute;bottom:8px;right:10px}.empty-state{min-height:150px;color:var(--muted);text-align:center;grid-column:1/-1;align-self:center;place-items:center;gap:8px;display:grid}.empty-state b{color:#ffffffc7;font-size:clamp(14px,1.8vw,22px);font-weight:400}.empty-state span{font-size:clamp(9px,.95vw,13px)}.pagination{left:50%;bottom:max(8px, env(safe-area-inset-bottom));z-index:4;background:#06080dd1;border:1px solid #ffffff1f;align-items:center;gap:12px;padding:3px 7px;display:flex;position:absolute;transform:translate(-50%)}.pagination button{width:34px;height:27px;color:var(--cyan-soft);background:#ffffff14;border:0;font-size:21px}.pagination button:disabled{opacity:.25}.pagination span{min-width:68px;color:var(--muted);text-align:center;font-size:10px}.detail-screen{--detail-art:linear-gradient(135deg, #25575b, #232943)}.detail-backdrop{background:var(--detail-art) center bottom / cover no-repeat;position:absolute;inset:0}.detail-backdrop:after{content:"";background:#05070c8f;position:absolute;inset:0}.floating-header{background:#05070c5c;border:0;position:absolute;top:0;left:0;right:0}.floating-header>span{color:#ffffff8a;letter-spacing:.2em;margin-left:10px;font-size:10px}.detail-layout{z-index:2;inset:clamp(60px, 11vh, 86px) max(5vw, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(5vw, env(safe-area-inset-left));display:block;position:absolute;overflow-y:auto}.detail-art{clip-path:polygon(0 0,calc(100% - 35px) 0,100% 35px,100% 100%,24px 100%,0 calc(100% - 24px));border:1px solid #ffffff52;align-self:stretch;min-height:0;box-shadow:0 28px 60px #00000075}.detail-art>span{display:none}.detail-copy{flex-direction:column;width:100%;height:auto;min-height:100%;padding:1vh 0 0;display:flex}.song-heading{border-bottom:1px solid #ffffff40;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:clamp(8px,1.5vh,16px);display:flex}.song-heading p,.song-heading h1{margin:0}.song-heading p{color:var(--muted);font-size:clamp(9px,.9vw,13px)}.song-heading h1{letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;max-width:76vw;font-size:clamp(25px,4.2vw,62px);font-weight:300;line-height:1.1;overflow:hidden}.level-badge{border-left:3px solid var(--cyan);text-align:right;min-width:clamp(68px,7vw,96px);padding-left:14px;display:grid}.level-badge span{color:var(--cyan-soft);letter-spacing:.16em;font-size:clamp(11px,1.1vw,15px)}.level-badge b{font-size:clamp(27px,3.4vw,48px);font-weight:300}.credits{gap:clamp(28px,5vw,68px);padding:clamp(9px,1.7vh,16px) 0;display:flex}.credits span{font-size:clamp(10px,1.05vw,14px);display:grid}.credits small{color:var(--muted);font-size:8px}.description{color:#ffffffd1;white-space:pre-wrap;background:#070a1052;flex:none;min-height:clamp(54px,12vh,140px);margin:0;padding:clamp(10px,1.8vh,18px) clamp(12px,1.6vw,24px);font-size:clamp(11px,1.05vw,15px);line-height:1.68;overflow:visible}.tag-row{flex-wrap:wrap;gap:5px;margin:clamp(8px,1.5vh,14px) 0;display:flex}.tag-row span{color:#b9fffbbf;border:1px solid #58e9e24d;padding:3px 8px;font-size:8px}.record-strip{background:#080b1294;border-left:2px solid #ffffff57;align-items:center;gap:clamp(20px,3vw,44px);margin-top:auto;padding:clamp(8px,1.3vh,14px) 14px;display:flex}.record-strip>span{display:grid}.record-strip small{color:var(--muted);font-size:8px}.record-strip b{font-size:clamp(14px,1.7vw,23px);font-weight:400}.record-strip button{color:var(--cyan-soft);background:0 0;border:0;margin-left:auto;font-size:10px}.duel-best{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:stretch;gap:8px;margin-top:clamp(6px,1vh,12px);display:grid}.best-card{border:0;border-left:2px solid var(--cyan);min-width:0;color:inherit;text-align:left;background:#080b12a3;justify-content:space-between;align-items:center;padding:7px 10px 7px 12px;display:flex}.best-card:disabled{cursor:default;opacity:.72}.best-card.opponent{border-left-color:#ffec9fd1}.best-card>span{min-width:0;display:grid}.best-card small{color:var(--muted);font-size:7px}.best-card b{letter-spacing:.05em;font-size:clamp(13px,1.6vw,22px);font-weight:400}.best-card em{color:var(--cyan-soft);font-size:8px;font-style:normal}.best-card img{object-fit:contain;width:clamp(34px,4.2vw,58px);height:clamp(34px,4.2vw,58px)}.duel-best>button{min-width:92px;color:var(--cyan-soft);background:#58e9e212;border:1px solid #58e9e247;padding:6px 9px;font-size:8px}.detail-actions,.result-actions{justify-content:flex-end;gap:10px;padding-top:clamp(10px,2vh,18px);display:flex}.practice-overlay{z-index:80;padding:max(18px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:#020408ad;place-items:center;display:grid;position:absolute;inset:0}.practice-dialog{background:#090d15f5;border:1px solid #70fff76b;border-left-width:3px;width:min(760px,86vw);max-height:88vh;padding:clamp(16px,2.5vw,30px);overflow:auto;box-shadow:0 28px 90px #00000094}.practice-dialog header,.practice-dialog footer{justify-content:space-between;align-items:center;gap:14px;display:flex}.practice-dialog h2,.practice-dialog p{margin:0}.practice-dialog h2{font-size:clamp(22px,3vw,38px);font-weight:300}.practice-dialog header small{color:var(--cyan-soft);letter-spacing:.22em;font-size:8px}.practice-dialog header>button{color:#ffffffad;background:0 0;border:0;font-size:30px}.practice-dialog>p{color:var(--muted);margin-top:8px;font-size:clamp(9px,.9vw,12px)}.practice-fields{grid-template-columns:minmax(130px,.8fr) minmax(130px,.8fr) minmax(220px,1.4fr);gap:10px;margin:clamp(16px,3vh,26px) 0;display:grid}.practice-fields label{background:#ffffff0e;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 12px;display:grid}.practice-fields label>span{color:var(--muted);grid-column:1/-1;font-size:8px}.practice-fields input[type=number]{color:#fff;width:100%;min-width:0;font:inherit;background:0 0;border:0;border-bottom:1px solid #ffffff42}.practice-fields input[type=range]{width:100%;min-width:0;accent-color:var(--cyan)}.practice-fields em,.practice-fields strong{color:var(--cyan-soft);font-size:10px;font-style:normal;font-weight:500}.practice-dialog footer{justify-content:flex-end}.phira-button{clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#131823db;border:1px solid #ffffff47;min-width:clamp(92px,12vw,160px);min-height:clamp(34px,6vh,48px);padding:7px 18px;font-size:clamp(10px,1.05vw,14px)}.phira-button.primary{color:#021312;background:linear-gradient(120deg,#2fcfc6de,#2a7d82d9);border-color:#78fff7ad;font-weight:700}.phira-button.danger{color:#ffbac1;border-color:#ff7a8775}.phira-button:disabled{cursor:wait;opacity:.5}.play-now{min-width:clamp(140px,17vw,220px);font-size:clamp(12px,1.25vw,17px)}.settings-list{height:calc(100% - clamp(54px,10vh,78px));padding:clamp(14px, 3vh, 28px) max(10vw, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(10vw, env(safe-area-inset-left));overflow-y:auto}.setting-section-title{color:var(--cyan);letter-spacing:.14em;margin-bottom:5px;font-size:clamp(10px,1vw,13px)}.account-title{margin-top:clamp(18px,4vh,30px)}.account-row{gap:18px}.account-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.account-actions button{min-height:30px;color:var(--cyan-soft);background:#58e9e214;border:1px solid #58e9e259;padding:5px 10px;font-size:9px}.account-actions button:disabled{opacity:.38}.account-actions .logout-button{color:#ffbac1;border-color:#ff7a8761}.phira-account-row>button,.phira-login-form>button{min-height:32px;color:var(--cyan-soft);background:#58e9e21a;border:1px solid #58e9e26b;padding:6px 12px;font-size:9px}.phira-account-row>button{color:#ffbac1;border-color:#ff7a8761}.phira-login-form{background:linear-gradient(90deg,#fff1,#ffffff05);border-bottom:1px solid #ffffff1c;grid-template-columns:minmax(190px,1fr) minmax(130px,.6fr) minmax(130px,.6fr) auto;align-items:center;gap:9px;min-height:clamp(58px,11vh,80px);padding:9px clamp(16px,2vw,28px);display:grid}.phira-login-form>span{gap:3px;display:grid}.phira-login-form b{font-size:clamp(11px,1.2vw,16px);font-weight:400}.phira-login-form small{color:var(--muted);font-size:clamp(8px,.75vw,10px)}.phira-login-form input{color:#fff;background:#0000003d;border:1px solid #fff3;min-width:0;height:34px;padding:0 10px;font-size:10px}.setting-row{background:linear-gradient(90deg,#fff1,#ffffff05);border-bottom:1px solid #ffffff1c;justify-content:space-between;align-items:center;min-height:clamp(52px,10vh,74px);padding:9px clamp(16px,2vw,28px);display:flex}.setting-row>span{gap:3px;display:grid}.setting-row b{font-size:clamp(11px,1.2vw,16px);font-weight:400}.setting-row small{color:var(--muted);font-size:clamp(8px,.75vw,10px)}.setting-row strong{color:var(--cyan-soft);font-size:clamp(10px,1vw,13px);font-weight:400}.choice-row{gap:18px}.segmented-control{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.segmented-control button,.aspect-setting select{color:#ffffffb8;background:#0000003d;border:1px solid #fff3;min-height:32px;padding:5px 10px;font-size:9px}.segmented-control button.active{color:var(--cyan-soft);background:#58e9e226;border-color:#58e9e2a8}.aspect-setting{flex-wrap:wrap}.aspect-setting select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-width:145px}.custom-aspect{align-items:center;gap:5px;display:flex}.custom-aspect input{color:#fff;text-align:center;background:#0000003d;border:1px solid #fff3;width:64px;height:32px}.slider-row input{width:min(45%,430px);accent-color:var(--cyan)}.toggle-row{position:relative}.toggle-row input{opacity:0;position:absolute}.toggle-row i{background:#0000004d;border:1px solid #ffffff59;width:46px;height:23px;position:relative}.toggle-row i:after{content:"";background:#ffffff8c;width:15px;height:15px;transition:all .16s;position:absolute;top:3px;left:3px}.toggle-row input:checked+i{background:#58e9e23d;border-color:#58e9e2cc}.toggle-row input:checked+i:after{background:var(--cyan);left:26px}.about-panel{border-left:3px solid var(--cyan);background:#ffffff0e;max-width:850px;margin:0 auto;padding:clamp(18px,4vh,42px)}.about-panel p,.about-panel li{color:#ffffffad;font-size:clamp(9px,1vw,14px);line-height:1.7}.about-panel a{color:var(--cyan-soft);font-size:clamp(10px,1vw,14px)}.history-summary{margin-left:auto}.history-role-tabs{gap:5px;margin-left:clamp(10px,2vw,28px);display:flex}.history-role-tabs button{min-height:28px;color:var(--muted);background:#ffffff0a;border:1px solid #ffffff29;padding:4px 10px;font-size:8px}.history-role-tabs button.active{color:var(--cyan-soft);background:#58e9e21f;border-color:#58e9e28c}.text-button{background:0 0;border:0;margin-left:20px;font-size:11px}.danger-text{color:#ff98a4}.history-list{height:calc(100% - clamp(54px,10vh,78px));padding:clamp(12px, 2.5vh, 22px) max(8vw, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(8vw, env(safe-area-inset-left));overflow-y:auto}.history-entry{background:linear-gradient(90deg,#ffffff12,#ffffff04);border-bottom:1px solid #ffffff1c;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid}.history-main{text-align:left;background:0 0;border:0;grid-template-columns:66px minmax(0,1fr) minmax(150px,.55fr);align-items:center;width:100%;min-height:clamp(55px,10vh,76px);padding:6px 20px 6px 0;display:grid}.upload-state{min-width:92px;color:var(--muted);align-content:center;justify-items:end;gap:5px;padding:7px 12px;font-size:8px;display:grid}.upload-state button{min-width:52px;min-height:25px;color:var(--cyan-soft);background:#58e9e21a;border:1px solid #58e9e273;padding:3px 8px;font-size:8px}.record-tools{gap:5px;display:flex}.upload-state .replay-button{color:#ffec9f;border-color:#ffec9f66}.upload-state button:disabled{cursor:default;opacity:.38}.upload-uploaded{color:var(--cyan-soft)}.upload-failed{color:#ffbac1}.grade{color:var(--cyan-soft);text-align:center;font-size:clamp(24px,3vw,42px);font-weight:200}.grade-v,.grade-φ{color:#fff7b0}.grade-s{color:#94fff8}.history-song,.history-score{min-width:0;display:grid}button.history-song{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:6px 8px}:is(button.history-song:hover b,button.history-song:focus-visible b){color:var(--cyan-soft)}.history-song b{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(12px,1.3vw,18px);font-weight:400;overflow:hidden}.history-song small,.history-score small{color:var(--muted);font-size:clamp(8px,.75vw,10px)}.history-score{text-align:right}.history-score b{letter-spacing:.08em;font-size:clamp(15px,1.8vw,24px);font-weight:400}.game-stage,.game-canvas,.game-effect-canvas{touch-action:none;width:100%;height:100%}.game-stage{--game-left:0px;--game-right:0px;--game-top:0px;--game-bottom:0px;--game-center-x:50%;--game-combo-top:19%;background:#000}.game-canvas{display:block}.game-effect-canvas{z-index:1;visibility:hidden;pointer-events:none;display:block;position:absolute;inset:0}.game-hud{z-index:2;pointer-events:none;position:absolute;inset:0}.game-hud.is-paused{visibility:hidden}.pause-button{top:max(calc(var(--game-top) + 12px), env(safe-area-inset-top));left:max(calc(var(--game-left) + 15px), env(safe-area-inset-left));z-index:2;color:#ffffffb8;pointer-events:auto;background:#04070c6b;border:0;place-items:center;width:42px;height:34px;padding:0;font-size:18px;line-height:1;display:grid;position:absolute}.pause-button img{object-fit:contain;opacity:.78;width:23px;height:23px;display:block}.game-title{top:max(calc(var(--game-top) + 13px), env(safe-area-inset-top));left:max(calc(var(--game-left) + 72px), calc(env(safe-area-inset-left) + 60px));text-shadow:0 2px 8px #000;display:grid;position:absolute}.game-title b{font-size:clamp(11px,1.1vw,15px);font-weight:400}.game-title span{color:#ffffff94;font-size:8px}.score-box{top:max(calc(var(--game-top) + 12px), env(safe-area-inset-top));right:max(calc(var(--game-right) + 20px), env(safe-area-inset-right));text-align:right;text-shadow:0 2px 8px #000;display:grid;position:absolute}.score-box b{letter-spacing:.08em;font-size:clamp(20px,2.5vw,34px);font-weight:300}.score-box span{color:#ffffffa6;font-size:9px}.combo-box{top:var(--game-combo-top);left:var(--game-center-x);text-align:center;text-shadow:0 2px 9px #000;display:grid;position:absolute;transform:translate(-50%)}.combo-box b{font-size:clamp(24px,3.6vw,52px);font-weight:200;line-height:.95}.combo-box span{color:#ffffffb3;letter-spacing:.25em;font-size:8px}.countdown{inset:var(--game-top) var(--game-right) var(--game-bottom) var(--game-left);color:#fff;text-shadow:0 0 24px #58e9e294;background:#04060b38;place-items:center;font-size:clamp(64px,10vw,150px);font-weight:200;display:grid;position:absolute}.countdown span{font-family:Phigros,Phira UI,sans-serif;animation:.46s both ready-pulse}.start-game-button{color:#fff;text-align:center;background:#070b13e6;border:0;border-top:2px solid #72eee6;gap:5px;min-width:min(44vw,420px);padding:18px 38px 16px;display:grid;box-shadow:0 10px 36px #00000080}.start-game-button b{letter-spacing:.12em;font-family:Phigros,Phira UI,sans-serif;font-size:clamp(18px,2.6vw,34px);font-weight:400}.start-game-button span{color:#ffffff9e;font-family:Phira UI,sans-serif;font-size:clamp(9px,.9vw,12px);animation:none}.music-warning{z-index:5;right:max(18px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));color:#ffe4ad;background:#180e08e0;border:1px solid #ffd282b3;padding:9px 14px;font-size:11px;position:absolute}.pause-layer{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04060b94;place-items:center;display:grid;position:absolute;inset:0}.pause-panel{border-top:2px solid var(--cyan);background:#0c1019eb;gap:10px;width:min(35vw,360px);min-width:240px;padding:22px 30px 28px;display:grid}.pause-panel p{letter-spacing:.14em;text-align:center;margin:0 0 8px;font-size:clamp(24px,3vw,44px);font-weight:200}.pause-panel .phira-button{width:100%}.phira-pause-panel{clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);grid-template-columns:repeat(3,minmax(0,1fr));width:min(62vw,680px);padding:26px}.phira-pause-panel p{grid-column:1/-1}.pause-action{color:#ffffffdb;touch-action:none;background:linear-gradient(135deg,#ffffff14,#58e9e20f);border:1px solid #ffffff29;place-items:center;gap:8px;min-height:92px;display:grid;position:relative;overflow:hidden}.pause-action:before{width:var(--hold-progress,0%);content:"";pointer-events:none;background:#58e9e233;transition:width 80ms linear;position:absolute;inset:0 auto 0 0}.pause-action>*{z-index:1;position:relative}.pause-action small{z-index:1;color:#ffffff8c;font-size:9px;position:relative}.pause-action:active{background:#58e9e230}.pause-action img{object-fit:contain;width:38px;height:38px}.pause-action span{font-size:11px}.resume-countdown-overlay{z-index:20;color:#fff;text-shadow:0 0 24px #58e9e294;pointer-events:auto;background:#04060b3d;place-items:center;font-size:clamp(88px,16vw,220px);font-weight:200;display:grid;position:absolute;inset:0}.resume-countdown-overlay span{font-family:Phigros,Phira UI,sans-serif;animation:.9s both ready-pulse}.result-art{background:linear-gradient(90deg, #04060a38, #04060adb 58%), var(--result-art,linear-gradient(135deg, #25575b, #232943)) center / cover;filter:saturate(.8)brightness(.62);position:absolute;inset:-5%}.result-panel{top:max(6vh, env(safe-area-inset-top));right:max(8vw, env(safe-area-inset-right));bottom:max(5vh, env(safe-area-inset-bottom));border-left:3px solid var(--cyan);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#090c13d6;flex-direction:column;width:min(46vw,620px);padding:clamp(16px,3vh,28px) clamp(26px,3vw,46px);display:flex;position:absolute;overflow-y:auto}.result-label{color:var(--cyan);letter-spacing:.4em;font-size:9px}.result-grade{color:var(--cyan-soft);opacity:.88;font-size:clamp(58px,9vw,128px);font-weight:200;line-height:1;position:absolute;top:8%;right:5%}.result-rank-image{object-fit:contain;filter:drop-shadow(0 5px 18px #0000007a);width:clamp(74px,10vw,142px);height:clamp(74px,10vw,142px);position:absolute;top:7%;right:5%}.result-panel h1{text-overflow:ellipsis;white-space:nowrap;max-width:72%;margin:8px 0 0;font-size:clamp(21px,3vw,42px);font-weight:300;overflow:hidden}.result-panel>p{color:var(--muted);margin:3px 0;font-size:10px}.result-score{letter-spacing:.07em;margin-top:auto;font-size:clamp(32px,5vw,70px);font-weight:200;line-height:1}.result-panel>strong{color:var(--cyan-soft);font-size:clamp(15px,1.8vw,24px);font-weight:400}.judge-grid{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:clamp(8px,1.5vh,14px);display:grid}.judge-grid span{color:var(--muted);font-size:clamp(6px,.65vw,9px);display:grid}.judge-grid b{color:#fff;font-size:clamp(12px,1.4vw,19px);font-weight:400}.result-actions{margin-top:auto}.result-upload-prompt{border-left:2px solid var(--cyan);background:#58e9e214;gap:5px;margin-top:clamp(7px,1.2vh,12px);padding:8px 10px;display:grid}.result-upload-prompt>b{font-size:clamp(10px,1vw,13px);font-weight:400}.result-upload-prompt>small{color:var(--muted);font-size:clamp(7px,.7vw,9px)}.result-upload-prompt>div{gap:7px;display:flex}.result-upload-prompt .phira-button{min-height:28px;padding-block:4px}.result-uploaded{color:var(--cyan-soft);margin-top:8px;font-size:10px}.ai-play-button{color:#ddd1ff!important;background:linear-gradient(135deg,#6c4ebf47,#58e9e21f)!important;border-color:#a78bfaad!important}.ai-play-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ai-play-dialog{border-color:#a78bfab8;width:min(900px,92vw)}.ai-play-dialog>p{max-width:760px}.ai-model-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}.ai-model-card{min-height:130px;color:var(--muted);text-align:left;background:#ffffff09;border:1px solid #ffffff1f;grid-template-columns:auto 1fr;gap:6px 14px;padding:14px;display:grid}.ai-model-card.ready{color:#fff;background:linear-gradient(135deg,#7b5cd329,#58e9e20d);border-color:#a78bfa85}.ai-model-card:disabled{cursor:default;opacity:.68}.ai-model-role{flex-direction:column;grid-row:1/4;align-items:center;gap:7px;min-width:54px;display:flex}.ai-model-role i{color:#ddd1ff;border:1px solid #a78bfab8;border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;font-style:normal;display:grid}.ai-model-role b{font-size:8px;font-weight:400}.ai-model-card strong{font-size:clamp(13px,1.4vw,18px);font-weight:500}.ai-model-card small{color:var(--muted);font-size:clamp(9px,.85vw,12px);line-height:1.55}.ai-model-card em{color:#cbbcff;letter-spacing:.1em;align-self:end;font-size:9px;font-style:normal}.ai-training-tools{background:#a78bfa14;border-left:2px solid #a78bfa;justify-content:space-between;align-items:center;gap:18px;padding:12px 14px;display:flex}.ai-training-tools>span{gap:3px;display:grid}.ai-training-tools b{font-size:11px;font-weight:500}.ai-training-tools small{color:var(--muted);font-size:9px}.ai-training-tools>div{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.ai-training-tools button,.ai-training-tools a,.trainer-readme{color:#ddd1ff;background:#a78bfa14;border:1px solid #a78bfa73;min-height:30px;padding:6px 10px;font-size:9px;text-decoration:none}.trainer-readme{margin-right:auto}.ai-record{background:linear-gradient(90deg,#7c5cd31f,#ffffff04);border-left:2px solid #a78bfa}.ai-record-tag{color:#d8cbff;vertical-align:middle;border:1px solid #a78bfa80;margin-left:8px;padding:2px 5px;font-size:7px;font-style:normal;display:inline-block}.upload-state .delete-ai-record{color:#ffb7c3;background:#ff5a7814;border-color:#ff80977a}.result-ai-tag{color:#ddd1ff;background:#a78bfa1f;border-left:2px solid #a78bfa;align-self:flex-start;margin:5px 0 0;padding:3px 7px;font-size:8px}.replay-preview-layer{z-index:110;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#020408c2;place-items:center;display:grid;position:absolute;inset:0}.replay-preview-card{border-left:3px solid var(--cyan);background:linear-gradient(135deg,#131824fa,#070a11fa);width:min(760px,88vw);max-height:88vh;padding:clamp(16px,2.5vw,28px);overflow-y:auto;box-shadow:0 30px 80px #0000008c}.replay-preview-card header{justify-content:space-between;gap:18px;display:flex}.replay-preview-card header span{min-width:0}.replay-preview-card header small{color:var(--cyan);letter-spacing:.34em;font-size:8px}.replay-preview-card header h2{text-overflow:ellipsis;white-space:nowrap;margin:3px 0;font-size:clamp(19px,2.8vw,34px);font-weight:400;overflow:hidden}.replay-preview-card header p{color:var(--muted);margin:0;font-size:9px}.replay-preview-card header>button{color:#fff;background:0 0;border:0;width:36px;height:36px;font-size:28px}.replay-overview{grid-template-columns:86px repeat(3,minmax(0,1fr));align-items:center;gap:12px;margin:18px 0;display:grid}.replay-overview img{object-fit:contain;width:74px;height:74px}.replay-overview span{min-width:0;display:grid}.replay-overview small{color:var(--muted);font-size:7px}.replay-overview b{text-overflow:ellipsis;font-size:clamp(17px,2.4vw,31px);font-weight:300;overflow:hidden}.replay-judges{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.replay-judges span{color:var(--muted);background:#ffffff0d;padding:8px;font-size:7px;display:grid}.replay-judges b{color:#fff;font-size:17px;font-weight:400}.replay-preview-card footer{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.loading-layer{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--cyan-soft);letter-spacing:.34em;text-align:center;background:#04060ab8;place-content:center;gap:12px;font-size:9px;display:grid;position:absolute;inset:0}.loading-mark{border:2px solid #58e9e233;border-top-color:var(--cyan);width:46px;height:46px;margin:auto;animation:.9s linear infinite spin;transform:rotate(45deg)}.toast{z-index:120;left:50%;bottom:max(18px, env(safe-area-inset-bottom));border-left:2px solid var(--cyan);color:#ffffffdb;background:#080b12eb;max-width:72%;padding:9px 18px;font-size:clamp(9px,.9vw,13px);position:absolute;transform:translate(-50%);box-shadow:0 8px 30px #00000061}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ready-pulse{0%{opacity:0;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.compact-shell .home-grid{top:23%;bottom:9%}.compact-shell .chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-shell .detail-layout{inset-inline:max(3.5vw, env(safe-area-inset-left))}.compact-shell .settings-list,.compact-shell .history-list{padding-inline:max(4vw, env(safe-area-inset-left))}.compact-shell .topbar h1{margin-right:2vw}.compact-shell .top-tabs{gap:clamp(3px,1vw,10px)}.compact-shell .top-tabs button{min-width:clamp(42px,6vw,62px);padding-inline:4px}.compact-shell .result-panel{right:max(4vw, env(safe-area-inset-right));width:min(54vw,520px)}.compact-shell .phira-login-form{grid-template-columns:minmax(170px,1fr) minmax(110px,.55fr) minmax(110px,.55fr) auto}.compact-shell .history-main{grid-template-columns:54px minmax(0,1fr) minmax(120px,.48fr)}.compact-shell .duel-best{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.compact-shell .duel-best>button{grid-column:1/-1;min-height:26px}.portrait-shell .home-header{align-items:center}.portrait-shell .brand-lockup small{display:none}.portrait-shell .local-profile{min-width:0;max-width:56%}.portrait-shell .local-profile small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portrait-shell .home-grid{grid-template-rows:minmax(150px,.75fr) minmax(280px,1.25fr);grid-template-columns:1fr;gap:14px;top:17%;bottom:7%}.portrait-shell .play-board>div:last-child{bottom:10%;left:5%}.portrait-shell .home-menu{gap:8px}.portrait-shell .home-footer span:first-child{display:none}.portrait-shell .home-footer{justify-content:flex-end}.portrait-shell .topbar{height:auto;min-height:64px;padding-inline:max(10px, env(safe-area-inset-left))}.portrait-shell .topbar h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0 8px;font-size:clamp(17px,5vw,26px);overflow:hidden}.portrait-shell .top-tabs{min-width:0;overflow-x:auto}.portrait-shell .top-tabs button{min-width:52px;font-size:10px}.portrait-shell .library-tools{height:58px;padding-inline:12px}.portrait-shell .library-tools form{width:100%}.portrait-shell .source-status{display:none}.portrait-shell .chart-grid{grid-template-columns:1fr;grid-auto-rows:106px;height:calc(100% - 122px);padding:12px}.portrait-shell .detail-layout{inset:64px 14px 12px;overflow-y:auto}.portrait-shell .detail-copy{height:auto;min-height:100%}.portrait-shell .song-heading{align-items:flex-start}.portrait-shell .song-heading h1{white-space:normal;max-width:66vw;font-size:clamp(25px,8vw,44px)}.portrait-shell .credits{flex-wrap:wrap;gap:12px 28px}.portrait-shell .description{flex:none;min-height:90px;max-height:none}.portrait-shell .duel-best{grid-template-columns:1fr}.portrait-shell .duel-best>button{grid-column:auto;min-height:58px}.portrait-shell .duel-best>button:last-child{min-height:38px}.portrait-shell .detail-actions{background:linear-gradient(#0000,#05070cf5 28%);flex-wrap:wrap;padding-bottom:8px;position:sticky;bottom:0}.portrait-shell .detail-actions .phira-button{flex:42%}.portrait-shell .ai-model-grid{grid-template-columns:1fr}.portrait-shell .ai-training-tools{flex-direction:column;align-items:stretch}.portrait-shell .ai-training-tools>div{justify-content:flex-start}.portrait-shell .settings-list{height:calc(100% - 64px);padding:14px 10px 24px}.portrait-shell .setting-row{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px}.portrait-shell .slider-row input{width:100%}.portrait-shell .toggle-row{flex-direction:row;align-items:center}.portrait-shell .choice-row .segmented-control{justify-content:stretch;width:100%}.portrait-shell .segmented-control button{flex:1}.portrait-shell .aspect-setting select{width:100%}.portrait-shell .phira-login-form{grid-template-columns:1fr}.portrait-shell .account-actions{justify-content:flex-start}.portrait-shell .history-screen .topbar{grid-template-rows:48px 42px;grid-template-columns:auto minmax(0,1fr) auto;min-height:90px;display:grid}.portrait-shell .history-screen .back-button{grid-area:1/1}.portrait-shell .history-screen .topbar h1{grid-area:1/2}.portrait-shell .history-summary{grid-area:1/3}.portrait-shell .history-role-tabs{grid-area:2/1/auto/-1;grid-template-columns:1fr 1fr;align-self:stretch;margin:0;display:grid}.portrait-shell .history-role-tabs button{min-height:34px}.portrait-shell .history-list{height:calc(100% - 90px);padding:10px max(10px, env(safe-area-inset-right)) 22px max(10px, env(safe-area-inset-left))}.portrait-shell .history-entry{grid-template-columns:1fr;margin-bottom:8px}.portrait-shell .history-main{grid-template-rows:auto auto;grid-template-columns:46px minmax(0,1fr);min-height:84px;padding:7px 10px 7px 0}.portrait-shell .history-main .grade{grid-area:1/1/3;font-size:25px}.portrait-shell .history-song{grid-area:1/2;padding-block:3px}.portrait-shell .history-score{text-align:left;grid-area:2/2;padding:0 8px 3px}.portrait-shell .history-score b{font-size:18px}.portrait-shell .upload-state{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;min-width:0;padding:7px 10px;display:flex}.portrait-shell .result-panel{inset:max(3vh, env(safe-area-inset-top)) 4vw max(3vh, env(safe-area-inset-bottom));width:auto}.portrait-shell .judge-grid{grid-template-columns:repeat(3,1fr)}.portrait-shell .replay-preview-card{width:min(92vw,640px);max-height:90vh}.portrait-shell .replay-overview{grid-template-columns:64px repeat(2,minmax(0,1fr))}.portrait-shell .replay-overview img{grid-row:1/3;width:58px;height:58px}.portrait-shell .replay-judges{grid-template-columns:repeat(2,1fr)}.portrait-shell .replay-judges span:last-child{grid-column:1/-1}@media (max-height:420px),(max-width:700px){.home-header{top:8px}.brand-lockup small{display:none}.local-profile{min-width:180px;padding-block:5px}.avatar-mark{width:30px;height:30px;font-size:16px}.home-grid{grid-template-columns:1.25fr .75fr;gap:18px;top:22%;bottom:9%}.home-menu button{padding:4px 12px}.home-menu i{width:24px}.chart-grid{grid-auto-rows:106px}.chart-card{min-height:106px}.detail-layout{top:55px}.description{min-height:42px}.credits,.record-strip{padding-block:6px}.best-card{padding-block:4px}.best-card img{width:32px;height:32px}.practice-dialog{width:min(900px,92vw);padding:12px 16px}.practice-dialog>p{display:none}.practice-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0}.practice-fields label{padding:6px 9px}.ai-play-dialog>p{max-height:54px;display:block;overflow:auto}.ai-model-card{min-height:95px;padding:10px}.ai-training-tools{padding:8px 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
