:root{--bg:#0b0f14;--surface:#161d26;--surface-2:#222c38;--text:#fff;--text-muted:#c9d3de;--accent:#ffd60a;--accent-text:#0b0f14;--warning-bg:#5c3b00;--border:#3a4756;--focus:#4cc9ff;--radius:16px;--tap:56px;--nav-width:260px;--nav-height:80px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:20px;line-height:1.5}*{box-sizing:border-box}body{min-height:100dvh;margin:0}h1{margin:0 0 .5rem;font-size:2rem;line-height:1.2}:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.layout{min-height:100dvh}.content{padding:1.5rem 1rem calc(var(--nav-height) + 1.5rem + env(safe-area-inset-bottom));max-width:1100px;margin:0 auto}.nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:2px solid var(--border);z-index:10;position:fixed;inset:auto 0 0}.nav__brand,.nav__extra{display:none}.nav__list{height:var(--nav-height);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.nav__link{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.8rem;font-weight:600;text-decoration:none;display:flex}.nav__link.active{color:var(--accent);box-shadow:inset 0 4px 0 var(--accent)}.nav__label--full{display:none}.nav__label--short{white-space:nowrap}.mobile-install:not(:empty){margin-bottom:1rem}.mobile-install .nav__install{width:100%}@media (width>=900px){.nav{width:var(--nav-width);border-top:none;border-right:2px solid var(--border);flex-direction:column;gap:1.5rem;height:100dvh;padding:1.5rem 1rem;display:flex;inset:0 auto 0 0}.nav__brand{color:var(--accent);padding:0 .5rem;font-size:1.4rem;font-weight:800;display:block}.nav__list{flex-direction:column;gap:.5rem;height:auto;display:flex}.nav__link{min-height:var(--tap);border-radius:var(--radius);flex-direction:row;justify-content:flex-start;gap:.75rem;padding:.5rem 1rem;font-size:1rem}.nav__link:hover{background:var(--surface-2);color:var(--text)}.nav__link.active{background:var(--accent);color:var(--accent-text);box-shadow:none}.nav__extra{margin-top:auto;display:block}.nav__label--full{display:inline}.nav__label--short,.mobile-install{display:none}.content{margin-left:var(--nav-width);padding:2rem 2.5rem}}.btn{min-height:var(--tap);border-radius:var(--radius);font:inherit;cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-weight:700;display:inline-flex}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.nav__install{width:100%}.mode__intro{color:var(--text-muted);max-width:60ch;margin:0 0 1.5rem}.placeholder{border:3px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);text-align:center;padding:2rem}.tag{vertical-align:middle;background:var(--surface-2);border:2px solid var(--accent);color:var(--accent);border-radius:999px;padding:.15rem .6rem;font-size:.9rem;font-weight:700;display:inline-block}.banner{border-radius:var(--radius);margin-bottom:1.5rem;padding:1rem 1.25rem;font-weight:600}.banner--warning{background:var(--warning-bg);border:2px solid var(--accent)}.banner--error{background:#5a1111;border:2px solid #ff6b6b}.banner--speaking{z-index:5;border:2px solid var(--focus);background:#003a5c;flex-wrap:wrap;align-items:center;gap:.75rem;display:flex;position:sticky;top:.5rem}h2{margin:0 0 1rem;font-size:1.4rem}h3{margin:1.5rem 0 .75rem;font-size:1.15rem}.muted{color:var(--text-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.card__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card__header h2{margin:0}.row{flex-wrap:wrap;gap:.75rem;display:flex}.input{width:100%;min-width:0;max-width:100%;min-height:var(--tap);font:inherit;color:var(--text);background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-size:1.2rem}.input:focus{border-color:var(--focus)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--big{flex:220px;min-height:64px;font-size:1.1rem}.btn--small{background:var(--surface-2);min-height:44px;color:var(--text);border-color:var(--border);padding:.25rem 1rem;font-size:.9rem}.btn--danger{color:#ff8a8a;background:0 0;border-color:#ff8a8a}.btn--link{color:var(--accent);background:0 0;margin-top:.5rem;padding-left:0;text-decoration:underline}.mic-area{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1rem;display:flex}.mic-btn{border:4px solid var(--accent);background:var(--accent);width:150px;height:150px;color:var(--accent-text);font:inherit;text-align:center;cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;font-size:.95rem;font-weight:800;display:flex}.mic-btn--on{color:#fff;background:#d62828;border-color:#fff;animation:1.5s ease-in-out infinite mic-glow}@keyframes mic-glow{50%{box-shadow:0 0 0 12px #d6282859}}.mic-status{flex:200px;align-items:center;gap:.6rem;margin:0;font-weight:600;display:flex}.pulse{background:#ff4d4d;border-radius:50%;flex:none;width:18px;height:18px;animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}.live{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);align-items:center;min-height:140px;margin-bottom:1rem;padding:1rem 1.25rem;display:flex}.live__text{overflow-wrap:anywhere;margin:0;font-size:clamp(1.6rem,4vw,2.6rem);font-weight:700;line-height:1.3}.live__text--interim{color:var(--text-muted);font-style:italic}.live__placeholder{color:var(--text-muted);margin:0}.reply{flex-direction:column;gap:.75rem;display:flex}.reply__input{resize:vertical;font-size:1.4rem}.phrases{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.btn--phrase{background:var(--surface-2);min-height:72px;color:var(--text);border-color:var(--border);text-align:center;font-size:1.05rem}.btn--phrase:hover,.btn--phrase:active{border-color:var(--accent)}.phrases-edit__list{flex-direction:column;gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.phrases-edit__row{gap:.6rem;display:flex}.history{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.history__item{border-radius:var(--radius);background:var(--bg);border-left:6px solid var(--text-muted);padding:.9rem 1rem}.history__item--oyente{border-left-color:#fff}.history__item--sorda{border-left-color:var(--accent)}.history__meta{color:var(--text-muted);font-size:.85rem}.history__text{overflow-wrap:anywhere;margin:.25rem 0 .6rem;font-size:1.25rem}.overlay{z-index:100;color:#fff;background:#000;flex-direction:column;padding:1.5rem;display:flex;position:fixed;inset:0}.overlay__text{text-align:center;overflow-wrap:anywhere;flex:1;justify-content:center;align-items:center;margin:0;font-weight:800;line-height:1.15;display:flex;overflow:auto}.overlay__text--flipped{transform:rotate(180deg)}.overlay__text--interim{color:var(--text-muted)}.overlay__status{color:var(--text-muted);justify-content:center;align-items:center;gap:.6rem;margin:0;font-weight:600;display:flex}.overlay__bar{flex-wrap:wrap}.btn--mic-on{color:#fff;background:#d62828;border-color:#fff}.overlay__bar{padding-bottom:env(safe-area-inset-bottom);justify-content:center;gap:1rem;display:flex}.overlay__bar .btn{min-width:160px}.small{font-size:.85rem}.label{margin:1rem 0 .4rem;font-weight:700;display:block}.label--inline{margin:0;display:inline}.input--auto{width:auto}.row--center{align-items:center;margin:1rem 0}.row--spaced{margin-top:1rem}.tabs{gap:.5rem;margin-bottom:1.25rem;display:flex}.tabs__tab{max-width:240px;min-height:var(--tap);font:inherit;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;flex:1;font-weight:700}.tabs__tab[aria-selected=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.letters{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:.5rem;display:grid}.letter{min-height:64px;font:inherit;border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;font-size:1.2rem;font-weight:800;line-height:1.1;display:flex}.letter small{color:var(--text-muted);font-size:.75rem;font-weight:600}.letter--done{border-color:#3ddc84}.letter--selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.letter--selected small{color:var(--accent-text)}.letter:disabled{opacity:.5;cursor:not-allowed}.tips{margin-top:1.25rem}.tips summary{cursor:pointer;color:var(--accent);align-items:center;min-height:44px;font-weight:700;display:flex}.trained{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.trained__item{background:var(--bg);border-radius:12px;align-items:center;gap:1rem;padding:.5rem .75rem;display:flex}.trained__label{min-width:3ch;font-size:1.3rem}.trained__item .btn{margin-left:auto}.trained__count--low{color:var(--accent);font-weight:600}.btn--small-danger{min-height:44px;padding:.25rem 1rem;font-size:.9rem}.range{width:100%;accent-color:var(--accent);min-height:44px}.input--grow{flex:240px;width:auto}.link{color:var(--accent);font-weight:700}.check{cursor:pointer;align-items:center;gap:.6rem;min-height:44px;font-weight:600;display:flex}.check input{width:26px;height:26px;accent-color:var(--accent)}.player{flex-direction:column;gap:1rem;display:flex}.player__caption{text-align:center;overflow-wrap:anywhere;font-size:clamp(2.5rem,8vw,4rem);font-weight:900;line-height:1.1}.player__origin{text-align:center;color:var(--text-muted);margin:-.75rem 0 0;font-size:.9rem}.player__stage{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);height:min(55vh,460px);position:relative;overflow:hidden}.player__canvas,.player__media{width:100%;height:100%;position:absolute;inset:0}.player__media{object-fit:contain;background:#000}.player__stage--3d{background:radial-gradient(at 50% 42%,#3a4757 0%,#1c242e 55%,#0b0f14 100%)}.player__canvas--3d{touch-action:pan-y;cursor:grab}.player__canvas--3d:active{cursor:grabbing}.player__reset{z-index:2;position:absolute;top:.6rem;right:.6rem}.skin-picker{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.skin-picker__swatch{border:3px solid var(--border);cursor:pointer;border-radius:50%;width:44px;height:44px}.skin-picker__swatch[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--bg), 0 0 0 6px var(--accent)}.player__missing{text-align:center;color:var(--text-muted);border:3px dashed var(--border);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;font-weight:600;display:flex;position:absolute;inset:0}.player__missing-letter{color:var(--text);font-size:5rem;font-weight:900;line-height:1}.player__space{color:var(--text-muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.player__controls{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}@media (width>=640px){.player__controls{grid-template-columns:1fr 1.4fr 1fr 1fr}}.steps{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.steps__space{width:1rem}.steps__item{min-width:48px;min-height:48px;font:inherit;border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:10px;padding:.25rem .6rem;font-weight:800}.steps__item--word{font-weight:700}.steps__item--missing{color:var(--text-muted);border-style:dashed}.steps__item--current{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.overlay--dialog{background:#000000d9;justify-content:center;align-items:center}.dialog{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);width:min(640px,100%);max-height:100%;padding:1.25rem;overflow:auto}.dialog__camera{margin-bottom:1rem;position:relative}.dialog__video{background:#000;border-radius:12px;width:100%;transform:scaleX(-1)}.dialog__rec{background:#d62828;border-radius:999px;padding:.25rem .75rem;font-weight:700;position:absolute;top:.75rem;left:.75rem}.banner--info{border:2px solid var(--focus);background:#003a5c;font-weight:400}.banner--ok{background:#0d3b24;border:2px solid #3ddc84}.btn--disabled{opacity:.45;pointer-events:none}.btn--small-primary{min-height:44px;padding:.25rem 1rem;font-size:.9rem}.toast{left:1rem;right:1rem;bottom:calc(var(--nav-height) + 1rem + env(safe-area-inset-bottom));z-index:50;background:var(--surface-2);border:2px solid var(--accent);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.75rem;max-width:560px;margin:0 auto;padding:.9rem 1.1rem;font-weight:600;display:flex;position:fixed;box-shadow:0 8px 24px #00000080}.toast span{flex:200px}@media (width<=899px){.toast{top:calc(.75rem + env(safe-area-inset-top));bottom:auto}}@media (width>=900px){.toast{left:calc(var(--nav-width) + 1rem);bottom:1.5rem}}.banner p{margin:0 0 .75rem}.banner p:last-child{margin-bottom:0}.banner--update{border:2px solid var(--accent);background:#2a2400;font-weight:400}.banner--ok,.banner--error{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.banner--ok p,.banner--error p{flex:240px;margin:0}.facts{grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0 0 1.25rem;display:grid}.facts dt{color:var(--text-muted);font-weight:700}.facts dd{margin:0}.facts__plain{font:inherit;color:inherit;cursor:default;background:0 0;border:none;padding:0}.card--team{border-color:var(--focus)}.team-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 1rem;display:grid}.team-grid .label{margin-top:.5rem}.team-grid .input{margin-top:.4rem;font-weight:400}.team-table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.95rem}.team-table th,.team-table td{border-bottom:1px solid var(--border);text-align:center;padding:.35rem .5rem}.team-table th{color:var(--text-muted);font-size:.85rem}.team-table td:nth-child(2){text-align:left}.team-table input{width:24px;height:24px;accent-color:var(--accent)}.team-table__off{opacity:.45}.team-result{border-radius:var(--radius);border:2px solid #3ddc84;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.team-result p{margin:0}.code{overflow-wrap:anywhere;color:var(--accent);font-family:ui-monospace,Consolas,monospace}.steps-list{margin:0;padding-left:1.25rem}.s2t__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:.75rem;display:flex}.s2t__title{margin:0}.s2t__tabs{flex:0 420px;margin:0}.s2t__intro{margin-bottom:1rem}.sign-layout{gap:1.25rem;display:grid}.sign-layout__camera{flex-direction:column;gap:.75rem;display:flex}.sign-layout__footer:empty{display:none}@media (width>=1200px){.sign-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.s2t--reconocer .sign-layout{grid-template-columns:minmax(0,1fr) 340px}.s2t--reconocer .camera__stage{aspect-ratio:auto;height:clamp(300px,100dvh - 430px,640px)}.sign-layout__camera{position:sticky;top:1rem}}.camera__stage{aspect-ratio:4/3;border:2px solid var(--border);border-radius:var(--radius);background:#000;position:relative;overflow:hidden}.camera__video,.camera__canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.camera__stage--mirrored .camera__video,.camera__stage--mirrored .camera__canvas{transform:scaleX(-1)}.camera__start{z-index:3;width:100%;color:var(--accent);font:inherit;cursor:pointer;background:#000;border:none;flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:1.2rem;font-weight:800;display:flex;position:absolute;inset:0}.camera__start svg{width:72px;height:72px}.camera__start span{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:.7rem 1.6rem}.camera__message{z-index:1;text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;font-weight:600;display:flex;position:absolute;inset:0}.camera__message p{margin:0}.camera__message--error{color:#ff8a8a}.camera__overlay{z-index:2;pointer-events:none;justify-content:center;padding:.6rem;display:flex;position:absolute;bottom:0;left:0;right:0}.camera__overlay>*{pointer-events:auto}.camera__top{z-index:2;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.6rem;display:flex;position:absolute;top:0;left:0;right:0}.camera__buttons{gap:.5rem;display:flex}.icon-btn{color:#fff;cursor:pointer;background:#0b0f14bf;border:2px solid #fff9;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}.icon-btn svg{width:26px;height:26px}.hand-indicator{color:var(--text-muted);background:#0b0f14bf;border-radius:999px;padding:.3rem .8rem;font-size:.85rem;font-weight:700}.hand-indicator:before{content:"";background:#6b7785;border-radius:50%;width:12px;height:12px;margin-right:.45rem;display:inline-block}.hand-indicator--on{color:var(--text)}.hand-indicator--on:before{background:#3ddc84}.detected{border-radius:var(--radius);border:3px solid var(--border);text-align:center;background:#0b0f14d9;width:100%;max-width:520px;padding:.5rem 1rem .7rem}.detected--sure{border-color:#3ddc84}.detected__row{justify-content:center;align-items:baseline;gap:.75rem;display:flex}.detected__label{overflow-wrap:anywhere;font-size:clamp(3rem,12vw,5.5rem);font-weight:900;line-height:1}.detected__confidence{color:#3ddc84;font-size:1.2rem;font-weight:800}.detected__message{font-size:1.1rem;font-weight:700}.confidence{background:var(--surface-2);border-radius:999px;height:10px;margin-top:.5rem;position:relative;overflow:hidden}.confidence__bar{background:#6b7785;height:100%}.confidence__bar[data-ok=true]{background:#3ddc84}.confidence__threshold{background:var(--text);width:3px;position:absolute;top:0;bottom:0}.s2t-text{flex-direction:column;gap:.6rem;display:flex}.recognized{resize:none;padding:.5rem .9rem;font-size:1.5rem;font-weight:700;line-height:1.3}.toolbar{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;display:grid}.tool-btn{border:2px solid var(--border);background:var(--surface-2);min-height:64px;color:var(--text);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:.35rem .25rem;font-size:.8rem;font-weight:700;display:flex}.tool-btn svg{width:26px;height:26px}.tool-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.s2t-settings summary{cursor:pointer;align-items:center;gap:.6rem;min-height:44px;font-weight:700;display:flex}.s2t-settings summary svg{width:26px;height:26px;color:var(--accent)}.s2t-settings[open] summary{margin-bottom:.5rem}.s2t-empty{margin-bottom:0}.s2t-record{flex:none;width:100%}.s2t-recording{align-items:center;gap:.75rem;min-height:64px;display:flex}.s2t-recording .progress{flex:1}.progress{width:100%;height:20px;accent-color:var(--accent)}.rec-overlay{border-radius:var(--radius);text-align:center;background:#0b0f14d9;border:3px solid #ff4d4d;flex-direction:column;align-items:center;gap:.15rem;width:100%;max-width:520px;padding:.6rem 1rem;display:flex}.rec-overlay--now{background:#aa1414e6;border-color:#fff}.rec-overlay__big{font-size:clamp(2.5rem,10vw,4rem);font-weight:900;line-height:1.05}.rec-overlay__small{font-weight:700}.rec-overlay__warn{color:var(--accent);font-weight:700}@media (width<=1199px){.s2t--reconocer .camera__stage{aspect-ratio:auto;height:calc(100dvh - var(--nav-height) - env(safe-area-inset-bottom) - 290px);min-height:240px;max-height:75vw}.s2t--entrenar .sign-layout__camera{z-index:5;background:var(--bg);margin-top:-.5rem;padding:.5rem 0 .75rem;position:sticky;top:0}.s2t--entrenar .camera__stage{aspect-ratio:auto;height:32dvh;min-height:180px}}@media (width<=899px){.s2t__title{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.s2t__tabs{flex:100%}.s2t{flex-direction:column;display:flex}.s2t__intro{order:3;margin:1rem 0 0;font-size:.9rem}}@media (width<=600px){:root{font-size:18px}h1{font-size:1.7rem}.content{padding-top:1rem;padding-left:.75rem;padding-right:.75rem}.card{padding:1rem}.mic-area{text-align:center;justify-content:center}.mic-btn{width:130px;height:130px}.mic-status{justify-content:center}.overlay{padding:1rem}.overlay__bar{gap:.5rem}.overlay__bar .btn{flex:140px;min-width:0}.facts{grid-template-columns:1fr;gap:.15rem}.facts dd{margin-bottom:.6rem}.team-table{display:block;overflow-x:auto}.tabs__tab{max-width:none}.phrases-edit__row .btn{padding:.5rem .75rem}.trained__item{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
