.cy-bar,.cy-bottom-tabs,.cy-launch-wrap{--cy-accent:var(--cy-fg);--cy-accent-tint:var(--cy-bg-2);--cy-accent-ink:var(--cy-fg)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=phonics]{--cy-accent:var(--cy-phonics);--cy-accent-tint:var(--cy-phonics-tint);--cy-accent-ink:var(--cy-phonics-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=lexcursion]{--cy-accent:var(--cy-vocab);--cy-accent-tint:var(--cy-vocab-tint);--cy-accent-ink:var(--cy-vocab-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=dotwise]{--cy-accent:var(--cy-mult);--cy-accent-tint:var(--cy-mult-tint);--cy-accent-ink:var(--cy-mult-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=keybound]{--cy-accent:var(--cy-piano);--cy-accent-tint:var(--cy-piano-tint);--cy-accent-ink:var(--cy-piano-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=addition]{--cy-accent:var(--cy-add);--cy-accent-tint:var(--cy-add-tint);--cy-accent-ink:var(--cy-add-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=subtraction]{--cy-accent:var(--cy-sub);--cy-accent-tint:var(--cy-sub-tint);--cy-accent-ink:var(--cy-sub-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=division]{--cy-accent:var(--cy-div);--cy-accent-tint:var(--cy-div-tint);--cy-accent-ink:var(--cy-div-ink)}:is(.cy-bar,.cy-bottom-tabs,.cy-launch-wrap)[data-app=practice]{--cy-accent:var(--cy-practice);--cy-accent-tint:var(--cy-practice-tint);--cy-accent-ink:var(--cy-practice-ink)}.cy-bar,.cy-bar *,.cy-bottom-tabs,.cy-bottom-tabs *,.cy-launch-wrap,.cy-launch-wrap *{box-sizing:border-box}.cy-bar :where(a,button,h2,ul,li,small,b,span,img),.cy-launcher :where(a,button,h2,h3,section,ul,li,small,span,img),.cy-bottom-tabs :where(a,span,svg){font:inherit;color:inherit;letter-spacing:inherit;text-transform:none;box-shadow:none;background:0 0;border:0;min-width:0;min-height:0;margin:0;padding:0;text-decoration:none}.cy-bar :where(button),.cy-launcher :where(button){cursor:pointer;appearance:none}.cy-bar :where(ul),.cy-launcher :where(ul){list-style:none}.cy-bar :where(img),.cy-launcher :where(img){max-width:none;display:block}.cy-bar :where(a,button):focus-visible,.cy-launcher :where(a,button):focus-visible,.cy-launch:focus-visible,.cy-bottom-tabs a:focus-visible{outline:3px solid var(--cy-fg);outline-offset:2px}.cy-bar{z-index:40;background:var(--cy-surface);color:var(--cy-fg);border-bottom:1px solid var(--cy-border);font:400 var(--cy-t-16)/1.4 var(--cy-font-text);-webkit-font-smoothing:antialiased;position:sticky;top:0}.cy-bar-row{max-width:calc(var(--cy-wrap) + 2 * var(--cy-gutter));padding:0 var(--cy-gutter);align-items:center;gap:16px;height:64px;margin-inline:auto;display:flex;position:relative}.cy-launch-wrap{flex:none;position:relative}.cy-launch{box-shadow:none;appearance:none;cursor:pointer;color:var(--cy-fg);width:48px;height:48px;font:700 var(--cy-t-16)/1 var(--cy-font-text);background:0 0;border:0;border-radius:14px;flex:none;justify-content:center;align-items:center;gap:8px;margin:0;padding:0;display:inline-flex}.cy-launch.has-label{width:auto;padding:0 16px 0 11px}.cy-launch:hover,.cy-launch[aria-expanded=true]{background:var(--cy-bg-2)}.cy-launch img{width:26px;height:26px;display:block}.cy-launch-wrap .cy-sym-rev,[data-cy-theme=dark] .cy-launch-wrap .cy-sym{display:none}[data-cy-theme=dark] .cy-launch-wrap .cy-sym-rev{display:block}@media (prefers-color-scheme:dark){:root[data-cy-theme=auto] .cy-launch-wrap .cy-sym{display:none}:root[data-cy-theme=auto] .cy-launch-wrap .cy-sym-rev{display:block}}.cy-slash{background:var(--cy-border-2);flex:none;width:1.5px;height:24px;margin-inline:-6px;transform:rotate(18deg)}.cy-app{min-height:48px;color:var(--cy-fg);flex:none;align-items:center;gap:10px;display:flex}.cy-app img{width:32px;height:32px}.cy-app b{font:600 var(--cy-t-18)/1 var(--cy-font-display);letter-spacing:-.02em}.cy-tabs{gap:4px;margin-left:16px;display:flex}.cy-tabs a{min-height:48px;font:600 var(--cy-t-16)/1 var(--cy-font-display);letter-spacing:-.01em;color:var(--cy-fg-2);white-space:nowrap;border-radius:12px;align-items:center;padding:0 14px;display:flex;position:relative}.cy-tabs a:hover{color:var(--cy-fg);background:var(--cy-bg-2)}.cy-tabs a[aria-current=page]{color:var(--cy-accent-ink)}.cy-tabs a[aria-current=page]:after{content:"";background:var(--cy-accent);border-radius:50%;width:6px;height:6px;margin-left:-3px;position:absolute;bottom:-5px;left:50%}.cy-end{align-items:center;gap:8px;margin-left:auto;display:flex}.cy-learner{background:var(--cy-bg-2);min-height:48px;font:700 var(--cy-t-16)/1 var(--cy-font-text);color:var(--cy-fg);border-radius:999px;align-items:center;gap:10px;padding:6px 16px 6px 6px;display:flex}button.cy-learner:hover{background:var(--cy-bg-3)}.cy-av{color:#fff;font-family:var(--cy-font-display);border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.cy-grownups{height:48px;font:700 var(--cy-t-14)/1 var(--cy-font-text);color:var(--cy-fg-2);border-radius:14px;align-items:center;gap:8px;padding:0 14px;display:flex}.cy-grownups:hover{background:var(--cy-bg-2);color:var(--cy-fg)}.cy-launcher{background:var(--cy-surface);width:380px;color:var(--cy-fg);box-shadow:var(--cy-e-2), 0 0 0 1px var(--cy-border);z-index:45;overscroll-behavior:contain;text-align:left;max-height:calc(100dvh - 88px);font:400 var(--cy-t-16)/1.4 var(--cy-font-text);-webkit-font-smoothing:antialiased;border-radius:22px;gap:12px;padding:18px;display:grid;position:absolute;top:calc(100% + 10px);left:0;overflow-y:auto}.cy-launcher[hidden]{display:none}.cy-launcher:focus{outline:none}.cy-launcher h2{font:700 var(--cy-t-14)/1.2 var(--cy-font-text);color:var(--cy-fg-3)}.cy-launch-group{gap:4px;display:grid}.cy-launch-group h3{font:700 var(--cy-t-12)/1.2 var(--cy-font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--cy-fg-3)}.cy-launch-apps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}@media (min-width:761px){.cy-launcher{width:488px}.cy-launch-apps{grid-template-columns:repeat(4,minmax(0,1fr))}}.cy-launch-app{text-align:center;color:var(--cy-fg);--cy-tile:var(--cy-fg);--cy-tile-tint:var(--cy-bg-2);--cy-tile-ink:var(--cy-fg);height:100%;transition:background-color var(--cy-d-1), box-shadow var(--cy-d-1), color var(--cy-d-1), transform var(--cy-d-1);border-radius:16px;align-content:start;justify-items:center;gap:8px;padding:12px 6px;display:grid}.cy-launch-app[data-app=phonics]{--cy-tile:var(--cy-phonics);--cy-tile-tint:var(--cy-phonics-tint);--cy-tile-ink:var(--cy-phonics-ink)}.cy-launch-app[data-app=lexcursion]{--cy-tile:var(--cy-vocab);--cy-tile-tint:var(--cy-vocab-tint);--cy-tile-ink:var(--cy-vocab-ink)}.cy-launch-app[data-app=dotwise]{--cy-tile:var(--cy-mult);--cy-tile-tint:var(--cy-mult-tint);--cy-tile-ink:var(--cy-mult-ink)}.cy-launch-app[data-app=keybound]{--cy-tile:var(--cy-piano);--cy-tile-tint:var(--cy-piano-tint);--cy-tile-ink:var(--cy-piano-ink)}.cy-launch-app[data-app=addition]{--cy-tile:var(--cy-add);--cy-tile-tint:var(--cy-add-tint);--cy-tile-ink:var(--cy-add-ink)}.cy-launch-app[data-app=subtraction]{--cy-tile:var(--cy-sub);--cy-tile-tint:var(--cy-sub-tint);--cy-tile-ink:var(--cy-sub-ink)}.cy-launch-app[data-app=division]{--cy-tile:var(--cy-div);--cy-tile-tint:var(--cy-div-tint);--cy-tile-ink:var(--cy-div-ink)}.cy-launch-app[data-app=practice]{--cy-tile:var(--cy-practice);--cy-tile-tint:var(--cy-practice-tint);--cy-tile-ink:var(--cy-practice-ink)}.cy-launch-app:hover,.cy-launch-app:focus-visible{background:var(--cy-tile-tint);color:var(--cy-tile-ink);box-shadow:inset 0 0 0 2px var(--cy-tile)}.cy-launch-app:hover small,.cy-launch-app:focus-visible small{color:var(--cy-tile-ink)}.cy-launch-app:active{transform:scale(.97)}.cy-launch-app img{width:56px;height:56px;transition:transform var(--cy-d-2)}.cy-launch-app:hover img,.cy-launch-app:focus-visible img{transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.cy-launch-app,.cy-launch-app img{transition:none}.cy-launch-app:active,.cy-launch-app:hover img,.cy-launch-app:focus-visible img{transform:none}}.cy-launch-app span{font:600 var(--cy-t-14)/1.2 var(--cy-font-display);letter-spacing:-.01em}.cy-launch-app small{font:700 11px/1.25 var(--cy-font-text);color:var(--cy-fg-3);display:block}.cy-launch-app.is-here{background:var(--cy-accent-tint);color:var(--cy-accent-ink)}.cy-launch-app.is-here small{color:var(--cy-accent-ink)}.cy-launch-foot{border-top:1px solid var(--cy-border);font:700 var(--cy-t-14)/1.2 var(--cy-font-text);justify-content:space-between;align-items:center;gap:12px;padding-top:6px;display:flex}.cy-launch-foot a,.cy-launch-foot button{min-height:48px;color:var(--cy-fg);border-radius:12px;align-items:center;gap:8px;margin:0 -10px -6px;padding:0 10px;display:flex}.cy-launch-foot a:hover,.cy-launch-foot button:hover{background:color-mix(in srgb, var(--cy-fg) 8%, transparent)}.cy-launch-foot img{width:22px;height:22px}.cy-scrim,.cy-bottom-tabs{display:none}@media (min-width:761px) and (max-width:980px){.cy-bar-row{gap:12px}.cy-tabs{gap:2px;margin-left:4px}.cy-tabs a{padding:0 10px}.cy-learner{padding:6px}.cy-grownups{justify-content:center;width:48px;padding:0}}@media (max-width:980px){.cy-learner>span:not(.cy-av),.cy-grownups span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (max-width:760px){.cy-bar-row{gap:10px;height:56px}.cy-tabs{display:none}.cy-app b{font-size:var(--cy-t-16)}.cy-learner{padding:6px}.cy-grownups{justify-content:center;width:48px;padding:0}.cy-scrim{background:var(--cy-scrim);z-index:44;display:block;position:fixed;inset:0}.cy-launcher{width:auto;top:auto;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-radius:26px;position:fixed;overflow-y:auto}.cy-bottom-tabs{z-index:30;background:var(--cy-surface);border-top:1px solid var(--cy-border);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around;display:flex;position:sticky;bottom:0}.cy-bottom-tabs a{min-width:64px;font:600 12px/1 var(--cy-font-display);color:var(--cy-fg-3);justify-items:center;gap:4px;padding:6px 10px;display:grid}.cy-bottom-tabs a svg{width:24px;height:24px}.cy-bottom-tabs a[aria-current=page]{color:var(--cy-accent-ink)}.cy-bottom-tabs a[aria-current=page] svg{color:var(--cy-accent)}}@media (max-width:380px){.cy-app b{display:none}}@media (prefers-reduced-motion:no-preference){.cy-launcher:not([hidden]){animation:cy-pop var(--cy-d-2) var(--cy-ease-out)}}@keyframes cy-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.cy-gate-layer{z-index:100;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cy-gate-scrim{background:var(--cy-scrim);position:absolute;inset:0}.cy-gate-page{place-items:center;min-height:100%;padding:24px 16px;display:grid}.cy-gate,.cy-gate *{box-sizing:border-box}.cy-gate{border-radius:var(--cy-r-panel);background:var(--cy-surface);width:min(420px,100%);color:var(--cy-fg);box-shadow:var(--cy-e-2), 0 0 0 1px var(--cy-border);font:400 var(--cy-t-16)/1.5 var(--cy-font-text);text-align:left;justify-items:start;gap:12px;padding:clamp(22px,5vw,32px);display:grid;position:relative}.cy-gate :where(h2,p,form,label,input,button,a){letter-spacing:normal;text-transform:none;margin:0}.cy-gate>div,.cy-gate form{gap:12px;width:100%;display:grid}.cy-gate-icon{color:var(--cy-fg)}.cy-gate h2{font:600 var(--cy-t-32)/1.1 var(--cy-font-display);letter-spacing:-.03em;color:var(--cy-fg)}.cy-gate p{color:var(--cy-fg-2)}.cy-gate label{font:700 var(--cy-t-16)/1.2 var(--cy-font-text);color:var(--cy-fg)}.cy-gate input{border-radius:var(--cy-r-control);border:1.5px solid var(--cy-border-2);background:var(--cy-surface);width:100%;max-width:240px;min-height:52px;color:var(--cy-fg);font:600 1.4rem/1 var(--cy-font-display);letter-spacing:.4em;padding:10px 14px}.cy-gate input:focus{border-color:var(--cy-fg);box-shadow:0 0 0 4px color-mix(in srgb, var(--cy-fg) 14%, transparent);outline:none}.cy-gate input[aria-invalid=true]{border-color:var(--cy-bad)}.cy-gate-error{border-radius:var(--cy-r-control);background:var(--cy-bad-tint);font-weight:700;font-size:var(--cy-t-14);box-shadow:inset 4px 0 0 var(--cy-bad);padding:10px 12px;color:var(--cy-fg)!important}.cy-gate-actions{flex-wrap:wrap-reverse;justify-content:flex-end;gap:8px;width:100%;margin-top:4px;display:flex}.cy-gate :where(button){appearance:none;cursor:pointer;font:600 var(--cy-t-16)/1 var(--cy-font-display);border:0}.cy-gate-primary{border-radius:var(--cy-r-control);background:var(--cy-fg);min-height:48px;color:var(--cy-bg);padding:0 22px}.cy-gate-primary:disabled{opacity:.6;cursor:progress}.cy-gate-quiet{border-radius:var(--cy-r-control);min-height:48px;color:var(--cy-fg-2);background:0 0;padding:0 16px}.cy-gate-quiet:hover{background:var(--cy-bg-2);color:var(--cy-fg)}.cy-gate :where(button,a,input):focus-visible{outline:3px solid var(--cy-fg);outline-offset:2px}.cy-gate-small{font-size:var(--cy-t-14)}.cy-gate-small a{color:var(--cy-fg);text-underline-offset:3px;font-weight:700;text-decoration:underline}.cy-gate-hold{background:var(--cy-bg-2);width:100%;min-height:64px;color:var(--cy-fg);touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 0 1.5px var(--cy-border-2);border-radius:18px;position:relative;overflow:hidden}.cy-gate-fill{transform-origin:0;background:var(--cy-spark);transition:transform .15s;position:absolute;inset:0;transform:scaleX(0)}.cy-gate-hold.is-holding .cy-gate-fill{transition:transform var(--cy-hold,1.6s) linear;transform:scaleX(1)}.cy-gate-label{font:600 var(--cy-t-18)/1 var(--cy-font-display);color:var(--cy-ink);position:relative}.cy-gate-hold:not(.is-holding) .cy-gate-label{color:var(--cy-fg)}:root{--mag-1:#1f9a4a;--mag-2:#2f74d8;--mag-3:#e36a2c;--mag-4:#9a52dd;--mag-5:#e8a400;--mag-6:#d6457f;--mag-7:#0f8ea3;--board:linear-gradient(#fbfbfe, #f3f2f9);--board-dot:#15142b13}[data-cy-theme=dark]{--board:linear-gradient(#24233a, #1d1c30);--board-dot:#ffffff0f}@media (prefers-color-scheme:dark){:root[data-cy-theme=auto]{--board:linear-gradient(#24233a, #1d1c30);--board-dot:#ffffff0f}}.mag{font-family:var(--cy-font-display);letter-spacing:-.02em;color:var(--c);text-shadow:0 1px 0 color-mix(in srgb, var(--c) 70%, white), 0 3px 0 color-mix(in srgb, var(--c) 72%, black), 0 9px 12px #15142b38;transform:rotate(var(--r,0deg));font-weight:800;line-height:1;display:inline-block;position:relative}.mag-s{font-size:34px}.mag-m{font-size:clamp(46px,3vw + 24px,70px)}.mag-l{font-size:clamp(58px,4.6vw + 26px,104px)}.mag-xl{font-size:clamp(110px,10vw + 50px,190px)}.mag.is-next{color:var(--cy-spark);text-shadow:none;outline:3px dashed var(--cy-spark);outline-offset:0;background:color-mix(in srgb, var(--cy-spark) 10%, transparent);border-radius:.18em;padding:.04em .16em .1em;transform:none}.mag.is-next:after{content:"";background:var(--cy-spark);border-radius:50%;width:12px;height:12px;margin-left:-6px;position:absolute;bottom:-.2em;left:50%;box-shadow:0 0 0 5px #ffc53d40}.mag.is-new{animation:mag-stick .7s var(--cy-ease-click) both}@keyframes mag-stick{0%{opacity:0;transform:translateY(-40px)rotate(-14deg)scale(1.25)}60%{opacity:1}to{transform:rotate(var(--r,0deg))}}.board{background:radial-gradient(circle at 1px 1px, var(--board-dot) 1px, transparent 1.4px) 0 0 / 22px 22px, var(--board);border-radius:26px;padding:clamp(22px,3vw,34px) clamp(18px,3vw,34px) 20px;position:relative;box-shadow:inset 0 0 0 1px #15142b0f,0 30px 60px -36px #15142b59}.board-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(10px,2vw,22px) clamp(14px,2.4vw,28px);min-height:180px;display:flex}.board-cell{place-items:center;min-height:1.3em;display:grid}.board-label{font:600 var(--cy-t-14)/1.3 var(--cy-font-display);color:var(--cy-fg-3);margin:18px 0 0}.board-more{font-weight:500}.board-compact{padding:18px}@media (max-width:640px){.board-grid{gap:10px 16px;min-height:140px}.board-m .mag-m{font-size:38px}.board-l .mag-l{font-size:56px}}.board-compact .board-grid{min-height:120px}@media (prefers-reduced-motion:reduce){.mag.is-new{animation:none}}.page-picker{align-content:center;min-height:calc(100dvh - 200px)}.picker-title{font:700 clamp(36px, 2.6vw + 22px, 54px)/1.05 var(--cy-font-display);letter-spacing:-.025em;text-align:center;margin:0}.picker-sub{text-align:center;color:var(--cy-fg-3);margin:-10px 0 0}.picker-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;width:min(760px,100%);margin:12px auto 0;padding:0;list-style:none;display:grid}.picker-list li{min-width:0;display:grid}.picker-child{background:var(--cy-surface);width:100%;min-width:0;color:var(--cy-fg);cursor:pointer;text-align:center;box-shadow:0 0 0 1px var(--cy-border), 0 4px 0 var(--ph-card-press,#d9d6e4), 0 24px 40px -30px #15142b66;transition:transform var(--cy-d-1) var(--cy-ease-out), box-shadow var(--cy-d-2);border:0;border-radius:26px;justify-items:center;gap:10px;padding:30px 20px 22px;display:grid}.picker-child:hover{transform:translateY(-2px)}.picker-child:active{box-shadow:0 0 0 1px var(--cy-border), 0 1px 0 var(--ph-card-press,#d9d6e4);transform:translateY(3px)}.picker-child:focus-visible{outline:3px solid var(--cy-fg);outline-offset:4px}.picker-avatar{color:#fff;width:88px;height:88px;font:700 2.5rem/1 var(--cy-font-display);border-radius:50%;place-items:center;display:grid}.picker-name{font:700 var(--cy-t-32)/1.1 var(--cy-font-display);letter-spacing:-.015em}.picker-mags{background:var(--board,#f6f5fa);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:4px 10px;max-width:100%;min-height:50px;padding:10px 16px 4px;display:flex}.picker-mags .mag-s{font-size:30px}.picker-mags .mag.is-next:after{width:8px;height:8px;margin-left:-4px;bottom:-.3em;box-shadow:0 0 0 3px #ffc53d40}.picker-where{font:500 var(--cy-t-14)/1.2 var(--cy-font-display);color:var(--cy-fg-3)}@media (prefers-reduced-motion:reduce){.picker-child{transition:none}}.page-learn{gap:14px;width:100%;max-width:920px;margin:0 auto}.session-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.session-stop{min-height:48px;color:var(--cy-fg-2);font:600 var(--cy-t-16)/1 var(--cy-font-display);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-self:start;align-items:center;gap:8px;padding:0 16px 0 12px;display:inline-flex}.session-stop:hover{background:var(--cy-bg-3);color:var(--cy-fg)}.session-lesson{background:var(--cy-surface);min-height:36px;box-shadow:var(--cy-e-1);font:600 var(--cy-t-14)/1 var(--cy-font-display);color:var(--cy-fg-2);white-space:nowrap;border-radius:999px;justify-self:end;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.session-lesson b{color:var(--cy-fg);font-weight:700}.stones{justify-content:center;align-items:center;gap:clamp(8px,1.4vw,12px);display:flex}.stones span{background:var(--cy-bg-3);width:14px;height:14px;box-shadow:inset 0 0 0 2px var(--cy-fg-3);transition:background var(--cy-d-3) var(--cy-ease-out);border-radius:50%}.stones span.is-done{background:var(--cy-phonics);box-shadow:none}.stones span.is-now{background:var(--cy-spark);box-shadow:0 0 0 5px #ffc53d47}.stage{background:var(--cy-surface);border-radius:var(--cy-r-panel);box-shadow:var(--cy-e-1), 0 0 0 1px var(--ph-stage-edge,transparent);animation:stage-in var(--cy-d-2) var(--cy-ease-out);position:relative}.stage:focus:not(:focus-visible){outline:none}@keyframes stage-in{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.preview-flag{background:var(--cy-spark-tint);color:var(--cy-spark-ink);font:600 var(--cy-t-14)/1.2 var(--cy-font-display);border-radius:999px;justify-self:center;margin:0;padding:8px 14px}.stop-sheet-backdrop{z-index:50;background:color-mix(in srgb, var(--cy-ink) 38%, transparent);animation:fade-in var(--cy-d-2) var(--cy-ease-out);place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.stop-sheet{width:min(440px,100%);margin-bottom:max(16px, env(safe-area-inset-bottom));border-radius:var(--cy-r-panel);background:var(--cy-surface);color:var(--cy-fg);box-shadow:var(--cy-e-2);text-align:center;animation:ph-rise var(--cy-d-3) var(--cy-ease-out);gap:6px;padding:28px 24px 24px;display:grid}.stop-sheet h2{font:700 var(--cy-t-32)/1.1 var(--cy-font-display)}.stop-sheet p{color:var(--cy-fg-2);font-size:var(--cy-t-18)}.stop-sheet-actions{gap:10px;margin-top:16px;display:grid}.stop-sheet-actions .go-btn{width:100%}@media (min-width:640px){.stop-sheet-backdrop{place-items:center}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.loading-stage{text-align:center;align-content:center;place-items:center;gap:18px;min-height:360px;display:grid}.loading-dot{background:var(--cy-spark);width:18px;height:18px;animation:loading-hop .9s var(--cy-ease-click) infinite alternate;border-radius:50%;box-shadow:0 0 0 6px #ffc53d40}.loading-line{background:var(--ph-line,#c6c2d4);border-radius:2px;width:160px;height:3px;position:relative}@keyframes loading-hop{0%{transform:translate(-60px)}to{transform:translate(60px)}}.loading-text{font:600 var(--cy-t-20)/1.3 var(--cy-font-display);color:var(--cy-fg-2);margin:0}.card-skipped{text-align:center;justify-items:center;gap:14px;padding:48px 24px;display:grid}.card-skipped h2{font:600 var(--cy-t-24)/1.2 var(--cy-font-display)}.shell.in-session .cy-bottom-tabs{display:none}.shell.in-session main{padding-bottom:32px}@media (max-width:640px){.session-top{grid-template-columns:auto 1fr auto;gap:6px}.session-stop{justify-content:center;min-width:48px;padding:0 12px}.session-stop span{display:none}.stones{gap:7px}.stones span{width:12px;height:12px}.stage{border-radius:var(--cy-r-card)}}@media (prefers-reduced-motion:reduce){.stage,.stop-sheet,.stop-sheet-backdrop,.loading-dot{animation:none}}.page-done{max-width:1040px}.done{background:var(--cy-surface);border-radius:var(--cy-r-panel);box-shadow:var(--cy-e-1);animation:stage-in var(--cy-d-2) var(--cy-ease-out);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(24px,4vw,48px);padding:clamp(24px,4vw,48px);display:grid}.done h1{font:700 clamp(32px, 2.4vw + 20px, 48px)/1.06 var(--cy-font-display);letter-spacing:-.02em;margin:0 0 8px}.done-sub{font:400 var(--cy-t-20)/1.4 var(--cy-font-text);color:var(--cy-fg-2);margin:0 0 22px}.done-sub b{font-family:var(--cy-font-display);color:var(--cy-fg);font-weight:600}.done-facts{gap:8px;margin:0 0 26px;padding:0;list-style:none;display:grid}.done-facts li{font:600 var(--cy-t-18)/1.2 var(--cy-font-display);color:var(--cy-fg);align-items:center;gap:10px;display:flex}.done-facts svg{color:var(--cy-phonics)}.done-actions{flex-wrap:wrap;gap:12px;display:flex}@media (max-width:760px){.done{grid-template-columns:1fr;padding:22px 18px}.done .board{order:-1}.done-actions{display:grid}.done-actions .go-btn{width:100%}}@media (prefers-reduced-motion:reduce){.done{animation:none}}.stage:focus,.stage:focus-visible{outline:none}.shell.in-session .unreviewed-badge{bottom:12px}@media (max-width:640px){.shell.in-session .unreviewed-badge{display:none}}.intro-look{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(24px,5vw,56px);display:flex}.ex-intro .lcard-l{border-radius:28px;min-width:clamp(140px,16vw,200px);height:clamp(160px,18vw,220px);font-size:clamp(88px,8vw + 40px,140px);font-weight:600}.intro-hear{justify-items:start;gap:12px;display:grid}.intro-quick{max-width:24ch;font:500 var(--cy-t-16)/1.35 var(--cy-font-text);color:var(--cy-fg-2);margin:0}.intro-dock{justify-items:stretch;gap:4px;display:grid}.intro-dock .dock-q{margin-bottom:8px}.intro-dock .grownup-note{margin-top:10px}.intro-dock .grownup-note p{max-width:70ch;margin:6px 0 0}.grownup-note summary{cursor:pointer;align-items:center;min-height:48px;display:flex}.rule-look{text-align:center;justify-items:center;gap:26px;display:grid}.rule-explain{max-width:38ch;font:500 var(--cy-t-20)/1.45 var(--cy-font-text);color:var(--cy-fg);margin:0}@media (max-width:640px){.intro-look{flex-direction:column;gap:18px}.intro-hear{text-align:center;justify-items:center}}.choice-dock{gap:14px;display:grid}.ex-choice .frame-look .lcard-l{min-width:128px;height:148px;font-size:clamp(72px,5vw + 36px,104px);font-weight:600}@media (max-width:640px){.choice-dock .choices-print.choices-words{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}}.blend-dock{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.blend-dock .go-btn{min-width:200px}.ex-blend.is-whole .rl-unit{color:var(--cy-phonics-ink)}.ex-blend.is-whole .rline{transition:gap var(--cy-d-3) var(--cy-ease-out);gap:0}@media (max-width:640px){.blend-dock{display:grid}.blend-dock>*{justify-content:center;width:100%}}.seg-look{justify-items:center;gap:28px;display:grid}.sboxes{flex-wrap:wrap;justify-content:center;gap:clamp(8px,1.6vw,14px);display:flex}.sbox{aspect-ratio:1;background:var(--ph-card);width:clamp(58px,7vw,84px);box-shadow:inset 0 0 0 2px var(--ph-target-edge);cursor:pointer;transition:box-shadow var(--cy-d-2), opacity var(--cy-d-2);border:0;border-radius:18px;place-items:center;display:grid}.sbox:disabled{cursor:default}.sbox:not(:disabled):hover{box-shadow:inset 0 0 0 2px var(--cy-fg-3)}.sbox.is-lit{box-shadow:inset 0 0 0 3px var(--cy-spark)}.sbox.is-extra{opacity:.4}.scounter{aspect-ratio:1;background:var(--cy-phonics);width:46%;box-shadow:inset 0 -3px 0 var(--ph-ok-edge);animation:ph-settle var(--cy-d-3) var(--cy-ease-click);border-radius:50%}.sbox.is-lit .scounter{background:var(--cy-spark);box-shadow:inset 0 -3px 0 var(--ph-try-edge)}.sbox:focus-visible{outline:3px solid var(--cy-fg);outline-offset:3px}.seg-dock{justify-content:space-between;align-items:center;gap:12px;display:flex}.seg-dock .dock-q{margin:0}@media (max-width:640px){.seg-dock{display:grid}.seg-dock .go-btn{width:100%}}.heart-look{text-align:center;justify-items:center;gap:22px;display:grid}.heart-tip{max-width:40ch;font:500 var(--cy-t-16)/1.45 var(--cy-font-text);color:var(--cy-fg-2);margin:0}.build-look{justify-items:center;gap:26px;width:100%;display:grid}.build-look>*{max-width:100%}.build-slots{flex-wrap:wrap;justify-content:center;gap:clamp(8px,1.4vw,14px);display:flex}.build-dock{gap:14px;display:grid}.build-tiles{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.build-dock>.go-btn{justify-self:end;min-width:200px}@media (max-width:640px){.build-dock>.go-btn{justify-self:stretch}}.text-page{justify-items:center;width:100%;max-width:760px;display:grid}.text-page .rline{padding-bottom:18px}.q-look{opacity:.85;justify-items:center;gap:14px;display:grid}.q-look .rline-gap-words{max-height:34vh;padding-inline:6px;overflow:auto}.q-look .rline-m .rl-unit{font-size:clamp(20px,1.2vw + 14px,28px)}.ex-question .ask h2{font-size:var(--cy-t-28,1.75rem)}.text-dock{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.text-dock-left{flex-wrap:wrap;gap:8px;display:flex}.mode-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(620px,100%);display:grid}.mode-card{border-radius:var(--cy-r-panel);background:var(--ph-card);color:var(--cy-fg);text-align:center;cursor:pointer;box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press);transition:transform var(--cy-d-1) var(--cy-ease-out);border:0;justify-items:center;gap:8px;padding:26px 18px 22px;display:grid}.mode-card svg{color:var(--cy-phonics)}.mode-card b{font:700 var(--cy-t-24)/1.15 var(--cy-font-display)}.mode-card span{font:400 var(--cy-t-16)/1.35 var(--cy-font-text);color:var(--cy-fg-2)}.mode-card:active:not(:disabled){box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 1px 0 var(--ph-card-press);transform:translateY(3px)}.mode-card:disabled{opacity:.55;cursor:default}.mode-card:focus-visible{outline:3px solid var(--cy-fg);outline-offset:3px}@media (max-width:640px){.mode-pick{grid-template-columns:1fr}.text-dock{display:grid}.text-dock .go-btn{width:100%}}.spoken-look{justify-items:center;gap:26px;display:grid}.beads{gap:14px;display:flex}.bead{background:var(--cy-bg-3);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--ph-card-edge);transition:background var(--cy-d-2), transform var(--cy-d-2);border-radius:50%}.bead.is-done{background:var(--cy-phonics-tint);box-shadow:inset 0 0 0 2px var(--cy-phonics)}.bead.is-lit{background:var(--cy-spark);transform:scale(1.15);box-shadow:0 0 0 6px #ffc53d40}.where{background:var(--cy-bg-2);border-radius:999px;align-items:center;gap:18px;padding:14px 22px;display:flex}.where-dot{background:var(--cy-bg-3);width:18px;height:18px;box-shadow:inset 0 0 0 2px var(--ph-card-edge);border-radius:50%}.where-dot.is-target{background:var(--cy-spark);width:26px;height:26px;box-shadow:0 0 0 6px #ffc53d40}@media (max-width:640px){.build-slots{flex-wrap:nowrap;gap:8px;width:100%}.build-slots>.build-slot{flex:1 1 0;min-width:0;max-width:84px;display:flex}.build-slots>.build-slot>.lcard-l{width:100%;min-width:0;height:clamp(68px,22vw,100px);padding:0 4px;font-size:clamp(30px,9vw,52px)}}.placement-unsure{justify-content:center;display:flex}.cap-look{flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;display:flex}.intro-word{font:500 clamp(34px, 2vw + 24px, 48px)/1 var(--cy-font-display);color:var(--cy-fg-2);border-bottom:3px solid var(--ph-line,#c6c2d4);transition:color var(--cy-d-2), border-color var(--cy-d-2);margin:0;padding:6px 4px 10px}.intro-word b{color:var(--cy-fg);font-weight:600}.intro-word.is-lit{color:var(--cy-phonics-ink);border-color:var(--cy-spark)}.intro-word.is-lit b{color:var(--cy-phonics-ink)}@media (max-width:640px) and (max-height:760px){.ex-intro .lcard-l{border-radius:22px;min-width:108px;height:124px;font-size:84px}.intro-look{flex-direction:row;gap:16px}.intro-hear{text-align:left;justify-items:start;gap:8px}.intro-hear .hear{font-size:var(--cy-t-16);gap:10px;padding:6px 18px 6px 6px}.intro-hear .hear-dot svg{width:48px;height:48px}.intro-word{padding-bottom:6px;font-size:30px}.intro-quick{font-size:var(--cy-t-14)}.intro-dock .dock-q{display:none}.intro-dock .grownup-note{margin-top:4px}}.rule-words{flex-wrap:wrap;justify-content:center;gap:12px 18px;display:flex}.rule-word{background:var(--ph-card);font:500 clamp(40px, 3vw + 24px, 64px)/1 var(--cy-font-display);color:var(--cy-fg);cursor:pointer;box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press);transition:transform var(--cy-d-1) var(--cy-ease-out);border:0;border-radius:18px;padding:10px 20px 14px}.rule-word b{color:var(--cy-phonics-ink);box-shadow:inset 0 -4px 0 var(--cy-spark);font-weight:600}.rule-word.is-lit{background:var(--cy-phonics-tint)}.rule-word:active{box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 1px 0 var(--ph-card-press);transform:translateY(3px)}.rule-word:focus-visible{outline:3px solid var(--cy-fg);outline-offset:3px}.ex-rule .rule-explain{font-size:var(--cy-t-18);color:var(--cy-fg-2)}.choice-word{flex-direction:column;align-items:center;gap:18px;display:flex}.intro-sounds{font-family:var(--cy-font-display);font-size:var(--cy-t-24,24px);gap:6px;margin:0;padding:0;list-style:none;display:grid}.intro-sounds>li>b{color:var(--cy-phonics-ink);margin-right:6px;font-weight:600}.intro-voice{font:500 var(--cy-t-14)/1 var(--cy-font-text);color:var(--cy-fg-2);margin-left:10px}.intro-sounds span b{color:inherit;-webkit-text-decoration:underline 3px var(--cy-spark);text-decoration:underline 3px var(--cy-spark);text-underline-offset:4px}@media (max-height:700px) and (max-width:640px){.sbox{width:52px}}@media (max-width:380px){.build-slots{gap:5px}}:root{--ph-card:var(--cy-surface);--ph-card-edge:#d8d5e3;--ph-target-edge:#9d99b3;--ph-card-press:#c9c5d7;--ph-line:#c6c2d4;--ph-dock:#f8f8fb;--ph-heart:#c0306e;--ph-try-edge:#d89b00;--ph-ok-edge:color-mix(in srgb, var(--cy-phonics) 82%, #000)}[data-cy-theme=dark]{--ph-card-edge:#3b3a55;--ph-target-edge:#6e6d90;--ph-card-press:#2c2b44;--ph-line:#4a4966;--ph-dock:color-mix(in srgb, var(--cy-surface) 92%, #fff);--ph-heart:#ff7aa8}@media (prefers-color-scheme:dark){:root[data-cy-theme=auto]{--ph-card-edge:#3b3a55;--ph-target-edge:#6e6d90;--ph-card-press:#2c2b44;--ph-line:#4a4966;--ph-dock:color-mix(in srgb, var(--cy-surface) 92%, #fff);--ph-heart:#ff7aa8}}.frame{flex-direction:column;min-height:min(560px,100dvh - 190px);display:flex}.frame-look{flex:1;align-content:center;place-items:center;gap:22px;min-height:180px;padding:clamp(18px,4vw,36px) clamp(14px,3vw,28px);display:grid}.frame-dock{border-top:1px solid var(--cy-border);background:var(--ph-dock);border-radius:0 0 var(--cy-r-panel) var(--cy-r-panel);padding:16px clamp(14px,2.5vw,22px) 18px}.dock-q{font:500 var(--cy-t-16)/1.35 var(--cy-font-text);color:var(--cy-fg-2);margin:0 0 12px}.ask{align-items:flex-start;gap:14px;padding:clamp(18px,3vw,28px) clamp(18px,3vw,32px) 0;display:flex}.ask-text{min-width:0}.ask h2{font:600 var(--cy-t-32)/1.12 var(--cy-font-display);letter-spacing:-.015em;outline:none}.ask-sub{font:400 var(--cy-t-16)/1.4 var(--cy-font-text);color:var(--cy-fg-3);max-width:60ch;margin-top:6px}.ask-again{background:var(--cy-phonics-tint);width:52px;height:52px;color:var(--ph-ear,var(--cy-phonics));cursor:pointer;transition:transform var(--cy-d-1) var(--cy-ease-out);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.ask-again:hover{background:color-mix(in srgb, var(--cy-phonics-tint) 70%, var(--cy-phonics) 12%)}.ask-again:active{transform:scale(.95)}.ask-again.is-playing{box-shadow:0 0 0 4px color-mix(in srgb, var(--cy-phonics) 30%, transparent)}.rline{flex-wrap:nowrap;align-items:flex-end;max-width:100%;padding:24px clamp(14px,2.4vw,26px) 30px;display:inline-flex;position:relative}.rline-gap-letters{gap:clamp(2px,.6vw,8px)}.rline-gap-words{flex-wrap:wrap;justify-content:center;gap:.4em .32em}.rl-base{background:var(--ph-line);border-radius:2px;height:3px;position:absolute;bottom:20px;left:0;right:0}.rline-gap-words .rl-base{display:none}.rl-unit{z-index:1;color:var(--cy-fg);font-family:var(--cy-font-display);letter-spacing:0;transition:color var(--cy-d-2), background var(--cy-d-2);background:0 0;border:0;border-radius:12px;padding:0 .06em;font-weight:500;line-height:1;display:inline-block;position:relative}.rline-xl .rl-unit{font-size:clamp(64px,7vw + 30px,116px)}.rline-l .rl-unit{font-size:clamp(48px,4.5vw + 24px,80px)}.rline-gap-letters.rline-xl .rl-unit{font-size:min(clamp(64px, 7vw + 30px, 116px), calc((100vw - 104px - (var(--rl-units,4) - 1) * 8px) / (var(--rl-len,4) * .62 + var(--rl-units,4) * .14)))}.rline-gap-letters.rline-l .rl-unit{font-size:min(clamp(48px, 4.5vw + 24px, 80px), calc((100vw - 104px - (var(--rl-units,4) - 1) * 8px) / (var(--rl-len,4) * .62 + var(--rl-units,4) * .14)))}.rline-m .rl-unit{font-size:clamp(30px,2.4vw + 18px,46px)}.rl-btn{cursor:pointer;min-width:48px;min-height:64px}.rl-btn:hover{background:var(--cy-phonics-tint)}.rl-unit.is-lit{color:var(--cy-phonics-ink)}.rl-unit.is-done{color:var(--cy-fg)}.rl-unit.is-next{box-shadow:inset 0 -4px 0 var(--cy-spark)}.rl-unit.is-heart{color:var(--ph-heart)}.rl-unit.is-gap{min-width:.9em;box-shadow:inset 0 -5px 0 var(--cy-spark);background:var(--cy-spark-tint);outline:2px dashed var(--cy-fg-3);outline-offset:2px;border-radius:4px}.rl-unit.is-hidden{color:#0000;box-shadow:inset 0 -3px 0 var(--ph-line,#c6c2d4)}.rl-heart{width:.26em;height:.24em;fill:var(--ph-heart);margin-left:-.13em;position:absolute;top:-.32em;left:50%}.rl-spark{z-index:2;background:var(--cy-spark);width:17px;height:17px;box-shadow:0 0 0 2px var(--cy-spark-ink), 0 0 0 6px #ffc53d47;transition:left var(--cy-d-3) var(--cy-ease-click);border-radius:50%;margin-left:-8.5px;position:absolute;bottom:13px}.lcard{border-radius:var(--cy-r-card);background:var(--ph-card);color:var(--cy-fg);font-family:var(--cy-font-display);box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press);cursor:default;transition:transform var(--cy-d-1) var(--cy-ease-out), box-shadow var(--cy-d-2), background var(--cy-d-2);border:0;place-items:center;font-weight:500;display:inline-grid;position:relative}button.lcard{cursor:pointer}button.lcard:hover:not(:disabled){transform:translateY(-1px)}button.lcard:active:not(:disabled){box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 1px 0 var(--ph-card-press);transform:translateY(3px)}.lcard-s{min-width:56px;height:64px;padding:0 10px;font-size:30px}.lcard-m{min-width:76px;height:88px;font-size:var(--cy-t-44);padding:0 14px}.lcard-l{min-width:108px;height:124px;padding:0 18px;font-size:clamp(56px,4vw + 30px,76px)}.lcard.is-lit{background:var(--cy-phonics-tint);box-shadow:0 0 0 2px var(--cy-phonics), 0 4px 0 var(--ph-ok-edge)}.lcard.is-next{box-shadow:0 0 0 2.5px var(--cy-spark), 0 4px 0 var(--ph-try-edge)}.lcard.is-placed{background:var(--ph-card)}.lcard.is-right{background:var(--cy-phonics-tint);color:var(--cy-phonics-ink);box-shadow:0 0 0 2px var(--cy-phonics), 0 4px 0 var(--ph-ok-edge)}.lcard.is-no{color:var(--cy-fg-3);background:repeating-linear-gradient(-45deg, var(--ph-card) 0 6px, var(--cy-spark-tint) 6px 12px);box-shadow:0 0 0 2px var(--cy-spark), 0 4px 0 var(--ph-try-edge)}.lcard.is-ghost{color:#0000;box-shadow:inset 0 0 0 2px var(--ph-target-edge);background:0 0;border:0}.lcard:disabled{opacity:.45;cursor:default;transform:none}.lc-mark{border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:-9px;right:-9px}.lc-mark-ok{background:var(--cy-phonics);color:#fff}.lc-mark-no{background:var(--cy-spark);color:var(--cy-ink)}.lc-heart{background:var(--ph-heart);width:14px;height:13px;clip-path:path("M7 12.5 C2.6 9.4 0.5 7.3 0.5 4.9 0.5 2.6 2.1 1 4 1 5.3 1 6.4 1.8 7 2.9 7.6 1.8 8.7 1 10 1 11.9 1 13.5 2.6 13.5 4.9 13.5 7.3 11.4 9.4 7 12.5Z");position:absolute;top:7px;right:8px}.choices{grid-template-columns:repeat(auto-fit,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.choices-spoken{grid-template-columns:repeat(var(--n,3), minmax(0, 1fr)) 96px}.choices-print.choices-letters{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.choices-print.choices-words{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.acard{border-radius:var(--cy-r-card);background:var(--ph-card);min-height:92px;color:var(--cy-fg);box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press);cursor:pointer;transition:transform var(--cy-d-1) var(--cy-ease-out), box-shadow var(--cy-d-2), background var(--cy-d-2);border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px 14px;display:flex;position:relative}.choices-print.choices-letters .acard{min-width:104px;min-height:112px}.acard:hover:not(:disabled){transform:translateY(-1px)}.acard:active:not(:disabled){box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 1px 0 var(--ph-card-press);transform:translateY(3px)}.acard-print{font:500 var(--cy-t-44)/1 var(--cy-font-display)}.choices-words .acard-print{font-size:clamp(30px,1.6vw + 22px,40px)}.acard-num{font:700 var(--cy-t-16)/1 var(--cy-font-display);color:var(--cy-fg-2)}.acard-dot svg{width:48px;height:48px;display:block}.ad-disc{fill:var(--cy-phonics)}.ad-wave{fill:none;stroke:#fff;stroke-width:3.4px;stroke-linecap:round}.ad-spark{fill:var(--cy-spark);stroke:var(--cy-surface);stroke-width:2.5px}.acard.is-playing .acard-dot svg{animation:ph-pulse .9s var(--cy-ease-out) infinite}.acard.is-selected{box-shadow:0 0 0 3px var(--cy-fg), 0 4px 0 var(--cy-fg)}.acard.is-right{background:var(--cy-phonics-tint);box-shadow:0 0 0 2.5px var(--cy-phonics), 0 4px 0 var(--ph-ok-edge)}.acard.is-no,.acard.is-out{background:repeating-linear-gradient(-45deg, var(--ph-card) 0 7px, var(--cy-spark-tint) 7px 14px);box-shadow:0 0 0 2px var(--cy-spark), 0 4px 0 var(--ph-try-edge);color:var(--cy-fg-3)}.acard.is-out{opacity:.7;cursor:default}.acard.is-rest{opacity:.55}.acard:disabled{cursor:default;transform:none}.acard-heard{color:var(--cy-phonics);position:absolute;top:8px;right:10px}.acard-mark{border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:-10px;right:-10px}.acard-mark-ok{background:var(--cy-phonics);color:#fff}.acard-mark-no{background:var(--cy-spark);color:var(--cy-ink)}.acard-reveal{font:600 var(--cy-t-20)/1 var(--cy-font-display);color:var(--cy-fg)}.check-btn{border-radius:var(--cy-r-card);background:var(--cy-phonics);color:#fff;cursor:pointer;min-height:92px;box-shadow:0 4px 0 var(--ph-ok-edge);transition:transform var(--cy-d-1) var(--cy-ease-out), background var(--cy-d-2);border:0;place-items:center;display:grid}.check-btn:active:not(:disabled){box-shadow:0 1px 0 var(--ph-ok-edge);transform:translateY(3px)}.check-btn:disabled{background:var(--cy-bg-3);color:var(--cy-fg-3);box-shadow:0 4px 0 var(--ph-card-edge);cursor:default}.fb{animation:ph-rise var(--cy-d-2) var(--cy-ease-out);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;display:grid}.fb-glyph{border-radius:50%;place-items:center;width:56px;height:56px;display:grid}.fb-ok .fb-glyph{background:var(--cy-phonics);color:#fff;animation:ph-settle var(--cy-d-3) var(--cy-ease-click)}.fb-try .fb-glyph{background:var(--cy-spark);color:var(--cy-ink)}.fb-show .fb-glyph{background:var(--cy-phonics-tint);color:var(--cy-phonics)}.fb-text{min-width:0}.fb-line{font:600 var(--cy-t-24)/1.25 var(--cy-font-display);letter-spacing:-.01em}.fb-detail{font:400 var(--cy-t-16)/1.4 var(--cy-font-text);color:var(--cy-fg-2);margin-top:4px}.fb-detail b{font-family:var(--cy-font-display);color:var(--cy-fg);font-weight:600}.go-btn{border-radius:var(--cy-r-card);background:var(--cy-phonics);color:#fff;min-height:64px;font:700 var(--cy-t-20)/1 var(--cy-font-display);letter-spacing:-.01em;cursor:pointer;box-shadow:0 4px 0 var(--ph-ok-edge);transition:transform var(--cy-d-1) var(--cy-ease-out), background var(--cy-d-2), opacity var(--cy-d-2);white-space:nowrap;border:0;justify-content:center;align-items:center;gap:10px;padding:0 26px;display:inline-flex}@media (hover:hover){.go-btn:not(.go-line):not(.go-quiet):not(.go-try):hover:not(:disabled){background:color-mix(in srgb, var(--cy-phonics) 90%, #000)}.go-btn.go-line:hover:not(:disabled){box-shadow:0 0 0 2px var(--cy-fg), 0 4px 0 var(--ph-card-press)}.go-btn.go-quiet:hover:not(:disabled){background:var(--cy-bg-3);color:var(--cy-fg)}}.go-btn:active:not(:disabled){box-shadow:0 1px 0 var(--ph-ok-edge);transform:translateY(3px)}.go-btn:disabled{background:var(--cy-bg-3);color:var(--cy-fg-3);box-shadow:0 4px 0 var(--ph-card-edge);cursor:default}.go-btn.go-try{background:var(--cy-spark);color:var(--cy-ink);box-shadow:0 4px 0 var(--ph-try-edge)}.go-btn.go-try:hover:not(:disabled){background:color-mix(in srgb, var(--cy-spark) 90%, #000)}.go-btn.go-line{background:var(--ph-card);color:var(--cy-fg);box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press)}.go-btn.go-quiet{color:var(--cy-fg-2);box-shadow:none;background:0 0}.go-btn.is-waiting{opacity:.85}.hear{background:var(--ph-card);color:var(--cy-fg);font:600 var(--cy-t-20)/1 var(--cy-font-display);box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 4px 0 var(--ph-card-press);cursor:pointer;transition:transform var(--cy-d-1) var(--cy-ease-out);border:0;border-radius:999px;align-items:center;gap:16px;padding:10px 28px 10px 10px;display:inline-flex}.hear:active{box-shadow:0 0 0 1.5px var(--ph-card-edge), 0 1px 0 var(--ph-card-press);transform:translateY(3px)}.hear-dot svg{width:72px;height:72px;display:block}.hear-m .hear-dot svg{width:56px;height:56px}.hear.is-playing .hear-dot svg{animation:ph-pulse .9s var(--cy-ease-out) infinite}.hear.is-missing{color:var(--cy-fg-3)}.hear.is-missing .ad-disc{fill:var(--cy-bg-3)}.hear.is-missing .ad-wave{stroke:var(--cy-fg-3)}.steps{background:var(--cy-bg-2);border-radius:999px;gap:4px;margin:0;padding:4px;display:inline-flex}.step{height:32px;color:var(--cy-fg-3);font:600 var(--cy-t-14)/1 var(--cy-font-display);border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 10px;display:inline-flex}.step.is-now{background:var(--cy-surface);color:var(--cy-fg);box-shadow:var(--cy-e-1)}@keyframes ph-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ph-settle{0%{transform:scale(.6)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes ph-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (max-width:640px){.step:not(.is-now) .step-name{display:none}.step:not(.is-now){padding-inline:10px}.ask{gap:12px}.ask-again{width:48px;height:48px}.choices-spoken{grid-template-columns:repeat(var(--n,3), minmax(0, 1fr))}.choices-spoken .check-btn{grid-column:1/-1;min-height:64px}.acard{min-height:84px}.choices-print.choices-letters .acard{min-width:88px;min-height:96px}.fb{grid-template-columns:auto 1fr;gap:12px 14px}.fb .go-btn{grid-column:1/-1;width:100%}.fb-glyph{width:48px;height:48px}.lcard-m{min-width:62px;height:74px;padding:0 10px;font-size:34px}.lcard-l{min-width:84px;height:100px}}@media (max-height:700px) and (max-width:640px){.frame-look{gap:12px;min-height:0;padding-top:8px;padding-bottom:10px}.rline-xl .rl-unit{font-size:60px}.hear-dot svg{width:48px;height:48px}.ask h2{font-size:var(--cy-t-24)}.ask .ask-sub{display:none}.hear{min-height:56px;padding-block:4px}.intro-sounds{font-size:18px}.lcard-l{height:84px}.choices-spoken{grid-template-columns:repeat(calc(var(--n,3) + 1), minmax(0, 1fr))}.choices-spoken .check-btn{grid-column:auto;min-height:64px}.acard{min-height:72px}}@media (prefers-reduced-motion:reduce){.rl-spark{transition:none}.fb,.fb-ok .fb-glyph,.acard.is-playing .acard-dot svg,.hear.is-playing .hear-dot svg{animation:none}}.page.page-home{align-content:center;width:100%;max-width:1080px;min-height:calc(100dvh - 180px);margin:0 auto}.home{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(28px,4vw,56px);display:grid}.home-who{align-items:center;gap:14px;margin-bottom:22px;display:flex}.home-avatar{color:#fff;width:56px;height:56px;font:700 24px/1 var(--cy-font-display);border-radius:50%;flex:none;place-items:center;display:grid}.home-who p{font:500 var(--cy-t-20)/1.2 var(--cy-font-display);color:var(--cy-fg-2);margin:0}.home-title{align-items:center;gap:12px;margin-bottom:8px;display:flex}.home-title h1{font:700 clamp(40px, 3vw + 22px, 60px)/1.02 var(--cy-font-display);letter-spacing:-.025em;margin:0}.home-title .ask-again{flex:none}.home-today{font:400 var(--cy-t-20)/1.4 var(--cy-font-text);color:var(--cy-fg-2);max-width:30ch;margin:0 0 30px}.home-today b{font-family:var(--cy-font-display);color:var(--cy-fg);font-weight:600}.home-gr{padding:0 2px;font-size:1.25em}.home-start{background:var(--cy-phonics);color:#fff;min-height:76px;font:700 var(--cy-t-24)/1 var(--cy-font-display);cursor:pointer;box-shadow:0 4px 0 var(--cy-phonics-ink), 0 18px 30px -18px #00501499;transition:transform var(--cy-d-1) var(--cy-ease-out), box-shadow var(--cy-d-1) var(--cy-ease-out);border:0;border-radius:999px;align-items:center;gap:16px;padding:0 34px 0 14px;display:inline-flex}.home-start:hover{transform:translateY(-1px)}.home-start:active{box-shadow:0 1px 0 var(--cy-phonics-ink), 0 10px 20px -16px #00501499;transform:translateY(3px)}.home-start:focus-visible{outline:3px solid var(--cy-fg);outline-offset:4px}.home-play{width:50px;height:50px;color:var(--cy-phonics);background:#fff;border-radius:50%;place-items:center;padding-left:3px;display:grid}@media (max-width:760px){.page-home{align-items:start;min-height:0}.home{grid-template-columns:1fr;gap:26px}.home-start{justify-content:center;width:100%}.home-who{margin-bottom:14px}.home-today{margin-bottom:22px}}@media (prefers-reduced-motion:reduce){.home-start{transition:none}}.home-gr-btn{vertical-align:middle;background:var(--cy-surface);min-width:52px;height:52px;box-shadow:var(--cy-e-1), inset 0 -3px 0 var(--cy-border);color:var(--cy-fg);font:700 30px/1 var(--cy-font-display);cursor:pointer;border:0;border-radius:16px;place-items:center;margin-left:4px;padding:0 12px;display:inline-grid}.home-gr-btn:hover{box-shadow:var(--cy-e-1), inset 0 -3px 0 var(--cy-spark)}.home-gr-btn.is-playing{box-shadow:0 0 0 4px #ffc53d59, inset 0 -3px 0 var(--cy-spark)}.home-gr-btn:focus-visible{outline:3px solid var(--cy-fg);outline-offset:3px}.cy-feedback{justify-items:start;gap:0;display:grid}.cy-feedback-link{min-width:44px;min-height:44px;color:inherit;text-underline-offset:4px;cursor:pointer;align-items:center;font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px;display:inline-flex}.cy-feedback-link:focus-visible{outline-offset:2px;border-radius:4px;outline:3px solid}.cy-feedback-note{font-size:.875em;line-height:1.3}@media print{.cy-feedback{display:none!important}}@font-face{font-family:Lexend;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/lexend-latin-ext-wght-normal-B6JQhE1e.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-weight:200 800;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-wght-italic-DC5MiAaX.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-weight:200 800;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-ext-wght-italic-Cigfgs4r.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cylin Digits;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2)format("woff2");unicode-range:U+30-39}:root{--cy-ink:#15142b;--cy-ink-2:#45435e;--cy-ink-3:#6b6880;--cy-paper:#fff;--cy-mist:#efeef5;--cy-mist-2:#e5e4ee;--cy-line:#dedce7;--cy-line-2:#cfcdda;--cy-spark:#ffc53d;--cy-spark-ink:#7a5000;--cy-spark-tint:#fff4d6;--cy-phonics:#008228;--cy-phonics-bright:#22b04a;--cy-phonics-tint:#e4f5e8;--cy-phonics-ink:#07471a;--cy-vocab:#1d64c9;--cy-vocab-bright:#3d86f5;--cy-vocab-tint:#e9f1fd;--cy-vocab-ink:#0e3a7a;--cy-mult:#c2470f;--cy-mult-bright:#f26a2a;--cy-mult-tint:#fdeee5;--cy-mult-ink:#7a2a06;--cy-piano:#8a3fd1;--cy-piano-bright:#a866f2;--cy-piano-tint:#f4ecfd;--cy-piano-ink:#4e1d86;--cy-add:#0b7285;--cy-add-bright:#1aa3b8;--cy-add-tint:#e3f4f7;--cy-add-ink:#063f4a;--cy-sub:#b0306a;--cy-sub-bright:#e2508f;--cy-sub-tint:#fbe9f1;--cy-sub-ink:#6b1239;--cy-div:#647800;--cy-div-bright:#93b300;--cy-div-tint:#f1f6d8;--cy-div-ink:#364200;--cy-practice:#434bd0;--cy-practice-bright:#6d76f5;--cy-practice-tint:#eceefe;--cy-practice-ink:#20267f;--cy-ok:#1e7a4f;--cy-ok-tint:#e3f3ea;--cy-warn:#8a5a00;--cy-warn-tint:#fff2d1;--cy-bad:#b3372e;--cy-bad-tint:#fce8e6;--cy-av-0:#5b4bd6;--cy-av-1:#0e7c74;--cy-av-2:#c24e26;--cy-av-3:#2b7f39;--cy-av-4:#9a6a00;--cy-av-5:#2667c9;--cy-av-6:#c23d7b;--cy-av-7:#7b4fb0;--cy-font-display:"Lexend", "Avenir Next", "Segoe UI", system-ui, sans-serif;--cy-font-text:"Cylin Digits", "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;--cy-t-12:.75rem;--cy-t-14:.875rem;--cy-t-16:1rem;--cy-t-18:1.125rem;--cy-t-20:1.25rem;--cy-t-24:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--cy-t-32:clamp(1.6rem, 1.3rem + 1.2vw, 2rem);--cy-t-44:clamp(2rem, 1.5rem + 2.2vw, 2.75rem);--cy-t-64:clamp(2.6rem, 1.6rem + 4.4vw, 4rem);--cy-t-88:clamp(3rem, 1.6rem + 6.4vw, 5.5rem);--cy-s-1:4px;--cy-s-2:8px;--cy-s-3:12px;--cy-s-4:16px;--cy-s-5:20px;--cy-s-6:24px;--cy-s-8:32px;--cy-s-10:40px;--cy-s-12:48px;--cy-s-16:64px;--cy-s-20:80px;--cy-s-24:96px;--cy-r-chip:8px;--cy-r-control:12px;--cy-r-card:18px;--cy-r-panel:28px;--cy-r-tile:22.5%;--cy-e-1:0 0 0 1px #15142b12, 0 1px 2px #15142b0f, 0 4px 14px -6px #15142b1f;--cy-e-2:0 0 0 1px #15142b0f, 0 1px 2px #15142b0f, 0 18px 40px -16px #15142b47;--cy-gutter:clamp(16px, 4vw, 40px);--cy-wrap:1200px;--cy-ease-draw:cubic-bezier(.65, 0, .35, 1);--cy-ease-out:cubic-bezier(.2, .8, .2, 1);--cy-ease-click:cubic-bezier(.34, 1.56, .64, 1);--cy-d-1:.12s;--cy-d-2:.22s;--cy-d-3:.42s;--cy-d-4:.7s;--cy-bg:var(--cy-paper);--cy-bg-2:var(--cy-mist);--cy-bg-3:var(--cy-mist-2);--cy-surface:var(--cy-paper);--cy-fg:var(--cy-ink);--cy-fg-2:var(--cy-ink-2);--cy-fg-3:var(--cy-ink-3);--cy-border:var(--cy-line);--cy-border-2:var(--cy-line-2);--cy-scrim:#15142b61;--cy-focus-ring:0 0 0 3px var(--cy-surface), 0 0 0 6px var(--cy-fg)}[data-cy-theme=dark]{--cy-bg:#121124;--cy-bg-2:#1a1930;--cy-bg-3:#23223b;--cy-surface:#1a1930;--cy-fg:#f4f3f8;--cy-fg-2:#c9c7d9;--cy-fg-3:#9c9ab2;--cy-border:#2e2d48;--cy-border-2:#403f5e;--cy-spark-ink:#ffd97a;--cy-spark-tint:#3a2f12;--cy-phonics-tint:#10301c;--cy-phonics-ink:#b4ecc0;--cy-phonics-bright:#4fd474;--cy-vocab-tint:#16264a;--cy-vocab-ink:#bcd3ff;--cy-vocab-bright:#6aa3ff;--cy-mult-tint:#3a1d10;--cy-mult-ink:#ffc6a6;--cy-mult-bright:#ff8a50;--cy-piano-tint:#2a1a45;--cy-piano-ink:#dcc6ff;--cy-piano-bright:#c08cff;--cy-add-tint:#0f2e35;--cy-add-ink:#b5e6ef;--cy-add-bright:#3cc3d8;--cy-sub-tint:#3a1527;--cy-sub-ink:#ffc2dc;--cy-sub-bright:#ff7fb3;--cy-div-tint:#262d0c;--cy-div-ink:#dcec9c;--cy-div-bright:#b5d33a;--cy-practice-tint:#1c1f4a;--cy-practice-ink:#c5c9ff;--cy-practice-bright:#8b93ff;--cy-ok-tint:#12321f;--cy-warn-tint:#3a3217;--cy-bad-tint:#3d2220;--cy-e-1:0 0 0 1px #ffffff0a, 0 1px 2px #0000004d;--cy-e-2:0 1px 2px #0006, 0 18px 40px -16px #000000b3;--cy-scrim:#0000008c}@media (prefers-color-scheme:dark){:root[data-cy-theme=auto]{--cy-bg:#121124;--cy-bg-2:#1a1930;--cy-bg-3:#23223b;--cy-surface:#1a1930;--cy-fg:#f4f3f8;--cy-fg-2:#c9c7d9;--cy-fg-3:#9c9ab2;--cy-border:#2e2d48;--cy-border-2:#403f5e;--cy-spark-ink:#ffd97a;--cy-spark-tint:#3a2f12;--cy-phonics-tint:#10301c;--cy-phonics-ink:#b4ecc0;--cy-phonics-bright:#4fd474;--cy-vocab-tint:#16264a;--cy-vocab-ink:#bcd3ff;--cy-vocab-bright:#6aa3ff;--cy-mult-tint:#3a1d10;--cy-mult-ink:#ffc6a6;--cy-mult-bright:#ff8a50;--cy-piano-tint:#2a1a45;--cy-piano-ink:#dcc6ff;--cy-piano-bright:#c08cff;--cy-add-tint:#0f2e35;--cy-add-ink:#b5e6ef;--cy-add-bright:#3cc3d8;--cy-sub-tint:#3a1527;--cy-sub-ink:#ffc2dc;--cy-sub-bright:#ff7fb3;--cy-div-tint:#262d0c;--cy-div-ink:#dcec9c;--cy-div-bright:#b5d33a;--cy-practice-tint:#1c1f4a;--cy-practice-ink:#c5c9ff;--cy-practice-bright:#8b93ff;--cy-ok-tint:#12321f;--cy-warn-tint:#3a3217;--cy-bad-tint:#3d2220;--cy-e-1:0 0 0 1px #ffffff0a, 0 1px 2px #0000004d;--cy-e-2:0 1px 2px #0006, 0 18px 40px -16px #000000b3;--cy-scrim:#0000008c}}.cy-dot{background:var(--cy-spark);vertical-align:baseline;border-radius:50%;width:.2em;height:.2em;margin-left:.04em;display:inline-block;transform:translateY(-.02em)}.cy-nowrap{white-space:nowrap}.cy-track{--cy-track-color:var(--cy-fg);align-items:center;display:flex}.cy-track i{background:var(--cy-border);flex:1;height:3px}.cy-track b{background:var(--cy-border);border-radius:50%;flex:none;width:12px;height:12px}.cy-track b.done,.cy-track i.done{background:var(--cy-track-color)}.cy-track b.now{background:var(--cy-spark);box-shadow:0 0 0 4px var(--cy-spark-tint)}.cy-tile{border-radius:var(--cy-r-tile);flex:none;display:block}.cy-chip{border-radius:var(--cy-r-chip);min-height:28px;font:700 var(--cy-t-14)/1 var(--cy-font-text);background:var(--cy-bg-2);color:var(--cy-fg-2);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.cy-chip-spark{background:var(--cy-spark-tint);color:var(--cy-spark-ink)}.cy-sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cy-avatar{box-shadow:0 0 0 1px color-mix(in srgb, var(--cy-fg) 10%, transparent);object-fit:cover;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;display:inline-grid}.cy-avatar-initial{color:#fff;font-family:var(--cy-font-display);box-shadow:none;font-weight:700;line-height:1}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ph-green:var(--cy-phonics);--ph-green-ink:var(--cy-phonics-ink);--ph-tint:var(--cy-phonics-tint);--ph-letter:var(--cy-fg);--ph-tile:var(--cy-surface);--ph-tile-edge:var(--cy-border-2);--wave-ink:var(--cy-phonics-bright);--wave-dim:var(--cy-border-2);--ph-lift:var(--cy-e-1);--ph-track:var(--cy-border-2);--ph-hidden:var(--cy-border-2)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-cy-theme=dark]{--ph-lift:0 0 #0000;--ph-track:var(--cy-border);--ph-hidden:var(--cy-border);--ph-ground:var(--cy-bg);--ph-ear:var(--cy-phonics-ink);--ph-stage-edge:var(--cy-border-2)}@media (prefers-color-scheme:dark){:root[data-cy-theme=auto]{--ph-lift:0 0 #0000;--ph-track:var(--cy-border);--ph-hidden:var(--cy-border);--ph-ground:var(--cy-bg);--ph-ear:var(--cy-phonics-ink);--ph-stage-edge:var(--cy-border-2)}}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--ph-ground,var(--cy-bg-2));color:var(--cy-fg);font:400 var(--cy-t-16)/1.55 var(--cy-font-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}h1,h2,h3,h4{font-family:var(--cy-font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}p{text-wrap:pretty;margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--cy-fg);outline-offset:3px;border-radius:8px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--cy-fg-3)}.small{font-size:var(--cy-t-14)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ink-green{color:var(--ph-green-ink)}code{background:var(--cy-bg-2);border-radius:5px;padding:1px 5px;font:600 .92em/1.3 ui-monospace,SF Mono,Menlo,monospace}.shell{flex-direction:column;min-height:100dvh;display:flex}main{width:100%;max-width:calc(1240px + 2 * var(--cy-gutter));padding:clamp(20px, 4vw, 40px) var(--cy-gutter) 72px;flex:1;margin:0 auto}.page{align-content:start;gap:24px;display:grid}.btn{border-radius:var(--cy-r-control);min-height:52px;font:600 var(--cy-t-18)/1 var(--cy-font-display);letter-spacing:-.01em;cursor:pointer;background:var(--cy-fg);color:var(--cy-bg);transition:transform var(--cy-d-1) var(--cy-ease-out), background var(--cy-d-2), box-shadow var(--cy-d-2);border:0;justify-content:center;align-items:center;gap:10px;padding:0 22px;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{min-height:48px;font-size:var(--cy-t-16);padding:0 16px}.btn-go{background:var(--ph-green);color:#fff;box-shadow:inset 0 -3px #0000002e}.btn-go:hover:not(:disabled){background:color-mix(in srgb, var(--ph-green) 88%, #000)}.btn-ink{background:var(--cy-fg);color:var(--cy-bg)}.btn-line{background:var(--cy-surface);color:var(--cy-fg);box-shadow:inset 0 0 0 1.5px var(--cy-border-2)}.btn-line:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--cy-fg)}.btn-line.is-on{box-shadow:inset 0 0 0 2.5px var(--cy-fg)}.btn-quiet{color:var(--cy-fg-2);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--cy-bg-3);color:var(--cy-fg)}.btn-danger-line{background:var(--cy-surface);color:var(--cy-bad);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--cy-bad) 55%, transparent)}.btn-danger-line.is-on{box-shadow:inset 0 0 0 2.5px var(--cy-bad)}.text-btn,.link-btn{min-height:0;color:var(--cy-fg);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:6px 0;font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px}.sound-dot{flex:none;place-items:center;display:inline-grid;position:relative}.sound-dot svg{z-index:1;display:block;position:relative}.sound-dot-disc{fill:var(--ph-green)}.sound-dot-wave{fill:none;stroke:#fff;stroke-width:3.2px;stroke-linecap:round}.sound-dot-spark{fill:var(--cy-spark);stroke:var(--cy-surface);stroke-width:2px}.sound-dot-slash{stroke:var(--cy-fg-3);stroke-width:3.2px;stroke-linecap:round}.sound-dot.is-missing .sound-dot-disc{fill:var(--cy-bg-3);stroke:var(--cy-border-2);stroke-width:1.5px}.sound-dot.is-missing .sound-dot-spark{fill:var(--cy-border-2)}.sound-dot-ring{border:2px solid var(--ph-green);opacity:0;border-radius:50%;position:absolute;inset:0}.sound-dot.is-playing .sound-dot-ring{animation:ripple 1.4s var(--cy-ease-out) infinite}.sound-dot.is-playing .sound-dot-ring+.sound-dot-ring{animation-delay:.45s}@keyframes ripple{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.sound-btn{background:var(--cy-surface);min-height:56px;box-shadow:inset 0 0 0 1.5px var(--cy-border);cursor:pointer;font:600 var(--cy-t-18)/1.1 var(--cy-font-display);text-align:left;border:0;border-radius:999px;align-items:center;gap:14px;padding:6px 20px 6px 6px;display:inline-flex}.sound-btn:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--ph-green)}.sound-btn:disabled{opacity:.55;cursor:not-allowed}.sound-btn.is-missing{color:var(--cy-fg-2)}.sound-btn-missing{font:700 var(--cy-t-12)/1 var(--cy-font-text);color:var(--cy-fg-3);background:var(--cy-bg-2);border-radius:6px;margin-left:-4px;padding:5px 8px}.sound-btn.chip-sound{min-height:48px;font-size:var(--cy-t-18);gap:8px;padding-right:14px}.say-for-me{border-radius:var(--cy-r-card);background:var(--cy-bg-2);color:var(--cy-fg-2);font-size:var(--cy-t-14);text-align:center;justify-items:center;gap:6px;max-width:460px;margin:0 auto;padding:12px 16px;display:grid}.say-for-me-word{font:600 var(--cy-t-20)/1.2 var(--cy-font-display);color:var(--cy-fg)}.heart{fill:#e0447a;flex:none}.picker-avatar.sm{width:32px;height:32px;margin:0;font-size:1rem}.picker-skeleton{justify-content:center;gap:16px;margin-top:80px;display:flex}.picker-skeleton span{border-radius:var(--cy-r-panel);background:var(--cy-bg-3);width:240px;height:210px;animation:1.4s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.55}}.intro-card,.empty-state{border-radius:var(--cy-r-panel);background:var(--cy-surface);width:min(620px,100%);box-shadow:var(--cy-e-1), inset 0 0 0 1px var(--cy-border);justify-items:start;gap:16px;margin:clamp(12px,5vw,56px) auto 0;padding:clamp(24px,5vw,44px);display:grid}.intro-card h1,.empty-state h1{font-size:var(--cy-t-32)}.intro-card .go-btn{white-space:normal}@media (max-width:640px){.intro-actions{flex-direction:column;align-items:stretch;width:100%}.intro-actions .go-btn{width:100%}}.empty-state{text-align:center;justify-items:center}.page-learn{gap:18px}.ex{gap:clamp(18px,3vw,28px);display:grid}.stage>.ex{padding:clamp(20px,5vw,48px)}.ex-prompt{gap:6px;display:grid}.ex-prompt h2{font-size:var(--cy-t-32)}.ex-prompt p{color:var(--cy-fg-2);font-size:var(--cy-t-18)}.ex-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.listen-row{justify-content:center;display:flex}.grapheme{font-family:var(--cy-font-display);letter-spacing:0;font-weight:500}.tile{background:var(--ph-tile);min-width:64px;min-height:64px;color:var(--ph-letter);box-shadow:inset 0 0 0 1.5px var(--ph-tile-edge), inset 0 -4px 0 var(--cy-bg-3);font:500 var(--cy-t-24)/1 var(--cy-font-display);cursor:pointer;transition:transform var(--cy-d-1) var(--cy-ease-out), box-shadow var(--cy-d-2), background var(--cy-d-2);border:0;border-radius:16px;padding:8px 18px}.tile:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--ph-green), inset 0 -4px 0 var(--ph-tint)}.tile:active:not(:disabled){transform:translateY(2px)}.tile:disabled{cursor:default}.tile-big{min-width:120px;min-height:84px;font-size:clamp(1.9rem,1.4rem + 2vw,2.6rem)}.tile.is-right{background:var(--ph-tint);box-shadow:inset 0 0 0 2.5px var(--ph-green);color:var(--ph-green-ink)}.tile.is-wrong{background:var(--cy-bg-2);box-shadow:inset 0 0 0 2px var(--cy-border-2);color:var(--cy-fg-3);text-decoration:line-through;text-decoration-thickness:2px}.tile.is-used{opacity:.25}.tile.is-on{box-shadow:inset 0 0 0 2.5px var(--cy-fg)}.choice-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.choice-col{gap:10px;display:grid}.choice-col .tile{text-align:left;font-size:var(--cy-t-20)}.feedback{border-radius:var(--cy-r-card);animation:rise var(--cy-d-3) var(--cy-ease-out);grid-template-columns:auto 1fr auto;align-items:center;gap:14px 16px;padding:16px 18px;display:grid}.feedback-ok{background:var(--ph-tint);color:var(--cy-fg)}.feedback-try{background:var(--cy-spark-tint);color:var(--cy-fg)}.feedback-mark{background:var(--ph-green);width:16px;height:16px;box-shadow:0 0 0 5px color-mix(in srgb, var(--ph-green) 22%, transparent);border-radius:50%}.feedback-try .feedback-mark{background:var(--cy-spark);box-shadow:0 0 0 5px color-mix(in srgb, var(--cy-spark) 30%, transparent)}.feedback-body{font-size:var(--cy-t-18);gap:8px;line-height:1.4;display:grid}.feedback-body b{font-family:var(--cy-font-display);font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.answer-line{gap:6px;display:flex}.answer-line .grapheme{background:var(--cy-surface);font-size:var(--cy-t-24);border-radius:8px;padding:2px 10px}.answer-line .is-focus{box-shadow:inset 0 0 0 2px var(--cy-spark)}.sound-chips{flex-wrap:wrap;gap:8px;display:flex}.grownup-note{color:var(--cy-fg-2);font-size:var(--cy-t-14)}.grownup-note summary{cursor:pointer;min-height:32px;font-weight:700}.grownup-check{border-radius:var(--cy-r-card);background:var(--cy-bg-2);gap:12px;padding:16px;display:grid}.intro-stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(20px,5vw,48px);display:flex}.grapheme-card{aspect-ratio:1;background:var(--ph-tint);min-width:clamp(150px,34vw,230px);color:var(--ph-green-ink);font:500 clamp(5rem, 3rem + 9vw, 8.5rem)/1 var(--cy-font-display);letter-spacing:-.02em;box-shadow:inset 0 -8px 0 color-mix(in srgb, var(--ph-green) 18%, transparent);border-radius:36px;place-items:center;padding:0 20px;display:grid}.intro-side{justify-items:start;gap:14px;max-width:340px;display:grid}.intro-example{font:500 var(--cy-t-44)/1 var(--cy-font-display)}.intro-example mark{color:var(--ph-green-ink);text-underline-offset:8px;text-decoration:underline;text-decoration-thickness:4px;-webkit-text-decoration-color:var(--cy-spark);text-decoration-color:var(--cy-spark);background:0 0}.chip-quick{font-size:var(--cy-t-16);background:var(--cy-spark-tint);color:var(--cy-fg);border-radius:12px;padding:10px 12px}.blend-steps{font:600 var(--cy-t-14)/1 var(--cy-font-text);color:var(--cy-fg-3);gap:6px;margin:0;padding:0;list-style:none;display:flex}.blend-steps li{background:var(--cy-bg-2);border-radius:999px;padding:8px 12px}.blend-steps li.is-now{background:var(--cy-fg);color:var(--cy-bg)}.blend-steps li.is-done{color:var(--ph-green-ink);background:var(--ph-tint)}.blend-word{justify-content:center;gap:4px;padding:8px 0;display:grid}.blend-units{justify-content:center;gap:10px;display:flex}.blend-unit{background:var(--ph-tile);min-width:76px;min-height:96px;box-shadow:inset 0 0 0 1.5px var(--ph-tile-edge), inset 0 -4px 0 var(--cy-bg-3);cursor:pointer;transition:background var(--cy-d-2), box-shadow var(--cy-d-2), transform var(--cy-d-2) var(--cy-ease-click);border:0;border-radius:18px;justify-items:center;gap:6px;padding:12px 14px 10px;display:grid}.blend-unit .grapheme{font-size:clamp(2.4rem,1.6rem + 3vw,3.4rem);line-height:1}.blend-unit.is-lit{background:var(--ph-tint);box-shadow:inset 0 0 0 2.5px var(--ph-green);transform:translateY(-3px)}.blend-unit.is-next{box-shadow:inset 0 0 0 2.5px var(--cy-spark), inset 0 -4px 0 var(--cy-spark-tint)}.blend-unit.is-done{color:var(--ph-green-ink)}.blend-word.is-whole .blend-units{gap:0}.blend-unit.is-static{cursor:default;box-shadow:none;background:0 0;min-width:0;padding-inline:2px}.blend-arrow{width:100%;height:14px;overflow:visible}.blend-arrow line,.blend-arrow path{stroke:var(--cy-border-2);stroke-width:2.5px;fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.blend-arrow.is-moving line,.blend-arrow.is-moving path{stroke:var(--ph-green)}.ear-choices{gap:10px;display:grid}.ear-q{font-weight:700}.letter-show{place-items:center;margin:4px 0 12px;display:grid}.letter-show .grapheme{font:700 clamp(72px, 18vw, 120px)/1 var(--cy-font-display);letter-spacing:.02em}.ear-card.is-right{box-shadow:inset 0 0 0 2px var(--ph-green)}.ear-card.is-wrong{box-shadow:inset 0 0 0 2px var(--cy-bad)}.ear-card{background:var(--cy-bg-2);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px;display:flex}.boxes{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.box{background:var(--cy-surface);width:72px;height:72px;box-shadow:inset 0 0 0 2px var(--cy-border-2);cursor:pointer;border:0;border-radius:14px;place-items:center;display:grid}.box:disabled{cursor:default}.box.is-answer{box-shadow:inset 0 0 0 2px var(--ph-green)}.counter{background:var(--ph-green);width:30px;height:30px;box-shadow:0 0 0 4px var(--ph-tint);animation:drop var(--cy-d-2) var(--cy-ease-click);border-radius:50%}@keyframes drop{0%{transform:scale(.4)}}.slots{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.slot{background:var(--cy-bg-2);min-width:72px;height:84px;box-shadow:inset 0 0 0 2px var(--cy-border-2);font:500 var(--cy-t-32)/1 var(--cy-font-display);cursor:pointer;border:0;border-radius:16px;place-items:center;padding:0 12px;display:grid;position:relative}.slot.is-filled{background:var(--cy-surface);box-shadow:inset 0 0 0 2px var(--cy-fg-3), inset 0 -4px 0 var(--cy-bg-3)}.slot.is-right{box-shadow:inset 0 0 0 2.5px var(--ph-green);background:var(--ph-tint)}.slot.is-wrong{box-shadow:inset 0 0 0 2.5px var(--cy-spark)}.slot .heart{position:absolute;top:6px;right:6px}.tiles{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.heart-parts{justify-content:center;gap:10px;display:flex}.heart-part{background:var(--ph-tile);min-width:84px;min-height:100px;box-shadow:inset 0 0 0 1.5px var(--ph-tile-edge), inset 0 -4px 0 var(--cy-bg-3);cursor:pointer;border:0;border-radius:18px;place-items:center;padding:12px 16px;display:grid;position:relative}.heart-part .grapheme{font-size:clamp(2.4rem,1.6rem + 3vw,3.4rem)}.heart-part.is-heart{background:color-mix(in srgb, #e0447a 9%, var(--cy-surface))}.heart-part .heart{position:absolute;top:8px;right:8px}.heart-part.is-tapped{box-shadow:inset 0 0 0 2.5px var(--ph-green)}.heart-tip{text-align:center;color:var(--cy-fg-2);max-width:54ch;margin:0 auto}.reading-card{border-radius:var(--cy-r-card);background:var(--cy-bg-2);padding:clamp(18px,4vw,32px)}.reading-line{font:500 clamp(1.8rem, 1.3rem + 2vw, 2.6rem)/1.35 var(--cy-font-display);flex-wrap:wrap;gap:6px 4px;display:flex}.word{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:48px;padding:2px 8px}.word:hover{background:var(--cy-surface)}.word.is-lit{background:var(--ph-tint);color:var(--ph-green-ink);box-shadow:inset 0 -3px 0 var(--cy-spark)}.word.is-hidden{cursor:default;background:repeating-linear-gradient(90deg, var(--ph-hidden) 0 12px, transparent 12px 16px) bottom / 100% 3px no-repeat;color:#0000}.story-page .page-no{color:var(--cy-fg-3);font-size:var(--cy-t-14);margin-top:14px}.questions{gap:14px;display:grid}.questions h3{font-size:var(--cy-t-24)}.gate-wrap{justify-items:center;display:grid}.demo-pin{font:700 var(--cy-t-14)/1 var(--cy-font-text);color:var(--cy-spark-ink);background:var(--cy-spark-tint);border-radius:8px;margin-top:-8px;padding:8px 12px}.page-grownups{gap:20px;width:min(1000px,100%);margin:0 auto}.gu-head{justify-content:space-between;align-items:center;display:flex}.gu-head h1{font-size:var(--cy-t-44)}.gu-children{flex-wrap:wrap;gap:8px;display:flex}.gu-child{background:var(--cy-surface);min-height:48px;box-shadow:inset 0 0 0 1.5px var(--cy-border);font:600 var(--cy-t-16)/1 var(--cy-font-display);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:10px;padding:6px 16px 6px 8px;display:inline-flex}.gu-child[aria-selected=true]{box-shadow:inset 0 0 0 2.5px var(--cy-fg)}.gu-hero{border-radius:var(--cy-r-panel);background:var(--ph-tint);flex-wrap:wrap;justify-content:space-between;gap:20px 32px;padding:clamp(20px,4vw,32px);display:flex}.gu-label{color:var(--ph-green-ink);font-weight:700}.gu-lesson{font:600 var(--cy-t-32)/1.15 var(--cy-font-display);max-width:22ch}.gu-next{gap:6px;max-width:60ch;margin-top:12px;display:grid}.gu-next-head{font-weight:700}.gu-next ul{gap:4px;margin:0;padding-left:20px;display:grid}.gu-stats{align-self:end;gap:clamp(18px,4vw,36px);margin:0;display:flex}.gu-stats div{gap:2px;display:grid}.gu-stats dt{font-size:var(--cy-t-14);color:var(--ph-green-ink)}.gu-stats dd{font:600 var(--cy-t-32)/1 var(--cy-font-display);margin:0}.gu-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:20px;display:grid}.gu-section{border-radius:var(--cy-r-panel);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);align-content:start;gap:12px;padding:clamp(18px,3vw,28px);display:grid}.gu-section h2{font-size:var(--cy-t-24)}.gu-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.gu-list li{border-left:3px solid var(--cy-border);gap:2px;padding-left:14px;display:grid}.gu-list li span{color:var(--cy-fg-2);font-size:var(--cy-t-14)}.gu-list li em{color:var(--cy-fg-3);font-size:var(--cy-t-14);font-style:normal}.gu-home li{border-left-color:var(--cy-spark)}.gu-states{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.gu-state{align-content:start;gap:8px;display:grid}.gu-state h3{font-size:var(--cy-t-18);align-items:center;gap:8px;display:flex}.gu-state .count{font:700 var(--cy-t-14)/1 var(--cy-font-text);color:var(--cy-fg-3);margin-left:auto}.state-dot{background:var(--cy-border-2);border-radius:50%;width:12px;height:12px}.gu-state-guided .state-dot{background:var(--cy-spark)}.gu-state-independent .state-dot{background:var(--cy-phonics-bright)}.gu-state-mastered .state-dot,.gu-state-retained .state-dot{background:var(--ph-green)}.gu-state-retained .state-dot{box-shadow:0 0 0 3px var(--ph-tint)}.gu-means{border-radius:var(--cy-r-card);background:var(--cy-bg-2);gap:6px;padding:16px 18px;display:grid}.gu-means h3{font-size:var(--cy-t-18)}.seg{background:var(--cy-bg-2);border-radius:14px;width:-moz-fit-content;width:fit-content;padding:4px;display:inline-flex}.seg-btn{min-width:76px;min-height:48px;font:600 var(--cy-t-16)/1 var(--cy-font-display);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px}.seg-btn[aria-checked=true]{background:var(--cy-surface);box-shadow:var(--cy-e-1), inset 0 0 0 1.5px var(--cy-fg)}.activity-links{flex-wrap:wrap;gap:8px;display:flex}.switch{cursor:pointer;align-items:center;gap:12px;min-height:48px;font-weight:700;display:inline-flex}.switch input{width:22px;height:22px;accent-color:var(--ph-green)}.gu-foot{text-align:center}.gu-help{border-top:1px solid var(--cy-border);text-align:center;color:var(--cy-fg);justify-items:center;gap:4px;margin-top:8px;padding-top:16px;display:grid}.gu-help p{margin:0}.gu-help .cy-feedback{justify-items:center}.unreviewed-badge{left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--cy-fg);color:var(--cy-bg);font:700 var(--cy-t-12)/1 var(--cy-font-text);box-shadow:var(--cy-e-2);border-radius:999px;align-items:center;gap:8px;margin:0;padding:8px 12px;display:inline-flex;position:fixed}.unreviewed-dot{background:var(--cy-spark);border-radius:50%;width:8px;height:8px}.demo-flag{width:-moz-fit-content;width:fit-content;font:700 var(--cy-t-12)/1 var(--cy-font-text);background:var(--cy-spark-tint);color:var(--cy-spark-ink);border-radius:8px;margin:0 auto 24px;padding:8px 12px}.note-warn,.note-error{border-radius:var(--cy-r-control);font-size:var(--cy-t-14);padding:10px 12px;font-weight:700}.note-warn{background:var(--cy-warn-tint);box-shadow:inset 4px 0 0 var(--cy-warn)}.note-error{background:var(--cy-bad-tint);box-shadow:inset 4px 0 0 var(--cy-bad)}@media (max-width:760px){:root{--ph-tabbar-h:calc(65px + env(safe-area-inset-bottom,0px))}.cy-bottom-tabs a{align-content:center;min-height:48px}.shell[data-route=learn] main{padding-bottom:calc(var(--ph-tabbar-h) + 24px)}.stage :is(.ex-actions,.feedback,.grownup-check){bottom:calc(var(--ph-tabbar-h) + 8px);z-index:5;position:sticky}.stage .ex-actions{border-radius:var(--cy-r-card);background:var(--cy-surface);margin-inline:-8px;padding:8px}.unreviewed-badge{bottom:calc(var(--ph-tabbar-h) + 12px)}.ex-prompt h2{font-size:var(--cy-t-24)}.tile-big{min-width:96px}.feedback{grid-template-columns:auto 1fr}.feedback .btn{grid-column:1/-1}.blend-unit{min-width:60px;padding-inline:10px}.box{width:54px;height:54px}.slot{min-width:58px;height:72px}.ex-actions .btn{flex:auto}.stage .ear-choices{bottom:calc(var(--ph-tabbar-h) + 8px);z-index:5;border-radius:var(--cy-r-card);background:var(--cy-surface);flex-wrap:wrap;gap:8px;margin-inline:-8px;padding:8px;display:flex;position:sticky}.ear-choices .ear-q{font-size:var(--cy-t-14,14px);flex:1 0 100%}.ear-card{flex-flow:column;flex:1 1 0;align-items:stretch;gap:6px;min-width:0;padding:6px}.ear-card .sound-btn{text-align:center;font-size:var(--cy-t-14,14px);border-radius:16px;flex-direction:column;justify-content:center;gap:2px;padding:6px}.ear-card .btn{width:100%;padding-inline:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.sound-dot.is-playing .sound-dot-ring:first-child{opacity:.6;transform:scale(1.25)}}.page-studio{gap:18px}.page-studio h1{font-size:var(--cy-t-32)}.studio-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;display:flex}.studio-head p{max-width:70ch}.studio-nav{background:var(--cy-surface);max-width:100%;box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);border-radius:14px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.studio-nav a{min-height:44px;font:600 var(--cy-t-14)/1 var(--cy-font-display);color:var(--cy-fg-2);border-radius:10px;align-items:center;gap:8px;padding:0 14px;text-decoration:none;display:inline-flex}.studio-nav a[aria-current=page]{background:var(--cy-fg);color:var(--cy-bg)}.studio-nav .count{font:700 var(--cy-t-12)/1 var(--cy-font-text);background:var(--cy-bg-2);color:var(--cy-fg-2);border-radius:6px;padding:3px 6px}.studio-empty{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);gap:8px;padding:24px;display:grid}.st-missing{--st:var(--cy-bad);--st-bg:var(--cy-bad-tint)}.st-candidate,.st-license_review,.st-technical_review{--st:#6b6a86;--st-bg:var(--cy-bg-3)}.st-instructional_review{--st:var(--cy-warn);--st-bg:var(--cy-warn-tint)}.st-approved{--st:var(--cy-phonics-bright);--st-bg:var(--cy-phonics-tint)}.st-published{--st:var(--cy-phonics);--st-bg:var(--cy-phonics-tint)}.st-rejected,.st-deprecated{--st:var(--cy-fg-3);--st-bg:var(--cy-bg-2)}.status-chip{background:var(--st-bg);color:var(--cy-fg);font:700 var(--cy-t-12)/1.1 var(--cy-font-text);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.status-chip:before{content:"";background:var(--st);border-radius:50%;flex:none;width:7px;height:7px}.status-chip.is-queued{box-shadow:inset 0 0 0 1.5px var(--cy-fg)}.coverage{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);gap:12px;padding:18px 20px;display:grid}.coverage-main{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.coverage-big{font:500 var(--cy-t-20)/1.2 var(--cy-font-display)}.coverage-big b{font-size:var(--cy-t-32);font-weight:600}.coverage-bar{background:var(--cy-bg-2);border-radius:6px;gap:2px;height:10px;display:flex;overflow:hidden}.coverage-bar span{background:var(--st);min-width:4px}.coverage-legend{font-size:var(--cy-t-14);flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;display:flex}.coverage-legend li{align-items:center;gap:6px;display:inline-flex}.legend-dot{background:var(--st);border-radius:3px;width:10px;height:10px}.filters{flex-wrap:wrap;align-items:end;gap:12px 16px;display:flex}.filters label{font:700 var(--cy-t-12)/1.2 var(--cy-font-text);color:var(--cy-fg-2);gap:4px;display:grid}.filters label.check{min-height:48px;font-size:var(--cy-t-14);color:var(--cy-fg);align-items:center;gap:8px;display:inline-flex}.filters input[type=search],.filters select,.page-studio select,.page-studio input[type=text],.page-studio textarea{border:1.5px solid var(--cy-border-2);background:var(--cy-surface);min-height:44px;color:var(--cy-fg);font:400 var(--cy-t-16)/1.3 var(--cy-font-text);border-radius:10px;padding:8px 12px}.filters input[type=checkbox]{width:20px;height:20px;accent-color:var(--cy-phonics)}.filters-count{align-self:center;margin-left:auto}.table-wrap{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--cy-t-14)}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--cy-border);padding:10px 12px}thead th{font:700 var(--cy-t-12)/1.2 var(--cy-font-text);color:var(--cy-fg-3);background:var(--cy-bg-2);white-space:nowrap;position:sticky;top:0}tbody tr:last-child>*{border-bottom:0}tbody tr:hover{background:color-mix(in srgb, var(--cy-bg-2) 60%, transparent)}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.inventory{min-width:1180px}.unit-link{gap:2px;min-width:64px;text-decoration:none;display:grid}.unit-link .ipa{font:500 var(--cy-t-24)/1 var(--cy-font-display)}.unit-link .unit-id{color:var(--cy-fg-3);text-underline-offset:3px;font-weight:700;text-decoration:underline}.inventory .graphemes{font:500 var(--cy-t-16)/1.3 var(--cy-font-display);white-space:nowrap}.artic{max-width:260px}.clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.variant-chips{gap:4px;margin:0;padding:0;list-style:none;display:grid}.variant-chips li,.unit-required>div{align-items:center;gap:6px;display:flex}.variant{font:700 var(--cy-t-12)/1 var(--cy-font-text);color:var(--cy-fg-3);min-width:34px}.quality{flex-wrap:wrap;gap:2px 8px;display:flex}.quality span{white-space:nowrap}.flag{background:var(--cy-bg-3);font:700 var(--cy-t-12)/1.2 var(--cy-font-text);color:var(--cy-fg-2);border-radius:5px;margin:0 4px 2px 0;padding:2px 6px;display:inline-block}.flag-bad{background:var(--cy-bad-tint);color:var(--cy-fg)}.flag-warn{background:var(--cy-warn-tint);color:var(--cy-fg)}.unit{gap:18px;display:grid}.back{text-underline-offset:4px;width:-moz-fit-content;width:fit-content;min-height:32px;font-weight:700}.unit-head{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);grid-template-columns:auto 1fr auto;align-items:center;gap:16px 24px;padding:20px;display:grid}.unit-ipa{font:500 clamp(3rem, 2rem + 4vw, 4.5rem)/1 var(--cy-font-display);color:var(--cy-phonics-ink);background:var(--cy-phonics-tint);text-align:center;border-radius:22px;min-width:120px;padding:14px 22px}.unit-head h2{font-size:var(--cy-t-24)}.unit-required{gap:6px;display:grid}.unit-cols{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.panel{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);align-content:start;gap:12px;min-width:0;padding:20px;display:grid}.panel h3{font-size:var(--cy-t-20)}.panel h4{font-size:var(--cy-t-16);margin-top:6px}.plain{gap:4px;margin:0;padding-left:18px;display:grid}.ab-grid{gap:10px;display:grid}.ab-slot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ab-slot select{flex:180px}.ab-key{background:var(--cy-fg);width:36px;height:36px;color:var(--cy-bg);font:600 var(--cy-t-18)/1 var(--cy-font-display);border-radius:10px;place-items:center;display:grid}.play-asset{gap:8px}.candidates .actions{white-space:nowrap}.candidates tr.is-selected{background:var(--cy-phonics-tint)}.asset-head{align-items:center;gap:12px;display:flex}.asset-cols{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.kv{font-size:var(--cy-t-14);grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.kv dt{color:var(--cy-fg-3);font-weight:700}.kv dd{overflow-wrap:anywhere;margin:0}.moves{flex-wrap:wrap;gap:8px;display:flex}.move-form{background:var(--cy-bg-2);border-radius:14px;gap:10px;padding:14px;display:grid}.move-form label,.trim label,.upload-row label{font:700 var(--cy-t-12)/1.2 var(--cy-font-text);color:var(--cy-fg-2);gap:4px;display:grid}.queued{box-shadow:inset 0 0 0 1.5px var(--cy-fg);border-radius:12px;gap:8px;padding:12px;display:grid}.history{font-size:var(--cy-t-14);gap:10px;margin:0;padding:0;list-style:none;display:grid}.history li{border-left:2px solid var(--cy-border-2);gap:2px;padding-left:12px;display:grid}.history .when{color:var(--cy-fg-3);font-variant-numeric:tabular-nums;font-size:var(--cy-t-12)}.waveform{background:var(--cy-bg-2);border-radius:14px;height:140px;position:relative;overflow:hidden}.waveform canvas,.waveform img{width:100%;height:100%;display:block}.wave-msg{color:var(--cy-fg-3);font-size:var(--cy-t-14);place-items:center;display:grid;position:absolute;inset:0}.trim-mask{background:color-mix(in srgb, var(--cy-bg-2) 55%, transparent);pointer-events:none;position:absolute;top:0;bottom:0}.trim-edge{background:var(--cy-spark);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.trim{flex-wrap:wrap;align-items:end;gap:12px 18px;display:flex}.trim input[type=range]{width:180px;accent-color:var(--cy-phonics);min-height:32px}.trim .grow{flex:200px}.upload-row{align-items:end}.uploads{gap:14px;margin:0;padding:0;list-style:none;display:grid}.uploads audio{height:40px}.cmd{background:var(--cy-ink);color:#e9e8f2;font:500 var(--cy-t-12)/1.6 ui-monospace, "SF Mono", Menlo, monospace;white-space:pre;border-radius:12px;margin:6px 0 0;padding:12px 14px;overflow-x:auto}.guide{gap:16px;display:grid}.guide-actions{flex-wrap:wrap;gap:8px;display:flex}.guide-sheet{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);gap:18px;padding:clamp(20px,4vw,40px);display:grid}.guide-sheet h2{font-size:var(--cy-t-32)}.guide-setup ul{gap:6px;max-width:80ch;margin:8px 0 0;padding-left:20px;display:grid}.guide-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.guide-item{border-top:1px solid var(--cy-border);break-inside:avoid;grid-template-columns:110px 1fr;gap:18px;padding:18px 0;display:grid}.guide-item h4{font-size:var(--cy-t-18);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.guide-item p{max-width:80ch}.guide-ipa{font:500 var(--cy-t-44)/1 var(--cy-font-display);color:var(--cy-phonics-ink)}.guide-ids code{margin-right:6px}.queue-page{gap:18px;display:grid}@media (max-width:760px){.unit-head{grid-template-columns:1fr}.guide-item{grid-template-columns:1fr;gap:6px}}@media print{.cy-bar,.cy-bottom-tabs,.studio-head,.coverage,.no-print,.demo-flag,.unreviewed-badge{display:none!important}body{background:#fff}main{padding:0}.guide-sheet{box-shadow:none;padding:0}}.listen-page{gap:16px;display:grid}.listen-bar{flex-wrap:wrap;align-items:end;gap:12px 18px;display:flex}.listen-bar label{font:700 var(--cy-t-12)/1.2 var(--cy-font-text);color:var(--cy-fg-2);gap:4px;display:grid}.listen-bar label.check{min-height:44px;font-size:var(--cy-t-14);color:var(--cy-fg);align-items:center;gap:8px;display:inline-flex}.listen-bar input[type=checkbox]{width:20px;height:20px;accent-color:var(--cy-phonics)}.listen-bar select{max-width:100%}.listen-progress{gap:6px;display:grid}.listen-meter{background:var(--cy-bg-2);border-radius:5px;gap:2px;height:8px;display:flex;overflow:hidden}.listen-meter span{background:var(--st,transparent)}.listen-card{border-radius:var(--cy-r-card);background:var(--cy-surface);box-shadow:var(--ph-lift), inset 0 0 0 1px var(--cy-border);justify-items:start;gap:10px;min-width:0;padding:28px clamp(18px,4vw,40px);display:grid}.listen-card.is-good{box-shadow:var(--ph-lift), inset 0 0 0 2px var(--cy-phonics-bright)}.listen-card.is-wrong{box-shadow:var(--ph-lift), inset 0 0 0 2px var(--cy-fg-3)}.listen-group{font:700 var(--cy-t-12)/1.3 var(--cy-font-text);text-transform:uppercase;letter-spacing:.06em;color:var(--cy-fg-2)}.listen-group .muted{text-transform:none;letter-spacing:0;font-weight:400}.listen-label{font:600 clamp(48px, 9vw, 88px)/1.05 var(--cy-font-display);overflow-wrap:anywhere}.listen-sub{font-size:var(--cy-t-20);color:var(--cy-fg-2)}.listen-flags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.listen-flags li{background:var(--cy-warn-tint);font:700 var(--cy-t-12)/1.2 var(--cy-font-text);border-radius:7px;padding:4px 9px}.listen-playing{color:var(--cy-phonics);font-weight:700}.listen-actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.listen-actions .btn,.listen-reasons .btn{gap:10px}.listen-page kbd{text-align:center;min-width:1.6em;color:inherit;background:#7f7f7f29;border-radius:5px;padding:2px 5px;font:700 11px/1.2 ui-monospace,SF Mono,Menlo,monospace;display:inline-block}.listen-reasons{border-top:1px solid var(--cy-border);gap:10px;width:100%;padding-top:6px;display:grid}.listen-reasons input[type=text]{width:min(100%,420px)}.listen-verdict{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.listen-done{border-radius:var(--cy-r-control);background:var(--cy-phonics-tint);padding:10px 12px}.listen-next .cmd{white-space:pre}@media (max-width:520px){.listen-actions .btn{flex:calc(50% - 10px)}.listen-page kbd{display:none}}
