:root{--bg:#02060f;--surface:#0a1e3c73;--border:#50b4ff38;--text:#d8ecff;--muted:#7f9cc0;--accent:#46e0ff;--accent-deep:#2a6bff;--listen:#46e0ff;--speak:#6aa8ff;--danger:#ff6b7a;--focus:#ffd75e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(ellipse 70% 55% at 50% 38%, #1e5ac847, transparent 70%), radial-gradient(ellipse 120% 40% at 50% 100%, #0a3c8c59, transparent 70%), var(--bg);min-height:100dvh;margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button,input{font:inherit}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:720px;padding:max(12px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding-top:8px;display:flex}.status-area{text-align:center;min-height:1.6em}.status{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0;font-size:.78rem;display:inline-flex}.status__dot{background:var(--accent);width:7px;height:7px;color:var(--accent);border-radius:50%;box-shadow:0 0 8px}.status--listening{color:var(--listen)}.status--listening .status__dot{background:var(--listen);color:var(--listen)}.status--speaking .status__dot{background:var(--speak);color:var(--speak)}.status--error .status__dot{background:var(--danger);color:var(--danger)}.status--thinking .status__dot{animation:.9s ease-in-out infinite alternate status-blink}@keyframes status-blink{to{opacity:.3}}@media (prefers-reduced-motion:reduce){.status--thinking .status__dot{opacity:.6;animation:none}}.status__error:not(:empty),.status__aviso:not(:empty){max-width:420px;margin:6px auto 0;font-size:.85rem}.status__error:not(:empty){color:#ffc2c9}.status__aviso:not(:empty){color:var(--muted)}.status__error:empty,.status__aviso:empty{margin:0}.note,.controls__help{color:var(--muted);text-align:center;margin:0;font-size:.75rem}.dock{flex-direction:column;gap:14px;display:flex}.chat{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;gap:8px;max-height:20dvh;margin:0;padding:16px 4px 0;list-style:none;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 32px);mask-image:linear-gradient(#0000,#000 32px)}.chat__msg{overflow-wrap:anywhere;max-width:88%;font-size:.92rem}.chat__msg--nova{border-left:2px solid color-mix(in srgb, var(--accent) 60%, transparent);align-self:flex-start;padding-left:10px}.chat__msg--user{text-align:right;color:var(--muted);align-self:flex-end}.chat__author{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.65rem;display:block}.chat__msg--user .chat__author{color:var(--muted)}.chat__end{height:0}.controls{flex-direction:column;align-items:center;gap:12px;display:flex}.mic{color:var(--text);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:0;font-size:.75rem;display:flex}.mic__icon{border:1.5px solid var(--accent);color:#eafcff;background:radial-gradient(circle,#46e0ff38,#2a6bff1f 70%);border-radius:50%;place-items:center;width:68px;height:68px;transition:box-shadow .2s,transform .2s;display:grid;box-shadow:0 0 18px #46e0ff59,inset 0 0 14px #46e0ff40}.mic:hover:not(:disabled) .mic__icon{box-shadow:0 0 28px #46e0ff99,inset 0 0 18px #46e0ff59}.mic--on .mic__icon{background:radial-gradient(circle,#46e0ff80,#2a6bff40 70%);animation:1.6s ease-out infinite mic-pulse}.mic:disabled{opacity:.4;cursor:not-allowed}@keyframes mic-pulse{0%{box-shadow:0 0 #46e0ff8c,0 0 24px #46e0ff99}to{box-shadow:0 0 0 18px #46e0ff00,0 0 24px #46e0ff99}}@media (prefers-reduced-motion:reduce){.mic--on .mic__icon{animation:none;box-shadow:0 0 0 6px #46e0ff59}}.composer{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;width:100%;max-width:560px;padding:4px;display:flex}.composer:focus-within{border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.composer input{min-width:0;min-height:40px;color:var(--text);background:0 0;border:none;border-radius:999px;flex:1;padding:0 14px}.composer input:focus-visible{outline:none}.composer:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.composer button{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#00121f;cursor:pointer;border:none;border-radius:999px;min-height:40px;padding:0 18px;font-weight:700}.composer button:disabled{opacity:.35;cursor:not-allowed}.avatar{--holo:var(--accent);--holo-deep:var(--accent-deep);--avatar-h:min(42dvh, 500px);justify-items:center;display:grid;position:relative}.avatar[data-state=error]{--holo:var(--danger);--holo-deep:#8a2b3a}.avatar__frame{height:var(--avatar-h);aspect-ratio:4/5;mix-blend-mode:screen;max-width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 16% 84%,#0000),linear-gradient(#0000,#000 8% 72%,#0000);mask-image:linear-gradient(90deg,#0000,#000 16% 84%,#0000),linear-gradient(#0000,#000 8% 72%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.avatar__portrait{transform-origin:50% 15%;filter:saturate(.8)contrast(1.06)brightness(1.04);position:relative;transform:scale(1.12)}.avatar__img{width:100%;height:auto;display:block}.avatar__mouth{width:100%;height:100%;position:absolute;inset:0}.avatar__mouth-gap{fill:#07040a;opacity:0}.avatar__tint{background:linear-gradient(180deg, var(--holo), var(--holo-deep));mix-blend-mode:color;opacity:.18;transition:opacity .6s;position:absolute;inset:0}.avatar__scan{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--holo) 22%, transparent), transparent) 0 -40% / 100% 18% no-repeat, repeating-linear-gradient(180deg, transparent 0 3px, #000a1938 3px 4px);mix-blend-mode:screen;opacity:.55;animation:7s linear infinite avatar-sweep;position:absolute;inset:0}.avatar__halo{width:calc(var(--avatar-h) * .75);aspect-ratio:1;background:radial-gradient(circle closest-side, color-mix(in srgb, var(--holo-deep) 45%, transparent), transparent);opacity:.7;border-radius:50%;max-width:90%;position:absolute;top:6%}.avatar__projector{width:calc(var(--avatar-h) * .5);background:radial-gradient(ellipse, color-mix(in srgb, var(--holo) 60%, transparent), transparent 70%);filter:blur(2px);border-radius:50%;max-width:70%;height:14px;margin-top:-18px}.avatar__placeholder{border:1px solid color-mix(in srgb, var(--holo) 30%, transparent);background:radial-gradient(ellipse 45% 30% at 50% 32%, color-mix(in srgb, var(--holo) 16%, transparent), transparent 70%), linear-gradient(180deg, color-mix(in srgb, var(--holo-deep) 18%, transparent), transparent 85%);text-align:center;border-radius:46% 46% 18% 18%/34% 34% 12% 12%;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;padding-bottom:14%;display:flex;position:absolute;inset:8% 10% 10%}.avatar__placeholder-title{letter-spacing:.16em;text-transform:uppercase;opacity:.8;font-size:.8rem}.avatar__placeholder-path{color:var(--muted);font:.72rem ui-monospace,Consolas,monospace}.avatar__frame{animation:11s step-end infinite avatar-flicker,9s ease-in-out infinite avatar-float}.avatar[data-state=listening] .avatar__halo{animation:2.8s ease-in-out infinite avatar-listen}.avatar[data-state=listening] .avatar__projector{opacity:1;filter:blur(1px)brightness(1.4)}.avatar[data-state=thinking] .avatar__scan{opacity:.8;animation-duration:1.6s}.avatar[data-state=thinking] .avatar__halo{animation:1.4s ease-in-out infinite alternate avatar-think}.avatar[data-state=speaking] .avatar__frame{animation:11s step-end infinite avatar-flicker,2.6s ease-in-out infinite avatar-sway}.avatar[data-state=speaking] .avatar__halo{animation:.75s ease-in-out infinite alternate avatar-glow}.avatar[data-state=speaking] .avatar__portrait{animation:.9s ease-in-out infinite alternate avatar-speak}.avatar[data-state=speaking] .avatar__tint{opacity:.12}@keyframes avatar-flicker{0%,to{opacity:1}61%{opacity:.9}62%{opacity:1}}@keyframes avatar-sweep{0%{background-position:0 -40%,0 0}to{background-position:0 140%,0 0}}@keyframes avatar-float{50%{translate:0 -3px}}@keyframes avatar-sway{0%,to{translate:0;scale:1}30%{translate:0 -4px;scale:1.012}65%{translate:0 -1px;scale:1.004}}@keyframes avatar-listen{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes avatar-think{0%{opacity:.45}to{opacity:.8}}@keyframes avatar-glow{0%{opacity:.7;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}@keyframes avatar-speak{0%{filter:saturate(.8)contrast(1.06)brightness(1.04)}to{filter:saturate(.9)contrast(1.06)brightness(1.16)}}@media (prefers-reduced-motion:reduce){.avatar__frame,.avatar *{animation:none!important}.avatar[data-state=listening] .avatar__halo{opacity:1;transform:scale(1.08)}.avatar[data-state=thinking] .avatar__halo{opacity:.5}.avatar[data-state=speaking] .avatar__halo{opacity:1}.avatar[data-state=speaking] .avatar__portrait{filter:saturate(.9)contrast(1.06)brightness(1.12)}}.app__header{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.app__marca{grid-column:2;align-items:center;gap:10px;display:flex}.app__header h1{letter-spacing:.6em;text-indent:.6em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 14px color-mix(in srgb, var(--accent) 70%, transparent);margin:0;font-size:1.05rem;font-weight:600}.badge{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:.65rem}.app__cuenta{grid-column:3;justify-self:end;align-items:center;gap:8px;min-width:0;display:flex}.app__usuario{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.app__salir{border:1px solid var(--border);min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:.75rem}.app__salir:hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}@media (width<=420px){.app__usuario{display:none}}.app__lugar{grid-area:1/1;min-width:0}.app__funeraria{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:.75rem;display:block;overflow:hidden}.app__funeraria--cambiar{text-align:left;cursor:pointer;background:0 0;border:none;padding:4px 0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.app__funeraria--cambiar:hover{color:var(--text)}.entrada,.cargando{max-width:420px;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;gap:8px;margin:0 auto;display:flex}.cargando{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem}.entrada .avatar{--avatar-h:min(34dvh, 360px)}.entrada__titulo{letter-spacing:.6em;text-indent:.6em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 14px color-mix(in srgb, var(--accent) 70%, transparent);margin:0;font-size:1.05rem;font-weight:600}.entrada__formulario{flex-direction:column;gap:12px;width:100%;display:flex}.entrada__aviso{text-align:center;color:var(--muted);margin:0;font-size:.9rem}.entrada__campo{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:4px;font-size:.72rem;display:flex}.entrada__campo input{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);letter-spacing:normal;text-transform:none;border-radius:12px;padding:0 14px;font-size:1rem}.entrada__campo input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.entrada__error{text-align:center;color:#ffc2c9;min-height:1.2em;margin:0;font-size:.85rem}.entrada__boton{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#00121f;cursor:pointer;border:none;border-radius:999px;min-height:46px;font-weight:700}.entrada__boton:disabled{opacity:.4;cursor:not-allowed}.entrada__funeraria{text-align:center;color:var(--text);margin:0;font-size:1.1rem;font-weight:600}.entrada__enlace{color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:center;margin-top:4px;padding:6px 10px;font-size:.85rem;text-decoration:underline}.entrada__enlace:hover{color:var(--text)}.selector{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.selector__opcion{border:1px solid var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;font-size:1rem;display:flex}.selector__opcion:hover{border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.selector__clave{color:var(--muted);font-size:.75rem}
