@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-ext-500-normal-1Z8Q-7rh.woff2)format("woff2"),url(/assets/cinzel-latin-ext-500-normal-BxIh9iwm.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-500-normal-B-2dbOfA.woff2)format("woff2"),url(/assets/cinzel-latin-500-normal-DMNTwV-V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-ext-600-normal-BEFdM_VE.woff2)format("woff2"),url(/assets/cinzel-latin-ext-600-normal-BY9Mq9iK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2)format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-ext-400-italic-BEGvmv_3.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-400-italic-C_Uk1MUY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-400-italic-D3GtrbRZ.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-400-italic-AH1vqu4S.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-vietnamese-400-italic-BoXDRTEW.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-400-italic-CJpMwFnN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-ext-400-italic-BdEzgT7i.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-400-italic-CQvLaSWn.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-400-italic-BLh7T8o8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-italic-ClXnudBg.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-italic-DakTmaFY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-italic-DVnfXoMy.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-italic-C9gO-8KC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-italic-D3igDnAQ.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-italic-C-296ow0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#070b17;--bg-2:#0c1226;--panel:#10172ec7;--panel-solid:#111a35;--raised:#ffffff0b;--raised-hover:#ffffff16;--line:rgba(var(--gold-rgb), .2);--line-soft:#e9e3d314;--gold:#c9a45c;--gold-rgb:201, 164, 92;--gold-bright:#e6c784;--gold-bright-rgb:230, 199, 132;--primary-1:#e2c27e;--primary-2:#c49b4f;--primary-hover-1:#ecd096;--primary-hover-2:#cfa75a;--primary-ink:#1a1407;--ivory:#ece6d6;--text:#e6e1d3;--muted:#9097b0;--danger:#ff8a80;--paper:#f6f1e4;--ink:#1b1e2b;--radius:12px;--font-ui:Inter, system-ui, "Segoe UI", sans-serif;--font-brand:Cinzel, "Times New Roman", serif;--font-script:"Cormorant Garamond", Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-ui)}:root[data-theme=arcana]{--bg:#0a0818;--bg-2:#120c28;--panel:#191234cc;--panel-solid:#1a1336;--gold:#b9a2ec;--gold-rgb:185, 162, 236;--gold-bright:#e2d6ff;--gold-bright-rgb:226, 214, 255;--ivory:#efeaff;--primary-1:#d8c9ff;--primary-2:#9d84e0;--primary-hover-1:#e4d9ff;--primary-hover-2:#ab94ea;--primary-ink:#1b1233}:root[data-theme=moonglade]{--bg:#07101f;--bg-2:#0c1a30;--panel:#101e36cc;--panel-solid:#12223d;--gold:#eab3cf;--gold-rgb:234, 179, 207;--gold-bright:#ffd9ec;--gold-bright-rgb:255, 217, 236;--ivory:#f6eef7;--text:#ece6f0;--primary-1:#ffd3e7;--primary-2:#d99ac0;--primary-hover-1:#ffe0ee;--primary-hover-2:#e3a9cb;--primary-ink:#2a1222}:root[data-theme=scarlet]{--bg:#12070a;--bg-2:#1d0b10;--panel:#280e15d1;--panel-solid:#2a0f17;--gold:#de5b50;--gold-rgb:222, 91, 80;--gold-bright:#f3c27a;--gold-bright-rgb:243, 194, 122;--ivory:#f8ebe0;--text:#f0e3d8;--primary-1:#ef7b6c;--primary-2:#c03a35;--primary-hover-1:#f58f80;--primary-hover-2:#cd4840;--primary-ink:#fff4ea}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}button,a,input,select,label{touch-action:manipulation}canvas,svg,.learn-keys{-webkit-touch-callout:none}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}.app{isolation:isolate;grid-template-rows:auto 1fr auto;height:100%;display:grid;position:relative}.backdrop{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}button,select,input{font:inherit;color:inherit}.btn{border:1px solid var(--line);background:var(--raised);height:36px;color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:0 14px;font-weight:500;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--raised-hover);border-color:rgba(var(--gold-rgb), .45)}.btn:focus-visible,.play-button:focus-visible,.segmented button:focus-visible,.hand-chip:focus-visible,.swatch:focus-visible,.style-option:focus-visible,.menu-item:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default}.btn.icon{justify-content:center;width:36px;padding:0}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--raised-hover);border-color:#0000}.btn.pressed{background:rgba(var(--gold-rgb), .16);border-color:rgba(var(--gold-rgb), .6);color:var(--gold-bright)}.btn.toggle.on{color:var(--gold-bright);background:rgba(var(--gold-rgb), .14);border-color:rgba(var(--gold-rgb), .55)}.btn.small{height:28px;padding:0 10px;font-size:13px}.btn.large{border-radius:12px;height:46px;padding:0 22px;font-size:15px}.btn.primary{background:linear-gradient(180deg, var(--primary-1), var(--primary-2));border-color:var(--gold-bright);color:var(--primary-ink);box-shadow:0 6px 24px rgba(var(--gold-rgb), .28);font-weight:600}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg, var(--primary-hover-1), var(--primary-hover-2))}select{background:var(--panel-solid);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:5px 8px}.segmented{border:1px solid var(--line-soft);background:#00000047;border-radius:11px;gap:2px;padding:3px;display:inline-flex}.segmented button{height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.segmented button:hover:not(:disabled){color:var(--text)}.segmented button.active{background:rgba(var(--gold-rgb), .18);color:var(--gold-bright);box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb), .45)}.segmented button:disabled{opacity:.35;cursor:default}.segmented.full{display:flex}.segmented.full button{flex:1;justify-content:center}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:linear-gradient(#070b17eb,#070b1799);grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:10px 18px;display:grid}.brand{align-items:center;gap:12px;display:flex}.home-button{margin-left:6px}.brand-text{flex-direction:column;line-height:1.05;display:flex}.brand-name{font-family:var(--font-brand);letter-spacing:.32em;color:var(--ivory);font-size:19px;font-weight:600}.brand-tagline{font-family:var(--font-script);color:var(--gold);letter-spacing:.03em;font-size:14px;font-style:italic}.piece{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex}.piece-title{font-family:var(--font-brand);letter-spacing:.06em;color:var(--ivory);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:16px;font-weight:500;overflow:hidden}.piece-composer{font-family:var(--font-script);color:var(--gold);font-size:15px;font-style:italic}.topbar-actions{align-items:center;gap:8px;display:flex}.menu-anchor{position:relative}.menu{background:var(--panel-solid);border:1px solid var(--line);z-index:20;border-radius:12px;min-width:280px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 50px #0000008c}.menu-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px 10px 6px;font-size:11px}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px;display:flex}.menu-item:hover{background:rgba(var(--gold-rgb), .12);color:var(--gold-bright)}.menu-item svg{color:var(--gold);flex:none}.menu{min-width:360px;max-height:70vh;overflow-y:auto}.menu-text{flex-direction:column;gap:2px;min-width:0;display:flex}.menu-title{font-weight:600}.menu-sub{color:var(--muted);font-size:12px}.menu-item:hover .menu-sub{color:var(--text)}.menu-footer{border-top:1px solid var(--line-soft);color:var(--muted);margin-top:4px;padding:10px;font-size:12px;line-height:1.5}.library-menu{width:min(420px,100vw - 32px)}.library-menu .menu-footer{flex-direction:column;gap:8px;display:flex}.menu-row{align-items:center;gap:4px;display:flex}.menu-row .menu-item{flex:1;min-width:0}.menu-row .menu-title,.menu-row .menu-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-row>.btn{color:var(--muted);flex:none}.menu-row>.btn:hover{color:#ff9b8f}.menu-note{color:var(--muted);margin:0 10px 6px;font-size:12.5px;line-height:1.5}.menu-note.warn{color:#ffd9a8;background:#ffaa501a;border-radius:8px;margin:0 4px 6px;padding:8px 10px}.menu-confirm{background:#ff6b6b1a;border:1px solid #ff8a8059;border-radius:8px;flex-direction:column;gap:8px;margin:2px 4px 6px;padding:10px;font-size:13px;line-height:1.45;display:flex}.menu-confirm-actions{gap:6px;display:flex}.btn.danger{color:#ffd2cc;background:#ff6b6b33;border-color:#ff8a808c}.btn.danger:hover:not(:disabled){background:#ff6b6b52}.menu-check{color:var(--text);cursor:pointer;align-items:center;gap:8px;display:flex}.menu-actions{gap:6px;display:flex}.toast{background:var(--panel-solid);border:1px solid var(--line);max-width:calc(100vw - 32px);color:var(--ivory);z-index:30;border-radius:10px;padding:10px 16px;font-size:14px;position:fixed;bottom:96px;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #00000080}.workspace{grid-template-columns:1fr;min-height:0;display:grid}.app.with-panel .workspace{grid-template-columns:1fr 340px}.stage{flex-direction:column;gap:10px;min-width:0;min-height:0;padding:14px 18px;display:flex;position:relative}.views{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.view-split .score-scroll{flex:1.1}.view-split .falling{flex:1}.notice{border-radius:10px;justify-content:space-between;align-items:flex-start;gap:14px;padding:10px 14px;font-size:13px;line-height:1.45;display:flex}.notice.error{color:#ffd2cc;background:#ff6b6b1f;border:1px solid #ff8a8066}.notice.info{color:#cfe6ff;background:#7cc4ff14;border:1px solid #7cc4ff40}.notice-action{opacity:.9;margin-top:8px}.recording-panel{background:rgba(var(--gold-rgb), .08);border:1px solid rgba(var(--gold-rgb), .3);border-radius:12px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.recording-panel header{color:var(--gold-bright);align-items:flex-start;gap:10px;display:flex}.recording-panel header svg{flex:none;margin-top:2px}.recording-summary{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.recording-summary strong{color:var(--ivory);overflow-wrap:anywhere;font-weight:600}.recording-summary span{color:var(--muted);font-size:12.5px}.recording-controls{flex-wrap:wrap;align-items:flex-end;gap:10px 18px;display:flex}.recording-controls .field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.recording-controls .range-row{align-items:center;gap:6px;display:flex}.recording-controls input[type=range]{width:130px;accent-color:var(--gold)}.recording-controls input[type=number]{border:1px solid var(--line);background:var(--panel-solid);width:64px;height:28px;color:var(--text);border-radius:6px;padding:0 6px}.recording-controls small{font-size:11px}.progress-bar{background:#e9e3d31f;border-radius:3px;width:min(360px,70vw);height:6px;overflow:hidden}.progress-bar>span{background:linear-gradient(90deg,#c49b4f,#ecd096);height:100%;transition:width .2s;display:block}.loading.with-progress{flex-direction:column;gap:12px}.notice .detail{opacity:.85;white-space:pre-wrap;margin-top:4px;font-family:ui-monospace,monospace;font-size:12px}.loading{color:var(--muted);align-items:center;gap:12px;margin:auto;display:flex}.spinner{border:2px solid rgba(var(--gold-rgb), .25);border-top-color:var(--gold);border-radius:50%;width:22px;height:22px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.welcome-scroll{flex:1;min-height:0;display:flex;overflow-y:auto}.welcome{text-align:center;flex-direction:column;align-items:center;gap:24px;width:min(980px,100%);margin:auto;padding:10px 8px 18px;display:flex}.welcome-head{flex-direction:column;align-items:center;display:flex}.welcome-emblem{filter:drop-shadow(0 0 40px rgba(var(--gold-rgb), .18));margin-bottom:14px;animation:8s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.welcome-emblem{animation:none}}.wordmark{flex-direction:column;align-items:center;gap:6px;display:flex}.wordmark-title{font-family:var(--font-brand);letter-spacing:.34em;color:var(--ivory);margin-right:-.34em;font-size:52px;font-weight:500;line-height:1}.wordmark-tagline{font-family:var(--font-script);color:var(--gold);font-size:26px;font-style:italic}.welcome .wordmark-title{font-size:40px}.welcome .wordmark-tagline{font-size:22px}.welcome-lead{color:var(--muted);margin:12px 0 0;font-size:15px}.welcome-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;display:grid}.welcome-card{border:1px solid var(--line);background:var(--panel);text-align:left;cursor:pointer;border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 20px 20px;transition:border-color .15s,background .15s,transform .15s;display:flex}.welcome-card svg{color:var(--gold-bright);margin-bottom:4px}.welcome-card b{color:var(--ivory);font-size:17px;font-weight:600}.welcome-card span{color:var(--muted);font-size:13px;line-height:1.45}.welcome-card:hover{border-color:var(--gold);background:#161f3ce6;transform:translateY(-2px)}.welcome-card.featured{background:linear-gradient(160deg, rgba(var(--gold-rgb), .3), rgba(var(--gold-rgb), .08) 70%);border-color:rgba(var(--gold-bright-rgb), .55)}.welcome-card.featured span{color:var(--text)}.welcome-section{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.welcome-section h2{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px;font-weight:600}.welcome-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.welcome-chip{border:1px solid var(--line-soft);background:var(--raised);cursor:pointer;border-radius:999px;align-items:center;gap:8px;max-width:360px;height:38px;padding:0 16px;transition:border-color .15s,background .15s;display:inline-flex}.welcome-chip:hover{border-color:var(--gold);background:var(--raised-hover)}.welcome-chip svg{color:var(--gold);flex:none}.welcome-chip .chip-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.welcome-chip .muted{color:var(--muted);flex:none;font-size:12.5px}.welcome-foot{color:var(--muted);opacity:.85;margin:0;font-size:12.5px}@media (width<=760px){.welcome-cards{grid-template-columns:1fr}}.score-scroll{border-radius:var(--radius);min-height:0;box-shadow:0 20px 60px #00000073, 0 0 0 1px var(--line);flex:1;overflow:auto}.score-scroll.theme-paper{background:var(--paper)}.score-scroll.theme-night{background:linear-gradient(#0f1733,#0b1229)}.score{padding:18px 12px}.theme-paper .score{color:var(--ink)}.theme-paper .score svg{fill:var(--ink);color:var(--ink)}.theme-night .score svg{fill:var(--ivory);color:var(--ivory)}.score svg{margin:0 auto;display:block}.fit-chip{z-index:2;width:fit-content;color:var(--gold-bright);border:1px solid var(--line);background:#0c1226e0;border-radius:999px;margin:8px auto -36px;padding:5px 12px;font-size:12px;position:sticky;top:8px}.score g.note{cursor:pointer}.score g.note.playing.hand-right,.score g.note.playing.hand-right *{fill:var(--hand-right);stroke:var(--hand-right)}.score g.note.playing.hand-left,.score g.note.playing.hand-left *{fill:var(--hand-left);stroke:var(--hand-left)}.glow .score g.note.playing.hand-right{filter:drop-shadow(0 0 22px var(--hand-right))}.glow .score g.note.playing.hand-left{filter:drop-shadow(0 0 22px var(--hand-left))}.score g.verse.lunaris-label{fill:var(--label-color)}.falling{border-radius:var(--radius);width:100%;min-height:0;box-shadow:0 20px 60px #00000073, 0 0 0 1px var(--line);cursor:pointer;background:#050914;flex:1}.transport{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#070b17b3,#070b17f2);grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:12px 18px 14px;display:grid}.transport-buttons{align-items:center;gap:10px;display:flex}.play-button{color:#1a1407;cursor:pointer;width:54px;height:54px;box-shadow:0 0 0 4px rgba(var(--gold-rgb), .12), 0 8px 28px rgba(var(--gold-rgb), .35);background:radial-gradient(circle at 35% 30%,#f0d498,#c49b4f 70%);border:1px solid #edd29a;border-radius:50%;place-items:center;transition:transform .12s,box-shadow .2s;display:grid}.play-button:hover:not(:disabled){box-shadow:0 0 0 6px rgba(var(--gold-rgb), .16), 0 10px 34px rgba(var(--gold-rgb), .45);transform:scale(1.05)}.play-button:active:not(:disabled){transform:scale(.97)}.play-button:disabled{opacity:.4;cursor:default;box-shadow:none}.play-button svg{margin-left:2px}.play-button.is-playing svg{margin-left:0}.timeline{grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;min-width:0;display:grid}.time{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;min-width:3.4em;font-size:13px}.time.muted{color:var(--muted);text-align:left}.bar-chip:empty{display:none}.bar-chip{color:var(--gold);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px}.seek{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px}.seek:disabled{cursor:default;opacity:.5}.seek::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--gold) 0 var(--progress,0%), #e9e3d31f var(--progress,0%) 100%);border-radius:999px;height:6px}.seek::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ivory);border:2px solid var(--gold);width:16px;height:16px;box-shadow:0 0 12px rgba(var(--gold-rgb), .7);border-radius:50%;margin-top:-5px}.transport-options{align-items:center;gap:10px;display:flex}.pill{border:1px solid var(--line);background:var(--raised);border-radius:10px;align-items:center;gap:6px;height:36px;padding:0 6px 0 12px;display:inline-flex}.pill-label{color:var(--muted);font-size:12.5px}.pill select{color:var(--gold-bright);background:0 0;border:0;padding:4px;font-weight:600}.pill select option{background:var(--panel-solid);color:var(--text)}.hand-chip{border:1px solid color-mix(in srgb, var(--hand) 45%, transparent);background:color-mix(in srgb, var(--hand) 10%, transparent);height:36px;color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:0 12px;font-weight:500;display:inline-flex}.hand-chip svg{color:var(--muted)}.hand-chip.muted{opacity:.5;text-decoration:line-through}.hand-chip:disabled{opacity:.4;cursor:default}.hand-dot{background:var(--hand);width:10px;height:10px;box-shadow:0 0 10px var(--hand);border-radius:50%;flex:none}.hand-dot.big{width:14px;height:14px}.loop-control{align-items:center;gap:6px;display:inline-flex}.loop-control.on{background:rgba(var(--gold-rgb), .1);border:1px solid rgba(var(--gold-rgb), .4);border-radius:12px;padding:3px 8px 3px 3px}.loop-control select{padding:4px 6px;font-size:13px}.loop-to{color:var(--muted);font-size:12px}.sound-pill{padding-left:11px}.status-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.sound-pill.ready .status-dot{background:#3ee8a4;box-shadow:0 0 8px #3ee8a4}.sound-pill.loading .status-dot{background:var(--gold);animation:1s ease-in-out infinite pulse}.sound-pill.synth .status-dot{background:#ff9152;box-shadow:0 0 8px #ff9152}@keyframes pulse{50%{opacity:.3}}.settings-panel{background:var(--panel);border-left:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:16px 18px 24px;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.panel-head h2{font-family:var(--font-brand);letter-spacing:.22em;color:var(--ivory);margin:0;font-size:16px;font-weight:600}.settings-panel section{border-bottom:1px solid var(--line-soft);padding:14px 0}.settings-panel h3{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;font-size:11px;font-weight:600}.toggle-row,.field-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.field-row input[type=range]{max-width:160px;accent-color:var(--gold);flex:1}.field-row .value{text-align:right;min-width:3em;color:var(--muted);font-variant-numeric:tabular-nums}.field-row input[type=color]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:40px;height:26px;padding:1px}.switch{appearance:none;cursor:pointer;background:#e9e3d326;border-radius:999px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--ivory);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--gold)}.switch:checked:after{background:#1a1407;transform:translate(16px)}.switch:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.hand-color{padding:6px 0 10px}.hand-color-head{align-items:center;gap:9px;margin-bottom:9px;font-weight:500;display:flex}.custom-color{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.custom-color input{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:28px;height:22px;padding:1px}.swatches{grid-template-columns:repeat(8,1fr);gap:7px;display:grid}.swatch{aspect-ratio:1;background:var(--swatch);box-shadow:0 0 10px color-mix(in srgb, var(--swatch) 55%, transparent);cursor:pointer;border:2px solid #0000;border-radius:50%;padding:0}.swatch[aria-checked=true]{border-color:var(--ivory);box-shadow:0 0 0 2px var(--bg), 0 0 14px var(--swatch)}.style-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.style-option{border:1px solid var(--line-soft);color:var(--muted);cursor:pointer;background:#070b17;border-radius:10px;flex-direction:column;align-items:center;gap:7px;padding:10px 4px 8px;font-size:12px;display:flex}.style-option:hover{border-color:var(--line);color:var(--text)}.style-option.selected{border-color:var(--gold);color:var(--gold-bright);box-shadow:0 0 0 1px var(--gold) inset}.style-previews{align-items:flex-end;gap:6px;height:34px;display:flex}.style-preview{border-radius:4px;width:12px;height:34px;display:block}.style-preview+.style-preview{height:24px}.scene-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.scene-option{border:1px solid var(--line-soft);color:var(--muted);cursor:pointer;text-align:center;background:#00000040;border-radius:10px;flex-direction:column;gap:6px;padding:5px 5px 7px;font-size:11.5px;display:flex}.scene-option:hover{border-color:var(--line);color:var(--text)}.scene-option.selected{border-color:var(--gold);color:var(--gold-bright);box-shadow:0 0 0 1px var(--gold) inset}.scene-option:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.scene-thumb{aspect-ratio:96/60;border-radius:6px;width:100%;height:auto;display:block}.add-thumb{border:1px dashed var(--line);color:var(--gold);place-items:center;display:grid}.scene-actions{gap:8px;margin-top:10px;display:flex}.hint{color:var(--muted);margin:8px 0 0;font-size:12px}.shortcuts dl{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}.shortcuts dt{color:var(--gold-bright);background:var(--raised);border:1px solid var(--line-soft);border-radius:6px;justify-self:start;padding:1px 7px;font-family:ui-monospace,monospace;font-size:12px}.shortcuts dd{color:var(--muted);margin:0}.reset{width:100%;color:var(--muted);justify-content:center;margin-top:14px}.learn{flex-direction:column;flex:1;gap:14px;min-height:0;padding:4px 6px 24px;display:flex;overflow-y:auto}.learn.loading-piano{color:var(--muted);justify-content:center;align-items:center}.learn-head{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;display:flex}.learn-title{color:var(--gold);align-items:center;gap:10px;display:flex}.learn-title h1{font-family:var(--font-brand);letter-spacing:.2em;color:var(--ivory);margin:0;font-size:18px;font-weight:600}.level-chip{border:1px solid var(--line);background:rgba(var(--gold-rgb), .12);height:30px;color:var(--gold-bright);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.learn-stats{color:var(--muted);gap:14px;margin-left:auto;font-size:14px;display:flex}.learn-stats span{align-items:center;gap:5px;display:inline-flex}.learn-stats svg{color:var(--gold)}.input-badges{color:#8fe3b0;gap:4px;display:inline-flex}.learn-heading{font-family:var(--font-brand);letter-spacing:.08em;color:var(--ivory);margin:0 0 6px;font-size:22px;font-weight:600}.learn-subheading{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:8px 0 0;font-size:12px;font-weight:600}.learn-note{border-radius:var(--radius);border:1px solid var(--line);background:rgba(var(--gold-rgb), .08);color:var(--text);margin:0;padding:10px 14px}.level-choice,.level-check{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:18px 0;display:flex}.level-cards{grid-template-columns:repeat(3,minmax(0,220px));gap:16px;margin:10px 0;display:grid}.level-card{cursor:pointer;border:1px solid var(--line-soft);background:var(--panel);color:var(--text);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:22px 18px;font-size:13.5px;line-height:1.45;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.level-card b{font-family:var(--font-brand);letter-spacing:.08em;color:var(--ivory);font-size:18px}.level-card:hover:not(.static),.level-card.current{border-color:var(--gold);box-shadow:0 10px 34px rgba(var(--gold-rgb), .18);transform:translateY(-3px)}.level-card.static{cursor:default;max-width:300px}.level-icon{background:rgba(var(--gold-rgb), .12);width:64px;height:64px;color:var(--gold-bright);border-radius:50%;place-items:center;display:grid}.level-card.beginner .level-icon{color:#9fe0a8;background:#78d28c1f}.level-card.intermediate .level-icon{color:#b7c8ff;background:#8ca5ff1f}.level-card.locked{border-style:dashed;border-color:var(--line)}.level-card.locked>span:last-child{color:var(--muted)}.level-card.locked .level-icon{color:var(--muted);background:#ffffff0f}.maestro-way{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:14px;flex-direction:column;gap:8px;width:min(560px,100%);padding:14px 18px;animation:.25s step-in;display:flex}.maestro-way b{font-family:var(--font-brand);letter-spacing:.06em;color:var(--gold-bright)}.maestro-way ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.maestro-way li{align-items:center;gap:8px;font-size:13.5px;display:flex}.maestro-way li svg{color:var(--muted);flex:none}.maestro-way li.done,.maestro-way li.done svg{color:#9fe0a8}.maestro-way>.muted{font-size:12.5px;line-height:1.5}.check-dots{justify-content:center}.level-check .learn-keys{max-width:760px}.luna{align-items:center;gap:14px;width:100%;max-width:900px;margin:0 auto;display:flex}.luna-face{color:#3a2d10;width:52px;height:52px;box-shadow:0 0 24px rgba(var(--gold-bright-rgb), .45);background:radial-gradient(circle at 35% 35%,#fff3cf,#d9b265 70%);border-radius:50%;flex:none;place-items:center;display:grid}.luna-says{border:1px solid var(--line);color:var(--ivory);background:#ece6d614;border-radius:16px;margin:0;padding:14px 18px;font-size:17px;line-height:1.5;position:relative}.luna-says:before{content:"";border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:#1a2038;width:12px;height:12px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)rotate(45deg)}.lesson,.game-screen{flex-direction:column;gap:16px;display:flex}.lesson-head{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.lesson-title{flex-direction:column;align-items:center;gap:6px;display:flex}.lesson-name{font-family:var(--font-brand);letter-spacing:.08em;color:var(--ivory);text-align:center;font-size:17px}.step-dots{gap:6px;display:flex}.step-dots span{background:#ffffff24;border-radius:50%;width:9px;height:9px}.step-dots span.done{background:var(--gold)}.step-dots span.now{background:var(--gold-bright);box-shadow:0 0 10px var(--gold-bright);transform:scale(1.25)}.step{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:1000px;margin:0 auto;animation:.3s ease-out step-in;display:flex}@keyframes step-in{0%{opacity:0;transform:translateY(8px)}}.lesson-foot{justify-content:space-between;gap:12px;width:100%;max-width:1000px;margin:0 auto;display:flex}.step-feedback{min-height:24px;color:var(--muted);text-align:center;margin:0;font-size:16px}.step-feedback.good{color:#9fe0a8;font-weight:600}.cue-row,.choice-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.btn.cue.playing{border-color:var(--gold);color:var(--gold-bright);box-shadow:0 0 16px rgba(var(--gold-bright-rgb), .35)}.beat-number{width:54px;height:54px;font-family:var(--font-brand);color:var(--gold-bright);border:1px solid #0000;border-radius:50%;place-items:center;font-size:28px;display:grid}.beat-number.on{border-color:var(--gold);box-shadow:0 0 18px rgba(var(--gold-bright-rgb), .4);animation:.2s ease-out beat-pop}@keyframes beat-pop{0%{transform:scale(1.25)}}.btn.choice{justify-content:center;min-width:130px}.btn.choice.right{color:#c9f5d4;background:#6fd28a2e;border-color:#6fd28a}.btn.choice.wrong{color:#ffd2cc;background:#ff6b6b29;border-color:#ff8a80;animation:.3s shake}@keyframes shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.learn-keys{touch-action:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 8px 22px #00000073);width:100%;max-width:1000px;height:auto}.learn-keys.small{max-width:640px}.learn-key{cursor:pointer}.learn-key rect{stroke:#00000059;stroke-width:1px;transition:fill .12s}.learn-key.white rect{fill:#f4efe2}.learn-key.black rect{fill:#161a26}.learn-key.white:hover rect{fill:#fffaf0}.learn-key.black:hover rect{fill:#262c3f}.learn-key.mark-gold.white rect{fill:#f5d991}.learn-key.mark-gold.black rect{fill:#a87f2c}.learn-key.mark-blue.white rect{fill:#c3d2ff}.learn-key.mark-blue.black rect{fill:#3f5aa8}.learn-key.mark-soft.white rect{fill:#ede3c8}.learn-key.mark-soft.black rect{fill:#4d4535}.learn-key.hint-region.white rect{fill:#fde3a2;stroke:rgba(var(--gold-rgb), .9)}.learn-key.hint-region.black rect{fill:#5c4618}.learn-keys.has-region .learn-key:not(.hint-region):not(.held):not(.hint-wrong) rect{opacity:.42}.learn-key.hint-target rect,.learn-key.hint-next rect{fill:#f0c75e;animation:1s ease-in-out infinite key-glow}.learn-key.black.hint-target rect,.learn-key.black.hint-next rect{fill:#c99a2e}@keyframes key-glow{50%{fill:#ffe39a}}.learn-key.playing.white rect,.learn-key.playing.black rect{fill:#8ec5ff}.learn-key.held.white rect{fill:#9ecbff}.learn-key.held.black rect{fill:#4d86d6}.learn-key.hint-right rect{animation:none;fill:#7fd796!important}.learn-key.hint-wrong rect{animation:none;fill:#ff8f86!important}.learn-key text{pointer-events:none;text-anchor:middle;font-family:var(--font-ui)}.learn-key .letter{fill:#6b6450;font-size:15px;font-weight:600}.learn-key .mark-label{fill:#4a3810;font-size:13px;font-weight:700}.learn-key.black .mark-label{fill:#fff3d1}.learn-key .computer-key{fill:#3c3c508c;font-size:11px;font-weight:600}.learn-key.black .computer-key{fill:#ffffff80}.picture{border:1px solid var(--line-soft);background:#ece6d60f;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:22px;padding:10px 18px;display:flex}.length-card{flex-direction:column;align-items:center;gap:6px;margin:0;display:flex}.length-card figcaption{color:var(--muted);flex-direction:column;align-items:center;font-size:13px;display:flex}.length-card figcaption b{color:var(--ivory);font-size:14px}.note-shape .head{fill:none;stroke:var(--ivory);stroke-width:5px}.note-shape .head.filled{fill:var(--ivory)}.note-shape .stem{stroke:var(--ivory);stroke-width:4.5px;stroke-linecap:round}.note-shape .flag,.note-shape .rest{fill:var(--ivory)}.picture.beat,.picture.tempo,.picture.low-high{color:var(--gold-bright);align-items:center;gap:40px}.picture figure{flex-direction:column;align-items:center;gap:6px;margin:0;display:flex}.picture figcaption{color:var(--muted);font-size:13px}.pulse{animation:.75s ease-in-out infinite heartbeat}@keyframes heartbeat{15%{transform:scale(1.18)}30%{transform:scale(1)}}.beat-count{font-family:var(--font-brand);letter-spacing:.2em;color:var(--ivory);font-size:22px}.big-note{color:var(--gold-bright);font-size:54px;line-height:1}.staff-picture{background:var(--paper);min-width:240px;max-width:100%;min-height:120px;color:var(--ink);border-radius:12px;place-items:center;padding:10px 24px;display:grid}.staff-picture .staff-svg{max-width:100%}.staff-picture .staff-svg svg{width:100%;height:auto}.play-notes{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.your-turn{color:#9fe0a8;align-items:center;gap:6px;font-weight:600;display:inline-flex}.chord-letters{font-family:var(--font-brand);letter-spacing:.14em;color:var(--gold-bright);margin:0;font-size:18px}.heard-keys{flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);animation:.25s ease-out step-in;display:flex}.game-prompt .muted{font-size:16px}.picture.hands{gap:34px}.hand{width:170px;height:auto}.hand .palm{fill:#363d5e;stroke:#ece6d680;stroke-width:2px}.hand .finger rect{fill:#363d5e;stroke:#ece6d680;stroke-width:2px;transition:fill .2s}.hand .finger.lit rect{fill:var(--gold-bright);stroke:#fff3cf;filter:drop-shadow(0 0 10px rgba(var(--gold-bright-rgb), .8));animation:.3s beat-pop}.finger-number{text-anchor:middle;font-family:var(--font-brand);fill:var(--ivory);pointer-events:none;font-size:18px;font-weight:600}.finger-number.on-lit{fill:var(--ink)}.pedal-picture{flex-direction:column;align-items:center;gap:6px}.pedal-case{fill:#2a1f18;stroke:rgba(var(--gold-rgb), .4);stroke-width:1.5px}.pedal-floor{stroke:var(--line-soft);stroke-width:2px}.pedal-lever path{fill:#8a7a58;stroke:#00000059;stroke-width:1px}.pedal-lever.sustain path{fill:url(#pedal-brass);filter:drop-shadow(0 0 9px rgba(var(--gold-bright-rgb), .75))}.pedal-label{text-anchor:middle;fill:var(--muted);font-size:12px}.pedal-label.sustain{fill:var(--gold-bright);font-weight:600}.pedal-button{border:2px solid var(--line);background:var(--panel);height:46px;color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:8px;padding:0 22px;font-size:15px;transition:background .1s,border-color .1s;display:inline-flex}.pedal-button.down{border-color:var(--gold-bright);background:rgba(var(--gold-rgb), .25);color:var(--gold-bright);box-shadow:0 0 22px rgba(var(--gold-bright-rgb), .45)}.pedal-button .muted{font-size:12.5px}.song-track{flex-direction:column;align-items:center;gap:0;width:100%;max-width:1000px;display:flex}.song-track .lane{border:1px solid var(--line-soft);background:linear-gradient(#0a102233,#0a1022bf);border-bottom:none;border-radius:12px 12px 0 0;width:100%;position:relative;overflow:hidden}.song-track .learn-keys{margin-top:-2px}.song-track .pedal-button{margin-top:12px}.bar-group{will-change:transform;height:0;position:absolute;top:0;left:0;right:0}.bar-group .bar{transition:background .2s,opacity .3s}.bar-group.now .bar{background:linear-gradient(#f0c75e99,#f0c75e);box-shadow:0 0 24px #f0c75eb3}.bar-group.played .bar{box-shadow:none;opacity:.75;background:linear-gradient(#7fd79659,#7fd796cc)}.bar-group.along .bar{box-shadow:none;background:linear-gradient(#a0afe626,#a0afe673)}.waiting{z-index:1;border:1px solid rgba(var(--gold-bright-rgb), .35);white-space:nowrap;color:var(--gold-bright);pointer-events:none;background:#0a1022d9;border-radius:999px;padding:4px 16px;font-size:16px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.btn.finger-choice{min-width:64px;font-family:var(--font-brand);font-size:20px}.hand-name{color:var(--gold-bright)}.hold-track{flex-direction:column;align-items:center;gap:0;width:100%;max-width:1000px;display:flex}.hold-track .lane{border:1px solid var(--line-soft);background:linear-gradient(#0a102233,#0a1022bf);border-bottom:none;border-radius:12px 12px 0 0;width:100%;position:relative;overflow:hidden}.hold-track .learn-keys{margin-top:-2px}.lane-line{border-left:1px solid #ffffff0a;position:absolute;top:0;bottom:0}.lane-line.black{background:#0000002e}.bar{color:#0b1a33;will-change:transform;background:linear-gradient(#8ec5ff8c,#8ec5ff);border-radius:8px;place-items:end center;padding-bottom:6px;font-weight:700;display:grid;position:absolute;top:0;box-shadow:0 0 16px #8ec5ff73}.bar.now{background:linear-gradient(#f0c75e99,#f0c75e);box-shadow:0 0 22px #f0c75e99}.bar.good{background:linear-gradient(#7fd79699,#7fd796)}.bar.close{background:linear-gradient(#f0c75e80,#e9c46a)}.bar.missed{background:linear-gradient(#ff8f8673,#ff8f86)}.hit-line{background:var(--gold-bright);height:3px;box-shadow:0 0 14px var(--gold-bright);position:absolute;bottom:0;left:0;right:0}.count-in{font-family:var(--font-brand);color:var(--gold-bright);text-shadow:0 0 30px rgba(var(--gold-bright-rgb), .6);pointer-events:none;place-items:center;font-size:72px;display:grid;position:absolute;inset:0}.track-actions{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:52px;margin-top:12px;display:flex}.track-result{color:var(--ivory);font-size:16px}.tap-track{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:720px;display:flex}.beat-lights{gap:14px;display:flex}.beat-lights span{border:1px solid var(--line);width:46px;height:46px;color:var(--muted);font-family:var(--font-brand);border-radius:50%;place-items:center;font-size:18px;transition:background 80ms;display:grid}.beat-lights span.lit{background:var(--gold);color:#2a1f08;box-shadow:0 0 20px rgba(var(--gold-bright-rgb), .6)}.rhythm-strip{border:1px solid var(--line-soft);background:#ffffff0d;border-radius:17px;width:100%;height:34px;position:relative}.rhythm-strip .tick{background:#ffffff2e;width:1px;position:absolute;top:8px;bottom:8px}.rhythm-strip .dot{background:var(--gold-bright);width:16px;height:16px;box-shadow:0 0 10px var(--gold-bright);border-radius:50%;margin:-8px 0 0 -8px;position:absolute;top:50%}.rhythm-strip .tap-mark{background:#8ec5ff;border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:2px;bottom:2px}.tap-pad{border:2px solid var(--gold);background:radial-gradient(circle at 40% 35%, rgba(var(--gold-bright-rgb), .3), #10172ee6);width:150px;height:150px;color:var(--gold-bright);font-family:var(--font-brand);letter-spacing:.12em;cursor:pointer;touch-action:none;border-radius:50%;font-size:26px;transition:transform 60ms}.tap-pad:disabled{opacity:.4;cursor:default}.tap-pad.pressed{box-shadow:0 0 34px rgba(var(--gold-bright-rgb), .6);transform:scale(.94)}.game{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:1000px;margin:0 auto;display:flex}.round-dots{gap:6px;display:flex}.round-dots span{background:#ffffff1f;border-radius:3px;width:22px;height:6px}.round-dots span.done{background:var(--gold)}.round-dots span.now{background:var(--gold-bright);box-shadow:0 0 8px var(--gold-bright)}.game-prompt{color:var(--ivory);text-align:center;font-size:22px}.game-prompt b{background:rgba(var(--gold-rgb), .16);border:1px solid var(--gold);min-width:54px;font-family:var(--font-brand);color:var(--gold-bright);border-radius:12px;margin:0 6px;padding:2px 14px;font-size:34px;display:inline-block}.game-status{align-items:center;gap:14px;min-height:26px;display:flex}.feedback{color:var(--muted);font-size:16px}.combo{color:#ffc08a;background:#ff965029;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-weight:600;animation:.25s beat-pop;display:inline-flex}.map-row{grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:16px;display:grid}.sky-map{border:1px solid var(--line-soft);background:radial-gradient(at 50% 40%,#28346473,#070b1799);border-radius:18px;width:100%;height:auto}.sky-map .journey{fill:none;stroke:rgba(var(--gold-bright-rgb), .12);stroke-width:1.5px;stroke-dasharray:3 7}.sky-map .constellation-line{fill:none;stroke:rgba(var(--gold-bright-rgb), .45);stroke-width:1.5px}.sky-map .constellation.soon .constellation-line{stroke:#ffffff1f;stroke-dasharray:4 6}.sky-star{cursor:pointer;outline:none}.sky-star .glow{opacity:.35;transition:opacity .2s}.sky-star .shape{fill:#cfd6ee;transition:transform .2s}.sky-star.done .shape{fill:var(--gold-bright)}.sky-star.done .glow,.sky-star:hover .glow,.sky-star:focus-visible .glow,.sky-star.selected .glow{opacity:1}.sky-star.next .shape{fill:#fff3cf}.sky-star .ring{fill:none;stroke:var(--gold-bright);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite ring}@keyframes ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.5)}}.sky-star.selected .shape{stroke:#fff;stroke-width:1.5px}.sky-star.soon{cursor:default}.sky-star.soon circle{fill:#ffffff38}.sky-star .rating{text-anchor:middle;fill:var(--gold-bright);letter-spacing:1px;font-size:13px}.sky-star .rating .empty{fill:#fff3}.constellation-name{text-anchor:middle;font-family:var(--font-brand);letter-spacing:.1em;fill:var(--ivory);font-size:17px}.constellation.soon .constellation-name{fill:#ece6d673}.constellation-note{text-anchor:middle;fill:var(--muted);letter-spacing:.08em;font-size:12px}.sky-map.intermediate{background:radial-gradient(at 50% 40%,#4a3e8a6b,#070b1799)}.sky-gateway{cursor:pointer;outline:none}.sky-gateway .gateway-glow{opacity:.45;transition:opacity .2s}.sky-gateway:hover .gateway-glow,.sky-gateway:focus-visible .gateway-glow{opacity:1}.sky-gateway .gateway-moon{fill:#f3e2b0}.sky-gateway .constellation-name{fill:var(--gold-bright);font-size:15px}.sky-tabs{gap:8px;display:flex}.sky-tab{border:1px solid var(--line-soft);background:var(--panel);height:34px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 14px;font-size:13.5px;display:inline-flex}.sky-tab:hover{color:var(--text);border-color:var(--line)}.sky-tab.on{color:var(--gold-bright);border-color:var(--gold);background:rgba(var(--gold-rgb), .14)}.lesson-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex}.lesson-card-title{font-family:var(--font-brand);letter-spacing:.06em;color:var(--ivory);font-size:18px}.lesson-card p{color:var(--text);margin:0;line-height:1.5}.lesson-card-meta{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.lesson-card-meta span{align-items:center;gap:5px;display:inline-flex}.card-stars svg{color:#fff3}.card-stars svg.on{color:var(--gold-bright);fill:var(--gold-bright)}.game-cards,.maestro-games{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.game-card{border:1px solid var(--line-soft);background:var(--panel);color:var(--text);text-align:left;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;font-size:13.5px;line-height:1.45;display:flex}button.game-card{cursor:pointer;transition:border-color .15s,transform .15s}button.game-card:hover{border-color:var(--gold);transform:translateY(-2px)}.game-card b{color:var(--ivory);font-size:15px}.game-card-icon{background:rgba(var(--gold-rgb), .14);width:42px;height:42px;color:var(--gold-bright);border-radius:12px;place-items:center;display:grid}.game-levels{gap:8px;margin-top:4px;display:flex}.mini-stars{color:var(--gold-bright);font-size:11px}.badge-row{flex-wrap:wrap;gap:8px;display:flex}.badge{color:#ece6d666;border:1px dashed #ffffff29;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;display:inline-flex}.badge.earned{border-style:solid;border-color:var(--gold);color:var(--gold-bright);background:rgba(var(--gold-rgb), .1)}.maestro{text-align:center;flex-direction:column;flex:none;align-items:center;gap:10px;padding:26px 12px;display:flex;position:relative;overflow:hidden}.maestro-sky{pointer-events:none;color:var(--gold-bright);position:absolute;inset:0}.maestro-sky svg{opacity:.6;animation:2.4s ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{50%{opacity:.1;transform:scale(.7)}}.maestro-crown{color:#3a2a08;width:140px;height:140px;box-shadow:0 0 60px rgba(var(--gold-bright-rgb), .55);background:radial-gradient(circle at 40% 35%,#fff1c4,#d4a548 65%,#8a6420);border-radius:50%;place-items:center;animation:6s ease-in-out infinite float;display:grid}.maestro-title{font-family:var(--font-brand);letter-spacing:.18em;color:var(--gold-bright);text-shadow:0 0 28px rgba(var(--gold-bright-rgb), .5);margin:8px 0 0;font-size:46px}.maestro-big{font-family:var(--font-script);color:var(--ivory);margin:0;font-size:28px;font-style:italic}.maestro-games{width:100%;max-width:900px;margin-top:12px}.maestro-big.small{margin-top:18px;font-size:24px}.wisdom{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:16px;flex-direction:column;gap:10px;width:100%;max-width:900px;padding:18px;display:flex}.wisdom .learn-subheading{margin:0}.wisdom p{margin:0;font-size:13.5px}.wisdom textarea,.wall-field input,.wall-field textarea,.card-motto input,.wall-sql{border:1px solid var(--line);width:100%;color:var(--ivory);font:inherit;resize:vertical;background:#070b1799;border-radius:10px;outline:none;padding:10px 12px;font-size:14px}.wisdom textarea:focus,.wall-field input:focus,.wall-field textarea:focus,.card-motto input:focus{border-color:var(--gold)}.wisdom-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.wisdom-row .muted{margin-right:auto;font-size:12.5px}.wisdom-topic{color:var(--muted);align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.wisdom-topic select{border:1px solid var(--line);background:var(--raised);height:32px;color:var(--text);border-radius:8px;padding:0 8px}.my-tips ul{flex-direction:column;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.my-tips li{background:rgba(var(--gold-rgb), .08);border-radius:10px;align-items:center;gap:10px;padding:6px 10px;font-size:13.5px;display:flex}.my-tips li>span:first-child{color:var(--ivory);flex:1}.maestro-tip{background:rgba(var(--gold-rgb), .1);border:1px solid var(--line);color:var(--gold-bright);border-radius:10px;align-items:flex-start;gap:8px;padding:9px 11px;display:flex}.maestro-tip svg{flex:none;margin-top:2px}.maestro-tip p{color:var(--ivory);margin:0;font-size:13px;line-height:1.45}.maestro-tip .muted{font-size:12px;display:block}.card-overlay{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040710bf;place-items:center;padding:16px;animation:.25s step-in;display:grid;position:fixed;inset:0}.card-panel{background:var(--panel-solid);border:1px solid var(--gold);width:min(460px,100%);max-height:100%;box-shadow:0 0 80px rgba(var(--gold-bright-rgb), .2);border-radius:20px;flex-direction:column;align-items:center;gap:12px;padding:18px 22px;display:flex;position:relative;overflow-y:auto}.card-head{justify-content:space-between;align-items:center;width:100%;display:flex}.card-head .learn-heading{margin:0}.card-canvas{border-radius:14px;width:min(340px,100%);height:auto;box-shadow:0 18px 50px #0000008c}.card-motto{width:100%;color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.card-note{text-align:center;margin:0;font-size:12.5px}.card-drawing{position:absolute;top:0;left:-9999px}.world-wall{flex-direction:column;gap:14px;width:100%;max-width:900px;margin:0 auto;display:flex}.world-wall .lesson-name{align-items:center;gap:8px;display:inline-flex}.wall-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.wall-bar>.muted{margin-right:auto;font-size:13px}.wall-problem{color:#ffd2cc;background:#ff6b6b1a;border:1px solid #ff8a8080;border-radius:10px;margin:0;padding:10px 14px}.wall-composer,.wall-connect,.wall-off{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex}.wall-connect p,.wall-off p{margin:0;line-height:1.55}.wall-field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.wall-composer .btn.primary,.wall-connect>.btn.primary{align-self:flex-start}.wall-messages{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.wall-message{background:var(--panel);border:1px solid var(--line-soft);border-radius:14px;flex-direction:column;justify-content:space-between;gap:10px;padding:16px;display:flex}.wall-message p{font-family:var(--font-script);color:var(--ivory);margin:0;font-size:19px;font-style:italic;line-height:1.35}.wall-message footer{color:var(--gold-bright);font-size:13px}.wall-howto summary{cursor:pointer;color:var(--gold-bright)}.wall-howto ol{margin:10px 0;padding-left:20px;font-size:13.5px;line-height:1.6}.wall-sql{color:var(--text);margin-bottom:8px;font-family:ui-monospace,monospace;font-size:12px}.input-panel{z-index:30;background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;width:min(460px,100% - 36px);max-height:calc(100% - 100px);padding:18px;position:fixed;top:76px;right:18px;overflow-y:auto;box-shadow:0 20px 60px #0000008c}.input-panel header{justify-content:space-between;align-items:center;display:flex}.input-way{border-top:1px solid var(--line-soft);color:var(--gold);gap:12px;padding:12px 0;display:flex}.input-way>div{color:var(--text);flex:1}.input-way p{color:var(--muted);margin:4px 0 8px;font-size:13px;line-height:1.5}kbd{border:1px solid var(--line);background:var(--raised);min-width:18px;color:var(--gold-bright);text-align:center;border-radius:5px;padding:0 5px;font-family:ui-monospace,monospace;font-size:11.5px;display:inline-block}.check{cursor:pointer;align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.input-status{margin:6px 0 0;font-size:13px}.input-status.good{color:#9fe0a8}.input-status.bad{color:#ffb3aa}.mic-meter{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.meter{background:#ffffff14;border-radius:4px;height:8px;display:block;overflow:hidden}.meter span{background:linear-gradient(90deg,#7fd796,#f0c75e);height:100%;display:block}.celebrate{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040710b8;place-items:center;animation:.25s step-in;display:grid;position:fixed;inset:0}.celebrate-card{background:var(--panel-solid);border:1px solid var(--gold);width:min(520px,100% - 32px);box-shadow:0 0 80px rgba(var(--gold-bright-rgb), .25);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:12px;padding:30px 34px;display:flex;position:relative;overflow:hidden}.celebrate-sparkles{pointer-events:none;color:var(--gold-bright);position:absolute;inset:0}.celebrate-sparkles svg{opacity:0;animation:1.6s ease-in-out infinite twinkle;position:absolute}.big-stars{gap:10px;display:flex}.big-stars svg{color:#ffffff26}.big-stars svg.on{color:var(--gold-bright);fill:var(--gold-bright);filter:drop-shadow(0 0 14px rgba(var(--gold-bright-rgb), .7));animation:.5s cubic-bezier(.2,1.6,.4,1) both star-in}@keyframes star-in{0%{opacity:0;transform:scale(0)rotate(-40deg)}}.celebrate-words{color:var(--ivory);margin:0;font-size:17px}.badge-won{background:rgba(var(--gold-rgb), .12);border:1px solid var(--line);color:var(--gold-bright);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex}.badge-won div{color:var(--text);flex-direction:column;font-size:13px;display:flex}@media (prefers-reduced-motion:reduce){.pulse,.maestro-crown,.maestro-sky svg,.celebrate-sparkles svg,.sky-star .ring,.learn-key.hint-target rect,.learn-key.hint-next rect{animation:none}}@media (width<=980px){.map-row,.level-cards{grid-template-columns:1fr}}span.muted,p.muted{color:var(--muted)}.avatar{color:#fff4d6;background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--avatar) 62%, white), var(--avatar) 58%, color-mix(in srgb, var(--avatar) 60%, black));box-shadow:0 0 0 2px rgba(var(--gold-bright-rgb), .6), 0 6px 18px #00000059;border-radius:50%;flex:none;place-items:center;display:inline-grid}.avatar.locked{filter:grayscale();opacity:.38}.welcome-lead b{color:var(--gold-bright);font-weight:600}.gate{isolation:isolate;height:100%;display:flex;position:relative;overflow-y:auto}.gate-inner{text-align:center;flex-direction:column;align-items:center;gap:22px;width:min(920px,100%);margin:auto;padding:28px 20px;display:flex}.gate-brand{flex-direction:column;align-items:center;gap:10px;display:flex}.gate-wordmark{font-family:var(--font-brand);letter-spacing:.34em;color:var(--ivory);margin-right:-.34em;font-size:30px}.gate-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:100%;padding:28px;display:flex;box-shadow:0 30px 80px #00000073}.gate-card h1{font-family:var(--font-brand);letter-spacing:.04em;color:var(--ivory);margin:0;font-size:28px;font-weight:500}.gate-lead{max-width:520px;color:var(--muted);margin:0;font-size:15px}.gate-note{background:rgba(var(--gold-rgb), .12);border:1px solid var(--line);color:var(--gold-bright);border-radius:10px;margin:0;padding:8px 14px;font-size:13.5px}.gate-name{border:1px solid var(--line);width:min(360px,100%);height:52px;color:var(--ivory);text-align:center;background:#070b1799;border-radius:14px;outline:none;padding:0 18px;font-size:20px}.gate-name:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb), .25)}.gate-problem{color:var(--danger);font-size:13px}.gate-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.gate-small{font-size:12.5px}.gate-actions{gap:10px;display:flex}.gate-foot{color:var(--muted);opacity:.85;margin:0;font-size:12.5px}.avatar-picker,.avatar-grid{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.avatar-picker button,.avatar-grid button{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:4px;transition:border-color .15s,transform .15s;position:relative}.avatar-picker button:hover,.avatar-grid button:hover:not(:disabled){transform:translateY(-2px)}.avatar-picker button.chosen,.avatar-grid button.chosen{border-color:var(--gold-bright);box-shadow:0 0 18px rgba(var(--gold-bright-rgb), .5)}.avatar-grid button:disabled{cursor:default}.avatar-lock{background:var(--panel-solid);border:1px solid var(--line);color:var(--gold);white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:11px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.profile-cards{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.profile-card{border:1px solid var(--line-soft);background:var(--raised);cursor:pointer;border-radius:18px;flex-direction:column;align-items:center;gap:8px;width:180px;padding:20px 14px 18px;transition:border-color .15s,background .15s,transform .15s;display:flex}.profile-card b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ivory);font-size:17px;overflow:hidden}.profile-card span{color:var(--muted);font-size:12.5px}.profile-card:hover,.profile-card:focus-visible{border-color:var(--gold);background:var(--raised-hover);outline:none;transform:translateY(-3px)}.profile-card.last{border-color:rgba(var(--gold-bright-rgb), .45)}.profile-card .avatar.add{border:2px dashed var(--line);width:88px;height:88px;box-shadow:none;color:var(--gold-bright);background:0 0}.profile-chip{border:1px solid var(--line);background:var(--raised);max-width:200px;height:38px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 4px;display:inline-flex}.profile-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-chip:hover:not(:disabled),.profile-chip.pressed{border-color:var(--gold);background:rgba(var(--gold-rgb), .12)}.profile-chip .avatar{box-shadow:0 0 0 1.5px rgba(var(--gold-bright-rgb), .6)}.profile-page{flex-direction:column;flex:1;gap:16px;width:min(1000px,100%);min-height:0;margin:0 auto;padding:6px 4px 20px;display:flex;overflow-y:auto}.profile-head{align-items:center;gap:20px;display:flex}.profile-who{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.profile-name{font-family:var(--font-brand);color:var(--ivory);align-items:center;gap:8px;margin:0;font-size:32px;font-weight:500;display:flex}.profile-rename{align-items:center;gap:8px;display:flex}.profile-rename input{border:1px solid var(--gold);width:260px;height:40px;color:var(--ivory);background:#070b1799;border-radius:10px;padding:0 12px;font-size:18px}.profile-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.profile-stat{background:var(--panel);border:1px solid var(--line-soft);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;display:flex}.profile-stat svg{color:var(--gold-bright)}.profile-stat b{font-family:var(--font-brand);color:var(--ivory);font-size:26px}.profile-stat span{color:var(--muted);font-size:12.5px}.profile-columns{grid-template-columns:280px 1fr;gap:16px;display:grid}.profile-box{background:var(--panel);border:1px solid var(--line-soft);border-radius:16px;flex-direction:column;gap:12px;padding:18px 20px;display:flex}.profile-box>h2{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px;font-weight:600}.profile-box .avatar-grid{justify-content:flex-start}.moon-box{text-align:center;align-items:center}.moon-box b{font-family:var(--font-brand);color:var(--gold-bright);font-size:20px}.moon-picture{filter:drop-shadow(0 0 16px #ece6d64d)}.moon-picture .moon-dark{fill:#1b2240}.moon-picture .moon-lit{fill:#ece6d6}.moon-picture .moon-edge{fill:none;stroke:#ece6d659;stroke-width:1.2px}.moon-picture.golden{filter:drop-shadow(0 0 22px #f0cf7ebf)}.moon-picture.golden .moon-lit{fill:#f0cf7e}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.badge-tile{color:#ece6d666;border:1px dashed #ffffff24;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.badge-tile b{font-size:14px}.badge-tile span{font-size:12px}.badge-tile.earned{border-style:solid;border-color:var(--gold);background:rgba(var(--gold-rgb), .1);color:var(--gold-bright)}.badge-tile.earned span{color:var(--text)}.profile-settings p{margin:0;line-height:1.7}.profile-settings .btn{align-self:flex-start}.hand-dot{vertical-align:-1px;border-radius:50%;width:12px;height:12px;margin:0 2px;display:inline-block;box-shadow:0 0 0 1px #ffffff4d}.profile-actions{flex-wrap:wrap;gap:10px;display:flex}.profile-actions .danger{margin-left:auto}.profile-confirm{background:#ff6b6b1a;border:1px solid #ff8a8073;border-radius:14px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.profile-confirm p{margin:0;line-height:1.5}.profile-confirm-actions{flex-wrap:wrap;gap:10px;display:flex}.key-field{flex-direction:column;align-items:center;gap:6px;width:min(360px,100%);display:flex}.key-input{border:1px solid var(--line);width:100%;height:44px;color:var(--gold);cursor:text;background:#070b1799;border-radius:12px;align-items:center;gap:10px;padding:0 14px;display:flex}.key-input:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb), .25)}.key-input input{min-width:0;height:100%;color:var(--ivory);letter-spacing:.04em;background:0 0;border:0;outline:none;flex:1;font-size:16px}.key-input input::placeholder{color:var(--muted);letter-spacing:0}.key-found{font-family:var(--font-brand);letter-spacing:.08em;color:var(--gold-bright);align-items:center;gap:6px;font-size:14px;animation:.25s step-in;display:inline-flex}.key-problem{color:var(--danger);font-size:13px}.avatar-picker button.gift:not(.chosen){border-color:rgba(var(--gold-bright-rgb), .4);border-style:dashed}.card-panel.key-reveal{text-align:center;gap:10px;width:min(560px,100%);padding:26px 26px 22px}.key-close{position:absolute;top:10px;right:10px}.key-emblem{width:74px;height:74px;color:var(--primary-ink);background:radial-gradient(circle at 35% 30%, var(--primary-hover-1), var(--primary-2));box-shadow:0 0 40px rgba(var(--gold-bright-rgb), .55);border-radius:50%;place-items:center;animation:.7s cubic-bezier(.2,1.4,.4,1) both key-turn;display:grid}@keyframes key-turn{0%{opacity:0;transform:rotate(-120deg)scale(.3)}}.key-title{font-family:var(--font-brand);letter-spacing:.12em;color:var(--gold-bright);text-shadow:0 0 24px rgba(var(--gold-bright-rgb), .45);margin:0;font-size:30px;font-weight:600}.key-text{font-family:var(--font-script);color:var(--ivory);margin:0;font-size:21px;font-style:italic}.key-gifts{flex-direction:column;gap:12px;width:100%;display:flex}.key-gift-badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.key-gift-badges .gift-badge{max-width:130px}.key-gift-badges .gift-badge .muted{display:none}.key-gifts ul{background:rgba(var(--gold-rgb), .08);border:1px solid var(--line-soft);text-align:left;border-radius:12px;flex-direction:column;gap:8px;margin:0;padding:12px 14px;font-size:13.5px;line-height:1.45;list-style:none;display:flex}.key-gifts li{align-items:flex-start;gap:8px;display:flex}.key-gifts li.key-avatars{flex-wrap:wrap;align-items:center}.key-gifts li>svg{color:var(--gold-bright);flex:none;margin-top:1px}.key-avatars>span{display:inline-flex}.gift-badge{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:210px;margin:0;display:flex}.gift-badge canvas{filter:drop-shadow(0 8px 22px #00000080);border-radius:50%}.gift-badge figcaption{flex-direction:column;align-items:center;gap:4px;display:flex}.gift-badge b{font-family:var(--font-brand);letter-spacing:.06em;color:var(--gold-bright)}.gift-badge .muted{font-size:12px;line-height:1.4}.gift-badge .btn{margin-top:4px}.key-box{border-color:var(--line);background:linear-gradient(160deg, rgba(var(--gold-rgb), .1), transparent 60%), var(--panel)}.key-list{flex-wrap:wrap;gap:10px;display:flex}.key-held{border:1px solid var(--line);background:rgba(var(--gold-rgb), .1);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:10px 14px;display:grid}.key-held svg{color:var(--gold-bright);grid-row:span 2}.key-held b{font-family:var(--font-brand);letter-spacing:.06em;color:var(--ivory)}.key-held span{font-size:12.5px}.gift-shelf{flex-wrap:wrap;gap:20px;display:flex}.gift-cards-row{flex-wrap:wrap;gap:10px;display:flex}.key-enter{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.key-enter .key-field{align-items:flex-start}.theme-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.theme-option{border:1px solid var(--line-soft);color:var(--muted);cursor:pointer;text-align:left;background:#00000040;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.theme-option:hover{border-color:var(--line);color:var(--text)}.theme-option.selected{border-color:var(--gold);color:var(--gold-bright);box-shadow:0 0 0 1px var(--gold) inset}.theme-option:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.theme-swatch{border-radius:50%;flex:none;width:26px;height:26px;box-shadow:0 0 0 1px #ffffff40}@media (prefers-reduced-motion:reduce){.key-emblem,.key-found,.maestro-way{animation:none}}@media (width<=860px){.profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-columns{grid-template-columns:1fr}.profile-chip-name{display:none}.profile-chip{padding-right:4px}}.songs-banner{border:1px solid rgba(var(--gold-bright-rgb), .55);background:linear-gradient(110deg, rgba(var(--gold-rgb), .28), rgba(var(--gold-rgb), .06) 70%);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:16px;align-items:center;gap:16px;padding:14px 20px;transition:transform .15s,border-color .15s;display:flex}.songs-banner:hover{border-color:var(--gold-bright);transform:translateY(-2px)}.songs-banner>svg{color:var(--gold-bright);flex:none}.songs-banner>span{flex-direction:column;gap:2px;display:flex}.songs-banner b{color:var(--ivory);font-size:17px}.songs-banner span span{color:var(--muted);font-size:13.5px}.songbook{flex-direction:column;gap:12px;display:flex}.learn-intro{max-width:820px;color:var(--muted);margin:0;line-height:1.5}.learn-intro b{color:var(--gold-bright);font-weight:600}.song-group{flex-direction:column;gap:10px;display:flex}.song-empty{margin:0;font-size:13px}.song-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.song-card{border:1px solid var(--line-soft);background:var(--panel);color:var(--text);text-align:left;cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .15s,transform .15s;display:flex}.song-card:hover{border-color:var(--gold);transform:translateY(-2px)}.song-card-icon{background:rgba(var(--gold-rgb), .14);width:38px;height:38px;color:var(--gold-bright);border-radius:10px;flex:none;place-items:center;display:grid}.song-card-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.song-card-text b{color:var(--ivory);font-size:14.5px}.song-composer{color:var(--text);opacity:.8;font-size:13px}.song-card-text .muted{font-size:12.5px;line-height:1.4}.song-credit{color:var(--muted);opacity:.85;font-size:11px}.song-stars{color:#ece6d640;flex:none;gap:1px;display:flex}.song-stars .on{color:var(--gold-bright);fill:var(--gold-bright)}.songbook-credits{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.practice{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.practice-head{align-items:center;gap:14px;display:flex}.practice-title{flex-direction:column;min-width:0;display:flex}.practice-title b{font-family:var(--font-brand);color:var(--ivory);text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;overflow:hidden}.practice-title span{font-family:var(--font-script);color:var(--gold);font-size:16px;font-style:italic}.practice-controls{background:var(--panel);border:1px solid var(--line-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.practice-bars{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.practice-bars select{border:1px solid var(--line);background:var(--panel-solid);height:32px;color:var(--text);border-radius:8px;padding:0 6px}.practice .views{min-height:380px}.practice .falling{cursor:default}.practice-status{min-height:26px;color:var(--text);flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:14px;display:flex}.practice-status b{color:var(--gold-bright)}.practice-message{color:var(--danger)}@media (width<=1100px){.app.with-panel .workspace{grid-template-columns:1fr}.settings-panel{z-index:10;background:var(--panel-solid);width:min(340px,100%);position:absolute;top:0;bottom:0;right:0;box-shadow:-18px 0 40px #00000073}.workspace{position:relative}.sound-pill .pill-label{display:none}}@media (width<=860px){.brand-text,.segmented button span,.topbar .btn span{display:none}.transport{grid-template-columns:auto 1fr}.transport-options{flex-wrap:wrap;grid-column:1/-1}}.toast.save-ready{align-items:center;gap:10px;padding:8px 8px 8px 16px;display:flex}.toast.save-ready span{flex:1}
