@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-vietnamese-500-normal-FzY9NZwK.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-500-normal-CAK5R6Iy.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-ext-500-normal-DIhLz7G7.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-500-normal-B0ZDNVGf.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-DEDBoLFO.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CV-uA8Lw.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--booth:#14171f;--console:#1c212c;--console-2:#232a38;--rail:#2f3748;--signal:#ece7dc;--dim:#939aab;--faint:#626a7c;--vu:#f0a63a;--vu-soft:#f0a63a24;--cue:#5fc3b4;--tag:#86a9ff;--danger:#f07167;--ok:#7bd389;--radius:8px;--radius-sm:6px;--edge:#07090d;--edge-vu:#9a5d12;--edge-danger:#6e2520;--face:linear-gradient(180deg, #313a4c 0%, #262d3b 60%, #212735 100%);--face-hover:linear-gradient(180deg, #3a4458 0%, #2c3444 60%, #252c3a 100%);--face-vu:linear-gradient(180deg, #f7c06a 0%, #f0a63a 55%, #e3951f 100%);--face-vu-hover:linear-gradient(180deg, #fbcd82 0%, #f4b04c 55%, #e89c28 100%);--sunk:linear-gradient(180deg, #171b24 0%, #1d222d 100%);--hi:inset 0 1px 0 #ffffff17;--rest:0 6px 12px -8px #000000bf;--lift:0 12px 20px -10px #000000d9;--ease:cubic-bezier(.22, .61, .36, 1);--press-time:60ms;--display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--body:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--booth);color:var(--signal);font:15px/1.55 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--vu);outline-offset:3px}::selection{background:var(--vu);color:var(--booth)}.shell{grid-template-columns:232px 1fr;min-height:100%;display:grid}.rail{background:var(--console);border-right:1px solid var(--rail);flex-direction:column;align-self:start;gap:4px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{font:700 21px/1 var(--display);letter-spacing:-.02em;align-items:center;gap:10px;padding:4px 10px 22px;display:flex}.brand-mark{align-items:flex-end;gap:3px;height:18px;display:inline-flex}.brand-mark i{background:var(--vu);border-radius:2px;width:4px;display:block}.navlink{border-radius:var(--radius-sm);min-height:40px;color:var(--dim);transition:transform .16s var(--ease), box-shadow .16s var(--ease), background .16s, color .16s;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-weight:550;text-decoration:none;display:flex}.navlink:hover{color:var(--signal);background:var(--face);box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);border-color:#3a4356;transform:translateY(-2px)}.navlink:active{transition-duration:var(--press-time);transform:translateY(1px);box-shadow:inset 0 2px 4px #0009}.navlink.active{color:var(--signal);background:var(--sunk);box-shadow:inset 3px 0 0 var(--vu), inset 0 2px 5px #0009;border-color:#10131a;transform:none}.rail-foot{color:var(--faint);margin-top:auto;padding:0 12px;font-size:13px}.main{width:100%;min-width:0;max-width:1180px;padding:34px clamp(16px,4vw,56px) 140px}@media (width<=820px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.navlink{padding:7px 10px}.rail{flex-flow:wrap;height:auto;padding:12px 16px;position:static}.brand{width:100%;padding:4px 8px 4px 0}.rail-foot{display:none}}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}h1{font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.05}h2{font-size:21px;font-weight:650}h3{font-size:16px;font-weight:650}.eyebrow{font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}.muted{color:var(--dim)}.small{font-size:13px}.mono{font-family:var(--mono)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.page-head p{color:var(--dim);max-width:60ch;margin:8px 0 0}.card{background:var(--console);border:1px solid var(--rail);border-radius:var(--radius);box-shadow:var(--hi), 0 2px 0 var(--edge), 0 14px 24px -18px #000c;padding:22px}.card+.card,.stack>*+*{margin-top:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}hr.rule{border:0;border-top:1px solid var(--rail);margin:20px 0}.btn,.key{background:var(--face);min-height:40px;color:var(--signal);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease), border-color .16s, color .16s;border:1px solid #3a4356;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.btn:hover:not(:disabled),.key:hover:not(:disabled){background:var(--face-hover);box-shadow:var(--hi), 0 5px 0 var(--edge), var(--lift);border-color:#4a556c;transform:translateY(-2px)}.btn:active:not(:disabled),.key:active:not(:disabled),.btn[aria-pressed=true],.key.latched{background:var(--sunk);transition-duration:var(--press-time);box-shadow:inset 0 2px 5px #000000a6, 0 1px 0 var(--edge);transform:translateY(2px)}.key.latched,.btn[aria-pressed=true]{color:var(--vu)}.btn:disabled,.key:disabled{cursor:not-allowed;box-shadow:none;background:var(--console-2);color:var(--faint);border-color:var(--rail);transform:none}.btn.primary{background:var(--face-vu);color:#1b1407;box-shadow:inset 0 1px 0 #ffffff59, 0 3px 0 var(--edge-vu), var(--rest);border-color:#c9801f}.btn.primary:hover:not(:disabled){background:var(--face-vu-hover);box-shadow:inset 0 1px 0 #fff6, 0 5px 0 var(--edge-vu), var(--lift)}.btn.primary:active:not(:disabled){box-shadow:inset 0 2px 5px #5028008c, 0 1px 0 var(--edge-vu);background:#d98c1c}.btn.primary:disabled{color:#2b2317;background:#6b5a3e;border-color:#6b5a3e}.btn.ghost{box-shadow:none;color:var(--dim);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--signal)}.btn.danger,.key.danger{color:#ffb3ad;box-shadow:var(--hi), 0 3px 0 var(--edge-danger), var(--rest)}.btn.danger:hover:not(:disabled),.key.danger:hover:not(:disabled){border-color:var(--danger);box-shadow:var(--hi), 0 5px 0 var(--edge-danger), var(--lift)}.btn.small,.key.small{min-height:32px;padding:5px 12px;font-size:13px}.key{min-width:40px;padding:6px 10px;font-size:15px;line-height:1}.key.small{min-width:32px;padding:4px 8px}.key.play{background:var(--face-vu);color:#1b1407;min-width:52px;min-height:52px;box-shadow:inset 0 1px 0 #ffffff59, 0 3px 0 var(--edge-vu), var(--rest);border-color:#c9801f;border-radius:50%;font-size:18px}.key.play:hover:not(:disabled){background:var(--face-vu-hover);box-shadow:inset 0 1px 0 #fff6, 0 5px 0 var(--edge-vu), var(--lift)}.key.play:active:not(:disabled){box-shadow:inset 0 2px 5px #5028008c, 0 1px 0 var(--edge-vu);background:#d98c1c}label.field{color:var(--dim);gap:6px;font-size:13px;font-weight:500;display:grid}input[type=text],input[type=password],input[type=number],input:not([type]),select,textarea{background:var(--booth);border-radius:var(--radius-sm);width:100%;color:var(--signal);border:1px solid #0f1218;padding:10px 12px;font-size:15px;transition:box-shadow .16s,border-color .16s;box-shadow:inset 0 2px 4px #0000008c,0 1px #ffffff0a}textarea{resize:vertical;min-height:90px;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--vu);box-shadow:inset 0 2px 4px #0000008c, 0 0 0 3px var(--vu-soft);outline:none}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check input{accent-color:var(--vu);width:16px;height:16px}.chip{font:500 12px/1.6 var(--mono);border:1px solid var(--rail);color:var(--dim);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.chip.on{border-color:var(--vu);color:var(--vu);background:var(--vu-soft)}.chip-toggle{cursor:pointer;background:var(--face);color:var(--signal);border-radius:var(--radius-sm);box-shadow:var(--hi), 0 2px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease), background .16s, color .16s;border-color:#3a4356;padding:5px 12px}.chip-toggle:hover{background:var(--face-hover);box-shadow:var(--hi), 0 3px 0 var(--edge), var(--lift);transform:translateY(-1px)}.chip-toggle:active,.chip-toggle.on{background:var(--sunk);transition-duration:var(--press-time);transform:translateY(1px);box-shadow:inset 0 2px 4px #0009}.chip-toggle.on{color:var(--vu);box-shadow:inset 0 2px 4px #0009, inset 0 -2px 0 var(--vu);border-color:#f0a63a8c}.grid-2>.card{margin-top:0}.status{font:500 12px/1.6 var(--mono);white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 10px}.status.running{color:var(--tag);border-color:#86a9ff66}.status.awaiting_guidelines,.status.awaiting_blueprint{color:var(--vu);border-color:#f0a63a73}.status.ready{color:var(--ok);border-color:#7bd38966}.status.failed{color:var(--danger);border-color:#f0716773}.alert{border-radius:var(--radius-sm);border:1px solid;padding:12px 14px;font-size:14px}.alert.error{color:#ffb3ad;background:#f0716714;border-color:#f0716780}.alert.info{border-color:var(--rail);color:var(--dim)}.faders{background:var(--booth);border:1px solid var(--rail);border-radius:var(--radius);grid-auto-columns:minmax(56px,1fr);grid-auto-flow:column;gap:6px;padding:18px 14px 12px;display:grid;overflow-x:auto}.fader{grid-template-rows:180px auto auto;justify-items:center;gap:8px;min-width:56px;display:grid;position:relative}.fader input[type=range]{writing-mode:vertical-lr;opacity:0;cursor:ns-resize;direction:rtl;width:36px;height:196px;margin:0;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.fader:has(input:focus-visible) .fader-cap{outline:2px solid var(--vu);outline-offset:2px}.fader-track{background:var(--console-2);background-image:repeating-linear-gradient(to top, transparent 0 17px, var(--rail) 17px 18px);border-radius:6px;width:10px;position:relative}.fader-fill{background:linear-gradient(to top, var(--cue), var(--tag));border-radius:6px;position:absolute;bottom:0;left:0;right:0}.fader-fill.peak{background:linear-gradient(to top, var(--cue), var(--vu));box-shadow:0 0 18px #f0a63a73}.fader-cap{background:linear-gradient(#f1ece0,#c9c3b6);border:1px solid #fff4;border-radius:4px;width:30px;height:14px;position:absolute;left:50%;transform:translate(-50%,50%);box-shadow:0 2px #6f6a60,0 4px 8px #000a}.fader-cap:after{content:"";background:var(--booth);height:2px;position:absolute;top:6px;left:4px;right:4px}.fader-value{font:600 14px/1 var(--mono)}.fader-name{font:500 11px/1.25 var(--mono);color:var(--dim);text-align:center;max-width:72px}.panel{border:1px solid var(--rail);border-radius:var(--radius);background:var(--console);box-shadow:var(--hi), 0 2px 0 var(--edge), 0 14px 24px -18px #000c;overflow:clip}.panel+.panel{margin-top:14px}.panel-head{z-index:2;background:var(--console-2);border-bottom:1px solid var(--rail);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.panel-head .eyebrow{color:var(--dim)}.panel-body{white-space:pre-wrap;word-break:break-word;padding:14px 16px}.panel-body.mono{font:13.5px/1.65 var(--mono);max-height:70vh;overflow:auto}.count{font:500 12px/1 var(--mono)}.count.good{color:var(--ok)}.count.warn{color:var(--vu)}.count.bad{color:var(--danger)}.lyr-header{color:var(--tag);font-weight:600}.lyr-instrument{color:var(--tag)}.lyr-effect{color:var(--vu)}.lyr-vocal{color:var(--ok)}.lyr-second{color:var(--dim);font-style:italic}.table-wrap{border:1px solid var(--rail);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);border-bottom:1px solid var(--rail);background:var(--console);padding:12px 10px}td{border-bottom:1px solid var(--rail);vertical-align:top;padding:9px 10px}tr:last-child td{border-bottom:0}td input,td textarea{padding:6px 8px;font-size:14px}.song-row{border:1px solid var(--rail);border-radius:var(--radius);background:var(--face);box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease), border-color .16s;grid-template-columns:1fr auto;gap:6px 16px;padding:16px 18px;text-decoration:none;display:grid}.song-row:hover{box-shadow:var(--hi), 0 5px 0 var(--edge), var(--lift);border-color:#4a556c;transform:translateY(-2px)}.song-row:active{box-shadow:inset 0 2px 5px #0009, 0 1px 0 var(--edge);transition-duration:var(--press-time);transform:translateY(2px)}.song-row+.song-row{margin-top:10px}.song-row .title{font:650 17px/1.2 var(--display)}.song-row .status{place-self:start end}.song-row .req{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.tracks{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.track{background:var(--booth);border:1px solid var(--rail);border-radius:var(--radius);box-shadow:var(--hi), 0 2px 0 var(--edge), 0 12px 20px -16px #000c;gap:10px;padding:12px;display:grid}.track img{aspect-ratio:1;object-fit:cover;border-radius:4px;width:100%;box-shadow:0 10px 18px -10px #000}.track .ph{aspect-ratio:1;background:repeating-linear-gradient(135deg, var(--console) 0 10px, var(--console-2) 10px 20px);color:var(--faint);font:12px var(--mono);border-radius:4px;place-items:center;display:grid}.track audio{width:100%;height:36px}.stars{display:inline-flex}.stars button{cursor:pointer;color:var(--faint);min-height:32px;transition:transform .16s var(--ease), color .16s;text-shadow:0 2px 0 var(--edge);background:0 0;border:0;padding:4px 2px;font-size:20px}.stars button:hover{color:var(--signal);transform:translateY(-2px)}.stars button.on{color:var(--vu)}.tabs{box-shadow:inset 0 -2px 0 var(--rail);flex-wrap:wrap;align-items:flex-end;gap:4px;margin-bottom:22px;padding:0 4px;display:flex}.tabs button{cursor:pointer;color:var(--dim);border:1px solid var(--rail);border-bottom:2px solid var(--rail);box-shadow:var(--hi);transition:transform .16s var(--ease), background .16s, color .16s, padding .16s var(--ease);background:linear-gradient(#232a38,#1b202b);border-radius:8px 8px 0 0;margin-top:5px;padding:9px 16px;font-weight:600}.tabs button:hover:not(.on){color:var(--signal);background:var(--face-hover);transform:translateY(-2px)}.tabs button:active{transition-duration:var(--press-time);transform:translateY(1px)}.tabs button.on{color:var(--signal);background:var(--console);border-top:3px solid var(--vu);border-bottom:2px solid var(--console);z-index:1;box-shadow:var(--hi), 0 -8px 14px -10px #000c;margin-top:0;padding:12px 18px 11px;font-weight:700;position:relative}details>summary{cursor:pointer;align-items:center;gap:12px;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";background:var(--face);height:30px;box-shadow:var(--hi), 0 2px 0 var(--edge), 0 5px 8px -6px #000;transition:transform .16s var(--ease), box-shadow .16s var(--ease);border:1px solid #3a4356;border-radius:50%;flex:0 0 30px}details>summary:after{content:"";border-right:2.5px solid var(--vu);border-bottom:2.5px solid var(--vu);width:8px;height:8px;transition:transform .2s var(--ease), border-color .2s;pointer-events:none;margin-left:10px;position:absolute;transform:translate(-2px)rotate(-45deg)}details>summary{position:relative}details[open]>summary:after{border-color:var(--signal);transform:translateY(-2px)rotate(45deg)}details>summary:hover:before{box-shadow:var(--hi), 0 3px 0 var(--edge), var(--lift);transform:translateY(-1px)}details>summary:active:before{transform:translateY(1px);box-shadow:inset 0 2px 3px #0009}details.sheet summary{padding:4px 0;font-weight:600}details.sheet pre{font:12.5px/1.55 var(--mono);white-space:pre-wrap;color:var(--dim);background:var(--booth);border-radius:var(--radius-sm);max-height:60vh;padding:14px;overflow:auto}.login{place-items:center;min-height:100%;padding:24px;display:grid}.login .card{width:min(400px,100%)}.empty{text-align:center;border:1px dashed var(--rail);border-radius:var(--radius);color:var(--dim);padding:48px 20px;box-shadow:inset 0 2px 10px #00000073}.toast{background:var(--signal);color:var(--booth);z-index:20;border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;bottom:110px;right:22px}.like{cursor:pointer;background:var(--face);width:40px;height:40px;color:var(--dim);box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease), color .16s;border:1px solid #3a4356;border-radius:50%;place-items:center;font-size:19px;line-height:1;display:inline-grid}.like:hover{color:var(--signal);box-shadow:var(--hi), 0 5px 0 var(--edge), var(--lift);transform:translateY(-2px)}.like:active{box-shadow:inset 0 2px 5px #000000a6, 0 1px 0 var(--edge);transition-duration:var(--press-time);transform:translateY(2px)}.like.on{color:#ff6b81;background:var(--sunk);box-shadow:inset 0 2px 5px #000000a6, 0 1px 0 var(--edge);transform:translateY(1px)}.like.big{width:48px;height:48px;font-size:23px}.playerbar{z-index:30;padding:10px clamp(12px, 3vw, 28px) calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(#232a38 0%,#1a1f29 100%);border-top:1px solid #3a4356;grid-template-columns:minmax(0,1.2fr) minmax(260px,1.4fr) minmax(0,.8fr);align-items:center;gap:18px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:inset 0 1px #ffffff12,0 -12px 28px -10px #000c}.pb-now{align-items:center;gap:12px;min-width:0;display:flex}.pb-now img,.pb-ph{object-fit:cover;width:52px;height:52px;box-shadow:0 2px 0 var(--edge), 0 8px 14px -8px #000;border-radius:4px;flex:none}.pb-ph{background:var(--console-2);color:var(--vu);place-items:center;font-size:22px;display:grid}.pb-meta{min-width:0;display:grid}.pb-meta strong,.pb-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pb-transport{justify-items:center;gap:6px;display:grid}.pb-keys{justify-content:center;gap:12px}.pb-seek{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;display:grid}.pb-side{justify-content:flex-end;align-items:center;gap:12px;display:flex}.pb-volume{max-width:120px}.playerbar input[type=range],.console-slider{appearance:none;background:var(--booth);cursor:pointer;border-radius:4px;width:100%;height:8px;box-shadow:inset 0 2px 3px #000000b3,0 1px #ffffff0d}.playerbar input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(#f1ece0,#c9c3b6);border-radius:50%;width:16px;height:16px;box-shadow:0 2px #6f6a60,0 3px 6px #000a}.playerbar input[type=range]::-moz-range-thumb{background:linear-gradient(#f1ece0,#c9c3b6);border:0;border-radius:50%;width:16px;height:16px;box-shadow:0 2px #6f6a60,0 3px 6px #000a}@media (width<=820px){.playerbar{grid-template-columns:1fr;gap:8px}.pb-side{display:none}.main{padding-bottom:200px}}.coverflow{border-radius:var(--radius);perspective:1100px;perspective-origin:50% 40%;border:1px solid var(--rail);height:360px;box-shadow:inset 0 2px 18px #000000b3, 0 2px 0 var(--edge);background:radial-gradient(at 50% 0,#2a3244 0%,#161a22 60%,#0e1117 100%);margin:0 0 22px;position:relative;overflow:hidden}.coverflow:focus-visible{outline:3px solid var(--vu);outline-offset:3px}.empty-stage{place-items:center;display:grid}.cf-rack{transform-style:preserve-3d;position:absolute;inset:0}.cf-item{cursor:pointer;width:210px;height:210px;transform-style:preserve-3d;transition:transform .45s var(--ease), opacity .3s;box-shadow:0 3px 0 var(--edge), 0 24px 30px -18px #000;-webkit-box-reflect:below 6px linear-gradient(transparent 62%, #ffffff2e);border-radius:4px;position:absolute;top:34px;left:50%}.cf-item img,.cf-sleeve{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.cf-item:after{content:"";pointer-events:none;background:linear-gradient(115deg,#ffffff29 0%,#fff0 38%);border-radius:4px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff1a}.cf-item:not(.center){filter:brightness(.62)}.cf-item:not(.center):hover{filter:brightness(.85)}.cf-item.center{box-shadow:0 3px 0 var(--edge), 0 30px 40px -18px #000, 0 0 0 2px #f0a63a8c}.cf-item.is-playing{box-shadow:0 3px 0 var(--edge), 0 30px 40px -18px #000, 0 0 0 3px var(--vu), 0 0 30px #f0a63a59}.cf-sleeve{box-sizing:border-box;place-items:end start;padding:14px;display:grid}.cf-sleeve span{font:700 18px/1.1 var(--display);color:#fff;text-shadow:0 2px 10px #0009;-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cf-play{background:var(--face-vu);color:#1b1407;width:46px;height:46px;box-shadow:inset 0 1px 0 #ffffff59, 0 3px 0 var(--edge-vu), var(--rest);transition:transform .16s var(--ease);border-radius:50%;place-items:center;font-size:17px;display:grid;position:absolute;bottom:12px;right:12px}.cf-item.center:hover .cf-play{transform:translateY(-2px)}.cf-like{color:#ff6b81;text-shadow:0 2px 6px #000;font-size:20px;position:absolute;top:8px;left:10px}.cf-floor{pointer-events:none;background:linear-gradient(#0e111700 0%,#0e1117e6 70%);height:90px;position:absolute;bottom:0;left:0;right:0}.cf-nav{color:var(--dim);justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;bottom:12px;left:0;right:0}@media (width<=640px){.coverflow{height:300px}.cf-item{width:160px;height:160px}}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar input{flex:220px;width:auto}.toolbar select{width:auto}.now-card{margin-bottom:18px}.now-card h2{overflow-wrap:anywhere}.console-grid{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);align-items:start;gap:18px;display:grid}.console-grid>.card{margin-top:0}@media (width<=900px){.console-grid{grid-template-columns:1fr}}.tracklist{gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.tracklist li{border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.tracklist li.sel{background:var(--sunk);border-color:#10131a;box-shadow:inset 0 2px 5px #00000080}.tracklist li.now{box-shadow:inset 3px 0 0 var(--vu)}.tracklist li.sel.now{box-shadow:inset 3px 0 0 var(--vu), inset 0 2px 5px #00000080}.tracklist .like{width:34px;height:34px;font-size:16px}.tl-title{all:unset;cursor:pointer;min-width:0;display:grid}.tl-title strong,.tl-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tl-title:focus-visible{outline:3px solid var(--vu);outline-offset:3px;border-radius:4px}.tl-edit{gap:4px}@media (width<=640px){.tracklist li{grid-template-columns:auto minmax(0,1fr) auto}.tracklist li>.mono{display:none}.tl-edit{grid-column:2/-1}}.plist{gap:8px;display:grid}.plate{text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:var(--face);color:var(--signal);font:inherit;box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease), background .16s;border:1px solid #3a4356;gap:2px;padding:10px 12px;display:grid}.plate:hover{background:var(--face-hover);box-shadow:var(--hi), 0 5px 0 var(--edge), var(--lift);transform:translateY(-2px)}.plate:active,.plate.on{background:var(--sunk);box-shadow:inset 0 2px 5px #0009, 0 1px 0 var(--edge);transition-duration:var(--press-time);transform:translateY(2px)}.plate.on{box-shadow:inset 3px 0 0 var(--vu), inset 0 2px 5px #0009, 0 1px 0 var(--edge)}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.sw-text{background:#5b86f0}.sw-audio{background:#c47a12}.cost-strip{border-radius:var(--radius-sm);background:var(--booth);border:1px solid #0f1218;flex-wrap:wrap;align-items:flex-end;gap:6px 22px;width:fit-content;max-width:100%;margin-top:14px;padding:10px 14px;display:flex;box-shadow:inset 0 2px 5px #0000008c}.cost-strip>div{gap:4px;display:grid}.cost-strip b{font:600 16px/1 var(--mono)}.cost-main b{color:var(--vu);font-size:22px}.cost-strip .origin span.mono{line-height:1.2}.cost-inline{color:var(--signal);grid-column:1/-1}.count-pill{font:600 11px/1 var(--mono);background:var(--console-2);color:var(--dim);border-radius:999px;margin-left:6px;padding:3px 7px}.tabs button.on .count-pill{background:var(--vu-soft);color:var(--vu)}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi{border-radius:var(--radius);background:var(--console);border:1px solid var(--rail);box-shadow:var(--hi), 0 2px 0 var(--edge), 0 12px 20px -16px #000c;gap:6px;padding:14px 16px;display:grid}.kpi b{font:600 22px/1.1 var(--mono)}.kpi-main{box-shadow:inset 4px 0 0 var(--vu), var(--hi), 0 2px 0 var(--edge), 0 12px 20px -16px #000c}.kpi-main b{color:var(--vu);font-size:28px}.legend{color:var(--dim);flex-wrap:wrap;gap:18px;margin:12px 0 4px;font-size:13px;display:flex}.usage-chart{width:100%;position:relative;overflow:hidden}.usage-chart svg{display:block}.usage-chart .grid{stroke:var(--rail);stroke-dasharray:2 4}.usage-chart .axis{stroke:var(--faint)}.usage-chart .tick{fill:var(--faint);font:11px var(--mono)}.chart-tip{pointer-events:none;border-radius:var(--radius-sm);background:#0e1117;border:1px solid #3a4356;gap:4px;min-width:170px;padding:10px 12px;font-size:13px;display:grid;position:absolute;transform:translate(-50%);box-shadow:0 12px 24px -10px #000}.tip-row{align-items:center;gap:4px;display:flex}.tip-row .mono{margin-left:auto;padding-left:12px}.tip-row.total{border-top:1px solid var(--rail);padding-top:4px;font-weight:600}.chart-table{margin-top:12px}td.mono{white-space:nowrap}.chart-table .table-wrap{max-height:320px;margin-top:10px;overflow:auto}.top-songs{gap:8px;margin:0;padding:0;list-style:none;display:grid}.top-songs li{border-radius:var(--radius-sm);background:var(--booth);grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:8px 10px;display:grid;box-shadow:inset 0 2px 4px #00000073}.top-songs li a{text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-decoration:none;overflow:hidden}.top-songs li a:hover{color:var(--vu)}.top-songs li b{grid-area:1/2/3;align-self:center}.field-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.field-head+textarea{margin-top:-8px}.stack>.field-head+textarea{margin-top:6px}.dict-open svg{width:18px;height:18px}.dict-mic-svg{fill:currentColor;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round}.dict-mic-svg rect{stroke:none}.text-link{all:unset;cursor:pointer;color:var(--vu);text-decoration:underline}.text-link:focus-visible{outline:3px solid var(--vu);outline-offset:2px}.dict{z-index:100;color:#f4f1ea;padding:calc(18px + env(safe-area-inset-top,0px)) clamp(16px, 5vw, 64px) calc(22px + env(safe-area-inset-bottom,0px));background:#000;grid-template-rows:auto minmax(0,1fr) auto auto auto;justify-items:center;gap:12px;display:grid;position:fixed;inset:0}.dict-top{color:#bdb6a8;flex-wrap:wrap;justify-content:space-between;gap:12px;width:100%;display:flex}.dict-status{font:600 15px/1.3 var(--display);color:#f4f1ea}.dict-engine{color:#8c8577}.dict-stage{aspect-ratio:1;align-self:center;width:min(62vh,86vw);position:relative}.dict-waves{width:100%;height:100%;position:absolute;inset:0}.dict-mic{aspect-ratio:1;cursor:pointer;color:#1b1407;background:var(--face-vu);width:28%;box-shadow:inset 0 2px 0 #ffffff59, 0 4px 0 var(--edge-vu), 0 18px 40px -10px #f0a63a8c;transition:transform .16s var(--ease), box-shadow .16s var(--ease);border:1px solid #c9801f;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dict-mic svg{width:44%;height:44%}.dict-mic:hover:not(:disabled){transform:translate(-50%,calc(-50% - 2px))}.dict-mic:active:not(:disabled){box-shadow:inset 0 3px 6px #50280080, 0 1px 0 var(--edge-vu);transform:translate(-50%,calc(2px - 50%))}.dict-mic:disabled{cursor:default;filter:saturate(.5)brightness(.8)}.dict-stage.connecting .dict-mic{animation:1.4s ease-in-out infinite dict-breathe}@keyframes dict-breathe{50%{filter:brightness(.7)}}.dict-transcript{text-align:center;width:min(900px,100%);max-height:26vh;font:500 clamp(18px, 2.6vw, 26px)/1.45 var(--body);letter-spacing:-.005em;overflow-y:auto}.dict-transcript .final{color:#f4f1ea}.dict-transcript .partial{color:#8c8577}.dict-notice{color:#bdb6a8;margin:0}.dict-error{color:#ffb3ad;margin:0}.dict-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.dict .btn.ghost{color:#bdb6a8}.dict-review{grid-row:2/5;align-self:center;gap:14px;width:min(820px,100%);display:grid}.dict-review textarea{background:#0c0d10;min-height:200px;font-size:18px;line-height:1.5}.dict-raw{border-radius:var(--radius-sm);color:#bdb6a8;background:#0c0d10;padding:14px;font-size:17px;line-height:1.5;box-shadow:inset 0 2px 5px #0009}.dict-changes{color:#8c8577;margin:0;padding-left:18px}.big-tabs button{align-items:center;gap:8px;padding:12px 20px;font-size:16px;display:inline-flex}.big-tabs button.on{padding:15px 22px 14px}.big-tabs .tab-icon{opacity:.8;font-size:17px}.count-pill.alert{color:var(--vu);background:#f0a63a2e}@media (width<=640px){.big-tabs button{padding:10px 12px;font-size:14px}.big-tabs button.on{padding:12px 14px 11px}.big-tabs .tab-icon{display:none}}.progress-card{gap:14px;display:grid}.progress-head{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.progress-headline{font:600 18px/1.3 var(--display);margin-top:6px}.progress-pct{transition:color .8s var(--ease);font-size:clamp(36px,6vw,54px);font-weight:600;line-height:1}.progress-pct span{color:var(--dim);margin-left:2px;font-size:.45em}.progress-track{background:var(--booth);border-radius:9px;height:18px;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #000000b3,0 1px #ffffff0d}.progress-fill{transition:width .9s var(--ease), background-color .9s var(--ease);border-radius:9px;position:absolute;inset:0 auto 0 0;box-shadow:inset 0 1px #ffffff59,inset 0 -2px #00000040}.progress-fill:after{content:"";border-radius:inherit;opacity:0;background:linear-gradient(100deg,#fff0 30%,#ffffff59 50%,#fff0 70%) 0 0/220% 100%;position:absolute;inset:0}.tone-run .progress-fill:after{opacity:1;animation:1.8s linear infinite sheen}.tone-gate .progress-fill{animation:1.6s ease-in-out infinite gate-pulse}@keyframes sheen{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes gate-pulse{50%{filter:brightness(.7)}}.progress-split{background:#0000008c;width:2px;position:absolute;top:0;bottom:0}.progress-stages{font-size:12px;display:flex}.progress-stages ol{margin:0;padding:0;list-style:none;display:flex}.progress-stages li,.progress-stages .rec{text-align:center;color:var(--faint);flex:1;justify-items:center;gap:6px;min-width:0;display:grid}.progress-stages .dot{background:var(--rail);border-radius:50%;width:10px;height:10px;box-shadow:inset 0 1px 2px #0009}.progress-stages .lbl{font:500 11px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.06em;overflow-wrap:anywhere}.progress-stages .done{color:var(--dim)}.progress-stages .done .dot{background:var(--cue)}.progress-stages .now{color:var(--signal)}.progress-stages .now .dot{background:var(--vu);box-shadow:0 0 0 4px var(--vu-soft)}.progress-stages .gate{color:var(--vu)}.progress-stages .gate .dot{background:var(--vu);box-shadow:0 0 0 4px var(--vu-soft)}.progress-stages .failed{color:var(--danger)}.progress-stages .failed .dot{background:var(--danger)}@media (width<=640px){.progress-stages .lbl{display:none}.progress-stages .now .lbl,.progress-stages .gate .lbl,.progress-stages .rec .lbl{display:block}}.trace{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.trace h3{margin-bottom:8px}.quote{border-radius:var(--radius-sm);background:var(--booth);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:12px 14px;box-shadow:inset 0 2px 4px #00000080}.facts{grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:0;display:grid}.facts dt{color:var(--faint);font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em}.facts dd{overflow-wrap:anywhere;margin:0}.stack>.facts{margin-top:14px}@media (width<=640px){.facts{grid-template-columns:1fr}.facts dd{margin-bottom:8px}}details.sent{border-top:1px solid var(--rail);padding-top:10px}details.sent>summary{flex-wrap:wrap;gap:12px}details.sent .facts{margin-top:12px}.journal{gap:0;margin:0;padding:0 0 0 6px;list-style:none;display:grid}.journal li{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:8px 0;display:grid;position:relative}.journal li:before{content:"";background:var(--rail);width:2px;position:absolute;top:0;bottom:0;left:15px}.j-icon{z-index:1;background:var(--face);width:32px;height:32px;box-shadow:var(--hi), 0 2px 0 var(--edge);border:1px solid #3a4356;border-radius:50%;place-items:center;font-size:14px;display:grid;position:relative}.j-suno .j-icon,.j-track .j-icon,.j-wav .j-icon,.j-audio_request .j-icon{color:var(--vu)}.j-llm .j-icon{color:#86a9ff}.journal li.failed .j-icon{color:var(--danger);border-color:#f0716799}.j-body{gap:3px;min-width:0;display:grid}.j-line{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.j-detail{color:var(--dim);white-space:pre-wrap;overflow-wrap:anywhere}.j-error{color:#ffb3ad;overflow-wrap:anywhere}.chip.origin-mcp{color:#c3a8f5;border-color:#9a70e68c}.chip.origin-ui{color:#7fd6c9;border-color:#1fa5948c}.projects{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.project-tile{text-align:left;cursor:pointer;color:var(--signal);font:inherit;border-radius:var(--radius);background:var(--face);box-shadow:var(--hi), 0 3px 0 var(--edge), var(--rest);transition:transform .16s var(--ease), box-shadow .16s var(--ease);border:1px solid #3a4356;gap:10px;padding:10px;display:grid}.project-tile:hover{box-shadow:var(--hi), 0 6px 0 var(--edge), var(--lift);transform:translateY(-3px)}.project-tile:active{box-shadow:inset 0 2px 5px #0009, 0 1px 0 var(--edge);transition-duration:var(--press-time);transform:translateY(2px)}.project-tile img,.project-ph{aspect-ratio:1;object-fit:cover;border-radius:4px;width:100%;box-shadow:0 10px 18px -10px #000}.project-ph{color:var(--vu);background:linear-gradient(135deg,#2a3244,#161a22);place-items:center;font-size:40px;display:grid}.project-meta{gap:2px;min-width:0;display:grid}.project-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-bar{margin-bottom:12px}@media (prefers-reduced-motion:reduce){.btn,.key,.like,.plate,.navlink,.song-row,.chip-toggle,.tabs button,.stars button,.cf-item,.cf-play,details>summary:before,details>summary:after,.dict-mic,.progress-fill,.project-tile{transition:none!important}.progress-fill:after,.tone-gate .progress-fill,.dict-stage.connecting .dict-mic{animation:none!important}.btn:hover,.btn:active,.key:hover,.key:active,.like:hover,.like:active,.plate:hover,.plate:active,.navlink:hover,.song-row:hover,.song-row:active,.chip-toggle:hover,.tabs button:hover,.stars button:hover,.cf-item.center:hover .cf-play,.project-tile:hover,.project-tile:active{transform:none!important}}@media print{.playerbar{display:none}.btn,.key,.card,.panel,.song-row,.plate,.like{box-shadow:none!important}}
