:root{color:#183e35;font-synthesis:none;text-rendering:optimizelegibility;--ink:#183e35;--muted:#708078;--green:#356b57;--green-dark:#234d3e;--leaf:#e8f0e2;--paper:#fffffff5;--line:#29504024;--shadow:0 12px 30px #27453817;background:#f8f7f1;font-family:ui-rounded,SF Pro Rounded,PingFang HK,PingFang TC,system-ui,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}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;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}button:not(:disabled),a{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #91b69a}button:not(:disabled):active{transform:scale(.98)}.page-shell{width:min(100%,560px);min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) clamp(14px, 4vw, 24px) max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.app-header{grid-template-columns:44px 1fr 62px;align-items:center;gap:8px;min-height:44px;display:grid}.back-button{border:1px solid var(--line);width:44px;height:44px;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:.02em;font-size:.96rem;font-weight:850}.mode-badge{white-space:nowrap;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}.preview-navigation{color:var(--muted);justify-content:flex-end;align-items:center;gap:10px;font-size:.72rem;display:flex}.preview-navigation select{border:1px solid var(--line);max-width:100%;min-height:44px;color:var(--green-dark);background:var(--paper);font:inherit;cursor:pointer;border-radius:13px;padding:0 12px}.preview-navigation select:focus-visible{outline-offset:3px;outline:3px solid #91b69a}.eyebrow{color:var(--green);letter-spacing:.11em;font-size:.7rem;font-weight:900}.primary-button,.audio-button{border-radius:15px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-weight:850;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:var(--green-dark);min-height:46px;box-shadow:0 8px 20px #234d3e29}.primary-button:disabled,.audio-button:disabled{opacity:.48}.audio-button{color:var(--green-dark);background:var(--leaf);padding-inline:15px;font-size:.76rem}.button-icon{flex:none;width:18px;height:18px}.screen-button{align-self:center;min-width:180px;margin-top:5px}.intro-card{box-shadow:var(--shadow);background:linear-gradient(135deg,#fff8d3f0,#e0f0d7f5);border:1px solid #4c75482e;border-radius:28px;margin-top:8px;padding:clamp(24px,6vw,36px)}.intro-card h1{letter-spacing:-.045em;margin:10px 0 14px;font-size:clamp(2rem,7.8vw,3rem);line-height:1.17}.intro-card p{color:#526a60;max-width:36ch;margin:0;font-size:.9rem;line-height:1.7}.step-list{grid-template-columns:repeat(3,minmax(0,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;padding:16px 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:.77rem}.step-list small{color:var(--muted);margin-top:4px;font-size:.63rem;line-height:1.45}.connection-note{color:var(--muted);text-align:center;margin:0;font-size:.68rem;line-height:1.6}.stage-rail ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.stage-rail li{color:#87938b;text-align:center;justify-items:center;gap:6px;min-width:0;display:grid;position:relative}.stage-rail li:not(:last-child):after{content:"";background:var(--line);width:calc(100% - 32px);height:1px;position:absolute;top:15px;left:calc(50% + 19px)}.stage-rail li>span{border:1px solid var(--line);background:#f5f6f0;border-radius:10px;place-items:center;width:30px;height:30px;font-size:.71rem;font-weight:850;display:grid}.stage-rail small{font-size:.62rem;line-height:1.35}.stage-rail .is-current{color:var(--green-dark);font-weight:800}.stage-rail .is-current>span{border-color:var(--green);color:#fff;background:var(--green);box-shadow:0 3px 10px #356b5724}.stage-rail .is-complete{color:var(--green)}.stage-rail .is-complete>span{color:var(--green-dark);background:var(--leaf);border-color:#bdd2b5}.practice-heading{padding:2px 3px 0}.practice-heading h1{letter-spacing:-.02em;margin:4px 0 5px;font-size:clamp(1.3rem,5.2vw,1.65rem);line-height:1.35}.practice-heading p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.6}.progress-block{padding:0 2px}.progress-block>div:first-child{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.progress-block span,.progress-block strong{font-size:.72rem;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);box-shadow:var(--shadow);background:#fff;border-radius:22px;overflow:hidden}.scene-card img{aspect-ratio:740/446;object-fit:contain;width:100%;display:block}.familiarity-card{border:1px solid var(--line);background:var(--paper);min-height:132px;box-shadow:var(--shadow);border-radius:23px;grid-template-columns:120px 1fr;display:grid;overflow:hidden}.familiarity-visual{background:linear-gradient(145deg,#f2f6ec,#fffaf0);place-items:center;min-width:0;padding:12px;display:grid}.familiarity-visual svg{width:100%;height:108px}.familiarity-copy{text-align:left;align-self:center;min-width:0;padding:16px 18px}.familiarity-copy>span{color:var(--green);font-size:.66rem;font-weight:850}.familiarity-copy h1{margin:4px 0 6px;font-size:1.24rem;line-height:1.4}.familiarity-copy p{color:#526a60;margin:0;font-size:.81rem;line-height:1.65}.familiarity-dots{justify-content:center;align-items:center;gap:7px;padding:3px 0;display:flex}.familiarity-dots span{background:#d3ddcd;border-radius:999px;width:6px;height:6px}.familiarity-dots .is-current{background:var(--green);width:22px}.familiarity-controls{justify-content:space-between;gap:12px;display:flex}.familiarity-controls>button{flex:1}.stage-card{border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;background:linear-gradient(145deg,#f0f6e9,#fffbee);border-radius:28px;margin-top:8px;padding:clamp(25px,6vw,34px)}.stage-symbol{width:64px;height:64px;color:var(--green-dark);background:#dfeccd;border-radius:22px;place-items:center;margin:0 auto 19px;font-size:1.8rem;font-weight:900;display:grid;box-shadow:0 5px #356b570d}.stage-card h1{margin:6px 0 10px;font-size:clamp(1.7rem,6vw,2.15rem)}.stage-card>p{color:#526a60;margin:0;font-size:.86rem;line-height:1.7}.stage-features{text-align:left;gap:10px;margin-top:23px;display:grid}.stage-features>div{background:#ffffffc2;border:1px solid #29504014;border-radius:16px;padding:13px 16px}.stage-features strong{font-size:.82rem;display:block}.stage-features small{color:var(--muted);margin-top:4px;font-size:.72rem;line-height:1.55;display:block}.question-prompt{background:#fff7dc;border:1px solid #e5b4494d;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:14px 17px;display:flex}.question-copy{min-width:0}.question-copy>span{color:#806725;font-size:.67rem;font-weight:850}.question-copy h1{color:#4c3c16;margin:4px 0 0;font-size:clamp(1.05rem,4.3vw,1.32rem);line-height:1.45}.question-prompt>.audio-button{background:#f7e9bd;flex:none;min-width:44px;padding-inline:12px}.question-prompt.is-independent{background:#eef3e7;border-color:#d5e1cd}.is-independent .question-copy>span{color:var(--green)}.is-independent .question-copy h1{color:var(--ink)}.speech-panel{border:1px solid var(--line);background:var(--paper);border-radius:20px;grid-template-columns:54px 1fr;align-items:center;gap:13px;padding:13px;display:grid;box-shadow:0 8px 22px #2745380f}.speech-panel.is-listening{background:#fffbed;border-color:#cebf81}.speech-panel.is-success{background:#f0f7ec;border-color:#356b5759}.mic-button{background:var(--green);border-radius:17px;place-items:center;width:54px;height: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:#8e7942;animation:1.4s 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:.87rem;line-height:1.4;display:block}.speech-copy p{color:var(--muted);margin:4px 0 0;font-size:.71rem;line-height:1.55}.speech-copy output{color:var(--green-dark);overflow-wrap:anywhere;margin-top:5px;font-size:.78rem;font-weight:800;line-height:1.5;display:block}.skip-recognition{border:1px solid var(--line);color:#536b5d;background:#ffffffa3;border-radius:13px;align-self:flex-end;align-items:center;gap:7px;min-height:44px;padding:0 14px;font-size:.73rem;font-weight:750;display:inline-flex}.skip-recognition span{font-size:.95rem}.heard-question{background:var(--leaf);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:5px 9px;padding:10px 14px;display:flex}.heard-question span{color:var(--muted);font-size:.67rem}.heard-question strong{font-size:.87rem}.audio-panel{border:1px solid var(--line);background:var(--paper);border-radius:20px;align-items:center;gap:10px;padding:10px 12px;display:flex;box-shadow:0 8px 22px #2745380d}.robot-symbol{flex:none;width:44px;height:44px}.audio-copy{flex:1;min-width:0}.audio-copy strong{font-size:.86rem;line-height:1.4;display:block}.audio-copy p{color:var(--muted);margin:4px 0 0;font-size:.71rem;line-height:1.5}.square-action{color:#fff;background:var(--green);border-radius:14px;flex:none;place-content:center;gap:3px;width:44px;min-height:44px;display:grid}.square-action small{font-size:.61rem;font-weight:800;display:block}.square-action .button-icon{margin:0 auto}.square-action.is-playing{background:var(--green-dark)}.square-action.is-playing>.button-icon{animation:.8s ease-in-out infinite alternate audio-beat}.focus-grid{grid-template-columns:repeat(2,minmax(0,150px));justify-content:center;gap:10px;display:grid}.focus-option{aspect-ratio:1;width:100%;color:var(--ink);background:#fff;border:2px solid #e1e9dd;border-radius:22px;grid-template-rows:minmax(0,1fr) auto;padding:0;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 20px #2a493c12}.focus-visual{place-items:center;min-height:0;padding:10px 14px 0;display:grid}.focus-visual svg{width:100%;height:100%}.focus-option>strong{place-items:center;min-height:42px;padding:5px 8px 10px;font-size:1rem;display:grid}.focus-option i{border:1px solid var(--line);color:#0000;background:#ffffffe6;border-radius:9px;place-items:center;width:25px;height:25px;font-size:.75rem;font-style:normal;font-weight:900;display:grid;position:absolute;top:9px;right:9px}.focus-option.is-lit{background:#f0f7df;border-color:#70a467;box-shadow:0 0 0 4px #dde7aba6,0 7px 25px #7f9f3e26}.focus-option.is-lit .focus-visual{background:radial-gradient(#fff4b9,#0000 73%)}.focus-option.is-lit i{border-color:var(--green);color:#fff;background:var(--green)}.encouragement{background:#fff8e1;border:1px solid #ecdeb1;border-radius:18px;align-items:center;gap:12px;padding:13px 15px;display:flex}.encouragement-icon{color:#90722c;background:#f8e8b1;border-radius:12px;flex:none;place-items:center;width:37px;height:37px;font-size:1.13rem;display:grid}.encouragement>div{min-width:0}.encouragement strong{color:#645222;font-size:.85rem;line-height:1.4;display:block}.encouragement p{color:#89774b;margin:4px 0 0;font-size:.72rem;line-height:1.5}.encouragement.is-success{background:#edf5e6;border-color:#c9ddbb}.encouragement.is-success .encouragement-icon{color:var(--green-dark);background:#dcebcf}.encouragement.is-success strong{color:var(--green-dark)}.encouragement.is-success p{color:#667d5b}.next-action{justify-content:center;padding-top:2px;display:flex}.next-action .primary-button{min-width:180px}.comparison-page{gap:14px}.comparison-header{grid-template-columns:44px 1fr 58px;align-items:center;gap:10px;min-height:44px;display:grid}.comparison-header>span{color:var(--muted);text-align:center;font-size:.8rem;font-weight:800}.comparison-header .comparison-count{color:var(--green-dark);font-variant-numeric:tabular-nums;justify-self:end}.comparison-prompt{text-align:center}.comparison-prompt h1{margin:0 0 6px;font-size:clamp(1.4rem,5.5vw,1.75rem);line-height:1.3}.comparison-prompt p{color:#526a60;overflow-wrap:anywhere;margin:0;font-size:.95rem;font-weight:750;line-height:1.5}.comparison-page .scene-card img{aspect-ratio:auto;height:clamp(120px,20dvh,180px)}.answer-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.answer-choice{background:var(--paper);border:2px solid #d7e3d0;border-radius:22px;gap:10px;min-width:0;padding:12px;display:grid}.answer-choice-heading{color:var(--green-dark);align-items:center;gap:9px;margin:0;font-size:.9rem;display:flex}.answer-number{width:32px;height:32px;color:var(--green);background:var(--leaf);border-radius:11px;place-items:center;font-size:.95rem;font-weight:900;display:grid}.answer-choice .audio-button,.answer-select{width:100%}.answer-select{min-height:52px;padding-inline:8px;font-size:.95rem}.answer-choice.is-playing .audio-button{background:#dfeccf}.answer-choice.is-celebrated{background:#f0f7df;border-color:#70a467;box-shadow:0 0 0 3px #e3edce}.answer-choice.is-celebrated .answer-select{opacity:1}.comparison-footer{justify-items:center;gap:12px;display:grid}.comparison-feedback{min-height:24px;color:var(--muted);text-align:center;margin:0;font-size:.8rem;line-height:1.6}.comparison-feedback.is-success{color:var(--green-dark);font-weight:800}.comparison-footer .primary-button{gap:20px;min-height:48px}.listen-page{gap:10px}.listen-page .practice-heading h1{margin:2px 0 3px;font-size:1.18rem}.listen-page .practice-heading p{font-size:.73rem;line-height:1.5}.summary-card{border:1px solid var(--line);background:var(--paper);width:100%;box-shadow:var(--shadow);text-align:center;border-radius:28px;flex-direction:column;align-items:center;margin-top:7px;padding:clamp(24px,6vw,34px);display:flex}.completion-mark{color:#8c7130;background:#fff0bd;border-radius:24px;place-items:center;width:74px;height:74px;margin-bottom:16px;font-size:2.3rem;display:grid;box-shadow:0 0 0 7px #fffae8}.summary-card h1{margin:7px 0 9px;font-size:clamp(1.75rem,6vw,2.1rem)}.summary-card>p{color:var(--muted);margin:0;font-size:.83rem;line-height:1.65}.summary-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin-top:22px;display:grid}.summary-stats>div{background:#f0f4ed;border-radius:16px;padding:14px 9px}.summary-stats strong,.summary-stats span{display:block}.summary-stats strong{color:var(--green-dark);font-size:1.2rem}.summary-stats span{color:var(--muted);margin-top:4px;font-size:.67rem}.inline-message,.saved-message{margin:15px 0 0;font-size:.7rem;line-height:1.5}.inline-message{color:#89734a}.saved-message{color:var(--green)}.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.6}.status-card .primary-button{margin-top:20px}.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}@keyframes sound-wave{to{opacity:.65;transform:scaleY(.45)}}@keyframes listen-pulse{50%{box-shadow:0 0 0 7px #c2af702b}}@keyframes audio-beat{to{opacity:.7;transform:scale(1.1)}}@media (width<=350px){.page-shell{gap:12px;padding-inline:13px}.app-header{grid-template-columns:44px 1fr 54px;gap:5px}.brand-title{letter-spacing:0;font-size:.83rem}.mode-badge{padding-inline:6px;font-size:.6rem}.intro-card{padding:24px 21px}.intro-card h1{font-size:2rem}.step-list{gap:7px}.step-list strong{font-size:.71rem}.step-list small{font-size:.6rem}.stage-rail ol{gap:3px}.stage-rail small{font-size:.57rem}.practice-heading h1{font-size:1.3rem}.practice-heading p{font-size:.74rem}.familiarity-card{border-radius:20px;grid-template-columns:99px 1fr;min-height:120px}.familiarity-visual{padding:9px}.familiarity-visual svg{height:102px}.familiarity-copy{padding:14px}.familiarity-copy h1{font-size:1.08rem}.familiarity-copy p{font-size:.76rem}.stage-card{padding:26px 20px}.question-prompt{gap:8px;padding:12px}.question-prompt>.audio-button{padding-inline:9px}.question-copy h1{font-size:1.02rem}.speech-panel{gap:10px;padding:11px}.speech-copy strong{font-size:.81rem}.speech-copy p{font-size:.67rem}.audio-copy strong{font-size:.8rem}.audio-copy p{font-size:.66rem}.focus-option{border-radius:18px}.focus-option>strong{min-height:36px;padding-bottom:8px;font-size:.92rem}.focus-visual{padding:9px 11px 0}.focus-option i{border-radius:7px;width:22px;height:22px;top:7px;right:7px}.answer-choices{gap:9px}.answer-choice{border-radius:19px;gap:8px;padding:9px}.answer-choice-heading{gap:7px;font-size:.8rem}.answer-select{font-size:.85rem}.comparison-page{gap:10px}.encouragement{gap:10px;padding:12px}.encouragement strong{font-size:.81rem}.encouragement p{font-size:.69rem}}@media (width>=700px) and (height<=650px){.scene-card img{max-height:245px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
