@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Nunito:wght@400;500;600;650;700;750;800;850;900&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#35463c;background:#f8f7f2;font-synthesis:none;--pine:#45634e;--muted:#81887b;--border:#e6e7dc;--cream:#fffdf8}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button{border:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible+span{outline:3px solid #7e9c77;outline-offset:5px}button svg{width:20px;height:20px;flex-shrink:0}button{transition:background .18s,box-shadow .18s,transform .18s}button:not(:disabled):active{transform:translateY(1px)}.app-shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}.sidebar{background:#f0f1e9;border-right:1px solid #e3e6d9;padding:36px 23px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:224px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-mark{height:43px;width:39px;background:#dfe7d5;border-radius:14px;display:grid;place-items:center;color:#628064}.brand-mark svg{width:28px;height:28px}.brand>span:last-child{font:850 24px 'Nunito',sans-serif;letter-spacing:-1.1px;line-height:1.15}.brand-light{font-weight:600}.brand small{display:block;font:600 6.9px 'DM Sans',sans-serif;letter-spacing:1.2px;margin-top:7px;color:#828c78}.nav-label{font-size:9px;letter-spacing:1.8px;font-weight:650;color:#8c9383;margin:57px 14px 15px}.nav-item{display:flex;align-items:center;gap:11px;min-height:48px;padding:0 13px;margin:5px 0;font-size:12px;font-weight:550;border-radius:10px}.nav-item>svg{width:20px;height:20px}.nav-item.current{color:#3f5c45;background:#dfe7d5}.nav-dot{margin-left:auto;width:6px;height:6px;background:#6c8962;border-radius:50%}.upcoming{color:#9b9f90}.upcoming small{font-size:7px;letter-spacing:1px;background:#e8eadf;padding:4px 5px;border-radius:4px;margin-left:auto}.sidebar-garden{text-align:center;margin-top:auto;padding:60px 4px 30px}.sidebar-garden>svg{max-width:158px}.sidebar-garden p{font:700 18px/1.5 'Nunito',sans-serif;margin:10px 0 9px;color:#6e8066}.sidebar-garden>span{font-size:9px;color:#939b89}.help-button{display:flex;align-items:center;gap:10px;background:transparent;font-size:11px;color:#727e69;padding:13px}.help-button svg{height:17px;width:17px}.sidebar-foot{border-top:1px solid #e0e4d6;padding-top:20px;margin-top:7px;display:flex;gap:8px;font-size:7.5px;letter-spacing:1.25px;color:#929a87;align-items:center}.sidebar-foot svg{height:15px;width:15px}main{grid-column:2;padding:0 46px;max-width:1536px;width:100%;margin:auto}.topbar{height:91px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:10px;color:#8a8e82;display:flex;gap:15px;align-items:center}.breadcrumb strong{font-weight:500;color:#4e604e}.breadcrumb>span{color:#bcc1b1}.top-actions{display:flex;align-items:center;gap:18px}.icon-button{width:35px;height:35px;background:transparent;display:grid;place-items:center;border-radius:9px;color:#7c8874}.icon-button:hover{background:#e9eddf}.icon-button svg{width:18px;height:18px}.teacher-button{display:flex;align-items:center;gap:9px;background:#fffdf8;border:1px solid #dfe4d5;padding:10px 14px;border-radius:9px;font-size:11px;font-weight:550}.teacher-button svg{width:16px;height:16px}.teacher-button:hover{background:#edf0e5}.page-heading{padding:34px 0 25px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:8px;letter-spacing:1.8px;font-weight:600;color:#899179;display:flex;gap:7px;align-items:center}.eyebrow>span{height:5px;width:5px;border-radius:50%;background:#95a77d}h1{font:800 clamp(32px,3vw,45px)/1.2 'Nunito',sans-serif;letter-spacing:-1.5px;margin:12px 0 9px;color:#354e3c}h1 em{font-style:normal;color:#83986b}.heading-spark{font-size:37px;color:#b6be9b;display:inline-block;transform:translate(14px,-8px);font-weight:400}.page-heading p{font-size:11px;line-height:1.8;color:#858b7e;margin:0}.focus-button{display:flex;align-items:center;gap:8px;background:transparent;font-size:10px;color:#78856e;padding:10px 0 10px 15px}.focus-button svg{width:15px;height:15px}.focus-button:hover{color:#395b41}.activity{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.88fr);gap:35px;align-items:start}.wheel-area{display:flex;flex-direction:column;align-items:center;padding-top:8px;min-width:0;position:relative}.mode-switch{display:flex;gap:3px;padding:4px;background:#eceee4;border-radius:10px;align-self:center;margin-bottom:13px;z-index:1}.mode-switch button{padding:8px 17px;font-size:10px;border-radius:7px;background:transparent;color:#7c8672;white-space:nowrap}.mode-switch button.selected{background:#fffdf8;color:#455e45;box-shadow:0 1px 4px #3c4c3910;font-weight:650}.mode-switch button:hover:not(.selected){background:#e2e7d9}.wheel-wrap{position:relative;width:100%;max-width:535px;aspect-ratio:1}.wheel{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 9px 15px #7474520c)}.wheel-ring{transform-origin:300px 300px;transition:transform 2.2s cubic-bezier(.13,.7,.12,1)}.wheel-ring text{font-family:'Nunito',sans-serif;font-size:24px;font-weight:750;fill:#455d42;user-select:none}.wheel-ring .segment{stroke:#fffdf8;stroke-width:1.9px;fill:#b9caa7}.initial-ring .shade-1{fill:#cbd5b8}.initial-ring .shade-2{fill:#adbfa0}.final-ring .segment{fill:#e7d6a6}.final-ring .shade-1{fill:#f0e4bd}.final-ring .shade-2{fill:#e5d4a5}.final-ring text{fill:#76663d;font-size:22px}.tone-ring .segment{fill:#dfb6a5}.tone-ring .shade-1{fill:#e9c8b7}.tone-ring .shade-2{fill:#dfb6a5}.tone-ring text{fill:#885c4e;font-size:17px;font-weight:650}.wheel-ring text.small-label{font-size:16px}.wheel-ring .single{stroke:#c4d1b1}.final-ring .single{stroke:#ebddb2}.tone-ring .single{stroke:#e2bead}.spin-center{position:absolute;inset:35.5%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffdf5;box-shadow:0 3px 6px #6a684c08;border:1px solid #eee9da;padding:0;color:#506b4c}.spin-center:hover:not(:disabled){background:#f4f2e3;box-shadow:0 2px 12px #5c6e3620}.spin-icon svg{height:25px;width:25px;stroke-width:1.6}.spin-center strong{font:850 clamp(13px,1.6vw,21px) 'Nunito',sans-serif;margin-top:8px}.spin-center small{font-size:7.3px;margin-top:5px;color:#9b9d85}.orbit-star{position:absolute;color:#b9bf9b;font-size:30px;z-index:1}.star-one{top:14%;left:1%;transform:rotate(-15deg)}.star-two{font-size:18px;right:4%;bottom:13%;color:#d5bd91}.orbit-dot{position:absolute;left:8%;bottom:17%;width:5px;height:5px;border-radius:50%;background:#bfc9af}.wheel-legend{display:flex;align-items:center;gap:23px;margin-top:3px}.wheel-legend>span{display:flex;align-items:center;gap:7px;font-size:9px;color:#7f8876}.wheel-legend i{height:7px;width:7px;border-radius:50%;display:inline-block}.legend-initial{background:#aebe9e}.legend-final{background:#dfcc97}.legend-tone{background:#d8aa96}.keyboard-hint{font-size:9px;color:#9a9d8e;margin:16px 0 0}.keyboard-hint>span{margin-left:5px;font-size:8px;color:#a4a797}kbd{font:8px 'DM Sans',sans-serif;border:1px solid #dce0d0;border-bottom:2px solid #d5dac9;background:#f4f4ed;padding:2px 7px;border-radius:4px;margin-left:3px}.practice-area{padding-top:8px}.result-card{background:#fffdf8;border:1px solid #e4e5d8;border-radius:20px;padding:25px 26px 23px;box-shadow:0 6px 16px #77715403;text-align:center}.result-eyebrow{font-size:8px;font-weight:550;letter-spacing:1.65px;color:#8d937e;display:flex;justify-content:center;gap:9px;align-items:center}.small-star{font-size:13px;color:#b6bd99}.result-word{font:750 clamp(75px,7vw,112px)/1.35 'Nunito',sans-serif;letter-spacing:-3px;color:#476344;padding:8px 0 13px;min-height:151px;transition:opacity .3s}.result-word.anticipating{opacity:.3}.sound-parts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.sound-part{border-radius:10px;padding:11px 3px 8px;background:#edf0e4;display:flex;flex-direction:column;align-items:center;border:1px solid transparent;position:relative}.sound-part small{font-size:8px;color:#829076}.sound-part strong{font:800 24px/1.4 'Nunito',sans-serif;color:#536d49}.sound-part>span{height:14px;margin-top:3px;color:#97a187;opacity:.6}.sound-part>span svg{height:11px;width:11px}.part-1{background:#f7f0dc}.part-1 small{color:#a19064}.part-1 strong{color:#8e7a47}.part-1>span{color:#ac986b}.part-2{background:#f4e8e0}.part-2 small{color:#ae8d7c}.part-2 strong{color:#aa7861}.part-2>span{color:#b38d77}.sound-part.locked{border-color:#829871}.sound-part.locked>span{opacity:1}.sound-part:hover{filter:brightness(.98)}.lock-hint{font-size:8px;color:#9b9f8e;margin:12px 0 17px;display:flex;align-items:center;justify-content:center;gap:5px}.lock-hint svg{width:10px;height:10px}.tone-description{display:flex;align-items:center;text-align:left;border-top:1px solid #efeee3;padding:16px 0 15px;gap:13px}.result-contour{width:65px;height:45px;flex-shrink:0}.tone-track{stroke:#e4e8d9;stroke-width:10;stroke-linecap:round}.tone-stroke{stroke:#8da174;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.tone-description strong{font-size:10px;font-weight:600;color:#637357}.tone-description p{font-size:9px;line-height:1.7;color:#929887;margin:5px 0 0}.teacher-cue{display:flex;align-items:center;justify-content:center;gap:5px;color:#9a9e8d;font-size:7.8px;margin:0 0 17px}.teacher-cue>span{height:14px;width:14px;border-radius:50%;display:grid;place-items:center;background:#f0f1e8;color:#89917b;font-size:7px}.teacher-cue>span:nth-child(2){margin-left:7px}.did-it{width:100%;display:flex;justify-content:center;align-items:center;gap:9px;background:#526f4d;color:#fffdf2;padding:13px 10px;border-radius:9px;font-size:11px;font-weight:550;position:relative}.did-it>svg{width:15px;height:15px}.did-it .button-spark{position:absolute;right:15px;font-size:17px;color:#cad6b7}.did-it:hover:not(:disabled){background:#415e3e}.did-it.done{background:#e1ead5;color:#5d7950}.progress-card{display:flex;justify-content:space-between;align-items:center;background:#eef0e5;border:1px solid #e6e9da;border-radius:12px;padding:16px;margin-top:14px;gap:5px}.progress-card strong{font:750 12px 'Nunito',sans-serif;display:block;color:#70815e}.progress-card>div>span{display:block;font-size:8px;color:#98a08a;margin-top:4px}.progress-seeds{display:flex;gap:5px}.progress-seed{width:21px;height:24px;display:grid;place-items:center;color:#cbd2bd}.progress-seed svg{height:19px;width:19px}.progress-seed.grown{color:#6e8a59;animation:grow .4s ease-out}.status-message{font-size:9px;line-height:1.6;color:#849575;min-height:15px;margin:8px 6px 0}.recent{display:flex;align-items:center;gap:16px;padding:22px 0 23px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:27px;min-height:74px}.recent>span{font-size:7.5px;letter-spacing:1.4px;font-weight:550;white-space:nowrap;color:#8b937e}.recent-chips{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.history-empty{font-size:10px;color:#a2a695}.history-chip{background:#ebeede;color:#687c54;border:1px solid #dfe5d2;border-radius:7px;padding:5px 13px;font:700 15px 'Nunito',sans-serif}.history-chip:hover{background:#dde6ce}.recent>small{font-size:8px;color:#949b87;display:flex;align-items:center;gap:6px;white-space:nowrap}.recent>small svg{height:12px;width:12px}.tone-section{padding:25px 0 27px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}h2{font:750 17px 'Nunito',sans-serif;letter-spacing:-.3px;margin:0;color:#617254}.section-title>span{font-size:9px;color:#979e8a}.tone-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tone-card{display:flex;position:relative;align-items:center;text-align:left;background:#f3f3eb;border:1px solid #e7e9dd;border-radius:11px;padding:20px 12px;gap:9px;min-width:0}.tone-card.active{background:#edf1e3;border-color:#b5c3a1;box-shadow:0 0 0 1px #bdc8ad30}.tone-card:disabled{opacity:.4}.tone-card:hover:not(:disabled){border-color:#acb99a;background:#edf0e3}.tone-number{position:absolute;top:7px;left:10px;font-size:7px;color:#a3ac95;letter-spacing:.6px}.mini-contour{width:46px;height:29px;flex-shrink:0}.mini-contour .tone-stroke{stroke-width:4}.mini-contour .tone-track{stroke-width:8}.tone-card>span:not(.tone-number):not(.tone-example){display:flex;flex-direction:column;gap:5px}.tone-card strong{font-size:9px;font-weight:550;color:#72815f;white-space:nowrap}.tone-card small{font-size:8px;color:#a0a68e}.tone-example{font:650 20px 'Nunito',sans-serif;color:#a5af91;margin-left:auto}.page-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;padding:19px 0 24px;font-size:8px;color:#a2a895;gap:10px}.page-footer>span:first-child{display:flex;gap:7px;align-items:center}.page-footer svg{height:12px;width:12px}.focus-mode{grid-template-columns:1fr}.focus-mode .sidebar{display:none}.focus-mode main{grid-column:1;max-width:1200px}.focus-mode .tone-section,.focus-mode .recent,.focus-mode .page-footer{display:none}.focus-mode .page-heading{padding-top:20px}.focus-mode .wheel-wrap{max-width:610px}.focus-mode .activity{gap:55px}.modal-backdrop{position:fixed;inset:0;background:#28382c66;backdrop-filter:blur(4px);z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:540px;max-width:100%;max-height:90dvh;overflow:auto;background:#fffdf8;border-radius:22px;padding:28px 30px;box-shadow:0 20px 100px #20352433}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal .eyebrow{font-size:8px;margin-bottom:8px}.modal h2{font-size:27px;color:#45634b}.modal>p{font-size:12px;line-height:1.8;color:#859079}.preset-row{display:flex;gap:10px;margin:20px 0}.preset-row button{padding:10px 16px;border-radius:9px;background:#e9efde;font-size:12px;color:#667b53;border:1px solid #d9e3cc}.preset-row button:hover{background:#d9e4cb}fieldset{border:0;margin:20px 0;padding:0}legend{font-size:12px;font-weight:650;margin-bottom:10px;width:100%}legend span{float:right;font-size:10px;font-weight:400;color:#a0a78f}.option-grid{display:flex;gap:7px;flex-wrap:wrap}.sound-option{position:relative;cursor:pointer}.sound-option input{position:absolute;opacity:0;width:1px;height:1px}.sound-option span{display:grid;place-items:center;min-width:40px;height:36px;padding:0 10px;border:1px solid #e3e6d9;border-radius:7px;font:650 16px 'Nunito',sans-serif;color:#a5ac98;background:#f8f8f2}.sound-option input:checked+span{background:#e3ecd7;border-color:#b8c9a1;color:#587346}.modal p.settings-note{font-size:10px;line-height:1.8;background:#f5f4eb;padding:13px;border-radius:8px}.settings-status{font-size:11px;color:#a87e58;line-height:1.5;min-height:15px}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e9ebdf;padding-top:20px;margin-top:14px}.text-button{font-size:11px;background:transparent;color:#9a9f8b}.primary-button{display:flex;align-items:center;justify-content:center;gap:15px;background:#526f4d;color:white;font-size:12px;border-radius:9px;padding:12px 17px}.primary-button:hover{background:#3e5c3a}.help-steps{padding-left:25px;font-size:13px;line-height:1.9;color:#87927b}.help-steps li{padding:10px 0}.help-steps strong{display:block;color:#647b53}.help-modal>.primary-button{margin-top:23px;width:100%}.loading{min-height:100vh;display:grid;place-items:center;color:#6f8762;font:600 20px 'Nunito',sans-serif}@keyframes grow{from{transform:translateY(6px) scale(.5);opacity:0}to{transform:none;opacity:1}}@media(min-width:1450px){main{padding:0 60px}.activity{gap:65px;grid-template-columns:minmax(0,1.3fr) minmax(330px,.9fr)}.wheel-wrap{max-width:565px}.result-card{padding:30px}.result-word{padding-top:16px;padding-bottom:20px}.tone-description{padding-top:20px;padding-bottom:20px}.tone-card{padding:24px 17px}.tone-card strong{font-size:11px}.tone-card small{font-size:9px}.tone-example{font-size:24px}.mini-contour{width:54px}.practice-area{padding-top:15px}.page-heading{padding-bottom:34px}}@media(max-width:1150px){.app-shell{grid-template-columns:190px 1fr}.sidebar{width:190px;padding:28px 14px}.brand>span:last-child{font-size:21px}.brand small{font-size:6px}.brand-mark{width:32px;height:37px}.brand{gap:7px}main{padding:0 30px}.activity{gap:18px;grid-template-columns:minmax(0,1.15fr) minmax(260px,.9fr)}.mode-switch button{padding:8px 11px}.result-card{padding:22px 19px 19px}.tone-grid{gap:8px}.tone-card{gap:5px;padding:24px 8px 17px}.tone-example{display:none}.tone-card strong{font-size:8px}.mini-contour{width:39px}.sidebar-foot{font-size:6.5px;letter-spacing:1px}.keyboard-hint>span{display:none}.result-word{min-height:135px;font-size:90px}.teacher-cue{font-size:7px}.progress-card{padding:13px}.progress-card strong{font-size:11px}.progress-seeds{gap:2px}.progress-seed{width:17px}.recent>small{display:none}.tone-description{gap:7px}.result-contour{width:55px}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}main{grid-column:1;padding:0 30px;max-width:900px}.topbar{height:72px}.page-heading{padding-top:27px}.activity{grid-template-columns:minmax(0,1.2fr) minmax(270px,.9fr);gap:24px}.wheel-wrap{max-width:490px}.wheel-area{padding-top:7px}.spin-center strong{font-size:17px}.spin-center small{font-size:6px}.spin-icon svg{height:21px}.wheel-legend{gap:17px}.keyboard-hint{font-size:8px}.tone-card strong{font-size:10px}.tone-card small{font-size:9px}.mini-contour{width:47px}.tone-card{padding:22px 11px 17px;gap:8px}h1{font-size:38px}.recent{margin-top:20px}.page-heading p{font-size:10px}}@media(max-width:670px){main{padding:0 20px}.topbar{height:67px}.breadcrumb{font-size:9px;gap:9px}.top-actions{gap:6px}.teacher-button{font-size:10px;padding:9px 10px;gap:6px}.teacher-button svg{height:14px;width:14px}.icon-button{width:29px}.icon-button svg{height:16px;width:16px}.page-heading{align-items:start;padding:27px 0 22px}.eyebrow{font-size:6.5px;letter-spacing:1.2px}h1{font-size:35px;margin-top:10px;letter-spacing:-1px}.heading-spark{font-size:27px;transform:translate(8px,-8px)}.page-heading p{font-size:10px;max-width:260px;line-height:1.7}.focus-button{font-size:0;padding-top:29px}.focus-button svg{width:18px;height:18px}.focus-button span{display:none}.activity{display:flex;flex-direction:column;gap:24px}.wheel-area{width:100%;padding:0}.mode-switch{margin-bottom:6px}.mode-switch button{padding:9px 17px;font-size:10px}.wheel-wrap{width:min(100%,450px)}.spin-center strong{font-size:20px}.spin-center small{font-size:7px}.spin-icon svg{height:23px}.wheel-legend{margin-top:0;gap:25px}.wheel-legend>span{font-size:10px}.keyboard-hint{font-size:9px;margin-top:12px}.practice-area{width:100%;padding-top:0}.result-card{padding:23px 22px 22px}.result-eyebrow{font-size:9px}.result-word{font-size:100px;padding:4px 0 9px;min-height:140px}.sound-parts{gap:12px}.sound-part{padding-top:10px;padding-bottom:8px}.sound-part strong{font-size:25px}.sound-part small{font-size:9px}.lock-hint{font-size:9px;margin:13px 0 18px}.tone-description{gap:18px;justify-content:center;padding:17px 0}.result-contour{width:70px;height:46px}.tone-description strong{font-size:12px}.tone-description p{font-size:10px;max-width:240px}.teacher-cue{font-size:9px;margin-bottom:17px;gap:8px}.did-it{font-size:13px;padding:15px}.progress-card{padding:17px}.progress-card strong{font-size:13px}.progress-card>div>span{font-size:9px}.progress-seed{width:23px}.progress-seed svg{height:22px;width:22px}.progress-seeds{gap:6px}.status-message{font-size:10px}.recent{align-items:start;flex-wrap:wrap;margin-top:5px;padding:20px 0;gap:12px}.recent>span{font-size:8px;flex-basis:100%}.history-empty{font-size:10px}.history-chip{font-size:17px}.section-title{display:block;margin-bottom:18px}.section-title h2{font-size:18px}.section-title>span{display:block;margin-top:7px;font-size:10px}.tone-grid{grid-template-columns:1fr 1fr;gap:10px}.tone-card{padding:25px 12px 18px;gap:8px}.tone-card strong{font-size:10px}.tone-card small{font-size:9px}.mini-contour{width:45px}.tone-example{display:block;font-size:21px}.page-footer{font-size:8px;padding-top:18px;flex-direction:column;gap:10px;padding-bottom:23px}.focus-mode .activity{gap:24px}.focus-mode .page-heading{padding-top:25px}.focus-mode .wheel-wrap{max-width:450px}.modal{padding:24px 20px}.modal-backdrop{padding:12px}.modal h2{font-size:24px}.modal-footer{gap:15px}.text-button{font-size:10px}.primary-button{font-size:11px}.sound-option span{min-width:37px}.modal .option-grid{gap:6px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
