html,body{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial;background:#f4f6fb}body.testaus{background:url(../testiymparisto.png) repeat}.keskitys{min-height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.kulmanauha{position:absolute;top:10px;left:-35px;background:#d9534f;color:#fff;padding:5px 40px;font-weight:700;transform:rotate(-45deg);text-align:center;box-shadow:0 0 5px #0006}.laatikko{margin:12px;overflow:hidden;position:relative;width:100%;max-width:560px;background:#fff;border-radius:12px;padding:28px;box-shadow:0 8px 30px #141e3c1f;text-align:center;color:#21314a}.laatikko h1{margin:0 0 8px;font-size:20px}.laatikko p{margin:0 0 18px;color:#44566d;line-height:1.4;font-size:15px}.alatunniste{margin-top:12px;font-size:13px;color:#8b98ad}.btn-link{display:inline-block;padding:10px 18px;background:linear-gradient(180deg,#347bff,#2b65e6);color:#fff;cursor:pointer;border-radius:8px;text-decoration:none;font-weight:600;font-size:15px;border:11px}.btn-link-punainen{background:linear-gradient(180deg,#ff7070,#bf0000)!important}.btn-link:disabled{background:#ccc;cursor:not-allowed}#yl�tunniste:empty,#alatunniste:empty{display:none}.controls{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:18px;position:relative}.indicator-wrap{display:none;align-items:center;justify-content:center;width:100%;margin-bottom:12px;padding:15px 0}@media(max-width:420px){.laatikko{padding:20px;border-radius:10px}.laatikko h1{font-size:18px}.laatikko p{font-size:16px;margin-bottom:14px}.btn-link{display:block;width:100%;padding:12px 14px;font-size:16px;box-sizing:border-box}}.haastattelija{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:5px}.voice-indicator{width:24px;height:24px;border-radius:999px;background:navy;border:1px solid silver;display:inline-flex;align-items:center;justify-content:center;gap:3px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.voice-indicator .bar{width:3px;height:6px;border-radius:2px;background:#fffffff2;opacity:.8}.voice-indicator:not(.is-speaking) .bar{animation:none;height:4px;opacity:.45}.voice-indicator.is-speaking .bar{opacity:.95;animation:speak .5s ease-in-out infinite}.voice-indicator.is-speaking .bar:nth-child(1){animation-delay:0ms}.voice-indicator.is-speaking .bar:nth-child(2){animation-delay:.1s}.voice-indicator.is-speaking .bar:nth-child(3){animation-delay:0ms}@keyframes speak{0%,to{transform:scaleY(.15)}40%{transform:scaleY(1.35)}70%{transform:scaleY(.15)}}
