:root{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:#000;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*{box-sizing:border-box}
html,body{width:100%;height:100%;min-height:100%;margin:0;background:#fff}
.loading-screen{width:100%;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:24px}
.loading-screen.is-listening{height:100vh;height:100svh;min-height:0;display:flex;align-items:stretch;padding:calc(env(safe-area-inset-top) + 20px) 24px calc(env(safe-area-inset-bottom) + 16px)}
.past-link{position:fixed;top:max(14px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));z-index:2;color:#111;font-size:14px;text-decoration:underline;text-underline-offset:3px;opacity:.62}
.past-link[hidden],.past-transcript[hidden]{display:none}
.past-transcript{position:fixed;inset:48px 12px 12px;z-index:1;margin:0;padding:12px;background:#fff;color:#777;font-family:inherit;font-size:15px;line-height:1.6;white-space:pre-wrap;overflow:auto}
.loading-content{width:min(100%,340px);text-align:center}
.is-listening .loading-content{width:100%;max-width:none;height:100%;display:flex;flex-direction:column;text-align:center}
h1{margin:0 0 24px;color:#000;font-size:clamp(25px,7vw,32px);line-height:1.15;font-weight:800;letter-spacing:-1.1px}
.progress-track{height:5px;width:100%;overflow:hidden;background:#e9e9e9;border-radius:999px}
.progress-fill{height:100%;width:0;background:#000;border-radius:inherit;transition:width .16s ease}
.progress-fill.indeterminate{width:35%;animation:slide 1.1s ease-in-out infinite alternate}
#retryButton{margin-top:22px;padding:11px 22px;border:0;border-radius:7px;background:#000;color:#fff;font:600 14px inherit;cursor:pointer}
#retryButton[hidden]{display:none}
.live-transcript{margin-top:20px;text-align:left;font-size:20px;line-height:1.55;font-weight:550;height:min(55vh,55svh);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.is-listening .live-transcript{flex:1;min-height:0;height:auto;margin-top:0;padding-bottom:env(safe-area-inset-bottom)}
.live-transcript p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(185%)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
