:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#191f28;background:#f7f8fa;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #3182f6;--blue-dark: #1b64da;--line: #e5e8eb;--muted: #6b7684;--surface: #ffffff;--danger: #e54b4b}*{box-sizing:border-box}html{min-width:320px;background:#f7f8fa}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(49,130,246,.35);outline-offset:2px}.app-shell{min-height:100vh;padding:max(20px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.screen{width:min(100%,480px);min-height:calc(100vh - 44px);margin:0 auto;display:flex;flex-direction:column;gap:24px}.screen-header{padding-top:12px}.screen-header h1,.hero h1{margin:6px 0 0;font-size:clamp(28px,8vw,38px);line-height:1.2;letter-spacing:-.04em}.eyebrow{margin:0;color:var(--blue);font-size:14px;font-weight:700}.hero{padding-top:20px}.hero-copy{margin:14px 0 0;max-width:340px;color:#4e5968;font-size:18px;line-height:1.55;letter-spacing:-.02em}.badge,.lock-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#e8f3ff;color:#1b64da;font-size:13px;font-weight:700}.mic-visual{position:relative;width:148px;height:148px;margin:10px auto;border-radius:40px;background:#e8f3ff}.mic-visual__head{position:absolute;left:50%;top:32px;width:42px;height:58px;transform:translate(-50%);border:7px solid var(--blue);border-radius:24px}.mic-visual__head:after{content:"";position:absolute;left:50%;top:46px;width:70px;height:42px;transform:translate(-50%);border:7px solid var(--blue);border-top:0;border-radius:0 0 42px 42px}.mic-visual__stem{position:absolute;left:50%;bottom:25px;width:7px;height:25px;transform:translate(-50%);border-radius:8px;background:var(--blue)}.action-stack{display:grid;gap:10px}.button{width:100%;min-height:52px;padding:13px 18px;border:0;border-radius:14px;font-weight:700;cursor:pointer;transition:transform .12s ease,background-color .12s ease,opacity .12s ease}.button:active{transform:scale(.985)}.button:disabled{cursor:not-allowed;opacity:.45}.button--primary{background:var(--blue);color:#fff}.button--primary:hover:not(:disabled){background:var(--blue-dark)}.button--secondary{background:#eef0f2;color:#333d4b}.button--danger{background:#ffe9e9;color:#d33d3d}.button--text{background:transparent;color:var(--muted)}.guide-card,.result-card,.detail-section,.recorded-summary{border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 8px 24px #0017330a}.guide-card{padding:20px}.guide-card h2{margin:0 0 12px;font-size:18px}.guide-card ul{margin:0;padding-left:20px;color:#4e5968;line-height:1.7}.medical-note,.mock-note{margin:-6px 0 0;color:#8b95a1;font-size:13px;line-height:1.55;text-align:center}.privacy-notice{margin-top:auto;padding:16px 4px 4px;border-top:1px solid var(--line);color:#8b95a1;font-size:12px;line-height:1.5}.privacy-notice p{margin:3px 0}.status-orb{width:92px;height:92px;margin:60px auto 10px;border-radius:50%;background:#e8f3ff}.status-orb--pulse{animation:pulse 1.4s ease-in-out infinite}.status-orb--spin{border:10px solid #e8f3ff;border-top-color:var(--blue);background:transparent;animation:spin 1s linear infinite}.center-copy{margin:0 auto;max-width:340px;color:#4e5968;line-height:1.6;text-align:center}.countdown-number{display:grid;place-items:center;width:150px;height:150px;margin:50px auto 16px;border-radius:50%;background:var(--blue);color:#fff;font-size:68px;font-weight:800}.timer{margin-top:50px;text-align:center;font-size:52px;font-weight:800;letter-spacing:-.04em}.timer-limit{margin:-16px 0 12px;color:var(--muted);text-align:center}.level-meter{height:14px;overflow:hidden;border-radius:999px;background:#e5e8eb}.level-meter__fill{height:100%;border-radius:inherit;background:var(--blue);transition:width 90ms linear}.recorded-summary{display:flex;align-items:center;justify-content:space-between;margin-top:30px;padding:22px}.recorded-summary span{color:var(--muted)}.recorded-summary strong{font-size:24px}.analysis-steps{display:grid;gap:16px;margin:8px 0 0;padding:0;list-style:none}.analysis-steps li{display:flex;align-items:center;gap:12px;color:#8b95a1}.analysis-steps li span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eef0f2;font-size:14px;font-weight:800}.analysis-steps li.is-active{color:#191f28;font-weight:700}.analysis-steps li.is-active span{background:#e8f3ff;color:var(--blue)}.result-card{padding:24px}.result-card__label{margin:0;color:var(--muted);font-size:14px;font-weight:700}.score{display:flex;align-items:baseline;gap:5px;margin:6px 0 24px}.score strong{font-size:64px;line-height:1;letter-spacing:-.05em}.score span{color:var(--muted);font-size:20px;font-weight:700}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-grid div,.vocal-type{padding:16px;border-radius:14px;background:#f7f8fa}.result-grid span,.vocal-type span{display:block;margin-bottom:6px;color:var(--muted);font-size:13px}.result-grid strong,.vocal-type strong{font-size:18px}.vocal-type{margin-top:10px}.feedback{margin:18px 0 0;line-height:1.6}.detail-section{position:relative;overflow:hidden;padding:22px}.section-heading{display:flex;justify-content:space-between;gap:12px}.section-heading h2{margin:4px 0 0;font-size:20px}.locked-content{display:grid;gap:8px;margin-top:20px;filter:blur(7px);user-select:none;opacity:.5}.metric-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.practice-box{padding:16px;border-radius:12px;background:#f7f8fa}.locked-overlay{position:absolute;inset:86px 16px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;border-radius:16px;background:#ffffffe8;text-align:center}.locked-overlay>span{font-size:30px}.locked-overlay p{margin:0;color:#4e5968;line-height:1.5}.inline-error,.inline-notice{margin:0;padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.5}.inline-error{background:#fff1f1;color:#c33b3b}.inline-notice{background:#f2f4f6;color:#4e5968}.error-icon{display:grid;place-items:center;width:88px;height:88px;margin:48px auto 0;border-radius:50%;background:#fff1f1;color:var(--danger);font-size:46px;font-weight:800}.manual-share{display:grid;gap:8px;color:#4e5968;font-size:14px;font-weight:700}.manual-share textarea{width:100%;min-height:150px;padding:14px;resize:vertical;border:1px solid var(--line);border-radius:12px;background:#fff;color:#333d4b;line-height:1.5}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes pulse{0%,to{transform:scale(.9);opacity:.55}50%{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 360px){.app-shell{padding-left:14px;padding-right:14px}.result-card{padding:20px}.score strong{font-size:56px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.voice-input-warning{margin:-12px 0 0;padding:11px 14px;border-radius:12px;background:#fff8e6;color:#8a5b00;font-size:14px;font-weight:700;line-height:1.45;text-align:center}.mock-disclosure{display:grid;gap:8px;margin-bottom:20px;padding:14px;border:1px solid #ffd89b;border-radius:14px;background:#fff8e6}.mock-disclosure__badge{display:inline-flex;width:fit-content;min-height:28px;align-items:center;padding:4px 10px;border-radius:999px;background:#fff0cc;color:#8a5b00;font-size:13px;font-weight:800}.mock-disclosure p{margin:0;color:#6b4b16;font-size:13px;line-height:1.55}
