:root{--font-ui: "Plus Jakarta Sans", "PJS Fallback", "Noto Sans Khmer", "Noto Sans Khmer Fallback", "Khmer UI", "Leelawadee UI", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-hero: clamp(1.5rem, 1.1rem + 1.6vw, 2.125rem);--lh-tight: 1.35;--lh-ui: 1.7;--lh-body: 1.75;--lh-khmer-lg: 2;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--shell-max: 1200px;--side-w: 360px;--gutter: 16px;--header-h: 64px;--sticky-top: calc(var(--header-h) + var(--s-4));--control-sm: 36px;--control-h: 44px;--control-lg: 56px;--ease: cubic-bezier(.2, 0, 0, 1);--t-fast: .12s;--t-base: .18s;--focus-width: 2px;--focus-offset: 2px;color-scheme:light;--bg: #f6f8fc;--surface: #ffffff;--surface-2: #f1f5fb;--soft: #eaf4ff;--peach: #fff0e5;--track: #e6ebf5;--ink: #08235d;--ink-2: #44598a;--ink-3: #55678d;--line: #dbe1eb;--line-strong: #7a8aad;--primary: #3b36c9;--primary-hover: #322db0;--primary-press: #29259a;--primary-ink: #ffffff;--primary-text: #3b36c9;--primary-tint: #eeedfc;--primary-tint-ink: #2f2aa8;--meter-fill: #3b36c9;--accent: #dd4706;--accent-text: #b83a04;--ok: #0b7a43;--ok-tint: #e6f6ee;--warn: #9a3c06;--warn-tint: #fff0e5;--err: #bf2430;--err-tint: #fdeced;--focus: #3b36c9;--focus-halo: 0 0 0 3px rgba(59, 54, 201, .22);--skel-base: #e8edf6;--skel-shine: #f7f9fd;--selection: #cbcdfb;--header-bg: rgba(255, 255, 255, .94);--hero-from: #2f2bb0;--hero-to: #4a3fd8;--hero-ink: #ffffff;--hero-ink-2: #dcdfff;--hero-chip-bg: rgba(255, 255, 255, .14);--hero-line: rgba(255, 255, 255, .22);--hero-art: rgba(255, 255, 255, .22);--hero-cta-bg: #ffffff;--hero-cta-hover: #eef0ff;--hero-cta-ink: #2f2aa8;--shadow-0: none;--shadow-1: 0 1px 2px rgba(8, 35, 93, .06);--shadow-2: 0 1px 2px rgba(8, 35, 93, .04), 0 8px 24px rgba(8, 35, 93, .07);--shadow-3: 0 -1px 2px rgba(8, 35, 93, .04), 0 -8px 24px -4px rgba(8, 35, 93, .14);--shadow-bar: 0 -1px 2px rgba(8, 35, 93, .04), 0 -8px 24px -4px rgba(8, 35, 93, .12)}@media(min-width:640px){:root{--gutter: 24px}}@media(min-width:1024px){:root{--gutter: 32px}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0b1020;--surface: #121a30;--surface-2: #0e1527;--soft: #172647;--peach: #2b1d1b;--track: #232d55;--ink: #e8edf8;--ink-2: #a3b1cf;--ink-3: #8e9dbf;--line: #243050;--line-strong: #5b6c96;--primary: #5b55e6;--primary-hover: #6660ee;--primary-press: #4c46d6;--primary-ink: #ffffff;--primary-text: #a5a1ff;--primary-tint: #1d2250;--primary-tint-ink: #c3c0ff;--meter-fill: #7b76f5;--accent: #ff7a3d;--accent-text: #ff9a66;--ok: #4cc38a;--ok-tint: #10291f;--warn: #ffa066;--warn-tint: #2b1d1b;--err: #ff8a92;--err-tint: #2e1620;--focus: #a5a1ff;--focus-halo: 0 0 0 3px rgba(165, 161, 255, .32);--skel-base: #172038;--skel-shine: #22305a;--selection: #3a3f8c;--header-bg: rgba(11, 16, 32, .94);--hero-from: #2b2780;--hero-to: #3b36c9;--hero-chip-bg: rgba(255, 255, 255, .12);--hero-line: rgba(255, 255, 255, .2);--hero-art: rgba(255, 255, 255, .2);--hero-cta-bg: #ffffff;--hero-cta-hover: #eef0ff;--hero-cta-ink: #2f2aa8;--shadow-0: none;--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .4);--shadow-3: 0 -1px 0 rgba(255, 255, 255, .04), 0 -8px 24px -4px rgba(0, 0, 0, .6);--shadow-bar: 0 -1px 0 rgba(255, 255, 255, .04), 0 -8px 24px -4px rgba(0, 0, 0, .55)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--surface: #121a30;--surface-2: #0e1527;--soft: #172647;--peach: #2b1d1b;--track: #232d55;--ink: #e8edf8;--ink-2: #a3b1cf;--ink-3: #8e9dbf;--line: #243050;--line-strong: #5b6c96;--primary: #5b55e6;--primary-hover: #6660ee;--primary-press: #4c46d6;--primary-ink: #ffffff;--primary-text: #a5a1ff;--primary-tint: #1d2250;--primary-tint-ink: #c3c0ff;--meter-fill: #7b76f5;--accent: #ff7a3d;--accent-text: #ff9a66;--ok: #4cc38a;--ok-tint: #10291f;--warn: #ffa066;--warn-tint: #2b1d1b;--err: #ff8a92;--err-tint: #2e1620;--focus: #a5a1ff;--focus-halo: 0 0 0 3px rgba(165, 161, 255, .32);--skel-base: #172038;--skel-shine: #22305a;--selection: #3a3f8c;--header-bg: rgba(11, 16, 32, .94);--hero-from: #2b2780;--hero-to: #3b36c9;--hero-chip-bg: rgba(255, 255, 255, .12);--hero-line: rgba(255, 255, 255, .2);--hero-art: rgba(255, 255, 255, .2);--hero-cta-bg: #ffffff;--hero-cta-hover: #eef0ff;--hero-cta-ink: #2f2aa8;--shadow-0: none;--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .4);--shadow-3: 0 -1px 0 rgba(255, 255, 255, .04), 0 -8px 24px -4px rgba(0, 0, 0, .6);--shadow-bar: 0 -1px 0 rgba(255, 255, 255, .04), 0 -8px 24px -4px rgba(0, 0, 0, .55)}@font-face{font-family:PJS Fallback;src:local("Arial"),local("Arial Regular"),local("Helvetica"),local("Liberation Sans");font-weight:400;size-adjust:103.84%;ascent-override:99.96%;descent-override:21.38%;line-gap-override:0%}@font-face{font-family:PJS Fallback;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Liberation Sans Bold");font-weight:700;size-adjust:100.66%;ascent-override:103.12%;descent-override:22.05%;line-gap-override:0%}@font-face{font-family:Noto Sans Khmer Fallback;src:local("Khmer UI"),local("Leelawadee UI");font-weight:400;size-adjust:98.37%;ascent-override:108.67%;descent-override:29.79%;line-gap-override:0%}@font-face{font-family:Noto Sans Khmer Fallback;src:local("Khmer UI"),local("Leelawadee UI");font-weight:700;size-adjust:105.66%;ascent-override:101.18%;descent-override:27.73%;line-gap-override:0%}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;scroll-padding-top:var(--sticky-top)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-base);line-height:var(--lh-body);font-weight:400;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}h1,h2,h3,p,ol,ul,figure,blockquote,fieldset{margin:0;padding:0}h1,h2,h3{font-weight:700;line-height:var(--lh-ui);letter-spacing:0;text-wrap:balance}p{text-wrap:pretty}ol,ul{list-style:none}fieldset{border:0;min-width:0}hr{margin:0;border:0;border-top:1px solid var(--line)}a{color:var(--primary-text);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--primary-hover)}:root[data-theme=dark] a:hover{color:var(--ink)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) a:hover{color:var(--ink)}}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit;margin:0}button{cursor:pointer}button:disabled{cursor:not-allowed}img,svg,audio,video{display:block;max-width:100%}audio{width:100%}[hidden]{display:none!important}:focus{outline:none}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}::selection{background:var(--selection);color:var(--ink)}::placeholder{color:var(--ink-3);opacity:1}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:var(--s-2);top:-80px;z-index:100;background:var(--ink);color:var(--bg);padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);text-decoration:none}.skip:focus-visible{top:var(--s-2)}.noscript{padding:var(--s-4);text-align:center}.muted{color:var(--ink-2)}.small{font-size:var(--fs-sm);line-height:var(--lh-body)}.nowrap{white-space:nowrap}.icon{flex:none}.stack>*+*{margin-top:var(--s-4)}.stack--tight>*+*{margin-top:var(--s-2)}.actions{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}.actions--end{justify-content:flex-end}.grid-2{display:grid;grid-template-columns:1fr;gap:var(--s-4)}@media(min-width:480px){.grid-2{grid-template-columns:1fr 1fr}}.eyebrow{font-size:var(--fs-xs);font-weight:700;line-height:var(--lh-ui);color:var(--ink-3)}.eyebrow:lang(en){letter-spacing:.08em;text-transform:uppercase}.skeleton{position:relative;overflow:hidden;background:var(--skel-base);border-radius:var(--r-sm);color:transparent}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--skel-shine),transparent);transform:translate(-100%);animation:skeleton-shimmer 1.4s var(--ease) infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-2)}@media(min-width:640px){.card{padding:var(--s-6)}}.sec-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}.sec-head__title{font-size:var(--fs-md);line-height:var(--lh-ui);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--control-h);padding:var(--s-1) var(--s-5);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:var(--fs-base);font-weight:600;line-height:var(--lh-ui);text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.btn:hover{background:var(--surface-2);border-color:var(--ink-3);color:var(--ink)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--primary-ink)}.btn--primary:active{background:var(--primary-press);border-color:var(--primary-press)}.btn--soft{background:var(--primary-tint);border-color:transparent;color:var(--primary-tint-ink)}.btn--soft:hover{background:var(--primary-tint);border-color:var(--primary-text);color:var(--primary-tint-ink)}.btn--ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn--ghost:hover{background:var(--surface-2);border-color:transparent;color:var(--ink)}.btn--danger{border-color:var(--err);color:var(--err)}.btn--sm{min-height:var(--control-sm);padding-block:0;padding-inline:var(--s-3);font-size:var(--fs-sm)}.btn--icon{padding:0;min-width:var(--control-h)}.btn--lg{min-height:var(--control-lg);padding:var(--s-2) var(--s-8);font-size:var(--fs-md);font-weight:700}.btn--block{display:flex;width:100%}.btn:disabled,.btn.is-disabled{background:var(--surface-2);border-color:var(--line);color:var(--ink-3);cursor:not-allowed}.btn--ghost:disabled,.btn--ghost.is-disabled{background:transparent;border-color:transparent}.btn:disabled:hover,.btn.is-disabled:hover{background:var(--surface-2);border-color:var(--line);color:var(--ink-3)}.btn:disabled:active,.btn.is-disabled:active{transform:none}.field{display:grid;gap:var(--s-2);min-width:0}.field__row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3)}.field__label{font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-ui)}.field__help{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.input{width:100%;min-height:var(--control-h);padding:var(--s-2) var(--s-3);background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:var(--fs-base);line-height:var(--lh-body);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.input:hover{border-color:var(--ink-3)}.input:focus-visible{outline:none;background:var(--surface);border-color:var(--focus);box-shadow:var(--focus-halo)}.input[aria-invalid=true]{border-color:var(--err)}.input:disabled{background:var(--surface-2);border-color:var(--line);color:var(--ink-3);cursor:not-allowed}.input--area{resize:vertical;min-height:5.5rem}.input--num{font-variant-numeric:tabular-nums}.check{display:flex;gap:var(--s-3);align-items:flex-start;min-height:var(--control-h);padding:var(--s-2) 0;cursor:pointer;line-height:var(--lh-body)}.check input,.choice input{flex:none;width:20px;height:20px;margin:.3em 0 0;accent-color:var(--primary);cursor:pointer}.check--sm{font-size:var(--fs-sm);padding:var(--s-1) 0;min-height:var(--control-sm)}.check>span,.choice__text,.alert>span{min-width:0;overflow-wrap:anywhere}.alert{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);border:1px solid var(--err);border-radius:var(--r-md);color:var(--err);background:var(--err-tint);font-size:var(--fs-sm);line-height:var(--lh-body)}.alert .icon{margin-top:.3em}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.chip{min-height:var(--control-sm);padding-block:0;padding-inline:var(--s-4);line-height:var(--lh-ui);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);cursor:pointer;font-size:var(--fs-sm);font-weight:500;color:var(--ink);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.chip:hover{background:var(--primary-tint);border-color:var(--primary-text);color:var(--primary-tint-ink)}.chip:active{transform:translateY(1px)}.progress{display:grid;gap:var(--s-2)}.progress--side{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--s-4)}.progress__main{display:grid;gap:var(--s-2);min-width:0}.progress__row{display:flex;justify-content:space-between;gap:var(--s-3);align-items:baseline}.progress__row--meta{font-size:var(--fs-xs);line-height:var(--lh-ui);color:var(--ink-3);flex-wrap:wrap;gap:0 var(--s-3)}.progress__stage{font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-ui)}.progress__pct{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary-text)}.progress__file{overflow-wrap:anywhere}.bar{height:8px;background:var(--track);border-radius:var(--r-pill);overflow:hidden}.bar__fill{height:100%;width:100%;background:var(--meter-fill);border-radius:var(--r-pill);transform-origin:left center;transform:scaleX(0);transition:transform var(--t-base) linear}@keyframes page-in{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){.app>:not(.skip){animation:page-in var(--t-base) var(--ease) backwards}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.bar{outline:1px solid CanvasText;outline-offset:-1px}.bar__fill{forced-color-adjust:none;background:Highlight}.input:focus-visible{outline:var(--focus-width) solid Highlight;outline-offset:var(--focus-offset)}.skip{border:1px solid CanvasText}}@media print{html,body{background:Canvas;color:CanvasText}.wrap,.main{max-width:none;padding:0}.site-header,.site-footer,.skip,.hero,.workspace__side,.generate,.generate__bar,.theme-toggle,.dev-notice,.result__downloads,.btn{display:none!important}.card{box-shadow:none;break-inside:avoid}a[href^=http]:after{content:" (" attr(href) ")";font-size:.8em}}.wrap{width:100%;max-width:calc(var(--shell-max) + var(--gutter) * 2);margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}.main{padding-block:var(--s-4) var(--s-12);outline:none}.main>*+*{margin-top:var(--s-4)}.dev-notice{font-size:var(--fs-xs);line-height:var(--lh-ui);padding:var(--s-2) var(--s-3);border:1px dashed var(--line-strong);border-radius:var(--r-sm);color:var(--ink-2);background:var(--surface-2)}@media(min-width:1024px){.dev-notice{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:40;max-width:17rem;margin:0!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.dev-notice+.workspace{margin-top:0}}.hero{order:0}.workspace{display:flex;flex-direction:column;gap:var(--s-4)}.workspace__main,.workspace__side,.workspace__scroll,.generate{display:contents}.workspace__side-title{display:none}.device{order:10}.voice{order:20}.editor{order:30}.advanced{order:40}.generate__opts{order:50}.generate__bar{order:51}.result{order:60}@media(min-width:1024px){.main{padding-top:var(--s-6)}.main>*+*{margin-top:var(--s-6)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) var(--side-w);gap:var(--s-6);align-items:start}.workspace__main{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.workspace__side{display:flex;flex-direction:column;min-width:0;position:sticky;top:var(--sticky-top);max-height:calc(100vh - var(--sticky-top) - var(--s-4))}.workspace__scroll{display:flex;flex-direction:column;gap:var(--s-4);flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;scroll-padding:var(--s-4);margin:calc(var(--s-4) * -1) calc(var(--s-4) * -1) 0;padding:var(--s-4)}.workspace__side-title{display:block;position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workspace__side>.generate{position:relative;flex:none}.device,.voice,.editor,.advanced,.generate__opts,.generate__bar,.result{order:0}}.site-header{position:sticky;top:0;z-index:30;background:var(--bg);transition:background-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.site-header.is-scrolled{background:var(--surface);box-shadow:inset 0 -1px 0 var(--line),var(--shadow-1)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);height:var(--header-h)}.brand-block{display:flex;align-items:center;gap:var(--s-3);min-width:0}.brand__mark{display:grid;place-items:center;flex:none;width:var(--s-8);height:var(--s-8);border-radius:var(--r-sm);background:var(--primary);color:var(--primary-ink)}.brand-text{display:grid;min-width:0}.brand-sub{margin-top:-6px;font-size:.6875rem;font-weight:600;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink-3)}.brand{font-size:var(--fs-lg);font-weight:800;line-height:var(--lh-ui);white-space:nowrap;color:var(--ink)}.site-header__actions{display:flex;align-items:center;flex:none;gap:var(--s-4)}.sponsor{display:flex;align-items:center;min-width:0}.sponsor__link{position:relative;display:inline-flex;align-items:baseline;gap:var(--s-2);max-width:100%;color:var(--ink-3);border-radius:var(--r-sm);text-decoration:none}.sponsor__label{font-size:var(--fs-xs);font-weight:500;line-height:1.5;white-space:nowrap}.sponsor__link:hover .sponsor__label{color:var(--ink-2)}.sponsor__logo{width:104px;height:auto}.sponsor__logo--dark{display:none}:root[data-theme=dark] .sponsor__logo--light{display:none}:root[data-theme=dark] .sponsor__logo--dark{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .sponsor__logo--light{display:none}:root:not([data-theme=light]) .sponsor__logo--dark{display:block}}.lang-switch{display:inline-flex;flex:none;align-items:stretch;height:var(--s-10);padding:3px;gap:2px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill)}.lang-switch__btn{display:grid;place-items:center;min-width:42px;padding:0 var(--s-3);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-2);font:inherit;font-size:var(--fs-sm);font-weight:500;line-height:var(--lh-ui);cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.lang-switch__btn:hover{background:var(--surface-2);color:var(--ink)}.lang-switch__btn[aria-pressed=true]{background:var(--primary-tint);color:var(--primary-tint-ink);font-weight:700;cursor:default}.lang-switch__btn:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:1px}@media(forced-colors:active){.lang-switch__btn[aria-pressed=true]{background:Highlight;color:HighlightText}}.theme-toggle{position:relative;display:grid;place-items:center;flex:none;width:var(--s-10);height:var(--s-10);padding:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--ink-2);cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.theme-toggle:hover{background:var(--surface-2);border-color:var(--ink-3);color:var(--ink)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle:after{content:attr(aria-label);position:absolute;top:calc(100% + var(--s-2));right:0;z-index:40;width:max-content;max-width:min(20rem,80vw);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--ink);color:var(--bg);font-size:var(--fs-xs);font-weight:500;line-height:var(--lh-ui);text-align:start;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(calc(var(--s-1) * -1));transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),visibility var(--t-fast) var(--ease)}.theme-toggle:focus-visible:after{opacity:1;visibility:visible;transform:none}@media(hover:hover){.theme-toggle:hover:after{opacity:1;visibility:visible;transform:none}}@media(max-width:639.98px){.site-header .sponsor__label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header .sponsor__logo{width:96px}}@media(max-width:479.98px){.site-header__inner,.site-header__actions{gap:var(--s-2)}.site-header .brand__mark{display:none}.site-header .brand{font-size:var(--fs-md)}.site-header .sponsor__logo{width:72px}.lang-switch__btn{min-width:36px;padding:0 var(--s-2)}}@media(max-width:359.98px){.site-header .sponsor__logo{width:60px}.lang-switch__btn{min-width:32px;padding:0 6px}}@media(min-width:1024px){.site-header__actions{gap:var(--s-6)}.site-header .sponsor{height:var(--s-6);padding-inline-start:var(--s-6);border-inline-start:1px solid var(--line)}}.hero{display:grid;gap:var(--s-4);padding:var(--s-4);border-radius:var(--r-xl);color:var(--hero-ink);background:linear-gradient(120deg,var(--hero-from),var(--hero-to));box-shadow:var(--shadow-2)}.hero__body{display:grid;gap:var(--s-1);justify-items:start;min-width:0}.hero__title{font-size:clamp(1.375rem,1rem + 1.2vw,1.75rem);font-weight:800;line-height:var(--lh-ui);color:var(--hero-ink)}.hero__sub{max-width:40rem;font-size:var(--fs-sm);line-height:var(--lh-ui);color:var(--hero-ink-2)}.hero__chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.hero__chip{display:inline-flex;align-items:center;gap:var(--s-1);min-height:28px;padding:0 var(--s-3) 0 var(--s-2);border:1px solid color-mix(in srgb,var(--hero-ink) 24%,transparent);border-radius:var(--r-pill);background:var(--hero-chip-bg);color:var(--hero-ink);font-size:var(--fs-xs);font-weight:500;line-height:var(--lh-ui)}.hero__chip .icon{width:14px;height:14px}.hero__side{display:grid;gap:var(--s-3);min-width:0}.hero__wave{display:flex;align-items:center;justify-content:space-between;height:var(--s-6)}.hero__wave span{flex:0 0 4px;height:var(--h);border-radius:2px;background:color-mix(in srgb,var(--hero-ink) 32%,transparent)}@media(prefers-reduced-motion:no-preference){.hero__wave span{animation:hero-bar var(--d) ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.23s)}}@keyframes hero-bar{0%{transform:scaleY(.5)}to{transform:scaleY(1)}}.hero__cta{width:100%;background:var(--hero-cta-bg);border-color:transparent;color:var(--hero-cta-ink);font-weight:700}.hero__cta:hover{background:color-mix(in srgb,var(--hero-cta-bg) 90%,var(--hero-cta-ink));border-color:transparent;color:var(--hero-cta-ink)}.hero__cta:focus-visible{outline-color:var(--hero-ink)}@media(min-width:640px){.hero{gap:var(--s-4);padding:var(--s-5) var(--s-6)}.hero__side{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s-6)}.hero__wave{height:var(--s-8)}.hero__cta{width:auto}}@media(min-width:1024px){.hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s-6);padding:var(--s-4) var(--s-6)}.hero__sub{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hero__side{grid-template-columns:minmax(0,1fr);gap:var(--s-2)}.hero__wave{height:var(--s-6)}.hero__cta{justify-self:stretch;width:100%;padding-inline:var(--s-5);white-space:nowrap}}.device .stack>*+*{margin-top:var(--s-3)}.verdict{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-base)}.verdict__dot{flex:none;width:var(--s-2);height:var(--s-2);margin-top:.625em;border-radius:var(--r-pill);background:var(--ink-3)}.verdict__text{display:grid;gap:var(--s-1);min-width:0;overflow-wrap:anywhere}.verdict__title{font-size:var(--fs-base);font-weight:600;line-height:var(--lh-body);color:var(--ink)}.verdict__meta{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-2)}.verdict__gpu{font-size:var(--fs-xs);color:var(--ink-3)}.verdict--ok,.verdict--ready{background:var(--ok-tint)}.verdict--ok .verdict__dot,.verdict--ready .verdict__dot{background:var(--ok)}.verdict--maybe,.verdict--no{background:var(--warn-tint)}.verdict--maybe .verdict__dot,.verdict--no .verdict__dot{background:var(--warn)}.verdict--ready .verdict__title{color:var(--ok)}.slot{display:grid;align-content:start;gap:var(--s-3);min-height:13.5rem}.slot--busy{align-content:center}.slot__note{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink)}.device .progress__stage{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:var(--lh-body)}.device .progress__pct{flex:none;line-height:var(--lh-body)}.device .progress__foot{display:flex;align-items:center;gap:var(--s-3);min-width:0}.device .progress__meta{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.device .progress__file{margin-inline-start:var(--s-2)}.device{position:relative}.slot__fine{display:grid;gap:var(--s-1)}.slot__fine p{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.slot__links{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s-2);margin-inline:calc(var(--s-3) * -1)}.slot__links .btn--ghost{text-decoration:underline;text-underline-offset:.25em}.slot__confirm{flex:1 1 100%;padding-inline:var(--s-3);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--err)}.slot__ok{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--ok-tint);color:var(--ok);font-size:var(--fs-sm);line-height:var(--lh-body)}.slot__ok .icon{margin-top:.3em}.slot--checking{grid-auto-rows:min-content}.slot__sk--note{height:calc(var(--s-6) + var(--s-2))}.slot__sk--btn{height:var(--control-h);border-radius:var(--r-pill)}.device--drop{border-color:var(--primary-text)}.device__drop{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;gap:var(--s-3);border-radius:var(--r-lg);background:var(--primary-tint);color:var(--primary-tint-ink);outline:2px dashed var(--primary-text);outline-offset:calc(var(--s-2) * -1);font-weight:600;pointer-events:none}.device__drop[hidden]{display:none}.voice{container:voice / inline-size}.voice__tabs{margin-bottom:var(--s-4)}.voice__tabs:empty{display:none}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1);padding:var(--s-1);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill)}.editor__tabs .tabs{display:inline-grid}.tab{min-height:40px;padding:2px var(--s-5);line-height:var(--lh-ui);background:transparent;border:1px solid transparent;border-radius:var(--r-pill);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{background:var(--surface);border-color:var(--line);color:var(--primary-text);font-weight:700;box-shadow:var(--shadow-1)}.voice__panel{display:grid;gap:var(--s-4)}.choices{display:grid;gap:var(--s-2)}@container voice (min-width: 480px){.choices{grid-template-columns:1fr 1fr}}.choice{position:relative;display:flex;align-items:flex-start;gap:var(--s-3);min-height:64px;padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.choice:hover{border-color:var(--line-strong)}.choice:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.choice:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.choice input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.choice__mark{flex:none;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border:1.5px solid var(--line-strong);border-radius:50%;color:var(--primary-ink);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.choice__mark .icon{opacity:0;transform:scale(.6);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.choice:has(input:checked) .choice__mark{background:var(--primary);border-color:var(--primary)}.choice:has(input:checked) .choice__mark .icon{opacity:1;transform:none}.choice__text{display:grid;gap:var(--s-1);min-width:0;overflow-wrap:anywhere}.choice__title{font-size:var(--fs-base);font-weight:600;line-height:var(--lh-ui)}.choice__hint{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.voice__design{display:grid;gap:var(--s-4)}.voice__design:not([hidden]){animation:voice-in var(--t-base) var(--ease)}@keyframes voice-in{0%{opacity:0;transform:translateY(-4px)}}.voice__meta{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-top:var(--s-1)}.voice__meta .field__help{min-width:0}.voice__count{flex:none;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3);font-variant-numeric:tabular-nums}.voice__count.is-full{color:var(--warn);font-weight:600}.voice__examples{display:grid;gap:var(--s-2)}.voice__examples-label{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.voice__examples .chip.is-active{background:var(--primary-tint);border-color:var(--primary-text);color:var(--primary-tint-ink)}.voice__intro{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-2)}.sample{display:grid;gap:var(--s-1);padding:var(--s-3) var(--s-4);background:var(--soft);border-radius:var(--r-md)}.sample__cap{font-size:var(--fs-xs);font-weight:600;line-height:var(--lh-body);color:var(--ink-2)}.sample__text{font-size:var(--fs-base);line-height:var(--lh-khmer-lg);color:var(--ink)}.voice__get{display:grid;gap:var(--s-3)}.voice__or{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.voice__or:before,.voice__or:after{content:"";flex:1;height:1px;background:var(--line)}@container voice (min-width: 480px){.voice__get{grid-template-columns:1fr 1fr;align-items:center}.voice__or{display:none}}.rec{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--s-4);min-width:0}.rec__btn{grid-column:1;grid-row:1;position:relative;isolation:isolate;display:grid;place-items:center;width:72px;height:72px;padding:0;background:var(--primary);border:1px solid var(--primary);border-radius:50%;color:var(--primary-ink);cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.rec__btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.rec__btn:active{background:var(--primary-press);border-color:var(--primary-press);transform:translateY(1px)}.rec__btn:disabled{background:var(--surface-2);border-color:var(--line);color:var(--ink-3);cursor:not-allowed;transform:none}.rec__ring{position:absolute;inset:-6px;z-index:-1;border:2px solid var(--err);border-radius:50%;opacity:0;pointer-events:none}.rec[data-recording=true] .rec__ring{opacity:.45;animation:rec-ring 1.6s var(--ease) infinite}@keyframes rec-ring{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}.rec__label{grid-column:2;grid-row:1;min-width:0;font-size:var(--fs-base);font-weight:600;line-height:var(--lh-ui)}.rec__foot{grid-column:1 / -1;grid-row:2;display:grid;gap:var(--s-2);min-width:0}.rec[data-recording=true] .rec__foot{margin-top:var(--s-3)}.rec__line{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:22px}.rec[data-recording=false] .rec__line{min-height:0}.rec__status{display:inline-flex;align-items:center;min-width:0;font-size:var(--fs-sm);line-height:var(--lh-ui);color:var(--ink-2)}.rec[data-recording=true] .rec__status:before{content:"";display:inline-block;flex:none;width:8px;height:8px;margin-inline-end:var(--s-2);border-radius:50%;background:var(--err);animation:rec-pulse 1.2s ease-in-out infinite}@keyframes rec-pulse{50%{opacity:.25}}.rec__time{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.rec__time:empty{display:none}.meter{height:8px;background:var(--primary-tint);border-radius:var(--r-pill);overflow:hidden}.rec[data-recording=false] .meter{display:none}.meter__fill{height:100%;width:100%;background:var(--primary);border-radius:var(--r-pill);transform-origin:left center;transform:scaleX(0);transition:transform .06s linear}.drop{display:grid;justify-items:center;align-content:center;gap:var(--s-2);min-height:100%;padding:var(--s-4);text-align:center;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:var(--r-md);transition:border-color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.drop__hint{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.drop[data-over=true]{border-style:solid;border-color:var(--primary);background:var(--primary-tint)}.drop[data-over=true] .drop__hint{color:var(--primary-tint-ink);font-weight:600}.drop[data-disabled=true]{border-color:var(--line)}.ref{display:grid;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.ref__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);font-size:var(--fs-sm);line-height:var(--lh-ui)}.ref__ok{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700;color:var(--ok)}.ref__dur{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-xs);color:var(--ink-2);font-variant-numeric:tabular-nums}.ref__player{display:flex;align-items:center;gap:var(--s-3);min-width:0}.ref__play{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--primary-tint);border:0;border-radius:50%;color:var(--primary-tint-ink);cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.ref__play:hover{background:var(--primary);color:var(--primary-ink)}.ref__play:active{transform:translateY(1px)}.ref__wave{flex:1;min-width:0;height:44px}.ref__wave svg{width:100%;height:100%}.ref__bar{fill:var(--line-strong)}.ref__bar.is-played{fill:var(--primary)}.ref__rm{flex:none;width:44px;height:44px}.warn-list{display:flex;flex-wrap:wrap;gap:var(--s-2)}.warn-list li{display:inline-flex;align-items:flex-start;gap:var(--s-1);max-width:100%;min-height:28px;padding:2px var(--s-3);background:var(--warn-tint);border-radius:var(--r-pill);color:var(--warn);font-size:var(--fs-xs);line-height:var(--lh-body)}.warn-list li>span{min-width:0;overflow-wrap:anywhere}.warn-list .icon{margin-top:.3em}.voice__more{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.voice__more>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:var(--control-h);padding:var(--s-2) var(--s-4);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-ui);cursor:pointer;list-style:none}.voice__more>summary::-webkit-details-marker{display:none}.voice__more>summary:after{content:"";flex:none;width:7px;height:7px;margin-inline-end:var(--s-1);border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--t-base) var(--ease)}.voice__more[open]>summary:after{transform:translateY(2px) rotate(-135deg)}.voice__more>summary:hover{color:var(--ink)}.voice__more[open]>summary{color:var(--ink);border-bottom:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0}.voice__more-body{display:grid;gap:var(--s-4);padding:var(--s-4)}.consent{display:grid;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line)}.consent__row{display:flex;align-items:flex-start;gap:var(--s-3);min-height:var(--control-h);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-body);cursor:pointer;transition:border-color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.consent__row:hover{border-color:var(--line-strong)}.consent__row:has(input:checked){border-color:var(--primary);background:var(--primary-tint)}.consent__row input{flex:none;width:20px;height:20px;margin:.2em 0 0;accent-color:var(--primary);cursor:pointer}.consent__row>span{min-width:0;overflow-wrap:anywhere}.consent__note{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}@media(forced-colors:active){.meter__fill{forced-color-adjust:none;background:Highlight}.ref__bar{forced-color-adjust:none;fill:GrayText}.ref__bar.is-played{fill:Highlight}.tab[aria-selected=true],.choice:has(input:checked),.consent__row:has(input:checked){outline:2px solid Highlight}}.editor{--editor-pad: var(--s-5);display:grid;gap:var(--s-4)}@media(min-width:640px){.editor{--editor-pad: var(--s-6)}}.editor__card{padding:0;border-radius:var(--r-xl);transition:border-color var(--t-fast) var(--ease)}.editor__card.is-focused{border-color:var(--focus);box-shadow:var(--shadow-2),0 0 0 3px var(--primary-tint)}.editor__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--editor-pad) var(--editor-pad) 0}.editor__title{font-size:var(--fs-md);font-weight:700;line-height:var(--lh-body)}.editor__tabs:empty{display:none}.editor__area{display:block;width:100%;min-height:200px;max-height:min(60vh,480px);padding:var(--editor-pad);background:transparent;border:0;border-radius:0;font-size:var(--fs-lg);line-height:var(--lh-khmer-lg);resize:none;overflow-y:auto}@media(min-width:1024px){.editor__area{min-height:280px}}.editor__area:focus-visible{outline:none;background:transparent;box-shadow:none}.editor__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--editor-pad);border-top:1px solid var(--line)}.editor__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);min-width:0;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.editor__count{font-variant-numeric:tabular-nums}.editor__count.is-near{color:var(--accent-text);font-weight:600}.editor__chunks{display:inline-flex;align-items:center;min-height:28px;padding:2px var(--s-3);border-radius:var(--r-pill);background:var(--primary-tint);color:var(--primary-tint-ink);font-weight:600}.editor__chunks.is-empty{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3);font-weight:500}.editor__actions{display:flex;gap:var(--s-1);margin-inline-start:auto}.editor__starter{display:grid;gap:var(--s-3)}.editor__starter-title{font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-body);color:var(--ink-2)}.editor__chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:2px var(--s-4) 2px var(--s-3);border-color:var(--line-strong);line-height:var(--lh-body)}.editor__chip .icon{color:var(--primary-text)}.card--details{padding:0}.summary{display:flex;align-items:center;gap:var(--s-2);min-height:56px;padding:0 var(--s-5);border-radius:var(--r-lg);font-size:var(--fs-md);font-weight:700;line-height:var(--lh-body);cursor:pointer;list-style:none;user-select:none}.summary::-webkit-details-marker{display:none}.summary:hover{color:var(--primary-text)}.summary:after{content:"";flex:none;width:8px;height:8px;margin-inline-start:auto;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);transition:transform var(--t-base) var(--ease)}.advanced:not(.is-collapsed)>.summary:after{transform:rotate(-135deg)}.details__wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--t-base) var(--ease)}.advanced.is-collapsed>.details__wrap{grid-template-rows:0fr}.details__inner{min-height:0;overflow:hidden}.details__body{display:grid;gap:var(--s-3);padding:var(--s-4) var(--s-5) var(--s-5);border-top:1px solid var(--line)}.adv-row{gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.adv-row .field__label{line-height:var(--lh-body)}.adv-row .field__row{align-items:center;min-height:28px}.range{--fill: 50%;-webkit-appearance:none;appearance:none;display:block;width:100%;height:var(--control-h);margin:0;background:transparent;cursor:pointer}.adv-row--range .range{margin-block:calc(var(--s-3) * -1)}.range::-webkit-slider-runnable-track{height:6px;border-radius:var(--r-pill);background:linear-gradient(to right,var(--meter-fill) var(--fill),var(--track) var(--fill))}.range::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:var(--primary);border:2px solid var(--primary-ink);box-shadow:var(--shadow-2)}.range::-moz-range-track{height:6px;border-radius:var(--r-pill);background:var(--track)}.range::-moz-range-progress{height:6px;border-radius:var(--r-pill);background:var(--meter-fill)}.range::-moz-range-thumb{box-sizing:border-box;width:20px;height:20px;border-radius:50%;background:var(--primary);border:2px solid var(--primary-ink);box-shadow:var(--shadow-2)}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--focus)}.range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--focus)}.range__out{display:inline-flex;align-items:center;min-height:28px;padding:2px var(--s-3);border-radius:var(--r-pill);background:var(--primary-tint);color:var(--primary-tint-ink);font-size:var(--fs-sm);font-weight:700;line-height:var(--lh-body);font-variant-numeric:tabular-nums}.range__scale{display:flex;justify-content:space-between;gap:var(--s-3);font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.seed-row{display:flex;gap:var(--s-2)}.seed-row .input{flex:1;min-width:0}.seed-row .btn--icon{flex:none}.generate__opts{padding-inline:var(--s-1)}.gen-switch{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:var(--control-h);font-size:var(--fs-sm);line-height:var(--lh-body);cursor:pointer}.gen-switch__text{min-width:0}.gen-switch__input{appearance:none;flex:none;position:relative;width:var(--s-10);height:var(--s-6);margin:0;border-radius:var(--r-pill);background:var(--line-strong);box-shadow:inset 0 0 0 1px var(--ink-3);cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.gen-switch__input:before{content:"";position:absolute;top:var(--s-1);left:var(--s-1);width:var(--s-4);height:var(--s-4);border-radius:50%;background:var(--primary-ink);box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease)}.gen-switch__input:checked{background:var(--primary);box-shadow:none}.gen-switch__input:checked:before{transform:translate(var(--s-4))}@media(forced-colors:active){.gen-switch__input{appearance:auto}}.generate__bar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"btn btn" "status cancel" "error error";align-items:center;min-width:0}.gen__btn{grid-area:btn;margin-bottom:var(--s-2)}.gen__status{grid-area:status;display:grid;align-items:center;min-width:0;min-height:calc(var(--fs-sm) * var(--lh-body))}.gen__hint{min-width:0;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-2)}.gen__progress{display:flex;align-items:center;gap:var(--s-3);min-width:0;font-size:var(--fs-sm);line-height:var(--lh-body)}.gen__progress .progress__stage,.gen__progress .progress__pct{flex:none;font-size:inherit;line-height:var(--lh-body);white-space:nowrap}.gen__progress .bar{flex:1 1 auto;min-width:0}.gen__cancel{grid-area:cancel;margin-inline-start:var(--s-3);padding-inline:var(--s-3)}.gen__error{grid-area:error;margin-top:var(--s-2)}@media(max-width:1023.98px){.generate__bar{position:sticky;bottom:0;z-index:20;grid-template-areas:"btn btn" "status status";margin-inline:calc(var(--gutter) * -1);padding:var(--s-1) var(--gutter) max(var(--s-1),env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow-bar)}.generate__bar.is-busy{grid-template-areas:"btn cancel" "status status"}.generate .gen__btn{min-height:var(--control-h);margin-bottom:0;padding-block:0}.gen__cancel{margin-inline-start:var(--s-2)}.gen__status{min-height:calc(var(--fs-xs) * var(--lh-body))}.gen__hint,.gen__progress{font-size:var(--fs-xs)}.gen__hint{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gen__error{position:absolute;left:var(--gutter);right:var(--gutter);bottom:calc(100% + var(--s-2));margin-top:0;box-shadow:var(--shadow-2)}}@media(min-width:1024px){.generate{z-index:2;display:grid;gap:var(--s-2);padding:var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-3)}.generate__opts{padding-inline:0}}.result{border-radius:var(--r-xl);animation:result-in var(--t-base) var(--ease) backwards}@keyframes result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.result__head{display:grid;gap:var(--s-2)}.result__status-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3)}.result__status{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-md);font-weight:700;line-height:var(--lh-body)}.result__dot{flex:none;width:var(--s-2);height:var(--s-2);border-radius:var(--r-pill);background:var(--ok)}.result__dot[data-state=stopped]{background:var(--warn)}.result__dot[data-state=failed]{background:var(--err)}.result__dot[data-state=working]{background:var(--primary);animation:result-pulse 1.2s var(--ease) infinite}@keyframes result-pulse{50%{opacity:.4;transform:scale(.7)}}.result__chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.result__chip{display:inline-flex;align-items:center;min-height:var(--s-8);padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.result__note{font-size:var(--fs-sm);line-height:var(--lh-body)}.result__player{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.result__play.btn{grid-column:1;grid-row:1 / span 2;width:var(--s-12);min-width:var(--s-12);height:var(--s-12);min-height:var(--s-12);padding:0;border-radius:var(--r-pill);line-height:1}.result__seek{grid-column:2;grid-row:1;position:relative;height:var(--s-10);min-width:0}.result__wave{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.result__range{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:pan-y}.result__range:disabled{cursor:default}.result__range::-webkit-slider-runnable-track{height:var(--s-10);background:transparent;border:0}.result__range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:var(--s-1);height:var(--s-10);border:0;border-radius:var(--r-pill);background:var(--ink)}.result__range::-moz-range-track{height:var(--s-10);background:transparent;border:0}.result__range::-moz-range-progress{background:transparent}.result__range::-moz-range-thumb{width:var(--s-1);height:var(--s-10);border:0;border-radius:var(--r-pill);background:var(--ink)}.result__meta{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-width:0;margin-top:var(--s-1)}.result__times{display:flex;align-items:baseline;gap:var(--s-1);margin:0;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.result__time--total{color:var(--ink-3)}.result__speed.btn{min-width:var(--s-12);padding:0 var(--s-3);font-variant-numeric:tabular-nums;line-height:var(--lh-body)}.result__downloads{display:grid;gap:var(--s-2)}.result__dl.btn{width:100%;min-width:0;min-height:var(--control-h);line-height:var(--lh-body)}.result__dl--vtt.btn{justify-self:start;width:auto;padding:0 var(--s-3);color:var(--primary-text);font-size:var(--fs-sm)}.result__dl--vtt.btn:hover{text-decoration:underline;text-underline-offset:.2em}@media(min-width:480px){.result__downloads{grid-template-columns:repeat(2,minmax(0,1fr))}.result__dl--vtt.btn{grid-column:1 / -1}}@media(min-width:640px){.result__downloads{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.result__dl.btn{width:auto;padding:0 var(--s-5)}}.result__list{position:relative;max-height:20rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.result__list-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:var(--s-10);padding:var(--s-2) var(--s-4);background:var(--surface-2);border-bottom:1px solid var(--line)}.result__list-title{font-size:var(--fs-sm);font-weight:700;line-height:var(--lh-body);color:var(--ink)}.result__count{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}.cue+.cue{border-top:1px solid var(--line)}.cue__btn{position:relative;display:grid;grid-template-columns:calc(var(--s-12) + var(--s-6)) minmax(0,1fr);align-items:baseline;gap:var(--s-3);width:100%;min-height:var(--control-h);padding:var(--s-2) var(--s-4);color:var(--ink);background:transparent;border:0;border-radius:0;text-align:start;line-height:var(--lh-body);cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.cue__btn:not(:disabled):hover{background:var(--surface)}.cue__btn:disabled{cursor:default}.cue__btn:focus-visible{outline-offset:calc(var(--s-1) * -1)}.cue__time{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}.cue__text{min-width:0;overflow-wrap:anywhere}.cue.is-active .cue__btn{background:var(--primary-tint)}.cue.is-active .cue__btn:before{content:"";position:absolute;top:var(--s-2);bottom:var(--s-2);left:0;width:var(--s-1);border-radius:0 var(--r-pill) var(--r-pill) 0;background:var(--primary)}.cue.is-active .cue__time{color:var(--primary-tint-ink);font-weight:600}.result__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line)}.result__ai{flex:1 1 16rem;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-3)}.result__restart.btn{line-height:var(--lh-body)}.site-footer{padding-block:var(--s-8) var(--s-10);border-top:1px solid var(--line);background:var(--surface);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-2)}.site-footer__inner{display:grid;gap:var(--s-4)}.site-footer__notes{display:grid;gap:var(--s-1);max-width:48rem}.site-footer__row{display:grid;gap:var(--s-4);align-items:center}.site-footer__credit{max-width:48rem}.site-footer a{color:var(--ink);font-weight:600}.site-footer a:hover{color:var(--primary-text)}.site-footer .sponsor__link{color:var(--ink-3);font-weight:500}.site-footer .sponsor__logo{width:88px}@media(min-width:1024px){.site-footer__row{grid-template-columns:minmax(0,1fr) auto;gap:var(--s-8)}}
