*{box-sizing:border-box}:root{font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#333;background-color:#f5f7fa;--font-scale: 1;--interactive-ease: cubic-bezier(.2, .8, .2, 1)}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:Inter,system-ui,sans-serif;line-height:1.2}button{font-family:inherit}a{color:#1a365d;text-decoration:none}a:hover{text-decoration:underline}.learning-hint{width:min(720px,100%);margin:-.5rem auto 1rem;padding:.7rem 1rem;border:1px solid #d7e2e8;border-radius:10px;background:#ffffffb8;color:#425466;font-size:.95rem;line-height:1.5;text-align:center}.learning-hint.is-error{border-color:#fdba74;background:#fff7ed;color:#9a3412}:where(button,a,input,textarea):focus-visible{outline:3px solid #0f766e;outline-offset:3px}.navigation :where(button,a):focus-visible{outline-color:#fbbf24}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.navigation{background:linear-gradient(135deg,#1a365d,#2d4a7c);padding:1rem;position:relative;box-shadow:0 2px 10px #0000001a}.hamburger-menu{position:absolute;top:1rem;left:1rem;background:#ffffff1a;border:none;color:#fff;font-size:1.5rem;padding:.5rem .75rem;border-radius:8px;cursor:pointer;transition:background-color .18s ease,box-shadow .22s var(--interactive-ease),transform .22s var(--interactive-ease);z-index:1001}.hamburger-menu:hover{background:#fff3;transform:translateY(-1px);box-shadow:0 3px 8px #00000029}.nav-dropdown{display:none;position:absolute;top:60px;left:1rem;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;overflow:hidden;z-index:1000;min-width:220px}.nav-dropdown.open{display:block}.nav-dropdown a{display:block;padding:1rem 1.25rem;color:#333;text-decoration:none;transition:background-color .18s ease,color .18s ease;border-bottom:1px solid #eee}.nav-dropdown a:last-child{border-bottom:none}.nav-dropdown a:hover{background:#f5f5f5}.nav-dropdown a.active{background:#e3f2fd;color:#1565c0;font-weight:600}.nav-dropdown .disabled{display:block;padding:1rem 1.25rem;color:#aaa;text-decoration:none;border-bottom:1px solid #eee;cursor:not-allowed;background:#f9f9f9}.nav-header{text-align:center;padding:.5rem 0}.site-title{display:inline-block;color:#fff;font-size:1.75rem;margin:0;font-weight:700;text-decoration:none}.site-subtitle{color:#fffc;font-size:1.25rem;margin:.25rem 0 0;font-family:Battambang,sans-serif}.font-sizer-container{position:absolute;top:50%;right:120px;transform:translateY(-50%);z-index:1001}.font-sizer-btn{background:#ffffff1a;border:none;color:#fff;font-size:1.25rem;padding:.4rem .6rem;border-radius:8px;cursor:pointer;transition:background-color .18s ease,box-shadow .22s var(--interactive-ease),transform .22s var(--interactive-ease);font-family:Battambang,sans-serif}.font-sizer-btn:hover{background:#fff3;transform:translateY(-1px);box-shadow:0 3px 8px #00000029}.font-sizer-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;overflow:hidden;display:flex;flex-direction:column;min-width:60px}.font-sizer-dropdown[hidden]{display:none}.font-size-option{background:none;border:none;padding:.6rem 1rem;font-size:1.1rem;cursor:pointer;transition:background-color .18s ease,color .18s ease;font-family:Battambang,sans-serif;color:#333;text-align:center}.font-size-option:hover{background:#f5f5f5}.font-size-option.active{background:#e3f2fd;color:#1565c0;font-weight:600}.nav-logo{position:absolute;top:50%;transform:translateY(-50%);right:1rem;width:64px;height:64px;object-fit:contain;opacity:.9}@media(max-width:640px){.navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px 44px;align-items:center;gap:clamp(4px,.35rem,8px);min-height:76px;padding:.5rem .65rem;padding-inline:clamp(8px,.65rem,12px)}.hamburger-menu{position:static;grid-column:1;grid-row:1;justify-self:start;padding:.35rem .55rem;width:44px;min-height:44px;padding-inline:0;font-size:1.2rem}.nav-dropdown{top:calc(100% - .25rem);left:.65rem}.nav-header{grid-column:2;grid-row:1;min-width:0;padding:0}.site-title{font-size:clamp(1rem,4.5vw,1.35rem);max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.site-subtitle{margin-top:.1rem;font-size:1rem}.font-sizer-container{position:static;grid-column:3;grid-row:1;justify-self:center;transform:none}.font-sizer-btn{padding:.3rem .4rem;width:44px;min-height:44px;padding-inline:0;font-size:1.05rem}.font-sizer-dropdown{right:0}.nav-logo{position:static;grid-column:4;grid-row:1;justify-self:end;width:40px;height:40px;transform:none}}.char-button{width:calc(55px * var(--font-scale, 1));height:calc(55px * var(--font-scale, 1));display:flex;justify-content:center;align-items:center;border:2px solid transparent;border-radius:10px;cursor:pointer;font-size:calc(1.25rem * var(--font-scale, 1));font-family:Battambang,Khmer OS,sans-serif;transition:transform .22s var(--interactive-ease),box-shadow .22s var(--interactive-ease),filter .18s ease,border-color .18s ease,color .18s ease;-webkit-user-select:none;user-select:none;animation:zoomIn .25s cubic-bezier(.34,1.56,.64,1) both}.practice-page .char-button,.builder-page .char-button{position:relative;z-index:0;overflow:visible;transition:box-shadow .18s ease,filter .18s ease,border-color .18s ease}.char-button.with-series-label{flex-direction:column;box-sizing:border-box;width:max(calc(55px * var(--font-scale, 1)),3.4rem);height:auto;min-height:max(calc(55px * var(--font-scale, 1)),3.4rem);padding:4px 3px;gap:2px;line-height:1}.char-button.with-series-label .char-button-character{font-size:calc(1.05rem * var(--font-scale, 1));line-height:1}.practice-page .char-button .char-button-character,.builder-page .char-button .char-button-character{display:inline-block;transform-origin:center;transition:transform .18s ease}.char-button-series-label{padding:1px 4px;border-radius:999px;background:#ffffffc7;color:#111827;font-family:Inter,sans-serif;font-size:.55rem;font-weight:700;line-height:1.1;white-space:nowrap}@keyframes zoomIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.char-button:active{transform:scale(.98)}.char-button.o-group{background:linear-gradient(135deg,#64b5f6,#42a5f5);color:#0a3d7a;font-weight:500}.char-button.o-group.selected{color:#051d3a;font-weight:700}.char-button.or-group{background:linear-gradient(135deg,#ff8a65,#ff7043);color:#8c2600;font-weight:500}.char-button.or-group.selected{color:#4a1400;font-weight:700}.char-button.vowel{background:linear-gradient(135deg,#e0e0e0,#bdbdbd);color:#2a2a2a;font-weight:500;font-size:calc(1.4rem * var(--font-scale, 1))}.char-button.vowel.selected{color:#000;font-weight:700}.char-button.additional-sign{background:linear-gradient(135deg,#ce93d8,#ba68c8);color:#2e0a4a;font-weight:500}.char-button.independent{background:linear-gradient(135deg,#b39ddb,#9575cd);color:#311b92;font-weight:500;font-size:calc(1.4rem * var(--font-scale, 1))}.char-button.independent.selected{color:#1a0a4a;font-weight:700}.char-button.selected{border-color:#2a2a2a;box-shadow:0 0 0 3px #00000040;transform:scale(1.05)}@media(hover:hover)and (pointer:fine){.char-button:hover{filter:brightness(.96) saturate(1.04);transform:translateY(-2px);box-shadow:0 5px 12px #0f233c2e}.char-button.selected:hover{transform:translateY(-1px) scale(1.05)}.practice-page .char-button:not(.builder-key-unavailable):hover,.builder-page .char-button:not(.builder-key-unavailable):hover{z-index:2;font-weight:700;filter:brightness(.96) saturate(1.04);transform:none;box-shadow:0 5px 12px #0f233c2e}.practice-page .char-button:not(.builder-key-unavailable):hover .char-button-character,.builder-page .char-button:not(.builder-key-unavailable):hover .char-button-character{font-weight:700;transform:translateY(-1px) scale(1.12)}.practice-page .char-button.selected:hover,.builder-page .char-button.selected:hover{transform:none}}.practice-page .char-button.selected,.builder-page .char-button.selected{z-index:1;transform:none}.practice-page .char-button:focus-visible,.builder-page .char-button:focus-visible{z-index:3;outline:3px solid #a64f32;outline-offset:3px;font-weight:700;transform:none;box-shadow:0 0 0 3px #a64f3238}.practice-page .char-button:focus-visible .char-button-character,.builder-page .char-button:focus-visible .char-button-character{font-weight:700;transform:translateY(-1px) scale(1.12)}.practice-page .char-button.selected:focus-visible,.builder-page .char-button.selected:focus-visible{transform:none}.practice-page .char-button:active,.builder-page .char-button:active{font-weight:700;filter:brightness(.92);transform:none}.practice-page .char-button.selected:active,.builder-page .char-button.selected:active{transform:none}.practice-page .char-button:active .char-button-character,.builder-page .char-button:active .char-button-character{font-weight:700;transform:scale(1.06)}@media(prefers-reduced-motion:reduce){.practice-page .char-button,.builder-page .char-button,.practice-page .char-button .char-button-character,.builder-page .char-button .char-button-character{transition:none}.practice-page .char-button:not(.builder-key-unavailable):hover,.builder-page .char-button:not(.builder-key-unavailable):hover,.practice-page .char-button:focus-visible,.builder-page .char-button:focus-visible,.practice-page .char-button:active,.builder-page .char-button:active{transform:none!important}.practice-page .char-button .char-button-character,.builder-page .char-button .char-button-character{transform:none!important}}.char-button.selected:active{transform:scale(1.02)}.khmer-writing-cluster{display:inline-block;white-space:pre;word-break:normal;overflow-wrap:normal}.display-wrapper{position:relative;display:flex;justify-content:center;align-items:center;margin:1.5rem auto}.display-area{position:relative;background:#fff;border:3px solid #e0e0e0;border-radius:16px;padding:2rem 2rem 3.5rem;min-height:80px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:.5rem;max-width:400px;min-width:200px;box-shadow:inset 0 2px 8px #0000000d}.display-area .audio-btn{position:absolute;bottom:8px;right:8px}.display-area.large{min-height:120px;max-width:600px}.display-text{font-family:Battambang,Khmer OS,sans-serif;font-size:calc(3rem * var(--font-scale, 1));color:#1a365d;text-align:center;word-break:break-word}.display-area.large .display-text{font-size:calc(4rem * var(--font-scale, 1))}.placeholder{color:#9e9e9e;font-size:1.5rem}.audio-btn{background:#e3f2fd;border:2px solid #64b5f6;border-radius:50%;width:48px;height:48px;font-size:.72rem;font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .22s var(--interactive-ease),transform .22s var(--interactive-ease);display:flex;align-items:center;justify-content:center}.audio-btn:hover:not(:disabled){background:#bbdefb;transform:scale(1.1);box-shadow:0 4px 10px #0f233c29}.audio-btn:disabled{cursor:not-allowed;opacity:.7}.audio-btn.playing{animation:pulse .5s infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.audio-error{width:100%;text-align:center;color:#d32f2f;font-size:.8rem;margin-top:.5rem}.audio-error:empty{display:none}.audio-controls{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:8px}.display-area .audio-controls .audio-btn{position:static}.series-toggle{display:flex;gap:2px;background:#f5f5f5;border-radius:6px;padding:2px}.series-btn{padding:4px 10px;font-size:.75rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s var(--interactive-ease);background:transparent;color:#666}.series-btn:hover{background:#e0e0e0;transform:translateY(-1px)}.series-btn.active{background:#64b5f6;color:#111827}.series-btn.active:first-child{background:#64b5f6}.series-btn.active:last-child{background:#ff8a65}.display-area.border-o-group{border-color:#64b5f6;box-shadow:inset 0 2px 8px #0000000d,0 0 0 3px #64b5f64d}.display-area.border-or-group{border-color:#ff8a65;box-shadow:inset 0 2px 8px #0000000d,0 0 0 3px #ff8a654d}.display-area.border-vowel{border-color:#bdbdbd;box-shadow:inset 0 2px 8px #0000000d,0 0 0 3px #bdbdbd4d}.display-area.border-independent{border-color:#9575cd;box-shadow:inset 0 2px 8px #0000000d,0 0 0 3px #9575cd4d}.audio-btn{font-family:Inter,system-ui,-apple-system,sans-serif}.audio-btn.is-error{border-color:#a94f3c;background:#fff0eb;color:#7b3024}.audio-btn:focus-visible{outline:3px solid #1a365d;outline-offset:3px}.color-legend{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;column-gap:clamp(.65rem,2.5vw,1.5rem);row-gap:.25rem;margin-bottom:.75rem;max-width:100%}.legend-item{display:flex;align-items:center;gap:.4rem;min-height:44px;min-width:0}.legend-color{flex:0 0 12px;width:12px;height:12px;border-radius:3px}.legend-color.o-group{background:#64b5f6}.legend-color.or-group{background:#ff8a65}.legend-color.vowel{background:#bdbdbd}.legend-color.independent{background:#9575cd}.legend-text{font-size:.8rem;color:#514f4a}.legend-label-control{gap:0}.legend-label-switch{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:0 .25rem;border:0;border-radius:.35rem;background:transparent;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.legend-label-switch:focus-visible{outline:2px solid #385e58;outline-offset:2px}.legend-switch-track{position:relative;display:inline-flex;align-items:center;flex:0 0 2rem;width:2rem;height:1.15rem;padding:2px;border:1px solid #77766f;border-radius:999px;background:#e4e2dc;transition:background-color .14s ease,border-color .14s ease}.legend-switch-thumb{display:block;width:.8rem;height:.8rem;border-radius:50%;background:#575750;box-shadow:0 1px 2px #1f201b38;transform:translate(0);transition:transform .14s ease,background-color .14s ease}.legend-label-switch[aria-checked=true] .legend-switch-track{border-color:#385e58;background:#55766f}.legend-label-switch[aria-checked=true] .legend-switch-thumb{background:#fffefa;transform:translate(calc(1.2rem - 6px))}@media(prefers-reduced-motion:reduce){.legend-switch-track,.legend-switch-thumb{transition:none}}@media(max-width:360px){.color-legend{column-gap:.35rem}.legend-item{gap:.25rem}.legend-color{flex-basis:10px;width:10px;height:10px}.legend-text{font-size:.75rem}.legend-label-switch{gap:.25rem;padding-inline:0}.legend-switch-track{flex-basis:1.75rem;width:1.75rem}.legend-label-switch[aria-checked=true] .legend-switch-thumb{transform:translate(calc(.95rem - 6px))}}.character-order-control{flex-wrap:wrap;max-width:100%;min-width:0;font-size:.8rem;color:#514f4a;line-height:1.35}.character-order-label{display:grid;min-width:0;max-width:100%;text-align:start;overflow-wrap:anywhere}.character-order-label-visible,.character-order-label-sizer{grid-area:1 / 1;min-width:0;white-space:normal}.character-order-label-sizer{padding-inline-end:1px;visibility:hidden;pointer-events:none}.subscript-control-description{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:is(.practice-page,.builder-page) .subscript-control{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;min-height:44px;max-width:100%;min-width:0;flex:0 1 auto;padding:.25rem;border:0;border-radius:.35rem;background:transparent;color:#31564f;font:inherit;font-size:.8rem;line-height:1.4;cursor:pointer;-webkit-tap-highlight-color:transparent}:is(.practice-page,.builder-page) .subscript-control>span:first-child{min-width:0;white-space:normal;overflow-wrap:anywhere}:is(.practice-page,.builder-page) .subscript-control:focus-visible{outline:2px solid #385e58;outline-offset:2px}.subscript-switch-track{display:inline-flex;align-items:center;flex:0 0 2rem;width:2rem;height:1.15rem;padding:2px;box-sizing:border-box;overflow:hidden;border:1px solid #77766f;border-radius:999px;background:#e4e2dc}.subscript-switch-thumb{display:block;width:.8rem;height:.8rem;border-radius:50%;background:#575750;transform:translate(0);transition:transform .14s ease}.subscript-control[aria-pressed=true] .subscript-switch-track{background:#53776e;border-color:#41665d}.subscript-control[aria-pressed=true] .subscript-switch-thumb{background:#fffefa;transform:translate(.8rem)}@media(max-width:760px){:is(.practice-page,.builder-page) .controls .control-btn{padding-inline:.5rem}}@media(prefers-reduced-motion:reduce){.subscript-switch-thumb{transition:none}}.practice-page{max-width:1320px;margin:0 auto;padding:max(1.5rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.page-title{text-align:center;color:#1a365d;font-size:1.75rem;margin-bottom:1.5rem}.practice-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.1rem 1rem;margin-bottom:.9rem}.practice-heading .page-title{margin:0}.controls{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.control-btn{padding:.5rem 1rem;border:1px solid #ccc;background:#fff;color:#444;border-radius:20px;font-size:.85rem;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .22s var(--interactive-ease),transform .22s var(--interactive-ease)}.control-btn:hover{background:#f0f0f0;border-color:#aaa;transform:translateY(-1px);box-shadow:0 3px 8px #0f233c1f}.control-btn:active{transform:translateY(0) scale(.98)}.control-btn.sub-consonant{font-family:Battambang,sans-serif}.control-btn.active{background:#3a5a7a;color:#fff;border-color:#3a5a7a}.practice-help{max-width:100%;color:#34566a}.practice-help>summary{display:list-item;min-height:44px;padding:.65rem .25rem;color:inherit;font-size:.9rem;line-height:1.35;cursor:pointer}.practice-help>summary:hover{color:#173d55;text-decoration:underline;text-underline-offset:.18em}.practice-help>summary:focus-visible{outline:3px solid #b75c30;outline-offset:2px;border-radius:.2rem}.practice-help-panel{width:min(42rem,100%);margin:.35rem auto .7rem;padding:.7rem 1rem;overflow-wrap:anywhere;border-left:2px solid #91b5b8;color:#34485b;font-size:.92rem;line-height:1.5;text-align:left}.practice-help-panel h2{margin:0 0 .5rem;color:#1a365d;font-size:1rem}.practice-help-panel ol{margin:0;padding-left:1.25rem}.practice-help-panel li+li{margin-top:.35rem}.consonants-compact{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:1rem}.series-gap{height:12px}.button-row{display:flex;gap:6px;justify-content:center}.practice-page .button-row{flex-wrap:wrap;max-width:100%}.practice-page .color-legend{flex-wrap:wrap}.button-container{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:1rem}.vowels-container{max-width:380px;margin:0 auto}.independent-vowels-container{max-width:500px;margin:0 auto;padding:1rem;background:#9575cd26;border-radius:12px;border:2px solid rgba(149,117,205,.3)}.control-btn.independent{font-family:Battambang,sans-serif}.action-buttons{display:flex;justify-content:center;gap:1rem;margin-top:1rem}.action-btn{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:color .18s ease,background-color .18s ease,box-shadow .22s var(--interactive-ease),transform .22s var(--interactive-ease)}.action-btn.clear{background:#ef5350;color:#111827}.action-btn.clear:hover{background:#d32f2f;color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #6414142e}.action-btn:active{transform:translateY(0) scale(.98)}.practice-page .practice-vowel-bank .section-label,.practice-page .practice-more-bank .section-label{margin:.25rem 0 .7rem;color:#315762;font-size:.98rem;text-align:center}.practice-workspace.learning-workspace>.bank-more{grid-column:1 / -1}@media(min-width:1200px){.practice-page .practice-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.practice-page .practice-heading .page-title{grid-column:2}.practice-page .practice-help{min-width:0;justify-self:start}.practice-page .practice-help[open]{grid-column:1 / -1;justify-self:center}}.practice-page .practice-independent-control{display:flex;justify-content:center;margin:.25rem auto .8rem}.practice-page .practice-independent-control .control-btn{min-height:48px}.practice-page .practice-secondary-actions{display:flex;justify-content:center;margin:1.25rem auto}.practice-workspace .workspace-secondary-toolbar .action-btn{min-height:44px;padding:.3rem .8rem;border:1px solid #bdcfca;border-radius:.55rem;background:#f8faf5;color:#315762;font-size:.85rem}.practice-page .learning-workspace .consonants-compact{margin:0 auto .6rem}.practice-page .learning-bank .button-container{margin-bottom:.8rem}.practice-workspace.learning-workspace{grid-template-columns:minmax(0,min(42%,20rem)) minmax(0,1fr)}.practice-workspace .learning-result .display-wrapper{display:block;container-type:inline-size;width:100%;max-width:none;margin:0}.practice-workspace .learning-result .display-area{width:100%;min-width:0;max-width:none;aspect-ratio:1;height:100cqi;box-sizing:border-box;min-height:0;padding:0 10px 40px;justify-content:center;align-items:center}.practice-workspace .learning-result .display-text{width:100%;max-width:100%;min-width:0;margin:auto;font-size:clamp(calc(2rem * var(--font-scale, 1)),calc(20cqi * var(--font-scale, 1)),calc(4rem * var(--font-scale, 1)));line-height:1.65;overflow-wrap:anywhere;word-break:normal}.practice-workspace.learning-workspace .learning-result .display-area.has-pronunciation-series{padding-bottom:40px}.practice-workspace.learning-workspace .learning-result .audio-controls{inset:auto .55rem .55rem auto;max-width:calc(100% - 1.1rem)}.practice-workspace.learning-workspace .learning-result .audio-btn{flex:0 0 48px;width:48px;height:48px}.practice-workspace.learning-workspace .learning-result .series-toggle{flex:0 0 auto}.practice-page [data-learning-key],.practice-page [data-guide-target]{scroll-margin-top:calc(var(--workspace-sticky-offset, var(--workspace-dock-height, 0px)) + .75rem)}@media(max-width:760px){.practice-workspace.learning-workspace .learning-result .display-wrapper{width:min(100%,max(210px,8rem));margin-inline:auto}}@media(max-width:640px){.practice-page{padding:max(1rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.page-title{margin-bottom:1rem;font-size:clamp(1.4rem,6vw,1.75rem)}.practice-page .controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,500px);margin:0 auto 1rem;gap:.55rem}.practice-page .control-btn{width:100%;min-height:48px;padding:.6rem .5rem;line-height:1.25;overflow-wrap:anywhere}.practice-heading{gap:0;margin-bottom:.65rem}.practice-workspace.learning-workspace .learning-result .display-wrapper{width:min(100%,max(210px,8rem));margin-inline:auto}.practice-workspace.learning-workspace .learning-result .display-area{min-height:0;padding:0 10px 40px}.practice-workspace.learning-workspace .learning-result .display-area.has-pronunciation-series{padding-bottom:40px}.practice-workspace.learning-workspace .learning-result .display-text{font-size:clamp(calc(2rem * var(--font-scale, 1)),calc(20cqi * var(--font-scale, 1)),calc(4rem * var(--font-scale, 1)))}.practice-workspace.learning-workspace .learning-result .audio-controls{inset:auto .4rem .4rem auto}}@media(max-width:360px){.practice-page .control-btn{font-size:.8rem}}@media(min-width:761px){.practice-workspace.learning-workspace{grid-template-columns:minmax(0,min(30%,18rem)) minmax(0,1fr)}.practice-workspace .learning-banks{container:practice-keys / inline-size}.practice-page .practice-vowel-bank .button-container{width:282px;max-width:100%}.practice-page .practice-vowel-bank .button-container>.char-button,.practice-page .button-row>.char-button{flex:0 0 auto}}@container practice-keys (max-width: 44rem){.practice-workspace .bank-consonants,.practice-workspace .bank-vowels{grid-column:1 / -1}}@media(min-width:761px)and (max-width:1100px){.practice-workspace.learning-workspace{display:block}.practice-workspace .learning-result .display-wrapper{width:min(100%,260px);margin:0 auto 1rem}.practice-workspace .learning-pin{margin-bottom:1rem}.practice-workspace .learning-banks{width:100%;margin-inline:auto}}@media(max-width:760px){.practice-page .practice-heading{gap:.15rem .5rem;margin-bottom:.25rem}.practice-page .page-title{margin-bottom:.35rem;line-height:1.2}.practice-page .practice-help{margin:0 auto .25rem}.practice-page .practice-help>summary{min-height:44px;padding:.35rem .2rem;line-height:1.3}.practice-page .practice-help-panel{margin-block:.2rem .4rem;padding:.55rem .7rem}.practice-page .controls{gap:.3rem;margin-bottom:.45rem}.practice-page .control-btn{min-height:44px}.practice-page .color-legend{justify-content:center;gap:.2rem .55rem;margin-block:.25rem .45rem}.practice-workspace.learning-workspace .learning-result .display-wrapper{width:clamp(128px,36vw,140px);max-width:100%;margin:0 auto}.practice-workspace.learning-workspace .learning-result .display-area,.practice-workspace.learning-workspace .learning-result .display-area.has-pronunciation-series{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:0;aspect-ratio:1;height:auto;gap:.15rem;padding:.25rem;overflow:visible}.practice-workspace.learning-workspace .learning-result .display-text{flex:0 1 auto;width:100%;min-height:0;margin:0;font-size:clamp(calc(2rem * var(--font-scale, 1)),calc(23cqi * var(--font-scale, 1)),calc(2.25rem * var(--font-scale, 1)));line-height:1.2;overflow-wrap:normal;word-break:normal}.practice-workspace.learning-workspace .learning-result .audio-controls{position:static;inset:auto;display:flex;flex:0 0 auto;justify-content:center;align-items:center;width:auto;max-width:100%;margin:0}.practice-workspace.learning-workspace .learning-result .audio-btn{flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px}.practice-workspace.learning-workspace .learning-result .series-toggle,.practice-workspace.learning-workspace .learning-result .series-btn{min-height:44px}.practice-workspace.learning-workspace .learning-result .series-btn{padding-inline:.45rem}.practice-workspace .workspace-secondary-toolbar{gap:.25rem;margin-block:.2rem}.practice-page .learning-categories{flex-wrap:nowrap;gap:.25rem;margin-top:.3rem}.practice-page .learning-categories button{min-width:0;max-width:100%;padding-inline:.3rem;white-space:normal;overflow-wrap:anywhere;line-height:1.2}.practice-page .learning-bank{padding-top:.2rem}.practice-page .practice-vowel-bank .section-label,.practice-page .practice-more-bank .section-label{margin:.2rem 0 .45rem}.practice-page .learning-workspace .consonants-compact{gap:4px;margin-bottom:.4rem}.practice-page .learning-bank .button-container{margin-bottom:.4rem}}@media(max-width:360px){.practice-workspace.learning-workspace .learning-result .display-wrapper{width:128px}}.practice-workspace.sticky-disabled [data-learning-key],.practice-workspace.sticky-disabled [data-guide-target]{scroll-margin-top:.75rem}@media(max-width:760px){.practice-page{padding-top:.4rem}.practice-page .practice-heading{flex-wrap:nowrap;align-items:center}.practice-page .practice-heading .page-title{flex:1 1 0;min-width:0;font-size:1.2rem;text-align:start;margin:0}.practice-page .practice-heading .practice-help{flex:0 1 auto;margin:0}.practice-page .practice-heading:has(details[open]){flex-wrap:wrap}.practice-page .practice-heading details[open]{flex-basis:100%}.practice-page .color-legend{margin:0}.practice-page .controls{margin-bottom:.2rem}.practice-workspace.learning-workspace .learning-pin{container:compact-practice / inline-size;grid-template-columns:minmax(0,max(128px,8rem)) minmax(0,1fr)}.practice-workspace.learning-workspace .learning-result .display-wrapper{width:min(100%,max(128px,8rem))}.practice-workspace.learning-workspace .learning-result .display-text{font-size:calc(2rem * var(--font-scale, 1));line-height:1.65;margin-bottom:.5rem}.practice-workspace.learning-workspace .learning-result .audio-controls{flex-wrap:wrap;gap:.15rem .25rem}.practice-workspace.learning-workspace .learning-result .audio-btn{width:auto;flex:0 0 auto;padding-inline:.4rem;border-radius:.8rem}.practice-workspace.learning-workspace .learning-pin>.workspace-secondary-toolbar{align-self:start}.practice-workspace.learning-workspace .has-pronunciation-series .series-toggle{position:absolute;left:calc(100% + .6rem);bottom:.25rem;max-width:none}}@container compact-practice (max-width: 12rem){.practice-page .practice-workspace.learning-workspace .learning-pin>.learning-result,.practice-page .practice-workspace.learning-workspace .learning-pin>.workspace-secondary-toolbar,.practice-page .practice-workspace.learning-workspace .learning-pin>.learning-categories{grid-column:1 / -1;grid-row:auto;justify-content:center}.practice-workspace.learning-workspace .has-pronunciation-series .series-toggle{position:static}}.learning-workspace{--workspace-ink: #234a54;display:grid;grid-template-columns:minmax(185px,230px) minmax(0,1fr);align-items:start;gap:clamp(.8rem,2vw,1.25rem);margin:1rem auto}.learning-full-composition{min-width:0}.learning-pin{position:sticky;top:max(.8rem,env(safe-area-inset-top));z-index:4;align-self:start;padding:.7rem;border:1px solid #cadbd7;border-radius:1rem;background:#edf5f1}.learning-result .display-wrapper{margin:0}.learning-result .display-area{max-width:100%;min-width:0}.learning-categories{display:none}.learning-banks{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;column-gap:clamp(.65rem,1.5vw,1.1rem);min-width:0}.learning-bank{min-width:0}.learning-bank.bank-more{grid-column:1 / -1}.workspace-secondary-toolbar{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.35rem auto}.workspace-guide{margin:.35rem auto}.workspace-bank button{scroll-margin-top:calc(var(--workspace-dock-height, 0px) + env(safe-area-inset-top) + .75rem)}.learning-bank .section-label:first-child{margin-top:0}.learning-workspace.sticky-disabled .learning-pin{position:static}@media(max-width:760px){.learning-workspace{display:block;margin-top:.75rem}.learning-pin{position:sticky;top:env(safe-area-inset-top);margin:0 -.1rem .6rem;padding:.45rem max(.55rem,env(safe-area-inset-right)) .5rem max(.55rem,env(safe-area-inset-left));border-radius:0 0 .85rem .85rem;box-shadow:0 4px 12px #274b4b14}.learning-result .display-area{min-height:3.8rem;padding:.35rem 3.5rem .45rem .45rem;border-width:1px;border-radius:.7rem}.learning-result .display-text{font-size:clamp(2rem,9vw,calc(2.6rem * var(--font-scale, 1)));line-height:1.45}.learning-result .audio-controls{bottom:.25rem;right:.25rem}.learning-result .audio-btn{width:44px;min-width:44px;height:44px;min-height:44px}.practice-workspace .learning-result .display-area.has-pronunciation-series{padding-bottom:3.2rem}.practice-workspace .learning-result .display-area.has-pronunciation-series .audio-controls{inset:auto .35rem .25rem;justify-content:space-between}.practice-workspace .learning-result .series-toggle,.practice-workspace .learning-result .series-btn{min-height:44px}.practice-workspace .learning-result .series-btn{padding-inline:.7rem}.learning-categories{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.learning-categories button{flex:1 1 auto;min-width:max-content;min-height:44px;padding:.4rem .25rem;border:1px solid #bdcfca;border-radius:.7rem;background:#f8faf5;color:#234a54;font:inherit;font-size:.88rem;font-weight:650;white-space:nowrap;cursor:pointer}.learning-categories button[aria-pressed=true]{border-color:#427a75;background:#dcebe5}.learning-bank{display:none;padding-top:.45rem}.learning-bank[data-active=true],.learning-banks{display:block}.learning-full-composition{margin:.55rem 0}.workspace-secondary-toolbar{gap:.3rem}.workspace-guide .guide-card{margin:.3rem 0 0;padding:.45rem .6rem}.learning-categories button:focus-visible,.workspace-secondary-toolbar button:focus-visible{scroll-margin-top:var(--workspace-dock-height, 0px)}.learning-workspace:not(.sticky-disabled) .learning-pin{position:sticky}.learning-workspace.sticky-disabled .learning-pin{position:static}}@media(max-height:560px){.learning-workspace:not(.sticky-disabled) .learning-pin{position:static}}@media(min-width:761px){.learning-bank{display:block!important}.learning-categories{display:none!important}.learning-bank.bank-more{margin-top:.6rem}}@media(prefers-reduced-motion:reduce){.learning-categories button{transition:none}}@media(max-width:760px){.learning-workspace{margin-top:.4rem}.learning-pin{padding-block:.35rem;margin-bottom:.35rem}.learning-result .display-area{min-height:0}.learning-categories{flex-wrap:nowrap;align-items:stretch;gap:.25rem;margin-top:.25rem}.learning-categories button{flex:1 1 0;min-width:0;min-height:44px;padding:.3rem .2rem;white-space:normal;overflow-wrap:anywhere;line-height:1.15}.learning-bank{padding-top:.2rem}.workspace-secondary-toolbar{justify-content:flex-start;gap:.25rem;margin-block:.2rem}.workspace-guide{width:100%;max-width:100%;margin:.25rem auto}.workspace-guide .guide-card{width:100%;max-width:100%;margin:.25rem 0 0;padding:.45rem .55rem}}@media(max-width:380px){.learning-categories{gap:.15rem}.learning-categories button{padding-inline:.12rem;font-size:.82rem}}@media(max-width:760px){.practice-workspace.learning-workspace .learning-pin{display:grid;grid-template-columns:minmax(0,max(128px,8rem)) minmax(0,1fr);align-items:center;column-gap:.45rem;row-gap:.2rem;padding:.25rem max(.45rem,env(safe-area-inset-right)) .3rem max(.45rem,env(safe-area-inset-left))}.practice-workspace.learning-workspace .learning-pin>.learning-result{grid-column:1;grid-row:1;min-width:0}.practice-workspace.learning-workspace .learning-pin>.workspace-secondary-toolbar{grid-column:2;grid-row:1;min-width:0;justify-content:flex-start;align-content:center}.practice-workspace.learning-workspace .learning-pin>.learning-categories{grid-column:1 / -1;grid-row:2;margin-top:0}.builder-workspace .workspace-editing{width:100%;margin:.2rem 0}.builder-workspace .workspace-editing>summary{min-height:44px;padding:.35rem .55rem;border:1px solid #bdcfca;border-radius:.65rem;background:#f8faf5;color:#315762;line-height:1.3;cursor:pointer}.builder-workspace .workspace-mobile-actions{justify-content:flex-start;margin:.25rem 0 0}}.learning-workspace [data-learning-key],.learning-workspace .learning-categories button,.learning-workspace .workspace-secondary-toolbar button,.builder-workspace .workspace-mobile-actions button,.builder-workspace .workspace-editing,.builder-workspace .workspace-editing>summary,.learning-workspace .learning-full-composition,.learning-workspace .learning-full-composition summary,.builder-workspace .builder-full-details,.builder-workspace .builder-full-details>summary,.builder-workspace .builder-full-composition{scroll-margin-top:calc(var(--workspace-sticky-offset, var(--workspace-dock-height, 0px)) + .75rem)}.learning-workspace.sticky-disabled [data-learning-key],.learning-workspace.sticky-disabled .learning-categories button,.learning-workspace.sticky-disabled .workspace-secondary-toolbar button,.builder-workspace.sticky-disabled .workspace-mobile-actions button,.builder-workspace.sticky-disabled .workspace-editing,.builder-workspace.sticky-disabled .workspace-editing>summary,.learning-workspace.sticky-disabled .learning-full-composition,.learning-workspace.sticky-disabled .learning-full-composition summary,.builder-workspace.sticky-disabled .builder-full-details,.builder-workspace.sticky-disabled .builder-full-details>summary,.builder-workspace.sticky-disabled .builder-full-composition{scroll-margin-top:.75rem}.learning-workspace .workspace-bank button{scroll-margin-top:calc(var(--workspace-sticky-offset, 0px) + env(safe-area-inset-top) + .75rem)}.learning-workspace.sticky-disabled .workspace-bank button{scroll-margin-top:.75rem}@media(max-width:760px){.practice-page .legend-switch-track,.builder-page .legend-switch-track{overflow:hidden}.controls .learning-guide{width:auto}.workspace-mobile-tools{display:flex;flex-wrap:wrap;align-items:start;gap:0 .4rem}.workspace-mobile-tools>.workspace-editing{flex:1 1 7rem;width:auto;margin:0}.workspace-mobile-tools>.learning-full-composition{display:contents}.workspace-mobile-tools .builder-full-details{flex:1 1 8rem;margin:0}.workspace-mobile-tools details[open]{flex-basis:100%}.workspace-mobile-tools summary{min-height:44px;padding:.4rem .2rem;border:0;background:transparent;font-size:.85rem;line-height:1.3;cursor:pointer}.workspace-mobile-tools summary:focus-visible{outline:3px solid #b75c30;outline-offset:2px}.workspace-mobile-tools .builder-status:empty{display:none}.learning-workspace .learning-categories{flex-wrap:wrap}.learning-workspace .learning-categories button{flex:1 1 auto;min-width:max-content;white-space:nowrap;overflow-wrap:normal}.learning-pin .audio-btn{width:auto;min-width:44px;padding-inline:.4rem;border-radius:.8rem;flex-basis:auto}}.learning-guide{color:#315762}.guide-invitation,.guide-reopen{min-height:44px;padding:.35rem .55rem;border:0;background:transparent;color:#3b6b6b;font:inherit;font-size:.88rem;text-decoration:underline;text-underline-offset:.18em;cursor:pointer}.guide-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.8rem;margin:.5rem auto;padding:.7rem .9rem;border-left:3px solid #6e9d91;border-radius:.25rem .75rem .75rem .25rem;background:#edf5ef}.guide-kicker{margin:0 0 .15rem;color:#55736e;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.guide-instruction{margin:0;line-height:1.45}.guide-progress{margin:.2rem 0 0;color:#617c78;font-size:.8rem}.guide-actions{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.guide-actions button{min-height:44px;padding:.4rem .65rem;border:1px solid #c4d7cf;border-radius:.65rem;background:#f8faf5;color:#315762;font:inherit;cursor:pointer}.guide-target{outline:2px solid #789e79!important;outline-offset:3px}.learning-categories .guide-target{position:relative;z-index:1}@media(max-width:560px){.guide-card{align-items:flex-start;flex-direction:column}.guide-actions{align-self:flex-end}}@media(prefers-reduced-motion:no-preference){.guide-target{animation:guide-soft-cue 1.8s ease-in-out infinite alternate}@keyframes guide-soft-cue{0%{outline-color:#88a98b}to{outline-color:#c2c9a2}}}@media(max-width:760px){.learning-guide,.workspace-guide{width:100%;max-width:100%;min-width:0}.guide-invitation,.guide-reopen{max-width:100%;padding-inline:.25rem;text-align:start;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.guide-card{display:flex;flex-direction:column;grid-template-columns:minmax(0,1fr);gap:.3rem;width:100%;max-width:100%;padding:.5rem .6rem}.guide-card>:first-child{min-width:0;overflow-wrap:anywhere}.guide-actions{flex-wrap:wrap;justify-content:flex-end;align-self:flex-end;width:100%}.guide-actions button{min-width:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere}}.builder-page .builder-heading{display:contents}.builder-page .builder-mobile-scope{display:none}.builder-page{--builder-ink: #183b58;--builder-muted: #526c7d;--builder-line: #c8d9df;--builder-paper: #f3f8f7;--builder-panel: #eaf3f2;--builder-accent: #246a78;--builder-accent-dark: #174c59;--builder-focus: #c26435;box-sizing:border-box;width:min(100%,980px);margin:0 auto;padding:max(clamp(1rem,3vw,2rem),env(safe-area-inset-top)) max(clamp(1rem,3vw,2rem),env(safe-area-inset-right)) max(clamp(1rem,3vw,2rem),env(safe-area-inset-bottom)) max(clamp(1rem,3vw,2rem),env(safe-area-inset-left));color:var(--builder-ink);overflow-wrap:anywhere}.builder-page *,.builder-page *:before,.builder-page *:after{box-sizing:border-box}.builder-page .page-title{margin:0 auto .25rem;color:var(--builder-ink);font-size:clamp(1.65rem,4vw,2.25rem);line-height:1.2;text-align:center;text-wrap:balance}.builder-page .builder-scope{max-width:66ch;margin:0 auto 1.25rem;color:var(--builder-muted);font-size:1rem;line-height:1.65;text-align:center}.builder-page .controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem;width:100%;margin:0 auto 1.4rem}.builder-page .control-btn{min-width:min(8.5rem,100%);min-height:48px;max-width:100%;padding:.65rem 1rem;border:1px solid #9ab8c1;border-radius:.8rem;background:#e6f0ef;color:var(--builder-ink);font:inherit;font-size:1rem;font-weight:650;line-height:1.3;text-align:center;overflow-wrap:anywhere;cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.builder-page .control-btn.sub-consonant{font-family:Battambang,Khmer OS,sans-serif}.builder-page .control-btn:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--builder-accent);background:#d7e9e7;transform:translateY(-1px)}.builder-page .control-btn.active{border-color:var(--builder-accent-dark);background:var(--builder-accent-dark);color:#f7fbf8}.builder-page .control-btn:disabled,.builder-page .control-btn[aria-disabled=true]{border-style:dashed;border-color:#8a9da5;background:#e8eceb;color:#4f626a;cursor:not-allowed;opacity:.82}.builder-page .section-label{margin:1.35rem 0 .6rem;color:var(--builder-ink);font-size:.95rem;font-weight:750;line-height:1.4;letter-spacing:.04em;text-align:center;text-wrap:balance}.builder-page .button-container{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;width:100%;margin:0 auto 1rem}.builder-page .alphabetical-container{display:flex;flex-direction:column;align-items:stretch;gap:.55rem;width:100%}.builder-page .button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:100%}.builder-page .char-button{flex:0 0 auto;width:max(calc(55px * var(--font-scale, 1)),3.4rem);height:auto;min-width:48px;min-height:max(calc(55px * var(--font-scale, 1)),3.4rem);padding:.4rem .3rem;border-radius:.8rem;outline-offset:3px}.builder-page .char-button.o-group{background:linear-gradient(145deg,#a8d5dc,#79b9c6);color:#173f53}.builder-page .char-button.or-group{background:linear-gradient(145deg,#f1bd9f,#dc9878);color:#542e25}.builder-page .char-button.vowel{background:linear-gradient(145deg,#d5e3df,#b5cfca);color:#234744}.builder-page .char-button.additional-sign{background:linear-gradient(145deg,#c8d2e5,#aab9d1);color:#293d5b}.builder-page .char-button.independent{background:linear-gradient(145deg,#c2d8d2,#9ebeb5);color:#24483f}.builder-page .char-button.selected{border-color:var(--builder-ink);box-shadow:0 0 0 3px #246a7847}.builder-page .char-button:focus-visible,.builder-page .control-btn:focus-visible,.builder-page .action-btn:focus-visible,.builder-page .builder-example:focus-visible,.builder-page summary:focus-visible{outline:3px solid var(--builder-focus);outline-offset:3px}.builder-page .builder-key-unavailable{border:2px dashed #75868a;filter:grayscale(.55);box-shadow:none}.builder-page .builder-key-unavailable .builder-key-label{max-width:100%;padding:.12rem .32rem;border:1px solid #6f7774;border-radius:999px;background:#f0f0e9;color:#3d4c50;font-family:inherit;font-size:.65rem;font-weight:750;line-height:1.15;white-space:normal;text-align:center;overflow-wrap:anywhere}.builder-page .builder-workbench{width:100%;margin:.9rem auto 1.4rem;padding:clamp(.8rem,3vw,1.25rem);border:1px solid var(--builder-line);border-radius:1.1rem;background:var(--builder-paper);box-shadow:0 8px 24px #23475212}.builder-page .display-wrapper{width:100%;max-width:100%;min-width:0;margin:0 auto .75rem}.builder-page .display-area,.builder-page .display-area.large{width:100%;min-width:0;max-width:100%;min-height:5rem;padding:1rem .9rem 3.4rem;border:2px solid #b7ced0;border-radius:.95rem;background:#fbfcf8;gap:.45rem}.builder-page .display-text{display:block;width:100%;max-width:100%;min-width:0;color:var(--builder-ink);font-size:clamp(1.5rem,8vw,calc(3rem * var(--font-scale, 1)));line-height:1.7;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;unicode-bidi:plaintext}.builder-page .display-area.large .display-text{font-size:clamp(1.5rem,8vw,calc(3.35rem * var(--font-scale, 1)))}.builder-page .learning-result .display-area.large{min-height:4.8rem;padding:.7rem .75rem 3.4rem}.builder-page .builder-workspace{display:block;width:100%;margin-top:.55rem}.builder-page .builder-workspace .learning-pin{width:100%;padding:.65rem clamp(.65rem,1.8vw,1.1rem);border-radius:1rem}.builder-page .builder-workspace .learning-result .display-wrapper{width:100%;margin:0 auto .45rem}.builder-page .builder-workspace .learning-result .display-area.large{width:100%;max-width:none;min-height:4.7rem;padding:.55rem .75rem 3.35rem}.builder-page .builder-workspace .display-preview{min-height:2.7rem;overflow-wrap:normal;word-break:normal}.builder-page .builder-workspace .learning-banks{width:100%;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);column-gap:clamp(.75rem,2vw,1.35rem)}.builder-page .builder-workspace .learning-bank{min-width:0;text-align:center}.builder-page .builder-workspace .bank-more>.control-btn{display:block;margin:0 auto .75rem}.builder-page .learning-full-composition{width:100%;margin:.5rem 0 .65rem}.builder-page .learning-result .display-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.builder-page .display-preview{width:100%;padding:0;color:var(--builder-ink);font-family:Battambang,Khmer OS,sans-serif;font-size:clamp(1.7rem,7vw,calc(2.5rem * var(--font-scale, 1)));line-height:1.45;text-align:center;unicode-bidi:plaintext}.builder-page .builder-full-composition{min-height:2.8rem;margin:0;padding:.45rem .65rem;border:1px solid #cfdfd9;border-radius:.65rem;background:#f8faf6;color:var(--builder-ink);font-family:Battambang,Khmer OS,sans-serif;font-size:clamp(1.55rem,5vw,calc(2.3rem * var(--font-scale, 1)));line-height:1.65;text-align:start;white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext}.builder-page .builder-full-details{margin:.45rem 0;color:var(--builder-ink)}.builder-page .builder-full-details>summary{min-height:44px;display:flex;align-items:center;padding:.35rem .6rem;border-radius:.6rem;background:#e6f0eb;color:var(--builder-accent-dark);cursor:pointer}.builder-page .builder-full-details[open] .builder-full-composition{margin-top:.45rem;overflow-wrap:normal;word-break:normal}.builder-page .workspace-secondary-toolbar{display:flex;flex-wrap:wrap;gap:.3rem}.builder-page .workspace-secondary-toolbar .action-btn{flex:1 1 auto;min-width:44px;min-height:44px;padding:.35rem .5rem;font-size:.85rem;line-height:1.15;overflow-wrap:normal;white-space:nowrap}.builder-page .learning-full-composition .builder-status{font-size:.82rem;font-weight:400;line-height:1.35;margin-block:.35rem}.builder-page .builder-full-details:focus-within{scroll-margin-top:calc(var(--workspace-sticky-offset, var(--workspace-dock-height, 0px)) + .75rem)}.builder-page [data-learning-key]{scroll-margin-top:calc(var(--workspace-sticky-offset, var(--workspace-dock-height, 0px)) + .75rem)}.builder-page .audio-controls{position:absolute;inset:auto .5rem .5rem auto;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;max-width:calc(100% - 1rem);gap:.35rem}.builder-page .audio-btn{flex:0 0 auto;width:48px;min-width:48px;height:48px;min-height:48px;border-color:#83aeb5;background:#dcebea;color:var(--builder-ink)}.builder-page .display-area .audio-btn{position:static}.builder-page .builder-toolbar{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.6rem;width:100%;margin:.8rem auto 0}.builder-page .action-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;width:100%;margin:.75rem auto 0}.builder-page .action-btn{flex:1 1 10rem;min-width:min(8rem,100%);min-height:48px;max-width:100%;padding:.65rem 1rem;border:1px solid transparent;border-radius:.8rem;background:#e6f0ef;color:var(--builder-ink);font:inherit;font-size:1rem;font-weight:700;line-height:1.35;text-align:center;overflow-wrap:anywhere;cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.builder-page .action-btn.delete{border-color:#c6a272;background:#f3e6d2;color:#503b26}.builder-page .action-btn.delete:hover:not(:disabled):not([aria-disabled=true]){background:#ead5b8;transform:translateY(-1px)}.builder-page .action-btn.clear{border-color:#c7867d;background:#f3ded9;color:#582f2d}.builder-page .action-btn.clear:hover:not(:disabled):not([aria-disabled=true]){background:#ebc9c2;transform:translateY(-1px)}.builder-page .action-btn:disabled,.builder-page .action-btn[aria-disabled=true]{border-style:dashed;border-color:#8a9da5;background:#e8eceb;color:#4f626a;cursor:not-allowed;opacity:.82}.builder-page .builder-status,.builder-page .builder-guidance,.builder-page .builder-unavailable-note,.builder-page .builder-space-note{max-width:68ch;margin:.65rem auto;color:var(--builder-muted);font-size:.95rem;line-height:1.55;text-align:center;overflow-wrap:anywhere}.builder-page .builder-status{color:var(--builder-ink);font-weight:700}.builder-page .builder-guidance{padding:.65rem .8rem;border-left:3px solid #7ba9a9;border-radius:.2rem .65rem .65rem .2rem;background:#e5efec;text-align:left}.builder-page .builder-unavailable-note{color:#53676c;font-size:.88rem}.builder-page .builder-space-note{color:#4c6670;font-size:.88rem}.builder-page .builder-counter{display:block;margin:.3rem auto;color:var(--builder-muted);font-size:.85rem;font-variant-numeric:tabular-nums;line-height:1.5;text-align:center}.builder-page .builder-examples{width:fit-content;max-width:100%;margin:0 auto .35rem;color:#34566a}.builder-page .builder-examples>summary{min-height:44px;padding:.65rem .25rem;color:inherit;font-size:.9rem;font-weight:400;line-height:1.35;cursor:pointer}.builder-page .builder-examples>summary:hover{color:#173d55;text-decoration:underline;text-underline-offset:.18em}.builder-page .builder-examples>summary:focus-visible{outline:3px solid #b75c30;outline-offset:2px;border-radius:.2rem}.builder-page .builder-examples[open]{width:min(100%,66ch)}.builder-page .builder-examples>p,.builder-page .builder-examples>a{display:block;margin:.8rem 0;line-height:1.6}.builder-page .builder-example-list{display:flex;flex-wrap:wrap;gap:.7rem;padding:0}.builder-page .builder-example{flex:1 1 13rem;min-width:0;padding:.8rem;border:1px solid #c6d9d7;border-radius:.7rem;background:#f8faf6;overflow-wrap:anywhere}.builder-page .builder-example-steps{margin:.45rem 0 0;padding-left:1.35rem;color:var(--builder-muted);line-height:1.55;overflow-wrap:anywhere}.builder-page .builder-example-steps li+li{margin-top:.25rem}.builder-page .builder-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}@media(max-width:640px){.builder-page{padding:max(1rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.builder-page .controls{justify-content:stretch;gap:.5rem}.builder-page .control-btn{flex:1 1 8.5rem;min-width:min(8rem,100%);padding-inline:.65rem}.builder-page .button-row{justify-content:center;gap:.4rem}.builder-page .builder-workbench{padding:.75rem}.builder-page .builder-workspace .learning-pin{padding:.45rem max(.55rem,env(safe-area-inset-right)) .5rem max(.55rem,env(safe-area-inset-left))}.builder-page .builder-workspace .learning-result .display-area.large{min-height:4.4rem;padding:.4rem .55rem 3.15rem}.builder-page .builder-workspace .display-preview{min-height:2.35rem;font-size:clamp(1.55rem,7vw,calc(2.15rem * var(--font-scale, 1)))}.builder-page .builder-workspace .workspace-secondary-toolbar .action-btn{flex:1 1 4rem;min-height:44px;padding:.3rem .4rem}.builder-page .learning-full-composition{margin-top:.4rem}.builder-page .builder-example-list{display:grid;grid-template-columns:minmax(0,1fr)}}@media(max-width:360px){.builder-page{padding-inline:max(.55rem,env(safe-area-inset-left)) max(.55rem,env(safe-area-inset-right))}.builder-page .char-button{min-width:46px;min-height:46px}.builder-page .display-text{font-size:1.5rem}}.builder-page .builder-workspace .learning-result .display-area.large{padding:.5rem .65rem}.builder-page .builder-workspace .display-preview{line-height:1.7}.builder-page .builder-workspace .audio-controls{position:static;align-self:flex-end;width:100%;max-width:100%;margin-top:.25rem}@media(prefers-reduced-motion:reduce){.builder-page *,.builder-page *:before,.builder-page *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:760px){.builder-page .builder-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(44px,max-content);align-items:center;gap:.25rem .4rem;margin-bottom:.15rem}.builder-page .builder-heading>.page-title{min-width:0;margin:0;text-align:start}.builder-page .builder-heading>details{min-width:0;max-width:100%}.builder-page .builder-heading>details>summary{min-height:44px;padding:.35rem .4rem;line-height:1.3;overflow-wrap:anywhere;cursor:pointer}.builder-page .builder-heading>details[open]{grid-column:1 / -1}.builder-page .page-title{margin-bottom:.15rem;line-height:1.18}.builder-page .builder-scope{max-width:68ch;margin-bottom:.45rem;font-size:.92rem;line-height:1.4}.builder-page .controls{gap:.35rem;margin-bottom:.65rem}.builder-page .control-btn{min-height:44px}.builder-page .builder-workspace .learning-result .display-area.large{display:flex;flex-direction:column;justify-content:center;align-items:stretch;min-height:0;gap:.15rem;padding:.3rem .45rem;overflow:visible}.builder-page .builder-workspace .display-preview{flex:0 1 auto;width:100%;min-height:0;line-height:1.45;white-space:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.builder-page .builder-workspace .audio-controls{position:static;inset:auto;align-self:center;justify-content:center;width:auto;max-width:100%;margin:0}.builder-page .builder-workspace .audio-btn{width:44px;min-width:44px;height:44px;min-height:44px}.builder-page .builder-workspace .workspace-secondary-toolbar{justify-content:center;gap:.25rem;margin-block:.2rem}.builder-page .builder-workspace .workspace-secondary-toolbar .action-btn{flex:0 1 auto;min-width:44px;min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere}.builder-page .builder-full-details{margin-block:.3rem}.builder-page .builder-full-details>summary{line-height:1.35}.builder-page .learning-full-composition{margin:.4rem 0 .55rem}.builder-page .builder-status,.builder-page .builder-guidance,.builder-page .builder-unavailable-note,.builder-page .builder-space-note{margin-block:.4rem}}@media(max-width:360px){.builder-page .builder-workspace .display-preview{font-size:clamp(1.55rem,7vw,calc(2.15rem * var(--font-scale, 1)))}}.builder-page .builder-workspace.sticky-disabled .builder-full-details:focus-within,.builder-page .builder-workspace.sticky-disabled [data-learning-key]{scroll-margin-top:.75rem}@media(max-width:760px){.builder-page{padding-top:.4rem}.builder-page .builder-heading .page-title{font-size:1.2rem}.builder-page>.builder-scope{display:none}.builder-page .builder-mobile-scope{display:block}.builder-page .color-legend{margin:0}.builder-page .controls{margin-bottom:.2rem}.builder-page .builder-workspace .display-preview{--context-lines: 1;font-size:calc(clamp(1.55rem,6.5vw,2rem) * var(--font-scale, 1));line-height:1.7;white-space:normal;overflow:visible}.builder-page .builder-workspace .audio-btn{width:auto;padding-inline:.4rem;border-radius:.8rem}.builder-page .builder-workspace .builder-full-details>summary,.builder-page .builder-workspace .workspace-editing>summary{min-height:44px;font-size:.85rem;line-height:1.3;padding:.4rem .2rem;background:transparent;border:0}.builder-page .workspace-mobile-tools .builder-status{flex:1 0 100%;margin:0}.builder-page .builder-workspace .workspace-mobile-tools summary{display:flex;align-items:center;gap:.25rem;list-style:none}.builder-page .workspace-mobile-tools summary:before{content:"▸"}.builder-page .workspace-mobile-tools details[open]>summary:before{transform:rotate(90deg)}}.peel-sound-control{display:inline-flex;flex:0 0 auto;min-width:0;max-width:100%;font-size:clamp(.72rem,calc(.72rem * var(--font-scale, 1)),1.4rem)}.peel-page .peel-sound-button{position:static;display:grid;flex:0 0 auto;box-sizing:border-box;place-items:center;width:var(--peel-audio-size, 48px);height:var(--peel-audio-size, 48px);min-width:48px;min-height:48px;max-width:none;padding:0;border-radius:50%;font-size:inherit;line-height:1;text-align:center;overflow-wrap:normal;word-break:normal;white-space:nowrap}.peel-page .peel-sound-button:disabled{opacity:.5;cursor:default;transform:none}.peel-audio-announcement{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}.peel-card-audio{display:flex;flex-direction:column;align-items:stretch;gap:.2rem;width:100%;min-width:0;margin-top:.25rem}.peel-piece>.peel-card-audio{margin-top:auto}.peel-card-audio>.peel-sound-control{order:2;align-self:flex-end}.peel-card-comparisons{order:1;min-width:0;width:100%;max-width:100%;font-size:.72rem;color:var(--peel-ink)}.peel-card-comparisons>summary{display:flex;align-items:center;justify-content:flex-start;min-height:44px;padding:.15rem .1rem;cursor:pointer;list-style-position:inside;text-decoration:underline;text-underline-offset:.2em;line-height:1.35;overflow-wrap:anywhere}.peel-card-comparisons>summary:after{content:"+";margin-inline-start:.3em}.peel-card-comparisons[open]>summary:after{content:"−"}.peel-card-comparison-list{display:grid;gap:.35rem;max-width:100%;min-width:0;padding-top:.2rem}.peel-card-comparison{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:.25rem;min-width:0;padding-block:.3rem;border-top:1px solid var(--peel-line)}.peel-comparison-label{display:grid;gap:.1rem;min-width:0;width:100%;line-height:1.35;overflow-wrap:anywhere}.peel-comparison-label [lang=km]{font-family:Battambang,Khmer OS,sans-serif;font-size:1.2rem;line-height:1.8;overflow-wrap:anywhere;word-break:normal}.peel-card-comparison>.peel-sound-control{justify-self:end;align-self:end}.enter-peel-word{margin:-.55rem 0 1rem;color:#536b6c}.enter-peel-word summary{display:flex;align-items:center;width:fit-content;min-height:44px;color:#315c59;font-size:.86rem;font-weight:650;cursor:pointer}.enter-peel-word summary:after{content:"+";margin-left:.5rem;color:#b66b51;font-size:1.1rem}.enter-peel-word[open] summary:after{content:"−"}.enter-peel-word-body{max-width:40rem;padding:.85rem 1rem 1rem;border:1px solid #d3dfd8;border-radius:.85rem;background:#f5f7f1}.enter-peel-word-instructions{margin:0 0 .75rem;color:#536b6c;font-size:.82rem;line-height:1.5}.enter-peel-word-form{display:grid;gap:.4rem;color:#536b6c;font-size:.82rem;font-weight:700}.enter-peel-word-controls{display:flex;align-items:stretch;gap:.5rem}.enter-peel-word-controls input{width:100%;min-width:0;min-height:46px;padding:.55rem .75rem;border:1px solid #b9cbc1;border-radius:.65rem;background:#fbfcf8;color:#273f47;font:inherit;font-size:1rem}.enter-peel-word-controls button{min-width:7rem;min-height:46px;padding:.55rem .8rem;border:1px solid #315c59;border-radius:.65rem;background:#315c59;color:#f8faf5;font:inherit;font-weight:650;cursor:pointer}.enter-peel-word-controls button:hover{background:#264c49}.enter-peel-word-controls :is(input,button):focus-visible,.enter-peel-word summary:focus-visible{outline:3px solid #a85d43;outline-offset:3px}.enter-peel-word-feedback{margin-top:.65rem;color:#684633;font-size:.84rem;line-height:1.5}.enter-peel-word-feedback p{margin:0 0 .2rem}.enter-peel-word-feedback.is-matched{color:#315c59}.enter-peel-word-feedback a{color:#426d68;text-underline-offset:.18em}@media(max-width:520px){.enter-peel-word{margin-top:-.25rem}.enter-peel-word-body{padding:.75rem}.enter-peel-word-controls{flex-direction:column}.enter-peel-word-controls button{width:100%}}.peel-page{--peel-audio-size: max(48px, calc(3rem * var(--font-scale, 1)));--peel-ink: #273f47;--peel-muted: #536b6c;--peel-line: #d3dfd8;--peel-paper: #f5f7f1;--peel-panel: #eaf0e9;--peel-teal: #3e706d;--peel-teal-deep: #315c59;--peel-coral: #b66b51;width:min(100%,1180px);margin:0 auto;padding:clamp(1.1rem,3.4vw,2.8rem);color:var(--peel-ink);overflow-wrap:anywhere}.peel-page *,.peel-page *:before,.peel-page *:after{box-sizing:border-box}.peel-heading{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.45rem}.peel-heading-copy{min-width:0}.peel-eyebrow,.peel-overline{margin:0;color:var(--peel-teal);font-size:.74rem;font-weight:750;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}.peel-heading h1{margin:.16rem 0 .15rem;color:var(--peel-ink);font-family:Georgia,Battambang,serif;font-size:clamp(2rem,4.5vw,3.4rem);font-weight:500;letter-spacing:-.045em;line-height:1.13}.peel-intro{margin:0;color:var(--peel-muted);line-height:1.55}.peel-word-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;flex:0 1 430px;align-items:end;gap:.35rem .45rem;min-width:0}.peel-word-picker,.peel-word-search{display:grid;min-width:0;flex:initial;gap:.4rem;color:var(--peel-muted);font-size:.82rem;font-weight:700}.peel-word-search{grid-column:1 / -1}.peel-word-picker select,.peel-word-search input{width:100%;min-height:48px;padding:.55rem 2rem .55rem .8rem;border:1px solid #b9cbc1;border-radius:.7rem;background:#fbfcf8;color:var(--peel-ink);font:inherit;font-size:.96rem}.peel-word-search input{padding-right:.8rem}.peel-search-status{grid-column:1 / -1;min-height:1.25em;margin:-.12rem 0 0;color:var(--peel-muted);font-size:.75rem;font-weight:500;line-height:1.35}button.peel-random{min-width:44px;min-height:44px;flex:0 0 auto;padding-inline:.8rem;border-color:#b9cbc1;background:#f8faf5;color:var(--peel-ink);font-size:.9rem;font-weight:600}.peel-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(.85rem,2vw,1.35rem);align-items:stretch}.peel-hero,.peel-workspace{min-width:0;border:1px solid var(--peel-line);border-radius:1.2rem;background:var(--peel-paper);box-shadow:0 10px 30px #273f470e}.peel-hero{padding:clamp(1rem,2.4vw,1.7rem);align-self:start}.peel-layout.can-pin .peel-hero{position:sticky;top:max(.5rem,env(safe-area-inset-top));z-index:2}.peel-layout button{scroll-margin-top:1rem}.peel-layout.can-pin button{scroll-margin-top:calc(var(--peel-dock-height, 0px) + env(safe-area-inset-top) + 1rem)}.peel-wordline{text-align:center}.peel-target{position:relative;display:block;min-height:1.8em;margin:.25rem 0 0;padding:.12rem .45rem calc(var(--peel-audio-size) + .45rem);border:1px solid #d2ded4;border-radius:.85rem;background:#fafbf7;color:#2e5557;font-family:Battambang,Khmer OS,sans-serif;font-size:clamp(3.1rem,8vw,calc(5.4rem * var(--font-scale, 1)));line-height:1.55;text-align:center;white-space:normal;unicode-bidi:plaintext;overflow-wrap:anywhere;word-break:normal}.peel-word-audio,.peel-context-audio{position:absolute;right:.4rem;bottom:.4rem;z-index:1;display:flex;flex:0 0 auto;align-items:center;justify-content:center}.peel-target>[lang=km]{display:block}.peel-meaning{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:.55rem;margin:-.1rem 0 1.35rem;color:var(--peel-ink);font-size:1.08rem}.peel-meaning span{color:var(--peel-muted);font-size:.78rem}.peel-context-card{padding:1rem;border:1px solid #d4dfd5;border-radius:.95rem;background:#eaf0e9}.peel-context-heading{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.peel-context-count{color:var(--peel-muted);font-size:.8rem;font-variant-numeric:tabular-nums}.peel-context-wrap{position:relative;display:flex;min-height:150px;flex-direction:column;align-items:center;margin-top:.55rem;padding:.35rem .6rem calc(var(--peel-audio-size) + .4rem);border:1px solid #c9d8ce;border-radius:.75rem;background:#f9faf5}.peel-context-wrap.peel-active-kind-base{border-color:#9dbba7}.peel-context-wrap.peel-active-kind-subscript{border-color:#c9ae83}.peel-context-wrap.peel-active-kind-shifter{border-color:#c79a89}.peel-context-wrap.peel-active-kind-vowel{border-color:#aeb1d0}.peel-context{display:grid;width:100%;flex:1 1 auto;place-items:center;max-width:100%;min-height:1.7em;padding-inline:.25rem;color:#345d5b;font-family:Battambang,Khmer OS,sans-serif;font-size:clamp(2rem,5.3vw,calc(3.2rem * var(--font-scale, 1)));line-height:1.75;text-align:center;unicode-bidi:plaintext;overflow-wrap:anywhere;word-break:normal}.peel-context-empty{color:var(--peel-muted);font-family:inherit;font-size:.82rem;line-height:1.4}.peel-context-wrap.is-complete .peel-context{animation:peel-arrive .42s ease-out both}.peel-placement{display:flex;align-items:center;gap:.35rem;align-self:flex-end;max-width:100%;min-height:1.25rem;color:var(--peel-muted);font-size:.7rem;line-height:1.25;text-align:right}.peel-placement.peel-kind-base{color:#527a67}.peel-placement.peel-kind-subscript{color:#91734b}.peel-placement.peel-kind-shifter{color:#9a6756}.peel-placement.peel-kind-vowel{color:#686c91}.peel-connector{width:1.2rem;height:1px;flex:0 0 auto;background:currentColor}.peel-workspace{padding:clamp(1rem,2.4vw,1.7rem)}.peel-workspace-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.peel-workspace h2{margin:.18rem 0 0;font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:600;line-height:1.3}.peel-progress{display:grid;width:3rem;height:3rem;flex:0 0 auto;place-items:center;border:1px solid #c9d8ce;border-radius:50%;background:#edf2ea;color:var(--peel-teal-deep);font-size:.85rem;font-variant-numeric:tabular-nums}.peel-tray{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:.65rem;min-height:112px;margin-top:1rem;padding:.8rem;border:1px dashed #b9cbc1;border-radius:.9rem;background:#ffffff70}.peel-tray-empty{align-self:center;width:100%;margin:0;color:var(--peel-muted);font-size:.9rem;text-align:center}.peel-piece{position:relative;display:flex;min-width:min(100%,max(108px,calc(var(--peel-audio-size) + 1rem)));min-height:130px;flex:1 1 max(108px,calc(var(--peel-audio-size) + 1rem));flex-direction:column;align-items:center;justify-content:flex-start;gap:.15rem;padding:.5rem .5rem .45rem;border:1px solid #d3ddd3;border-radius:.8rem;background:#f7f8f2;color:var(--peel-ink);text-align:center}.peel-piece-kind{color:var(--peel-muted);font-size:.7rem;font-weight:700;line-height:1.3}.peel-piece-glyph,.peel-slot-glyph{min-height:1.55em;color:#2e5557;font-family:Battambang,Khmer OS,sans-serif;font-size:clamp(1.75rem,3.8vw,calc(2.35rem * var(--font-scale, 1)));line-height:1.75}.peel-piece-name{color:#435c5d;font-size:.72rem;line-height:1.3}.peel-kind-base{border-color:#b9d0c3;background-color:#edf4ed}.peel-kind-subscript{border-color:#d7c5a9;background-color:#f5f0e5}.peel-kind-shifter{border-color:#d7bcb3;background-color:#f6ece7}.peel-kind-vowel{border-color:#c5c9df;background-color:#eeeff7}.peel-piece.is-current{outline:2px solid var(--peel-teal);outline-offset:2px}.peel-piece.is-hinted,.peel-slot.is-hinted{box-shadow:inset 0 0 0 2px #a85d43}.peel-piece.is-wrong{border-color:#a85d43;background:#f5e7e1}.peel-piece.is-used .peel-piece-place{opacity:.65}.peel-piece-place{min-width:44px;min-height:44px;width:100%;max-width:100%;margin-top:auto;padding:.35rem .5rem;border:1px solid transparent;border-radius:.55rem;display:grid;justify-items:center;gap:.15rem;background:transparent;color:var(--peel-ink);font:inherit;font-size:.72rem;font-weight:650;line-height:1.2;overflow-wrap:anywhere;cursor:pointer}.peel-piece-place:hover:not(:disabled){border-color:var(--peel-teal);background:#edf3ed}.peel-piece-place:disabled{cursor:not-allowed}.peel-current-description{min-height:3em;margin:.75rem 0 0;color:var(--peel-muted);font-size:.9rem;line-height:1.55}.peel-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.9rem}.peel-button{min-width:fit-content;max-width:100%;min-height:48px;flex:1 1 auto;padding:.6rem .85rem;border:1px solid #b9cbc1;border-radius:.7rem;background:#f8faf5;color:var(--peel-ink);font:inherit;font-weight:650;line-height:1.35;overflow-wrap:normal;word-break:normal;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.peel-button:hover:not(:disabled){border-color:var(--peel-teal);background:#edf3ed;transform:translateY(-1px)}.peel-button-primary{border-color:var(--peel-teal-deep);background:var(--peel-teal-deep);color:#f8faf5}.peel-button-primary:hover:not(:disabled){background:#264c49;color:#fff}.peel-button-secondary{border-color:#c08b72;background:#f2e6db;color:#684633}.peel-button:disabled{cursor:not-allowed;opacity:.52}.peel-feedback{margin:.8rem 0 0;color:var(--peel-teal-deep);font-size:.88rem;font-weight:600;line-height:1.5}.peel-status{min-height:1.5em;margin:.85rem 0 0;color:var(--peel-teal-deep);font-size:.88rem;font-weight:600;line-height:1.5}.peel-rebuild-prompt{margin:.85rem 0 0;color:var(--peel-muted);font-size:.9rem;line-height:1.5}.peel-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(76px,calc(var(--peel-audio-size) + .9rem))),1fr));gap:.4rem;margin-top:.8rem}.peel-slot{position:relative;display:flex;min-width:0;min-height:118px;flex-direction:column;align-items:center;justify-content:flex-start;gap:.15rem;padding:.4rem .35rem;border:1px dashed #bdcbc2;border-radius:.65rem;background:#f4f6f0}.peel-slot.is-filled{border-style:solid}.peel-slot-glyph{color:#9aaba2;font-size:1.65rem}.peel-slot-glyph.peel-kind-base{background:transparent}.peel-slot>.peel-card-audio{width:100%;margin-top:auto}.peel-rebuild-tray{min-height:92px}.peel-rebuild-tray .peel-piece{min-height:144px}.peel-finish{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--peel-line);animation:peel-arrive .42s ease-out both}.peel-finish p{width:100%;margin:0;color:var(--peel-teal-deep);font-weight:700}.peel-finish .peel-button{min-width:0;flex:1 1 8rem}.peel-help{margin-top:1.1rem;color:var(--peel-muted)}.peel-help summary{display:flex;align-items:center;min-height:48px;width:fit-content;max-width:100%;color:var(--peel-teal-deep);font-weight:650;cursor:pointer}.peel-help summary:after{content:"+";margin-left:.55rem;color:var(--peel-coral);font-size:1.15rem;line-height:1}.peel-help[open] summary:after{content:"−"}.peel-help p{max-width:76ch;margin:.2rem 0 .7rem;line-height:1.65}.peel-help a{color:#426d68;text-decoration:underline;text-underline-offset:.18em}.peel-breakdown{display:grid;gap:.55rem;max-width:76ch;padding-left:1.5rem;line-height:1.5}.peel-breakdown li{padding-left:.25rem}.peel-breakdown-kind{display:inline-block;margin-right:.45rem;padding:.08rem .42rem;border:1px solid;border-radius:999px;font-size:.75rem;font-weight:700}.peel-page :is(button,select,input,summary,a):focus-visible{outline:3px solid #a85d43;outline-offset:3px}.peel-word-announcement,.peel-page .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 peel-arrive{0%{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.peel-page{padding:1rem max(.8rem,env(safe-area-inset-right)) 1.5rem max(.8rem,env(safe-area-inset-left))}.peel-heading{align-items:center;flex-direction:row;flex-wrap:wrap;gap:.65rem;margin-bottom:.65rem}.peel-heading-copy{flex:1 0 auto;min-width:0}.peel-eyebrow,.peel-intro{display:none}.peel-heading h1{margin:0;font-size:1.45rem;letter-spacing:-.025em}.peel-word-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;flex:1 0 100%;align-items:end}.peel-word-search{grid-column:1 / -1;width:100%}.peel-search-status{grid-column:1 / -1}.peel-word-picker{flex:1 1 10rem;min-width:min(100%,10rem)}.peel-word-picker>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.peel-word-picker select,.peel-word-search input{min-height:44px;padding-block:.35rem;font-size:.84rem}.peel-word-search input{padding-inline:.65rem}.peel-random{grid-column:2}.peel-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.peel-hero{display:block;grid-row:1;padding:0;background:var(--peel-paper)}.peel-workspace{display:contents}.peel-wordline{grid-row:1;padding:.45rem .75rem 0;border:1px solid var(--peel-line);border-bottom:0;border-radius:.85rem .85rem 0 0;background:var(--peel-paper)}.peel-wordline .peel-overline{display:none}.peel-target{min-height:1.35em;margin:0;padding:.05rem .2rem calc(var(--peel-audio-size) + .4rem);border:0;background:transparent;font-size:clamp(2.35rem,12vw,calc(3.25rem * var(--font-scale, 1)));line-height:1.45}.peel-meaning{margin:-.1rem 0 .45rem;font-size:.92rem}.peel-context-card{grid-row:2;padding:.45rem .65rem .6rem;border:1px solid var(--peel-line);border-top:0;border-radius:0 0 .85rem .85rem}.peel-context-heading{display:none}.peel-context-wrap{min-height:112px;margin:0;padding:.2rem .45rem calc(var(--peel-audio-size) + .4rem)}.peel-context{min-height:1.35em;font-size:clamp(1.8rem,9vw,calc(2.45rem * var(--font-scale, 1)));line-height:1.5}.peel-placement{min-height:1rem;font-size:.64rem}.peel-connector{width:.8rem}.peel-workspace-top{grid-row:3;margin-top:.5rem}.peel-workspace-top .peel-overline{display:none}.peel-workspace h2{margin:0;font-size:1rem}.peel-progress{width:2rem;height:2rem;font-size:.75rem}.peel-actions{grid-row:4;margin-top:.35rem}.peel-tray{grid-row:5;min-height:92px;margin-top:.45rem;padding:.45rem;gap:.45rem}.peel-tray-empty{font-size:.8rem}.peel-piece{min-height:130px;flex-basis:max(82px,calc(var(--peel-audio-size) + 1rem));min-width:min(100%,max(82px,calc(var(--peel-audio-size) + 1rem)));padding:.35rem}.peel-piece-glyph{font-size:clamp(1.45rem,7vw,calc(1.9rem * var(--font-scale, 1)))}.peel-piece-name{font-size:.68rem}.peel-piece-place{padding-inline:.3rem}.peel-current-description{grid-row:6;min-height:2.5em;margin:.35rem 0 0;font-size:.8rem;line-height:1.4}.peel-status{grid-row:10}.peel-feedback{grid-row:9;margin-top:.35rem;font-size:.8rem}.peel-rebuild-prompt{grid-row:4;margin:.35rem 0 0;font-size:.8rem}.peel-slots{grid-row:5;margin-top:.35rem}.peel-slot{min-height:112px}.peel-rebuild-tray{grid-row:6}.peel-layout-rebuild .peel-actions{grid-row:7}.peel-finish{grid-row:8}.peel-finish .peel-button{flex-basis:8rem}}@media(max-width:380px){.peel-page{padding-inline:max(.65rem,env(safe-area-inset-left)) max(.65rem,env(safe-area-inset-right))}.peel-piece{min-width:min(100%,max(68px,calc(var(--peel-audio-size) + 1rem)));flex-basis:max(68px,calc(var(--peel-audio-size) + 1rem));padding-inline:.25rem}.peel-piece-name{font-size:.68rem}.peel-actions .peel-button{flex-basis:42%}.peel-heading h1{font-size:1.2rem}.peel-heading{gap:.4rem}.peel-word-controls{grid-template-columns:minmax(0,1fr) auto}.peel-random{padding-inline:.55rem;font-size:.8rem}}@media(prefers-reduced-motion:reduce){.peel-page *,.peel-page *:before,.peel-page *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.about-page{min-height:100vh;padding:clamp(.75rem,3vw,2rem);color:#293b50}.about-page *,.about-page *:before,.about-page *:after{box-sizing:border-box}.about-container{width:min(100%,800px);margin:0 auto;overflow:hidden;border:1px solid #dce2e8;border-radius:14px;background:#fbfcfd;box-shadow:0 3px 14px #1c304912}.about-header{padding:clamp(1.1rem,4vw,1.8rem);background:#1f3c63;color:#f8fafc;text-align:center}.about-header h1{margin:0;font-size:clamp(1.5rem,5vw,2rem);line-height:1.25;overflow-wrap:anywhere}.about-section{padding:clamp(1.1rem,4vw,2rem) clamp(1rem,5vw,2.5rem);border-bottom:1px solid #e3e8ed}.about-section:last-of-type{border-bottom:0}.about-section h2{margin:0 0 .85rem;color:#1f3c63;font-size:clamp(1.2rem,4vw,1.45rem);line-height:1.35}.about-section p{margin:0 0 .9rem;color:#4d5d6d;line-height:1.65;overflow-wrap:anywhere}.about-section p:last-child{margin-bottom:0}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.feature-card{min-width:0;padding:1rem;border:1px solid #dfe5eb;border-radius:9px;background:#f4f7fa}.feature-card h3{margin:0 0 .4rem;color:#1f3c63;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.feature-card h3 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.15em}.feature-card p{margin:0;color:#526274;font-size:.94rem;line-height:1.55;overflow-wrap:anywhere}.contact{text-align:center}.feedback-link{display:inline-flex;min-height:44px;align-items:center;justify-content:center;margin-top:.9rem;padding:.65rem 1.2rem;border:1px solid #1f3c63;border-radius:7px;background:#1f3c63;color:#fff;line-height:1.3;text-decoration:none;transition:background-color .16s ease,transform .16s ease}.feedback-link:hover{background:#294b76;transform:translateY(-1px)}.about-page a:focus-visible{outline:3px solid #bd805e;outline-offset:3px}.about-footer{padding:1rem;background:#f2f5f8;text-align:center}.about-footer p{margin:0;color:#647282;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}@media(max-width:520px){.about-page{padding:.65rem}.feature-grid{grid-template-columns:minmax(0,1fr);gap:.6rem}}@media(prefers-reduced-motion:reduce){.about-page *,.about-page *:before,.about-page *:after{transition-duration:.01ms!important}}.feedback-page{min-height:100vh;padding:clamp(.65rem,3vw,2rem);color:#293b50}.feedback-page *,.feedback-page *:before,.feedback-page *:after{box-sizing:border-box}.feedback-container{width:min(100%,600px);margin:0 auto;overflow:hidden;border:1px solid #dce2e8;border-radius:13px;background:#fbfcfd;box-shadow:0 3px 14px #1c304912}.feedback-header{padding:clamp(1rem,4vw,1.6rem);background:#1f3c63;color:#f8fafc;text-align:center}.feedback-header h1{margin:0 0 .35rem;font-size:clamp(1.45rem,5.5vw,1.9rem);line-height:1.25;overflow-wrap:anywhere}.feedback-header p{margin:0;color:#e0e8f1;line-height:1.5}.feedback-form-section{padding:clamp(1.1rem,4vw,1.75rem) clamp(1rem,5vw,2.25rem)}.feedback-form-section h2{margin:0 0 1.15rem;color:#1f3c63;font-size:1.22rem;line-height:1.35;text-align:center}.alert{margin-bottom:1rem;padding:.75rem;border-radius:7px;line-height:1.5;text-align:center;overflow-wrap:anywhere}.alert:empty{display:none}.alert.success{border:1px solid #a9c7b3;background:#edf5ef;color:#315b40}.alert.error{border:1px solid #d8aaa5;background:#fbf0ee;color:#843d38}.form-group{min-width:0;margin-bottom:1rem}.form-group label{display:block;margin-bottom:.4rem;color:#34485f;font-weight:600;line-height:1.4}.form-group input,.form-group textarea{display:block;width:100%;min-width:0;min-height:46px;padding:.65rem .8rem;border:1px solid #bdc9d5;border-radius:7px;background:#fff;color:#293b50;font:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease}.form-group textarea{min-height:132px;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#748294;opacity:1}.form-group input:focus-visible,.form-group textarea:focus-visible,.submit-btn:focus-visible{outline:3px solid #bd805e;outline-offset:2px;border-color:#1f3c63}.submit-btn{display:block;width:100%;min-height:46px;padding:.7rem 1rem;border:1px solid #1f3c63;border-radius:7px;background:#1f3c63;color:#fff;font:inherit;font-weight:650;line-height:1.35;cursor:pointer;transition:background-color .16s ease,transform .16s ease}.submit-btn:hover:not(:disabled){background:#294b76;transform:translateY(-1px)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.feedback-footer{padding:1rem;background:#f2f5f8;text-align:center}.feedback-footer p{margin:0;color:#647282;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}@media(max-width:380px){.feedback-page{padding:.55rem}.feedback-container{border-radius:10px}.feedback-form-section{padding-inline:.85rem}}@media(prefers-reduced-motion:reduce){.feedback-page *,.feedback-page *:before,.feedback-page *:after{transition-duration:.01ms!important}}.feedback-inbox{width:min(900px,calc(100% - 2rem));margin:2rem auto}.feedback-inbox-header,.feedback-inbox-actions,.feedback-message-meta{display:flex;align-items:center;gap:1rem}.feedback-inbox-header{justify-content:space-between;margin-bottom:1.5rem}.feedback-inbox-header h1,.feedback-message-meta h2{margin:0;color:#1a365d}.feedback-inbox-header p{margin:.35rem 0 0;color:#5a6472}.feedback-inbox-actions button,.feedback-inbox-login button{min-height:42px;padding:.55rem 1rem;border:0;border-radius:6px;background:#1a365d;color:#fff;cursor:pointer}.feedback-inbox-actions button:disabled{opacity:.6;cursor:wait}.feedback-inbox-login{display:grid;gap:.75rem;width:min(100%,380px);padding:1.25rem;border:1px solid #d7deea;border-radius:10px;background:#fff}.feedback-inbox-login input{min-height:42px;padding:.5rem .7rem;border:1px solid #b7c2d0;border-radius:5px;font:inherit}.feedback-import-panel{display:grid;gap:.75rem;margin-top:2rem;padding:1.25rem;border:1px solid #d7deea;border-radius:10px;background:#fff}.feedback-import-panel h2,.feedback-import-panel p{margin:0}.feedback-import-panel h2{color:#1a365d;font-size:1.15rem}.feedback-import-panel p{color:#5a6472}.feedback-import-panel input{min-height:42px;padding:.5rem .7rem;border:1px solid #b7c2d0;border-radius:5px;font:inherit}.feedback-import-panel button{min-height:42px;padding:.55rem 1rem;border:0;border-radius:6px;background:#1a365d;color:#fff;cursor:pointer}.feedback-import-panel button:disabled{opacity:.6;cursor:wait}.feedback-import-panel .feedback-import-result{color:#17643d}.feedback-inbox-error,.feedback-inbox-empty,.feedback-inbox-status,.feedback-message{padding:1rem;border-radius:8px;background:#fff}.feedback-inbox-error{margin-bottom:1rem;color:#9b2525;border:1px solid #e8baba}.feedback-inbox-empty,.feedback-inbox-status{color:#5a6472;border:1px solid #d7deea}.feedback-message-list{display:grid;gap:1rem}.feedback-message{border:1px solid #d7deea;box-shadow:0 2px 8px #1428460d}.feedback-message-meta{flex-wrap:wrap;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid #e8edf3}.feedback-message-meta h2{font-size:1.1rem}.feedback-message-meta a{overflow-wrap:anywhere}.feedback-message-meta time{color:#687385;font-size:.9rem}.feedback-message-body{margin:1rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:600px){.feedback-inbox-header{align-items:flex-start;flex-direction:column}.feedback-message-meta{align-items:flex-start;flex-direction:column;gap:.35rem}}.not-found-page{width:min(100% - 1.5rem,700px);min-height:55vh;margin:0 auto;padding:clamp(2rem,9vh,5rem) .25rem;color:#35475d;text-align:center}.not-found-page h2{margin:0 0 .75rem;color:#1f3c63;font-size:clamp(1.5rem,6vw,2rem);line-height:1.25}.not-found-page p{margin:0 auto 1.25rem;line-height:1.6;overflow-wrap:anywhere}.not-found-page nav{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;max-width:38rem;margin:0 auto}.not-found-page nav a{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:.55rem .8rem;border:1px solid #d6dee7;border-radius:7px;color:#1f3c63;line-height:1.35;text-decoration:none;overflow-wrap:anywhere;transition:background-color .16s ease,border-color .16s ease}.not-found-page nav a:hover{border-color:#aebdcd;background:#f1f5f8}.not-found-page a:focus-visible{outline:3px solid #bd805e;outline-offset:2px}@media(max-width:380px){.not-found-page nav{gap:.3rem}.not-found-page nav a{padding-inline:.6rem}}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;background:linear-gradient(180deg,#f5f7fa,#e4e8ec)}.app-footer{background-color:#2c3e50;color:#fff;text-align:center;padding:12px 20px;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:10px}.footer-logo{height:28px;width:auto;opacity:.9}.footer-brand{font-weight:500;letter-spacing:.5px}
