:root{color:#183e35;font-synthesis:none;text-rendering:optimizelegibility;--ink:#183e35;--muted:#708078;--green:#356b57;--green-dark:#234d3e;--leaf:#e8f0e2;--sun:#f4cb69;--coral:#e99570;--paper:#fffffff5;--line:#29504024;--shadow:0 12px 30px #27453817;background:#f6f6ef;font-family:ui-rounded,SF Pro Rounded,PingFang HK,PingFang TC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{background:radial-gradient(circle at 0 0,#c5ddb857,#0000 26rem),radial-gradient(circle at 100% 0,#f6d98f3d,#0000 24rem),#f8f7f1;min-height:100dvh}button,a{font:inherit;-webkit-tap-highlight-color:transparent}button{border:0}button:not(:disabled),a{cursor:pointer}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #356b574d}.page-shell{width:min(100%,560px);min-height:100dvh;padding:max(10px, env(safe-area-inset-top)) clamp(13px, 4vw, 24px) max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:clamp(11px,1.8vh,16px);margin:0 auto;display:flex}.center-screen{place-items:center;min-height:100dvh;padding:24px;display:grid}.status-card{border:1px solid var(--line);background:var(--paper);width:min(100%,350px);box-shadow:var(--shadow);text-align:center;border-radius:26px;padding:30px}.status-card h1{margin:15px 0 8px;font-size:1.3rem}.status-card p{color:var(--muted);margin:0;line-height:1.5}.sound-loader{align-items:center;gap:5px;height:40px;display:inline-flex}.sound-loader i{background:var(--green);border-radius:99px;width:6px;height:17px;animation:.8s ease-in-out infinite alternate sound-wave}.sound-loader i:nth-child(2){height:31px;animation-delay:.14s}.sound-loader i:nth-child(3){height:24px;animation-delay:.28s}.sound-loader i:nth-child(4){height:13px;animation-delay:.42s}.status-symbol{color:#8c4d35;background:#f9e0d4;border-radius:16px;place-items:center;width:50px;height:50px;margin:0 auto;font-size:1.35rem;font-weight:900;display:grid}.status-card .primary-button{margin-top:20px}.app-header{grid-template-columns:38px 1fr 62px;align-items:center;gap:9px;min-height:40px;display:grid}.back-button{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);background:#ffffffe0;border-radius:50%;place-items:center;font-size:1.65rem;line-height:1;display:grid;box-shadow:0 4px 12px #2a4e3f12}.brand-title{text-align:center;letter-spacing:.03em;font-size:.96rem;font-weight:850}.mode-badge{border-radius:999px;justify-self:end;padding:5px 8px;font-size:.64rem;font-weight:850}.mode-badge.preview{color:#73551d;background:#fff0c8}.mode-badge.connected{color:var(--green-dark);background:#e2efdd}.eyebrow{color:var(--green);letter-spacing:.12em;font-size:.7rem;font-weight:900}.primary-button,.audio-button{border-radius:15px;justify-content:center;align-items:center;min-height:46px;padding:0 22px;font-weight:850;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:var(--green-dark);box-shadow:0 8px 20px #234d3e2e}.primary-button:disabled{opacity:.42;cursor:not-allowed}.screen-button{align-self:center;min-width:170px}.intro-card{box-shadow:var(--shadow);background:linear-gradient(135deg,#fff8d3f0,#e0f0d7f5);border:1px solid #4c75482e;border-radius:28px;margin-top:clamp(4px,2vh,16px);padding:clamp(24px,6vw,36px)}.intro-card h1{letter-spacing:-.055em;margin:8px 0 12px;font-size:clamp(2rem,8vw,3rem);line-height:1.07}.intro-card p{color:#526a60;max-width:36ch;margin:0;font-size:.9rem;line-height:1.65}.step-list{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.step-list>div{border:1px solid var(--line);background:var(--paper);text-align:center;border-radius:18px;justify-items:center;gap:7px;min-width:0;padding:14px 7px;display:grid}.step-list b{color:#fff;background:var(--green);border-radius:10px;place-items:center;width:29px;height:29px;display:grid}.step-list strong,.step-list small{display:block}.step-list strong{font-size:.76rem}.step-list small{color:var(--muted);margin-top:3px;font-size:.61rem;line-height:1.3}.connection-note{color:var(--muted);text-align:center;margin:-4px 0 0;font-size:.66rem}.progress-block{padding:0 2px}.progress-block>div:first-child{justify-content:space-between;align-items:baseline;margin-bottom:5px;display:flex}.progress-block span,.progress-block strong{font-size:.74rem;font-weight:850}.progress-block span{color:var(--muted)}.progress-track{background:#3667531f;border-radius:999px;height:5px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, #a8ca98, var(--green));height:100%;display:block}.scene-card{border:1px solid var(--line);height:clamp(225px,38vh,310px);box-shadow:var(--shadow);background:#fff;border-radius:24px;overflow:hidden}.scene-card img{object-fit:contain;width:100%;height:100%}.question-prompt{background:#fff7dc;border:1px solid #e5b44952;border-radius:18px;padding:12px 17px}.question-prompt span{color:#806725;font-size:.67rem;font-weight:850}.question-prompt h1{color:#4c3c16;margin:3px 0 0;font-size:clamp(1.05rem,4.5vw,1.4rem)}.speech-panel{border:1px solid var(--line);background:var(--paper);border-radius:20px;grid-template-columns:58px 1fr;align-items:center;gap:13px;padding:11px 13px;display:grid;box-shadow:0 8px 22px #2745380f}.speech-panel.is-listening{background:#fff8f4;border-color:#df6f4e61}.speech-panel.is-success{background:#f0f7ec;border-color:#356b5759}.mic-button{aspect-ratio:1;background:var(--green);border-radius:17px;place-items:center;width:54px;display:grid}.mic-button span{border:4px solid #fff;border-top-width:7px;border-radius:10px 10px 12px 12px;width:17px;height:23px;display:block}.is-listening .mic-button{background:#d66e50;animation:1s ease-in-out infinite listen-pulse}.is-success .mic-button{background:var(--green-dark)}.is-success .mic-button span{border-top:0;border-bottom:4px solid #fff;border-left:4px solid #fff;border-right:0;border-radius:0;width:20px;height:11px;transform:rotate(-45deg)}.speech-copy{min-width:0}.speech-copy strong{font-size:.88rem;display:block}.speech-copy p{color:var(--muted);margin:3px 0 0;font-size:.67rem;line-height:1.4}.speech-copy output{color:var(--green-dark);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:.75rem;font-weight:800;display:block;overflow:hidden}.skip-recognition{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));z-index:5;border:1px solid var(--line);min-height:42px;color:var(--green-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-radius:14px;align-items:center;gap:8px;padding:0 16px;font-size:.78rem;font-weight:850;display:inline-flex;position:fixed;box-shadow:0 8px 22px #2745381f}.skip-recognition span{font-size:1rem}.answer-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:25px;overflow:hidden}.answer-card>img{object-fit:contain;background:#fff;width:100%;height:clamp(205px,34vh,280px);display:block}.answer-text{border-top:1px solid var(--line);padding:14px 82px 15px 18px}.answer-text span{color:var(--green);font-size:.68rem;font-weight:850}.answer-text h1{margin:3px 0;font-size:clamp(1.35rem,5vw,1.8rem)}.answer-text p{color:var(--muted);margin:0;font-size:.67rem}.square-action{aspect-ratio:1;color:#fff;background:var(--green);border-radius:17px;place-content:center;align-self:end;gap:1px;width:56px;margin:-70px 14px 0 0;display:grid;position:absolute}.answer-card{position:relative}.square-action{bottom:13px;right:0}.square-action span,.square-action small{display:block}.square-action small{font-size:.63rem;font-weight:800}.square-action.is-playing span{animation:.65s ease-in-out infinite alternate audio-beat}.heard-question{background:var(--leaf);border-radius:16px;justify-content:center;align-items:baseline;gap:9px;padding:10px 14px;display:flex}.heard-question span{color:var(--muted);font-size:.65rem}.heard-question strong{font-size:.84rem}.focus-heading{border:1px solid var(--line);background:var(--paper);text-align:center;border-radius:19px;padding:12px 16px}.focus-answer{justify-content:center;align-items:baseline;gap:2px;display:flex}.focus-answer strong{font-weight:900}.focus-answer span{font-weight:400}.focus-heading p{color:var(--muted);margin:0;font-size:.7rem}.focus-heading .focus-answer{color:#75847d;margin:0 0 6px;font-size:clamp(.82rem,3.4vw,1rem)}.focus-heading>p:last-child{color:var(--ink);font-size:clamp(1.05rem,4.5vw,1.35rem);font-weight:850}.focus-grid{grid-template-columns:repeat(2,minmax(0,180px));justify-content:center;gap:clamp(10px,3vw,14px);display:grid}.focus-option{aspect-ratio:1;width:100%;color:var(--ink);background:#fff;border:2px solid #0000;border-radius:22px;grid-template-rows:minmax(0,1fr) auto;padding:0;transition:transform .15s,border-color .15s,background .15s;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #2a493c17}.focus-option:active{transform:scale(.97)}.focus-option.is-selected{border-color:var(--green);background:#f0f7ec}.focus-option img{object-fit:contain;width:100%;height:100%;min-height:0}.focus-option>strong{place-items:center;min-height:44px;padding:6px 8px 10px;font-size:1.08rem;display:grid}.focus-option i{border:1px solid var(--line);color:#fff;background:#ffffffe0;border-radius:8px;place-items:center;width:24px;height:24px;font-size:.74rem;font-style:normal;font-weight:900;display:grid;position:absolute;top:8px;right:8px}.is-selected i{border-color:var(--green);background:var(--green)}.feedback-card{border:1px solid var(--line);background:var(--paper);width:min(100%,460px);box-shadow:var(--shadow);text-align:center;border-radius:28px;flex-direction:column;align-self:center;align-items:center;padding:clamp(20px,5vw,30px);display:flex}.feedback-card.is-correct{background:linear-gradient(145deg,#f1f8ed,#fff)}.feedback-card.is-guided{background:linear-gradient(145deg,#fff7e6,#fff)}.feedback-mark{aspect-ratio:1;color:#fff;background:var(--green);border-radius:16px;place-items:center;width:49px;margin-bottom:7px;font-size:1.45rem;font-weight:900;display:grid}.is-guided .feedback-mark{background:#e6a85f}.feedback-card>span{color:var(--green);font-size:.69rem;font-weight:850}.feedback-card h1{margin:3px 0 13px;font-size:clamp(1.5rem,6vw,2rem)}.feedback-card.is-guided h1{font-size:clamp(1.25rem,5vw,1.7rem)}.feedback-choice{border:1px solid var(--line);background:#fff;border-radius:19px;width:min(100%,220px);overflow:hidden}.feedback-choice img{object-fit:contain;width:100%;height:120px;display:block}.feedback-choice strong{padding:3px 8px 10px;font-size:1.05rem;display:block}.feedback-card>p{max-width:36ch;color:var(--muted);margin:13px 0;font-size:.79rem;line-height:1.5}.audio-button{min-height:40px;color:var(--green-dark);background:var(--leaf);padding-inline:17px;font-size:.75rem}.summary-card{border:1px solid var(--line);background:var(--paper);width:min(100%,460px);box-shadow:var(--shadow);text-align:center;border-radius:28px;flex-direction:column;align-self:center;align-items:center;margin-top:clamp(8px,4vh,30px);padding:clamp(22px,6vw,34px);display:flex}.score-ring{aspect-ratio:1;border:10px solid #dfeadb;border-radius:50%;place-content:center;width:126px;margin-bottom:15px;display:grid}.score-ring strong{font-size:2rem}.score-ring small{color:var(--muted);font-size:.5em}.score-ring span{color:var(--muted);font-size:.64rem}.summary-card h1{margin:4px 0 7px;font-size:2rem}.summary-card>p{color:var(--muted);margin:0;font-size:.82rem}.summary-stats{grid-template-columns:repeat(2,1fr);gap:9px;width:100%;margin-top:18px;display:grid}.summary-stats div{background:#f0f4ed;border-radius:15px;padding:11px}.summary-stats strong,.summary-stats span{display:block}.summary-stats strong{font-size:1.05rem}.summary-stats span{color:var(--muted);margin-top:2px;font-size:.63rem}.inline-message,.saved-message{margin:12px 0 0;font-size:.7rem}.inline-message{color:#8a5939}.saved-message{color:var(--green)}@keyframes sound-wave{to{opacity:.5;transform:scaleY(.4)}}@keyframes listen-pulse{50%{box-shadow:0 0 0 8px #d66e5029}}@keyframes audio-beat{to{opacity:.65;transform:scale(1.14)}}@media (height<=650px),(width<=350px){.page-shell{padding-top:max(7px, env(safe-area-inset-top));padding-bottom:max(7px, env(safe-area-inset-bottom));gap:8px}.app-header{grid-template-columns:34px 1fr 58px;min-height:34px}.back-button{width:32px;height:32px;font-size:1.5rem}.mode-badge{padding:4px 6px;font-size:.59rem}.progress-block>div:first-child{margin-bottom:3px}.progress-track{height:4px}.scene-card{border-radius:18px;height:190px}.question-prompt{border-radius:15px;padding:8px 12px}.question-prompt h1{font-size:.98rem}.speech-panel{border-radius:16px;grid-template-columns:46px 1fr;gap:9px;padding:7px 9px}.mic-button{border-radius:14px;width:43px}.mic-button span{border-width:6px 3px 3px;width:14px;height:19px}.speech-copy strong{font-size:.78rem}.speech-copy p{font-size:.59rem}.speech-copy output{font-size:.66rem}.skip-recognition{right:12px;bottom:max(12px, env(safe-area-inset-bottom));min-height:39px}.answer-card{border-radius:18px}.answer-card>img{height:190px}.answer-text{padding:9px 70px 10px 13px}.answer-text h1{font-size:1.17rem}.square-action{border-radius:14px;width:48px;bottom:9px;right:9px}.heard-question{padding:7px 10px}.focus-heading{border-radius:15px;padding:8px 10px}.focus-heading .focus-answer{margin-bottom:3px;font-size:.78rem}.focus-heading>p:last-child{font-size:.95rem}.focus-grid{grid-template-columns:repeat(2,minmax(0,142px));gap:8px}.focus-option{border-radius:17px}.focus-option>strong{min-height:34px;padding:3px 6px 7px;font-size:.9rem}.focus-option i{border-radius:7px;width:21px;height:21px;top:6px;right:6px}.primary-button{border-radius:13px;min-height:41px}.feedback-card{border-radius:21px;padding:14px}.feedback-mark{border-radius:14px;width:43px;margin-bottom:4px}.feedback-card h1{margin:2px 0 8px;font-size:1.35rem}.feedback-choice{border-radius:15px;width:180px}.feedback-choice img{height:90px}.feedback-card>p{margin:8px 0;font-size:.68rem}.audio-button{min-height:36px}.summary-card{border-radius:22px;margin-top:4px;padding:16px}.score-ring{border-width:8px;width:100px;margin-bottom:9px}.summary-card h1{font-size:1.55rem}.summary-stats{margin-top:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
