:root{--bg: #060809;--surface: #0d1214;--surface-strong: #0b1011;--surface-subtle: #080b0c;--border: #344347;--border-muted: #253236;--text: #eef3f5;--text-strong: #dce6e7;--text-soft: #cbd7db;--text-muted: #8fa0a4;--text-dim: #708185;--text-disabled: #6d7b7f;--meter-red: #d95b45;--meter-cyan: #62a6ad;--meter-white: #dce6e7;--status-idle: #f8fafc;--status-live: #198f66;--status-error: #be3a34;--status-connecting: #c98517;--warning: #f2c56b;color-scheme:dark;font-family:Noto Sans KR,Noto Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}[hidden]{display:none!important}body{min-width:320px;min-height:100vh;margin:0;background:var(--bg);-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}@supports (min-height: 100svh){body{min-height:100svh}}@supports (min-height: 100dvh){body{min-height:100dvh}}button,select{border:0;font:inherit}.shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh;width:min(1680px,100%);margin:0 auto;padding:0 34px clamp(56px,8vh,104px);gap:0;position:relative;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;touch-action:manipulation;user-select:none}.topbar{display:flex;align-items:center;justify-content:flex-end;position:fixed;top:18px;right:34px;z-index:10;gap:8px}.brand-lockup{position:fixed;top:14px;left:18px;z-index:10;display:grid;gap:2px;pointer-events:none;-webkit-user-select:none;user-select:none}.brand-logo{display:inline-flex;align-items:baseline;gap:1px;color:var(--text);font-size:22px;font-weight:900;line-height:.92;letter-spacing:0;text-shadow:0 0 14px rgba(98,166,173,.2)}.brand-logo:before{content:"";width:4px;height:16px;margin-right:16px;align-self:center;background:var(--meter-red);box-shadow:6px 0 0 var(--meter-cyan),12px 0 0 var(--meter-white)}.brand-logo span:first-child{color:var(--meter-red)}.brand-logo span:nth-child(2){color:var(--text-strong)}.brand-logo span:nth-child(3){color:var(--meter-cyan)}.status-pill{order:1;display:inline-flex;align-items:center;justify-content:center;min-width:108px;min-height:40px;padding:0 14px;gap:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-soft);font-size:14px;font-weight:800}.status-dot{width:9px;height:9px;border-radius:999px;background:var(--status-idle)}.status-pill[data-state=connecting] .status-dot{background:var(--status-connecting)}.status-pill[data-state=live] .status-dot{background:var(--status-live);box-shadow:0 0 0 5px #198f661f}.status-pill[data-state=error] .status-dot{background:var(--status-error)}.usage-guide-button{order:0;display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;min-height:40px;padding:0;border:1px solid rgba(220,230,231,.3);background:linear-gradient(135deg,#dce6e714,#62a6ad14),var(--surface);color:var(--text-soft);cursor:pointer}.usage-guide-button svg{width:17px;height:17px}.usage-guide-button:focus-visible{outline:1px solid var(--meter-white);outline-offset:3px}.mode-toggle-button{order:2;min-width:76px;min-height:40px;padding:0 12px;border:1px solid rgba(98,166,173,.42);background:linear-gradient(90deg,#62a6ad1f,#dce6e70d),var(--surface);color:var(--text-soft);cursor:pointer;font-size:13px;font-weight:900;box-shadow:inset 3px 0 #62a6adbd}.mode-toggle-button[data-mode=manual]{border-color:#d95b45a3;color:#f0c0b8;background:linear-gradient(90deg,#d95b4526,#62a6ad14),var(--surface);box-shadow:inset 3px 0 0 var(--meter-red)}.mode-toggle-button:focus-visible{outline:1px solid var(--meter-white);outline-offset:3px}.setup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#060809b8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:1;visibility:visible;transition:opacity .22s ease,visibility .22s ease}.setup-overlay.is-hidden{pointer-events:none;visibility:hidden;opacity:0}.setup-card{width:min(430px,calc(100vw - 32px));border:1px solid rgba(98,166,173,.48);background:linear-gradient(180deg,#0d1214f5,#080b0cf5),var(--surface);box-shadow:0 24px 80px #00000085,inset 0 1px #dce6e714;padding:22px;color:var(--text);animation:setup-rise .26s ease both}#languageSetupKicker,.setup-stat,#languageSetupExample{display:none}.service-intro{margin:0 38px 10px 0;color:var(--text-strong);font-size:15px;font-weight:860;line-height:1.42;overflow-wrap:anywhere}.setup-kicker{margin:0 0 8px;color:var(--meter-cyan);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.setup-card h1{margin:0 0 12px;color:var(--text-strong);font-size:24px;line-height:1.18;letter-spacing:0}.setup-card p{margin:0 0 10px;color:var(--text-soft);font-size:14px;font-weight:650;line-height:1.55;overflow-wrap:anywhere}.setup-example{border-left:3px solid var(--meter-red);padding-left:10px;color:var(--text-strong)}.usage-guide-list{display:grid;gap:0;margin:14px 0 0;padding:0;list-style:none;border-top:1px solid var(--border-muted)}.setup-guide-list{margin:12px 0 10px}.usage-guide-list li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--border-muted)}.usage-guide-list strong{color:var(--meter-cyan);font-size:12px;font-weight:900;line-height:1.4}.usage-guide-list span{color:var(--text-soft);font-size:13px;font-weight:670;line-height:1.42;overflow-wrap:anywhere}.usage-guide-card{position:relative;width:min(460px,calc(100vw - 32px));padding-top:24px}.usage-guide-close{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(220,230,231,.22);background:#0608098a;color:var(--text-soft);cursor:pointer}.usage-guide-close svg{width:16px;height:16px}.usage-guide-close:focus-visible{outline:1px solid var(--meter-white);outline-offset:3px}.setup-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:16px}.setup-actions button{min-width:0;min-height:42px;border:1px solid var(--border);padding:0 12px;color:var(--text);cursor:pointer;font-weight:850;white-space:normal}.setup-actions .setup-primary{border-color:var(--meter-white);background:linear-gradient(135deg,var(--meter-white),#f7fbfb 68%,rgba(98,166,173,.88));color:var(--bg)}.setup-actions .setup-secondary{border-color:#62a6ad6b;background:linear-gradient(90deg,#d95b451a,#62a6ad1a),var(--surface);color:var(--text-strong)}.setup-actions button:disabled{cursor:wait;opacity:.58}.setup-current{margin-top:12px;padding:10px 12px;border:1px solid rgba(98,166,173,.34);background:#62a6ad14;color:var(--text-muted);font-size:12px;font-weight:820}.setup-current span{color:var(--meter-cyan)}.control-surface{display:grid;align-content:start;justify-items:center;gap:clamp(20px,4vh,44px);width:100%;min-height:0;padding-top:0}.meter-wrap{display:grid;justify-items:center;align-content:start;gap:10px;width:100%;min-height:0;padding-top:88px}.language-stack{display:grid;width:min(1480px,calc(100vw - 96px));max-width:100%;min-height:0;border-top:1px solid var(--border-muted);border-bottom:1px solid var(--border-muted);-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;touch-action:none;user-select:none}.shell.is-push-to-talk-active .language-stack{border-color:#d95b45cc;box-shadow:0 0 0 1px #d95b454d}.language-stack>.text-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;padding:18px 22px;min-height:0;overflow:hidden}.language-stack>.target-row{height:clamp(240px,42vh,520px);background:var(--surface-strong)}.language-stack>.source-row{height:clamp(118px,20vh,220px);background:var(--surface-subtle)}.language-stack>.text-row+.text-row{border-top:1px solid var(--border-muted)}.language-stack .text-row>div{display:grid;gap:0;min-width:0;min-height:0;height:100%;overflow:hidden}.live-text{color:var(--text-soft);font-size:clamp(34px,4.8vw,72px);font-weight:760;line-height:1.14;height:100%;min-height:2.24em;max-height:100%;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;overflow-wrap:anywhere;padding-right:6px;scrollbar-color:var(--border) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;white-space:pre-line;user-select:none}.live-text::-webkit-scrollbar{width:5px}.live-text::-webkit-scrollbar-thumb{background:var(--border)}.live-text::-webkit-scrollbar-track{background:transparent}.source-row .live-text{color:#8fa0a4b8;font-size:clamp(16px,1.8vw,26px);font-weight:640;line-height:1.22;min-height:1.4em;overflow-x:hidden;overflow-y:auto;overflow-wrap:anywhere;word-break:normal;white-space:normal}@media(min-width:960px)and (orientation:landscape){.live-text{font-size:clamp(38px,5.2vw,84px);line-height:1.1}.source-row .live-text{font-size:clamp(19px,2.1vw,31px);line-height:1.18}}.meter{display:grid;grid-template-columns:repeat(5,10px);align-items:start;gap:6px;min-height:78px;position:fixed;top:0;left:50%;z-index:9;transform:translate(-50%)}.meter span{display:block;width:10px;height:28px;background:var(--meter-red);transform-origin:center}.meter span:nth-child(2),.meter span:nth-child(4){height:48px;background:var(--meter-cyan)}.meter span:nth-child(3){height:68px;background:var(--meter-white)}.status-pill[data-state=live]~* .meter span,.shell:has(.status-pill[data-state=live]) .meter span,.shell:has(.status-pill[data-state=connecting]) .meter span{animation:pulse 1.16s ease-in-out infinite}.shell:has(.status-pill[data-state=live]) .meter span:nth-child(2),.shell:has(.status-pill[data-state=connecting]) .meter span:nth-child(2),.shell:has(.status-pill[data-state=live]) .meter span:nth-child(4),.shell:has(.status-pill[data-state=connecting]) .meter span:nth-child(4){animation-delay:.12s}.shell:has(.status-pill[data-state=live]) .meter span:nth-child(3),.shell:has(.status-pill[data-state=connecting]) .meter span:nth-child(3){animation-delay:.22s}.shell:has(.status-pill[data-state=live]) .meter span:nth-child(5),.shell:has(.status-pill[data-state=connecting]) .meter span:nth-child(5){animation-delay:.34s}#phaseText{min-height:24px;margin:0;color:var(--text-muted);font-size:15px;font-weight:850}.language-pair-text{min-width:0;color:inherit;font-size:15px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.language-pair-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:40px;padding:0 12px;border:1px solid rgba(98,166,173,.48);background:linear-gradient(90deg,#d95b4524,#62a6ad1f),var(--surface-strong);color:var(--text);cursor:pointer;box-shadow:inset 3px 0 0 var(--meter-red)}.language-pair-button[data-state=listening]{border-color:var(--meter-red);color:var(--meter-red);box-shadow:inset 0 0 0 1px #d95b4557}.language-pair-button[data-state=working]{border-color:var(--meter-cyan);color:var(--meter-cyan)}.language-pair-button:disabled{cursor:wait;opacity:.62}.language-picker-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:20px 0}.language-picker-options button{min-height:54px;border:1px solid #405158;background:#091013;color:#dce8eb;font-weight:750}.language-picker-options button[aria-pressed=true]{background:#edf4f6;color:#071013;border-color:#edf4f6}.button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;justify-content:center;gap:8px;width:min(420px,calc(100vw - 18px))}.button-row #startStopButton{order:1;grid-column:1 / -1;min-height:62px;font-size:18px}.button-row .language-pair-button{order:0;grid-column:1 / -1;min-height:52px}.button-row .device-select{order:2}.button-row #resetButton{order:3}.device-select{display:inline-grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0;min-height:40px;gap:10px;padding:0 10px 0 12px;border:1px solid rgba(98,166,173,.38);background:linear-gradient(90deg,#62a6ad1a,#dce6e70a),var(--surface);color:var(--text);box-shadow:inset 3px 0 #62a6adc2;opacity:.78}.device-select span{color:var(--text-muted);font-size:14px;font-weight:850}.device-select select{min-width:0;width:100%;height:28px;border:1px solid rgba(98,166,173,.28);background:#060809d1;color:var(--text);padding:0 10px;outline:none;font-size:14px;font-weight:760}.device-select select:focus{border-color:var(--text)}.device-select select:disabled{color:var(--text-disabled)}.button-row button{display:inline-flex;align-items:center;justify-content:center;min-width:96px;min-height:40px;padding:0 14px;gap:8px;border:1px solid rgba(220,230,231,.32);background:linear-gradient(135deg,#dce6e70f,#62a6ad0f),var(--surface);color:var(--text);cursor:pointer;font-weight:850}.button-row .language-pair-button{background:linear-gradient(90deg,#d95b4524,#62a6ad1f),var(--surface-strong)}.button-row button.primary{border-color:var(--meter-white);background:linear-gradient(135deg,var(--meter-white),#f7fbfb 68%,rgba(98,166,173,.88));color:var(--bg);box-shadow:inset 0 -3px #62a6ad7a}.button-row #resetButton{border-color:#d95b4594;background:linear-gradient(135deg,#d95b451a,#62a6ad0d),var(--surface);color:#e7b4ab;box-shadow:inset 3px 0 #d95b45b8;opacity:.82}.button-row button.needs-reset{border-color:var(--warning);color:var(--warning);box-shadow:inset 0 0 0 1px #f2c56b38}.button-row button:disabled{cursor:not-allowed;opacity:.45}.button-row svg{width:16px;height:16px}audio{display:none}.credit{display:flex;align-items:center;justify-content:space-between;gap:0;width:100%;margin:0;color:#cbd7dbd1;font-size:10px;font-weight:800;line-height:1.1;letter-spacing:0;pointer-events:none;text-shadow:0 0 10px rgba(98,166,173,.18)}.credit [role=button]{cursor:pointer;pointer-events:auto}.credit [role=button]:focus-visible{outline:1px solid var(--meter-cyan);outline-offset:3px}.credit-makers{display:inline-flex;gap:0}.credit-makers span:nth-child(2){color:var(--meter-red)}.credit-makers span:nth-child(3){color:var(--meter-cyan)}.credit-made{color:#cbd7dbb3}@keyframes pulse{0%,to{transform:scaleY(.58);opacity:.55}50%{transform:scaleY(1);opacity:1}}@keyframes setup-rise{0%{transform:translateY(10px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media(max-width:720px){html,body{height:100svh;min-height:100svh;overflow:hidden}@supports (height: 100dvh){html,body{height:100dvh;min-height:100dvh}}.shell{grid-template-rows:minmax(0,1fr);height:100svh;min-height:0;overflow:hidden;padding:max(4px,env(safe-area-inset-top)) 9px max(8px,env(safe-area-inset-bottom));gap:0}@supports (height: 100dvh){.shell{height:100dvh}}.topbar{align-items:center;flex-direction:row;top:max(8px,calc(env(safe-area-inset-top) + 2px));right:10px;gap:5px}.brand-lockup{top:max(9px,calc(env(safe-area-inset-top) + 3px));left:12px;gap:1px}.brand-logo{font-size:18px}.brand-logo:before{width:3px;height:13px;margin-right:13px;box-shadow:5px 0 0 var(--meter-cyan),10px 0 0 var(--meter-white)}.credit{font-size:9px}.status-pill{min-width:62px;max-width:86px;min-height:28px;padding:0 8px;gap:5px;font-size:11px;line-height:1}.status-dot{width:6px;height:6px;flex:0 0 auto}.status-pill[data-state=live] .status-dot{box-shadow:0 0 0 3px #198f661f}#statusText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-toggle-button{min-width:58px;min-height:28px;padding:0 8px;font-size:11px;line-height:1;box-shadow:inset 2px 0 #62a6adbd}.mode-toggle-button[data-mode=manual]{box-shadow:inset 2px 0 0 var(--meter-red)}.usage-guide-button{width:28px;min-width:28px;min-height:28px}.usage-guide-button svg{width:14px;height:14px}.setup-overlay{align-items:center;justify-items:center;overflow-y:auto;padding:max(72px,calc(env(safe-area-inset-top) + 64px)) 10px max(118px,calc(env(safe-area-inset-bottom) + 104px))}.setup-card{justify-self:start;width:100%;max-width:372px;max-height:calc(100svh - 190px);overflow-y:auto;padding:14px}@supports (height: 100dvh){.setup-card{max-height:calc(100dvh - 190px)}}.setup-kicker{margin-bottom:5px;font-size:10px}.service-intro{margin:0 32px 7px 0;font-size:12px;line-height:1.34}.setup-card h1{margin-bottom:8px;font-size:19px}.setup-card p{margin-bottom:7px;font-size:12px;line-height:1.34}.usage-guide-list{margin-top:9px}.setup-guide-list{margin:8px 0}.usage-guide-list li{grid-template-columns:48px minmax(0,1fr);gap:7px;padding:7px 0}.usage-guide-list strong{font-size:11px}.usage-guide-list span{font-size:11px;line-height:1.32}.usage-guide-card{padding-top:18px}.usage-guide-close{top:8px;right:8px;width:29px;height:29px}.setup-actions{margin-top:10px}.setup-actions button{min-height:38px;padding:0 8px;font-size:12px}.setup-current{margin-top:8px;font-size:10px}.control-surface{grid-template-rows:minmax(0,1fr) auto;align-content:stretch;min-height:0;height:100%;gap:6px;padding-top:0}.meter-wrap{grid-template-rows:minmax(0,1fr) auto;align-content:stretch;gap:5px;height:100%;padding-top:48px}.meter{grid-template-columns:repeat(5,8px);gap:5px;min-height:54px;top:max(2px,env(safe-area-inset-top))}.meter span{width:8px;height:22px}.meter span:nth-child(2),.meter span:nth-child(4){height:38px}.meter span:nth-child(3){height:54px}#phaseText{align-self:center;min-height:17px;font-size:12px;line-height:1.15}.button-row{grid-template-columns:repeat(2,minmax(0,1fr));width:min(372px,calc(100vw - 18px));max-width:min(372px,calc(100vw - 18px));justify-self:center;gap:5px;min-height:0}.language-pair-text{font-size:13px}.button-row button{min-width:0;min-height:44px;padding:0 6px;gap:5px;font-size:12px}.button-row #startStopButton{min-height:52px;font-size:14px}.button-row .language-pair-button{min-height:44px}.device-select{grid-template-columns:auto minmax(0,1fr);width:100%;min-width:0;min-height:44px;gap:5px;padding:0 5px 0 7px}.device-select span{font-size:11px}.device-select select{height:44px;padding:0 4px;font-size:11px}.button-row svg{width:15px;height:15px}.language-stack{width:min(372px,calc(100vw - 18px));height:100%;grid-template-rows:minmax(0,1.75fr) minmax(72px,.72fr)}.language-stack>.text-row{grid-template-columns:1fr;align-content:stretch;gap:0;height:auto;padding:8px 10px}.language-stack .text-row>div{align-self:stretch}.language-stack>.target-row{height:auto}.language-stack>.source-row{height:auto}.live-text{font-size:clamp(31px,10.8vw,46px);line-height:1.12}.source-row .live-text{font-size:clamp(16px,4.9vw,21px);line-height:1.18}}
