*{box-sizing:border-box}:root{color-scheme:dark;font-family:Segoe UI,Noto Sans TC,system-ui,sans-serif;font-synthesis:none;--panel: rgba(11, 18, 33, .82);--panel-strong: rgba(10, 16, 29, .96);--border: rgba(180, 205, 255, .18);--text: #f7f9ff;--muted: #a9b6cf;--accent: #6d8dff;--accent-strong: #4e6ff2;--embed-crop: clamp(96px, 8vw, 168px)}html,body,#root{width:100%;min-width:320px;min-height:100%}body{margin:0;overflow:hidden;background:#07101f;color:var(--text)}button,input{font:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(109,141,255,.18)}button:focus-visible,input:focus-visible,.stage:focus-visible{outline:3px solid #9eb2ff;outline-offset:3px}.app{position:relative;width:100%;min-height:100svh;overflow:hidden;isolation:isolate;background:#07101f}.skip-link{position:fixed;top:8px;left:12px;z-index:100;padding:10px 14px;border-radius:10px;background:#fff;color:#111827;font-weight:700;text-decoration:none;transform:translateY(-150%);transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.topbar{position:fixed;top:0;left:0;z-index:20;display:grid;grid-template-columns:minmax(230px,auto) minmax(0,1fr) auto;align-items:center;gap:20px;width:100%;padding:max(18px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 28px max(24px,env(safe-area-inset-left));background:linear-gradient(180deg,rgba(4,10,20,.86) 0%,rgba(4,10,20,.38) 58%,transparent 100%);pointer-events:none}.topbar>*{pointer-events:auto}.brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;flex:none;width:42px;height:42px;place-items:center;border:1px solid rgba(190,208,255,.38);border-radius:14px;background:linear-gradient(145deg,#6d8dff6b,#5fdac629);box-shadow:0 12px 32px #12265c57,inset 0 1px #ffffff2e;color:#dce5ff;font-size:19px}.brand-lockup h1{margin:0;font-size:clamp(17px,1.5vw,22px);line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.brand-lockup p{margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.badges{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.badge{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:#080f1d85;box-shadow:inset 0 1px #ffffff14;color:#d9e2f7;font-size:11px;font-weight:650;white-space:nowrap;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.status-dot{flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}.badge-ok{color:#7fe8b0}.badge-busy{color:#f0cf7c}.badge-bad{color:#ff9cac}.badge-neutral{color:#b1c4ee}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.glass-button,.icon-button{border:1px solid var(--border);background:var(--panel);color:var(--text);box-shadow:0 14px 40px #02071047,inset 0 1px #ffffff17;cursor:pointer;-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%);transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.glass-button:hover,.icon-button:hover{border-color:#b7cdff6b;background:#182339eb}.glass-button:active,.icon-button:active{transform:scale(.97)}.glass-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:10px;padding:8px 14px;border-radius:15px}.topic-control{position:relative}.topic-trigger{min-width:172px;justify-content:flex-start;text-align:left}.button-icon{color:#aabaff;font-size:15px}.button-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;font-size:13px;font-weight:700}.button-copy>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.button-eyebrow{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.chevron{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;transition:transform .16s ease}.topic-trigger[aria-expanded=true] .chevron{transform:rotate(180deg)}.transcript-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8}.transcript-trigger span{font-size:13px;font-weight:700}.topic-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:25;width:240px;padding:8px;border:1px solid rgba(183,205,255,.22);border-radius:18px;background:#080e1bf5;box-shadow:0 24px 70px #01050e8a,inset 0 1px #ffffff14;transform-origin:top right;animation:menu-in .15s ease-out;-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%)}.topic-menu-heading{padding:8px 10px 6px;color:#8494b3;font-size:10px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}.topic-option{display:flex;width:100%;min-height:42px;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px;border:0;border-radius:11px;background:transparent;color:#c7d1e5;cursor:pointer;text-align:left;transition:background-color .14s ease,color .14s ease}.topic-option:hover,.topic-option:focus-visible{background:#6d8dff24;color:#fff}.topic-option-active{background:#6d8dff33;color:#fff}.topic-check{width:18px;color:#9eb2ff;text-align:center}.error-banner{position:fixed;top:max(90px,calc(env(safe-area-inset-top) + 72px));left:50%;z-index:40;display:flex;width:min(620px,calc(100vw - 32px));align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(242,101,123,.5);border-radius:13px;background:#3a141df0;box-shadow:0 18px 50px #0508126b;color:#ffc1ca;transform:translate(-50%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.error-banner .dismiss{flex:none;padding:4px 8px;border:0;background:none;color:inherit;cursor:pointer;font-size:20px;line-height:1}.main,.stage,.avatar-stack{width:100%;height:100svh;min-height:520px}.stage{position:relative;overflow:hidden}.avatar-stack{position:relative;overflow:hidden;background:#0a1427}.avatar-stack:before,.avatar-stack:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;content:""}.avatar-stack:before{background:linear-gradient(90deg,rgba(2,7,17,.34) 0%,transparent 26%,transparent 72%,rgba(2,7,17,.28) 100%)}.avatar-stack:after{background:linear-gradient(180deg,rgba(4,9,18,.18) 0%,transparent 45%,rgba(2,6,14,.54) 100%)}.avatar-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.07) contrast(1.02) brightness(.82);transform:scale(1.015)}.stage-light{position:absolute;z-index:1;width:42vw;height:42vw;border-radius:50%;opacity:.2;filter:blur(100px);pointer-events:none}.stage-light-one{top:-16vw;left:-8vw;background:#466de7}.stage-light-two{right:-18vw;bottom:-22vw;background:#36b8a1}.realtime-avatar{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.player-edge-mask{display:none}.avatar-frame{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.avatar-frame iframe{position:absolute;left:calc(var(--embed-crop) * -1);width:calc(100% + (var(--embed-crop) * 2));height:100%;border:0;background:transparent}.mic-area{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:10;display:grid;grid-template-columns:58px minmax(100px,auto);grid-template-rows:auto auto;align-items:center;gap:2px 12px;min-width:210px;padding:10px 16px 10px 10px;border:1px solid var(--border);border-radius:999px;background:#080f1db8;box-shadow:0 18px 55px #01050e61,inset 0 1px #ffffff1a;text-align:left;-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%)}.mic-button{display:inline-flex;grid-row:1 / 3;width:58px;height:58px;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:linear-gradient(145deg,#6687ff,#4664db);box-shadow:0 0 0 7px #5b7aef1f,0 12px 28px #1e358b70;color:#fff;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease}.mic-button:hover:enabled{box-shadow:0 0 0 9px #6e8dff2e,0 14px 32px #1e358b80;transform:translateY(-1px)}.mic-button:active:enabled{transform:scale(.96)}.mic-button:disabled{background:#33405a;box-shadow:none;color:#8290ab;cursor:default}.mic-button.mic-stop{background:linear-gradient(145deg,#f06470,#c93c4a);box-shadow:0 0 0 7px #e14a5824,0 12px 28px #6f15226b}.mic-button.mic-interrupt{background:linear-gradient(145deg,#f0ad55,#d06d32);box-shadow:0 0 0 7px #f0974529,0 12px 28px #6f37156b}.mic-button.mic-recovering{background:linear-gradient(145deg,#64738f,#46536d);box-shadow:0 0 0 7px #8497be1f,0 12px 28px #141e3461;animation:mic-recovering-pulse 1s ease-in-out infinite alternate}.mic-button.mic-unavailable{background:linear-gradient(145deg,#566178,#3a4459);box-shadow:0 0 0 7px #7787a61a,0 12px 28px #141e3452}.mic-slash{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2.2}@keyframes mic-recovering-pulse{0%{opacity:.68}to{opacity:1}}@keyframes voice-spectrum-in{0%{opacity:0;transform:translate(-50%,7px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}.mic-label{align-self:end;margin:0;font-size:14px;font-weight:750;line-height:1.2}.mic-caption{align-self:start;margin:0;color:#a8b4cb;font-size:10px;line-height:1.35}.voice-spectrum{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;z-index:11;display:flex;align-items:center;flex-direction:column;gap:7px;color:#eef3ff;transform:translate(-50%);animation:voice-spectrum-in .18s ease-out both;pointer-events:none}.voice-spectrum-visual{display:flex;height:48px;align-items:center;justify-content:center;gap:3px;padding:8px 14px;border:1px solid rgba(166,187,255,.68);border-radius:999px;background:linear-gradient(180deg,#3952a6f7,#132451fa);box-shadow:0 14px 36px #01050e6b,0 0 0 3px #5b7aef29,0 0 38px #5b7aef75,inset 0 1px #ffffff38;-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%)}.voice-spectrum-bar{width:4px;height:28px;flex:none;border-radius:999px;background:linear-gradient(180deg,#c4ceff,#7f9aff 48%,#71efd3);box-shadow:0 0 9px #7e99ffad;opacity:.9;transform:scaleY(.08);transform-origin:center;transition:transform 55ms linear;will-change:transform}.voice-spectrum-label{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid rgba(166,187,255,.48);border-radius:999px;background:#30468cfa;box-shadow:0 8px 20px #01050e4d,0 0 18px #5b7aef29;color:#f8faff;font-size:11px;font-weight:700;letter-spacing:.04em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.voice-spectrum-dot{width:6px;height:6px;border-radius:50%;background:#6ee2a6;box-shadow:0 0 9px #6ee2a6e6}.realtime-avatar[data-microphone-listening=true]~.caption-layer{bottom:max(112px,calc(env(safe-area-inset-bottom) + 102px))}.caption-layer{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:50%;z-index:9;display:flex;width:min(780px,calc(100vw - 500px));min-width:320px;align-items:center;flex-direction:column;gap:7px;transform:translate(-50%);pointer-events:none}.caption-speaker{padding:4px 9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#02060e99;color:#dce5f7;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.caption-speaker-user{color:#b9cbff}.caption-layer p{max-width:100%;margin:0;padding:9px 16px 11px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#000000b8;box-shadow:0 12px 30px #00000047;color:#fff;font-size:clamp(17px,1.75vw,26px);font-weight:650;line-height:1.38;text-align:center;text-shadow:0 2px 3px rgba(0,0,0,.8);text-wrap:pretty;overflow-wrap:anywhere}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:default}.transcript-drawer{position:fixed;top:0;right:0;z-index:30;display:flex;width:min(460px,100vw);height:100svh;flex-direction:column;padding:max(24px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) 22px;border-left:1px solid var(--border);background:var(--panel-strong);box-shadow:-24px 0 80px #01050d80;animation:drawer-in .22s cubic-bezier(.2,.72,.2,1);overscroll-behavior:contain;-webkit-backdrop-filter:blur(26px) saturate(130%);backdrop-filter:blur(26px) saturate(130%)}.transcript-header{display:flex;flex:none;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(180,205,255,.12)}.transcript-kicker{display:block;margin-bottom:4px;color:#91a5d4;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.transcript-header h2{margin:0;font-size:20px;letter-spacing:-.02em}.icon-button{display:grid;flex:none;width:42px;height:42px;place-items:center;padding:0;border-radius:13px}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.7}.transcript-body{display:flex;min-height:0;flex:1;flex-direction:column;gap:15px;padding:20px 4px 20px 0;overflow-y:auto;scrollbar-color:rgba(138,158,200,.5) transparent;scrollbar-width:thin}.transcript-empty{display:grid;flex:1;place-content:center;justify-items:center;padding:40px 24px;color:#7f8da8;text-align:center}.transcript-empty span{display:grid;width:44px;height:44px;place-items:center;margin-bottom:8px;border:1px solid rgba(138,158,200,.22);border-radius:15px;background:#6d8dff14;color:#9eb2ff}.transcript-empty p{max-width:240px;margin:0;font-size:13px;line-height:1.65}.msg{display:flex;flex-direction:column;gap:5px;content-visibility:auto;contain-intrinsic-size:auto 76px}.msg-role{color:#8290ab;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.msg-user{align-items:flex-end}.msg-coach{align-items:flex-start}.msg-row{display:flex;max-width:92%;min-width:0;align-items:center;gap:6px}.mark{flex:none;font-size:14px;line-height:1}.bubble{min-width:0;padding:10px 13px;border:1px solid transparent;border-radius:15px;color:#fff;font-size:13px;line-height:1.58;overflow-wrap:anywhere;white-space:pre-wrap}.msg-coach .bubble{border-color:#6ee2a626;border-bottom-left-radius:5px;background:linear-gradient(145deg,#268f5ee6,#196f49e6)}.msg-user .bubble{border-color:#99b4ff29;border-bottom-right-radius:5px;background:linear-gradient(145deg,#4f7cf1,#385bc5)}.msg-system{align-self:center;max-width:92%;padding:5px 11px;border:1px solid rgba(138,158,200,.18);border-radius:999px;background:#25304b80;color:#91a0bc;font-size:10px;text-align:center;overflow-wrap:anywhere}.chat-input{display:flex;flex:none;gap:8px;padding-top:16px;border-top:1px solid rgba(180,205,255,.12)}.chat-input input{min-width:0;flex:1;padding:11px 13px;border:1px solid rgba(146,168,213,.25);border-radius:12px;background:#050a14b8;color:var(--text);font-size:14px}.chat-input input::placeholder{color:#687691}.chat-input button{flex:none;padding:10px 17px;border:0;border-radius:12px;background:var(--accent-strong);color:#fff;cursor:pointer;font-size:13px;font-weight:750;transition:background-color .15s ease,transform .15s ease}.chat-input button:hover:enabled{background:#6987f3}.chat-input button:active:enabled{transform:scale(.97)}.chat-input button:disabled{background:#2d3850;color:#71809c;cursor:default}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:1100px){.topbar{grid-template-columns:minmax(190px,auto) minmax(0,1fr) auto;gap:12px}.badges .badge:nth-child(2){display:none}.mic-area{min-width:0;grid-template-columns:56px;padding:8px;border-radius:50%;background:#080f1d8f}.mic-label,.mic-caption{display:none}.caption-layer{left:calc(50% - 18px);width:min(720px,calc(100vw - 150px));min-width:0}}@media(max-width:760px){:root{--embed-crop: 136px}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 24px max(12px,env(safe-area-inset-left))}.player-edge-mask{position:absolute;top:0;right:0;bottom:84px;z-index:3;display:block;width:58px;background:linear-gradient(90deg,transparent,rgba(3,8,17,.88));pointer-events:none}.brand-mark{width:38px;height:38px;border-radius:12px}.brand-lockup h1{font-size:16px}.brand-lockup p,.badges{display:none}.glass-button{min-height:44px;border-radius:13px}.topic-trigger{min-width:132px;padding:7px 10px}.button-eyebrow,.button-icon{display:none}.transcript-trigger{padding:8px 12px}.topic-menu{position:fixed;top:auto;right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;width:auto;transform-origin:bottom center;animation-name:sheet-in}.caption-layer{right:max(82px,calc(env(safe-area-inset-right) + 82px));bottom:max(14px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:auto;min-width:0;gap:5px;transform:none}.caption-layer p{padding:8px 12px 9px;font-size:clamp(15px,4vw,18px);line-height:1.32}.caption-speaker{padding:3px 7px;font-size:8px}.mic-area{right:max(10px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));grid-template-columns:48px;padding:5px}.voice-spectrum{bottom:max(13px,env(safe-area-inset-bottom));gap:5px}.voice-spectrum-visual{height:40px;gap:2px;padding:7px 11px}.voice-spectrum-bar{width:3px;height:24px}.voice-spectrum-label{padding:3px 7px;font-size:10px}.realtime-avatar[data-microphone-listening=true]~.caption-layer{bottom:max(96px,calc(env(safe-area-inset-bottom) + 88px))}.mic-button{width:48px;height:48px;box-shadow:0 0 0 5px #5b7aef1f,0 10px 24px #1e358b6b}.transcript-drawer{top:auto;bottom:0;width:100%;height:min(78svh,720px);padding:18px max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));border-top:1px solid var(--border);border-left:0;border-radius:24px 24px 0 0;animation-name:sheet-in}.transcript-drawer:before{width:42px;height:4px;flex:none;align-self:center;margin:-7px 0 10px;border-radius:999px;background:#b4c3de52;content:""}.chat-input input,.chat-input button{font-size:16px}}@media(max-width:480px){.brand-lockup h1{display:none}.brand-lockup{gap:0}.topic-trigger{min-width:118px}.transcript-trigger{width:44px;padding:0}.transcript-trigger span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.transcript-body{padding-top:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
