@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-vietnamese-wdth-normal-BKE08zty.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-ext-wdth-normal-DoS1gVTC.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-wdth-normal-Dtb2a5nO.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");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{--violet-50:#f8f5ff;--violet-100:#f0eaff;--violet-200:#e2d7ff;--violet-300:#cdbbff;--violet-400:#b094ff;--violet-500:#8f63f4;--violet-600:#7743db;--violet-700:#6232b8;--violet-800:#4d2793;--violet-900:#371f6b;--violet-950:#22143f;--canvas:#fcfbff;--surface:#fff;--surface-tint:#f6f2ff;--line-200:#e8e2f5;--line-300:#d5cceb;--ink-950:#1b1330;--ink-700:#3e3556;--ink-500:#6a6081;--ink-400:#8d84a2;--success:#17855c;--success-bg:#e7f6ee;--warning:#b26a00;--warning-bg:#fff3dd;--danger:#cf3350;--danger-bg:#fdecef;--info:#2f6fdb;--info-bg:#eaf1ff;--periwinkle:#5b7cfa;--teal:#1fa6a0;--magenta:#c84fd8;--amber:#e0a100;--coral:#f0726a;--green:#3fae6a;--slate:#7c7592;--blush:#fbd9f2;--mint:#cdf2e1;--butter:#fff0ae;--sky:#cfe0ff;--ai-gradient:linear-gradient(120deg, #8f63f4, #b58cff 45%, #7fa8ff);--ai-glow:#8f63f459;--brand-gradient:linear-gradient(135deg, #7743db 0%, #8f63f4 55%, #a886ff 100%);--font-display:"Bricolage Grotesque Variable", "Inter Variable", ui-sans-serif, system-ui, sans-serif;--font-ui:"Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-2xl:32px;--e1:0 1px 2px #371f6b0f;--e2:0 4px 12px #371f6b14;--e3:0 12px 32px #371f6b1f;--e4:0 24px 64px #371f6b29;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.18s;--dur-base:.28s;--dur-slow:.45s;--sidebar-w:264px;--sidebar-w-collapsed:76px;--topbar-h:64px;--header-h:72px;--content-w:1280px;--focus-ring:0 0 0 3px #8f63f459}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink-700);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"cv11", "ss01";margin:0;font-size:15px;line-height:1.6}h1,h2,h3,h4,h5,h6,p,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}::selection{background:var(--violet-200);color:var(--violet-900)}:focus-visible{box-shadow:var(--focus-ring), inset 0 0 0 1px var(--violet-600);border-radius:var(--r-sm);outline:none}.num,.tabular{font-variant-numeric:tabular-nums}.display-xl,.display-l,.h1,.h2,.h3{font-family:var(--font-display);color:var(--ink-950);letter-spacing:-.025em;text-wrap:balance;font-weight:700}.display-xl{letter-spacing:-.035em;font-size:clamp(2.75rem,6.2vw,4.75rem);font-weight:800;line-height:1.02}.display-l{letter-spacing:-.03em;font-size:clamp(2.25rem,4.4vw,3.5rem);font-weight:800;line-height:1.06}.h1{font-size:2.25rem;line-height:1.2}.h2{font-size:1.75rem;line-height:1.25}.h3{font-size:1.375rem;font-weight:650;line-height:1.3}.h4{color:var(--ink-950);font-size:1.125rem;font-weight:650;line-height:1.4}.body-l{color:var(--ink-700);font-size:1.0625rem;line-height:1.7}.small{font-size:13px;line-height:1.5}.caption{color:var(--ink-500);font-size:12px;line-height:1.35}.muted{color:var(--ink-500)}.strong{color:var(--ink-950);font-weight:600}.mono{font-family:var(--font-mono);font-size:.92em}.measure{max-width:62ch}.container{width:100%;max-width:var(--content-w);margin-inline:auto;padding-inline:clamp(16px,3vw,32px)}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.center{justify-content:center}.grow{flex:auto;min-width:0}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mb-16{margin-bottom:16px}.right{margin-left:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hide-scroll{scrollbar-width:none}.hide-scroll::-webkit-scrollbar{display:none}@media (width<=1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}*{scrollbar-width:thin;scrollbar-color:var(--line-300) transparent}.page-enter-active,.page-leave-active{transition:opacity .18s var(--ease-out), transform .18s var(--ease-out)}html[data-motion=off] *,html[data-motion=off] :before,html[data-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}html[data-motion=reduced] *,html[data-motion=reduced] :before,html[data-motion=reduced] :after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{--btn-bg:var(--surface);--btn-fg:var(--ink-950);--btn-bd:var(--line-300);border:1px solid var(--btn-bd);background:var(--btn-bg);height:40px;color:var(--btn-fg);white-space:nowrap;transition:background var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast) var(--ease-out), color var(--dur-fast);-webkit-user-select:none;user-select:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.btn:hover{border-color:var(--violet-400);background:var(--violet-50)}.btn:active{transform:scale(.98)}.btn[disabled],.btn.is-disabled{opacity:.5;pointer-events:none}.btn-primary{--btn-bg:var(--violet-600);--btn-fg:#fff;--btn-bd:var(--violet-700);background:linear-gradient(180deg, #8657e6 0%, var(--violet-600) 100%);box-shadow:inset 0 1px #ffffff47,0 6px 16px #7743db47}.btn-primary:hover{background:linear-gradient(180deg, #7d4be0 0%, var(--violet-700) 100%);border-color:var(--violet-800);box-shadow:inset 0 1px #ffffff47,0 10px 24px #7743db5c}.btn-secondary{--btn-bg:var(--violet-100);--btn-fg:var(--violet-800);--btn-bd:var(--violet-200)}.btn-secondary:hover{background:var(--violet-200)}.btn-ghost{--btn-bg:transparent;--btn-bd:transparent;--btn-fg:var(--ink-700)}.btn-ghost:hover{background:var(--violet-100);color:var(--violet-800);border-color:#0000}.btn-danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-bd:var(--danger)}.btn-danger:hover{background:#b92a44;border-color:#b92a44}.btn-danger-soft{--btn-bg:var(--danger-bg);--btn-fg:var(--danger);--btn-bd:transparent}.btn-danger-soft:hover{background:#fbd9df;border-color:#0000}.btn-success{--btn-bg:var(--success);--btn-fg:#fff;--btn-bd:var(--success)}.btn-success:hover{background:#126f4c;border-color:#126f4c}.btn-ai{--btn-fg:#fff;background:var(--ai-gradient);box-shadow:0 6px 18px var(--ai-glow);border-color:#0000}.btn-ai:hover{background:var(--ai-gradient);filter:brightness(1.05);box-shadow:0 10px 26px var(--ai-glow);border-color:#0000}.btn-sm{border-radius:8px;gap:6px;height:32px;padding:0 12px;font-size:13px}.btn-lg{border-radius:14px;height:52px;padding:0 26px;font-size:16px}.btn-pill{border-radius:999px}.btn-icon{width:40px;padding:0}.btn-icon.btn-sm{width:32px}.btn-block{width:100%}.link{color:var(--violet-700);white-space:nowrap;transition:border-color var(--dur-fast);border-bottom:1px solid #0000;font-weight:600;text-decoration:none}.link:hover{border-color:var(--violet-400)}.bc-a .link{align-items:center;gap:4px;display:inline-flex}a.link:has(>svg){align-items:center;gap:4px;display:inline-flex}.chip{background:var(--violet-100);height:24px;color:var(--violet-800);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.chip .icon{width:13px;height:13px}.chip-success{background:var(--success-bg);color:var(--success)}.chip-warning{background:var(--warning-bg);color:var(--warning)}.chip-danger{background:var(--danger-bg);color:var(--danger)}.chip-info{background:var(--info-bg);color:var(--info)}.chip-neutral{color:var(--ink-700);background:#efecf6}.chip-outline{box-shadow:inset 0 0 0 1px var(--line-300);color:var(--ink-700);background:0 0}.chip-ai{background:var(--ai-gradient);color:#fff}.chip-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.chip-lg{height:32px;padding:0 14px;font-size:13px}.chip-btn{cursor:pointer;transition:background var(--dur-fast), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast)}.chip-btn:hover{background:var(--violet-200);transform:translateY(-1px)}.chip-btn.is-on{background:var(--violet-600);color:#fff}.badge-new{letter-spacing:.02em;border-radius:6px;height:18px;padding:0 7px;font-size:10.5px}.card{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--r-lg);box-shadow:var(--e1)}.card-pad{padding:20px}.card-pad-lg{padding:28px}.card-hover{transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base)}.card-hover:hover{box-shadow:var(--e3);border-color:var(--violet-200);transform:translateY(-2px)}.card-tint{background:var(--surface-tint);border-color:var(--violet-200)}.card-head{border-bottom:1px solid var(--line-200);align-items:center;gap:12px;padding:16px 20px;display:flex}.card-head h3,.card-head .title{color:var(--ink-950);font-size:15px;font-weight:650}.divider{background:var(--line-200);border:0;height:1px;margin:16px 0}.glass{-webkit-backdrop-filter:blur(24px)saturate(1.3);box-shadow:var(--e4);background:#ffffffd1;border:1px solid #ffffffb3}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:#fff}}.spot{isolation:isolate;position:relative}.spot:after{content:"";border-radius:inherit;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), #8f63f429, transparent 65%);opacity:0;transition:opacity var(--dur-base);pointer-events:none;z-index:-1;position:absolute;inset:0}.spot:hover:after{opacity:1}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--ink-950);font-size:13px;font-weight:600}.hint{color:var(--ink-500);font-size:12px}.error-text{color:var(--danger);font-size:12px;font-weight:500}.input,.select,.textarea{background:var(--surface);border:1px solid var(--line-300);width:100%;height:40px;color:var(--ink-950);transition:border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);border-radius:10px;padding:0 12px}.textarea{resize:vertical;height:auto;min-height:92px;padding:10px 12px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--ink-400)}.input:hover,.select:hover,.textarea:hover{border-color:var(--violet-300)}.input:focus,.select:focus,.textarea:focus{border-color:var(--violet-500);box-shadow:var(--focus-ring);outline:none}.input.is-error{border-color:var(--danger);animation:shake .3s var(--ease-out)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236a6081' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.input-group{align-items:center;display:flex;position:relative}.input-group>.icon{color:var(--ink-400);pointer-events:none;position:absolute;left:12px}.input-group>.input{padding-left:38px}.input-prefix{color:var(--ink-500);font-weight:600;position:absolute;left:12px}.input-group.has-prefix>.input{padding-left:28px}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.check{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:inline-flex}.check input{appearance:none;border:1.5px solid var(--line-300);background:var(--surface);width:18px;height:18px;transition:background var(--dur-fast), border-color var(--dur-fast);border-radius:5px;flex:none;place-content:center;margin-top:2px;display:grid}.check input:after{content:"";width:10px;height:6px;transition:transform var(--dur-fast) var(--ease-out);border-bottom:2px solid #fff;border-left:2px solid #fff;margin-top:-2px;transform:rotate(-45deg)scale(0)}.check input:checked{background:var(--violet-600);border-color:var(--violet-600)}.check input:checked:after{transform:rotate(-45deg)scale(1)}.switch{background:var(--line-300);width:40px;height:24px;transition:background var(--dur-base);cursor:pointer;border-radius:999px;flex:none;position:relative}.switch:after{content:"";width:18px;height:18px;box-shadow:var(--e2);transition:transform var(--dur-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--violet-600)}.switch[aria-checked=true]:after{transform:translate(16px)}.segmented{background:var(--violet-100);border-radius:12px;gap:2px;padding:3px;display:inline-flex;position:relative}.segmented button{z-index:1;height:32px;color:var(--ink-500);transition:color var(--dur-fast);border-radius:9px;padding:0 14px;font-size:13px;font-weight:600;position:relative}.segmented button.is-on{color:var(--violet-800)}.segmented .seg-pill{box-shadow:var(--e2);z-index:0;background:#fff;border-radius:9px;position:absolute;top:3px;bottom:3px}.table-wrap{border:1px solid var(--line-200);border-radius:var(--r-lg);background:var(--surface);overflow:auto}.table{font-size:14px}.table th{z-index:1;text-align:left;color:var(--ink-500);letter-spacing:.01em;background:var(--surface-tint);border-bottom:1px solid var(--line-200);white-space:nowrap;padding:11px 16px;font-size:12px;font-weight:650;position:sticky;top:0}.table td{border-bottom:1px solid var(--line-200);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur-fast)}.table tbody tr:hover{background:var(--violet-50)}.table tbody tr.is-selected{background:var(--violet-100)}.table tbody tr.is-clickable{cursor:pointer}.table.compact td{padding:8px 16px}.table .cell-main{align-items:center;gap:12px;min-width:0;display:flex}.table .cell-title{color:var(--ink-950);font-weight:600}.table .cell-sub{color:var(--ink-500);font-size:12px}.tabs{border-bottom:1px solid var(--line-200);gap:4px;display:flex;position:relative;overflow-x:auto}.tabs button{color:var(--ink-500);white-space:nowrap;transition:color var(--dur-fast);padding:10px 14px;font-size:14px;font-weight:600;position:relative}.tabs button:hover{color:var(--ink-950)}.tabs button.is-on{color:var(--violet-700)}.tabs .tab-line{background:var(--violet-600);border-radius:2px;height:2px;position:absolute;bottom:-1px}.tabs .count{background:var(--violet-100);color:var(--violet-800);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px}.avatar{--s:36px;width:var(--s);height:var(--s);font-size:calc(var(--s) * .38);color:var(--violet-900);background:var(--violet-100);letter-spacing:0;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-content:center;font-weight:700;display:inline-grid}.avatar-stack{display:inline-flex}.avatar-stack .avatar{margin-left:-8px;box-shadow:0 0 0 2px #fff}.avatar-stack .avatar:first-child{margin-left:0}.kbd{background:var(--surface-tint);border:1px solid var(--line-300);min-width:22px;height:22px;font-family:var(--font-ui);color:var(--ink-500);border-bottom-width:2px;border-radius:6px;place-content:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-grid}.progress{background:var(--violet-100);border-radius:999px;height:8px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--brand-gradient);height:100%;transition:width .6s var(--ease-out);display:block}.skeleton{background:linear-gradient(100deg, var(--violet-100) 30%, #fff 50%, var(--violet-100) 70%);background-size:200% 100%;border-radius:8px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.dot-pulse{background:var(--amber);width:8px;height:8px;animation:pulse 1.8s var(--ease-in-out) infinite;border-radius:50%}@keyframes pulse{50%{opacity:.5;transform:scale(1.5)}}.tone-success{color:var(--success)}.tone-warning{color:var(--warning)}.tone-danger{color:var(--danger)}.tone-info{color:var(--info)}.backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;background:#22143f5c;position:fixed;inset:0}.modal{z-index:210;background:var(--surface);border-radius:var(--r-xl);width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--e4);border:1px solid var(--line-200);position:fixed;top:50%;left:50%;overflow:auto;translate:-50% -50%}.modal-head{align-items:center;gap:12px;padding:20px 24px 8px;display:flex}.modal-body{padding:8px 24px 20px}.modal-foot{border-top:1px solid var(--line-200);background:var(--surface-tint);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.drawer{z-index:210;background:var(--surface);border-left:1px solid var(--line-200);width:min(480px,100vw);box-shadow:var(--e4);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--line-200);align-items:center;gap:12px;padding:16px 20px;display:flex}.drawer-body{flex:1;padding:20px;overflow:auto}.fade-enter-active,.fade-leave-active{transition:opacity var(--dur-base) var(--ease-out)}.fade-enter-from,.fade-leave-to{opacity:0}.pop-enter-active{transition:opacity .22s var(--ease-out), scale .3s cubic-bezier(.34, 1.56, .64, 1)}.pop-leave-active{transition:opacity .14s var(--ease-in-out), scale .14s var(--ease-in-out)}.pop-enter-from,.pop-leave-to{opacity:0;scale:.96}.slide-enter-active{transition:transform .42s cubic-bezier(.22,1,.36,1)}.slide-leave-active{transition:transform .24s var(--ease-in-out)}.slide-enter-from,.slide-leave-to{transform:translate(100%)}.toast-region{z-index:300;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--violet-950);color:#fff;min-width:280px;max-width:min(520px,100vw - 32px);box-shadow:var(--e4);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-size:14px;display:flex;position:relative;overflow:hidden}.toast .toast-icon{background:#ffffff24;border-radius:50%;place-content:center;width:24px;height:24px;display:grid}.toast.is-success .toast-icon{background:var(--success)}.toast.is-error .toast-icon{background:var(--danger)}.toast .toast-undo{color:var(--violet-300);margin-left:auto;font-weight:700}.toast .toast-bar{background:var(--violet-400);height:2px;animation:linear forwards toastbar;position:absolute;bottom:0;left:0}@keyframes toastbar{0%{width:100%}to{width:0}}.toast-enter-active{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active{transition:all .2s var(--ease-in-out)}.toast-enter-from{opacity:0;transform:translateY(16px)scale(.96)}.toast-leave-to{opacity:0;transform:translateY(8px)}@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}.ai-border{background:var(--surface);isolation:isolate;border-radius:18px;position:relative}.ai-border:before{content:"";z-index:-1;background:conic-gradient(from var(--angle), #8f63f4, #7fa8ff, #f7a8e8, #8f63f4);opacity:.85;border-radius:20px;animation:5s linear infinite spin;position:absolute;inset:-1.5px}.ai-border:after{content:"";z-index:-1;border-radius:inherit;background:var(--surface);position:absolute;inset:0}.ai-border.is-idle:before{opacity:.55;animation-duration:12s}@keyframes spin{to{--angle:360deg}}.orb{--s:40px;width:var(--s);height:var(--s);box-shadow:0 0 0 0 var(--ai-glow), 0 8px 24px var(--ai-glow);animation:breathe 6s var(--ease-in-out) infinite;background:radial-gradient(circle at 32% 28%,#fff 0,#d9c8ff 22%,#8f63f4 62%,#6232b8 100%);border-radius:50%;flex:none;position:relative}.orb:after{content:"";border:2px solid #0000;border-top-color:var(--violet-400);opacity:0;transition:opacity var(--dur-base);border-right-color:#7fa8ff;border-radius:50%;position:absolute;inset:-5px}.orb[data-state=thinking]:after{opacity:1;animation:1s linear infinite rot}.orb[data-state=thinking]{animation-duration:1.6s}@keyframes breathe{50%{box-shadow:0 0 0 8px #8f63f41a, 0 10px 30px var(--ai-glow);transform:scale(1.06)}}@keyframes rot{to{transform:rotate(360deg)}}.ai-rail{border-left:2px solid #0000;border-image:var(--ai-gradient) 1;padding-left:14px}.source-chip{background:var(--surface-tint);border:1px solid var(--violet-200);height:26px;color:var(--violet-800);cursor:pointer;transition:background var(--dur-fast), transform var(--dur-fast) var(--ease-out);border-radius:8px;align-items:center;gap:6px;padding:0 10px 0 8px;font-size:12px;font-weight:600;display:inline-flex}.source-chip:hover{background:var(--violet-100);transform:translateY(-1px)}.typing-caret:after{content:"";vertical-align:-.12em;background:var(--violet-600);width:2px;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.gradient-text{background:var(--ai-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.check-draw path{stroke-dasharray:24;stroke-dashoffset:24px;animation:draw .5s .1s var(--ease-out) forwards}@keyframes draw{to{stroke-dashoffset:0}}.confetti{pointer-events:none;z-index:400;position:fixed;inset:0;overflow:hidden}.confetti i{width:8px;height:14px;animation:fall var(--t,2.2s) var(--d,0s) cubic-bezier(.3, .6, .4, 1) forwards;border-radius:2px;position:absolute;top:-12px}@keyframes fall{to{transform:translate3d(var(--x,0), 105vh, 0) rotate(var(--r,540deg));opacity:.9}}.empty{text-align:center;color:var(--ink-500);place-items:center;gap:8px;padding:48px 24px;display:grid}.empty .empty-art{background:var(--violet-100);width:72px;height:72px;color:var(--violet-600);animation:floaty 5s var(--ease-in-out) infinite;border-radius:24px;place-content:center;display:grid}@keyframes floaty{50%{transform:translateY(-6px)rotate(-3deg)}}.st-sec{padding:72px 0}.st-sec.tint{background:linear-gradient(180deg, var(--violet-50), #fff 80%)}.st-sec.tight{padding:48px 0}.st-grid{gap:18px;display:grid}.st-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.st-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.st-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1000px){.st-grid.c4,.st-grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.st-grid.c2,.st-grid.c3,.st-grid.c4{grid-template-columns:minmax(0,1fr)}.st-sec{padding:52px 0}}.st-card{border:1px solid var(--line-200);transition:transform .3s var(--ease-out), box-shadow .3s, border-color .3s;color:inherit;background:#fff;border-radius:24px;flex-direction:column;gap:10px;padding:24px;display:flex;position:relative}a.st-card:hover,.st-card.lift:hover{box-shadow:var(--e3);border-color:var(--violet-200);transform:translateY(-4px)}.st-card h3{font-family:var(--font-display);color:var(--ink-950);letter-spacing:-.01em;font-size:1.1875rem;font-weight:650;line-height:1.3}.st-card p{color:var(--ink-500);font-size:15px;line-height:1.6}.st-ico{background:var(--violet-100);width:46px;height:46px;color:var(--violet-700);border-radius:15px;flex:none;place-content:center;display:grid}.st-ico.blush{background:var(--blush);color:#9b2f7a}.st-ico.mint{background:var(--mint);color:#17755a}.st-ico.sky{background:var(--sky);color:#2c5ab5}.st-ico.butter{background:var(--butter);color:#8a6212}.st-more{color:var(--violet-700);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:14px;font-weight:650;display:inline-flex}a.st-card:hover .st-more svg{transform:translate(3px)}.st-more svg{transition:transform .2s var(--ease-out)}.st-badge{letter-spacing:.02em;background:var(--violet-100);color:var(--violet-800);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.st-badge.ai{color:var(--violet-800);background:linear-gradient(120deg,#efe6ff,#fbe3f4)}.st-badge.soon{background:var(--butter);color:#7a5a10}.st-badge.later{background:var(--line-200);color:var(--ink-700)}.st-badge.ok{background:var(--success-bg);color:var(--success)}.st-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;display:grid}@media (width<=900px){.st-split{grid-template-columns:minmax(0,1fr);gap:32px}}.st-ticks{gap:10px;display:grid}.st-ticks li{color:var(--ink-700);align-items:flex-start;gap:10px;font-size:15.5px;line-height:1.55;display:flex}.st-ticks li svg{color:var(--violet-600);flex:none;margin-top:4px}.st-ticks.x li svg{color:var(--danger)}.st-chips{flex-wrap:wrap;gap:8px;display:flex}.st-chip{border:1px solid var(--line-200);color:var(--ink-700);transition:all .2s var(--ease-out);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:13.5px;font-weight:600;display:inline-flex}a.st-chip:hover{border-color:var(--violet-300);color:var(--violet-800);background:var(--violet-50);transform:translateY(-1px)}.st-chip b{font-family:var(--font-mono);background:var(--violet-100);color:var(--violet-800);border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:600}.st-tabs{background:var(--violet-100);border-radius:14px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.st-tabs button{color:var(--ink-700);border-radius:10px;padding:8px 16px;font-size:14px;font-weight:650}.st-tabs button.on{color:var(--violet-800);box-shadow:var(--e1);background:#fff}.st-note{color:var(--ink-500);align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.55;display:flex}.st-note svg{flex:none;margin-top:3px}.st-prose{color:var(--ink-700);font-size:16.5px;line-height:1.75}.st-prose h2{font-family:var(--font-display);color:var(--ink-950);letter-spacing:-.02em;margin:44px 0 14px;scroll-margin-top:96px;font-size:1.625rem;line-height:1.25}.st-prose h3{font-family:var(--font-display);color:var(--ink-950);margin:28px 0 10px;font-size:1.25rem}.st-prose p{max-width:68ch;margin:0 0 16px}.st-prose ul,.st-prose ol{max-width:66ch;margin:0 0 18px;padding-left:22px}.st-prose ul{list-style:outside}.st-prose ol{list-style:decimal}.st-prose li{margin-bottom:8px;padding-left:4px}.st-prose li::marker{color:var(--violet-500)}.st-prose a{color:var(--violet-700);text-underline-offset:3px;font-weight:600;text-decoration:underline}.st-prose strong{color:var(--ink-950)}.st-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14.5px}.st-table th{text-align:left;background:var(--violet-50);color:var(--ink-700);border-bottom:1px solid var(--line-200);padding:14px 16px;font-size:13px;font-weight:700;position:sticky;top:0}.st-table td{border-bottom:1px solid var(--line-200);vertical-align:top;color:var(--ink-700);padding:14px 16px;line-height:1.5}.st-table tr:last-child td{border-bottom:0}.st-table td:first-child{color:var(--ink-950);font-weight:600}.st-table-wrap{border:1px solid var(--line-200);background:#fff;border-radius:20px;overflow-x:auto}.st-input-lg{height:52px;font-size:16px}.st-center{text-align:center;justify-items:center}.cx{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:28px;display:grid}@media (width<=900px){.cx{grid-template-columns:minmax(0,1fr)}}.cx-in,.cx-out{border:1px solid var(--line-200);box-shadow:var(--e2);background:#fff;border-radius:28px;gap:18px;padding:28px;display:grid}.cx-out{background:linear-gradient(170deg, var(--violet-50), #fff);border-color:var(--violet-200);position:sticky;top:96px}@media (width<=900px){.cx-out{position:static}}.cx-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=560px){.cx-row{grid-template-columns:minmax(0,1fr)}}.cx-big{font-family:var(--font-display);color:var(--violet-700);letter-spacing:-.03em;font-size:clamp(2.25rem,5vw,3.25rem);font-weight:800;line-height:1.05}.cx-cap{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-400);font-size:12px;font-weight:700}.cx-lines{display:grid}.cx-lines>div{border-top:1px solid var(--line-200);color:var(--ink-700);justify-content:space-between;gap:16px;padding:10px 0;font-size:14.5px;display:flex}.cx-lines>div b{color:var(--ink-950);font-variant-numeric:tabular-nums}.cx-lines>div.total{border-top:2px solid var(--violet-300);font-weight:700}.cx-range{width:100%;accent-color:var(--violet-600)}.cx-range-l{color:var(--ink-700);justify-content:space-between;margin-bottom:4px;font-size:13.5px;font-weight:600;display:flex}.cx-sw{color:var(--ink-700);cursor:pointer;align-items:center;gap:10px;font-size:14.5px;display:flex}.skip-link{z-index:1000;background:var(--violet-700);color:#fff;transition:top .2s var(--ease-out);border-radius:10px;padding:10px 16px;font-weight:600;position:fixed;top:-64px;left:16px}.skip-link:focus{top:12px}.page-enter-active{transition:opacity .35s var(--ease-out), transform .35s var(--ease-out)}.page-leave-active{transition:opacity .12s linear}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0}[data-motion=off] .page-enter-active,[data-motion=off] .page-leave-active{transition:none}@media (prefers-reduced-motion:reduce){.page-enter-active,.page-leave-active{transition:opacity .12s linear}.page-enter-from{transform:none}}
