:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#fbf7f0;--ink:#1f1b16;--red:#c0392b;--muted:#8a8178;--line:#eadfce;--green:#2e8b57;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#201c18;--ink:#fbf7f0;--red:#ed897a;--muted:#b8aca0;--line:#4c4035;--green:#72bd91}}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0}.shell{max-width:32rem;margin:0 auto;padding:4rem 1.5rem}.hanzi{color:var(--red);margin:0;font-size:5rem;line-height:1.2}h1{margin:1rem 0;font-size:2.4rem}p{line-height:1.6}button,input{font:inherit}button{background:var(--red);color:var(--paper);cursor:pointer;border:0;border-radius:.75rem;padding:.9rem 1.2rem}button:disabled{opacity:.6;cursor:wait}input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:.5rem;margin:.5rem 0 1rem;padding:.8rem}details{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}summary{cursor:pointer}form{margin-top:1rem}[role=alert]{color:var(--red)}:root{--tile-red:#a83226;--tile-ink:#fffaf3;--tile-green:#e7efe3;--tile-gold:#f5e9cf;--tile-blue:#dce9ed}@media (prefers-color-scheme:dark){:root{--tile-red:#86372d;--tile-green:#263a2c;--tile-gold:#3c3221;--tile-blue:#22383f}}a{color:var(--red)}button,a{-webkit-tap-highlight-color:transparent}button,.text-button,.back-link,.placement-link{min-height:44px}:focus-visible{outline:3px solid var(--red);outline-offset:4px}button:disabled{cursor:default}.app-content{max-width:32rem;padding:max(1.5rem, env(safe-area-inset-top)) 1.25rem calc(7rem + env(safe-area-inset-bottom));overflow-wrap:anywhere;margin:0 auto}.brand{letter-spacing:-.02em;margin:0 0 2rem;font-size:1rem;font-weight:650}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--red);margin:0 0 .65rem;font-size:.7rem;font-weight:700}.app-content h2{letter-spacing:-.025em;margin:0 0 .75rem;font-size:1.7rem;line-height:1.25}.today-heading{margin-bottom:1.8rem}.today-heading p:last-child{color:var(--muted);margin:0;font-size:.95rem}.session-card{background:var(--tile-red);color:var(--tile-ink);border-radius:1.1rem;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.4rem 1.1rem;text-decoration:none;display:flex}.session-character{font-family:Songti SC,STSong,serif;font-size:3.4rem;line-height:1}.session-copy{flex:1;gap:.65rem;display:grid}.session-copy strong{font-size:1.1rem;line-height:1.4}.session-copy>span{font-size:.8rem;line-height:1.5}.card{border:1px solid var(--line);border-radius:1rem;margin:1rem 0;padding:1.25rem}.card>h3{letter-spacing:0;margin:0 0 .75rem;font-size:1.15rem;line-height:1.25}.card h4{margin:1rem 0 .5rem;font-size:1.1rem;line-height:1.4}.card p{margin:.4rem 0 0;font-size:.95rem}.streak-card{background:var(--tile-green);border-color:#0000}.streak-card p{font-size:.85rem}.trivia-card{background:var(--tile-gold);border-color:#0000}.trivia-card>h3{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.spend-note,.offline-note{color:var(--muted);font-size:.8rem}.offline-note{border-bottom:1px solid var(--line);padding:.75rem 0}.spend-note{margin-top:2rem}.tab-bar{z-index:10;background:var(--paper);border-top:1px solid var(--line);padding:.35rem max(.4rem, env(safe-area-inset-left)) calc(.35rem + env(safe-area-inset-bottom));justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar a{max-width:6.4rem;min-height:52px;color:var(--muted);border-radius:.4rem;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;font-size:.7rem;text-decoration:none;display:flex}.tab-icon{font-size:1.25rem}.tab-bar a[aria-current=page]{color:var(--red);box-shadow:inset 0 2px var(--red);font-weight:700}.coming-soon{background:var(--tile-gold);border-radius:1rem;padding:2rem 1.5rem}.coming-soon .hanzi{margin:2.5rem 0;font-family:Songti SC,STSong,serif;font-size:6rem}.coming-explore{background:var(--tile-green)}.coming-talk{background:var(--tile-blue)}.placement>p:not(.eyebrow){color:var(--muted);font-size:.9rem}.placement-count{margin:1.5rem 0 .5rem}.placement-item{text-align:center;background:var(--tile-gold);border-radius:1rem;margin-bottom:1.5rem;padding:1.5rem 1rem}.placement-item .hanzi{font-size:clamp(2rem,11vw,4rem);line-height:1.4}.traditional{color:var(--muted);margin:.25rem 0}.audio-button{margin-top:1rem}.pinyin{color:var(--red)}.placement-answers{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.secondary{color:var(--ink);border:1px solid var(--line);background:0 0}.text-button{color:var(--red);text-underline-offset:.2em;background:0 0;margin:.5rem auto;padding:.5rem .75rem;text-decoration:underline;display:block}.placement>button{width:100%;margin-top:1rem;display:block}.placement-link,.back-link{align-items:center;margin-top:1rem;display:inline-flex}meter{width:100%;height:1rem;accent-color:var(--red);margin-top:1rem;display:block}meter::-webkit-meter-bar{background:var(--line);border:0}meter::-webkit-meter-optimum-value{background:var(--red)}meter::-moz-meter-bar{background:var(--red)}.loading-skeleton{color:var(--muted)}.loading-skeleton div{background:var(--line);border-radius:1rem;height:8rem;margin-top:1rem}.loading-skeleton div:last-child{height:12rem}@media (width>=768px){.app-content{padding-top:3rem}.brand{margin-bottom:3rem}}.session-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.session-close{padding:.35rem .9rem;font-size:1.5rem}.session-progress{gap:.35rem;margin-top:1rem;display:flex}.session-progress>span{background:var(--line);border-radius:.25rem;flex:1;height:.35rem}.session-progress>.filled{background:var(--red)}.step-count{color:var(--muted);margin:.6rem 0 1.5rem;font-size:.8rem}.session-step{border:0;min-width:0;margin:0;padding:0}.character-tile,.review-tile{text-align:center;background:var(--tile-gold);border-radius:1rem;padding:1.5rem 1rem}.character-tile .hanzi{font-size:6rem}.review-tile .hanzi,.session-step>.hanzi{font-size:clamp(1.8rem,8vw,3rem);line-height:1.5}.stroke-animation>div{justify-content:center;display:flex}.stroke-animation button{margin-top:.5rem}.mic-control,.mic-fallback{margin:1rem 0}.mic-button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;width:100%}.mic-button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.pitch-curve{width:100%;height:auto;margin:1rem 0 .5rem;display:block}.shape-match{color:var(--red);font-weight:650}.grades{grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1rem 0;display:grid}.grades button{background:var(--tile-gold);color:var(--ink);border:2px solid #0000;padding:.85rem .3rem}.grades button[aria-checked=true]{border-color:var(--red);color:var(--red)}.listen-controls{align-items:center;gap:1rem;display:flex}.listen-controls label{align-items:center;gap:.5rem;min-height:44px;display:flex}.listen-controls input{width:auto;accent-color:var(--red);margin:0}.session-summary{grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0;display:grid}.session-summary>div{background:var(--tile-green);border-radius:.75rem;padding:1rem}.session-summary dt{font-size:.8rem;line-height:1.4}.session-summary dd{margin:.5rem 0 0;font-size:1.4rem;font-weight:650}.trivia-sources{flex-wrap:wrap;gap:1rem;margin-top:1rem;display:flex}.trivia-sources a{align-items:center;min-height:44px;display:inline-flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tutor-line{text-align:center;background:var(--tile-blue);border-radius:1rem;margin-bottom:1rem;padding:1.5rem 1rem}.tutor-line .talk-hanzi{font-size:clamp(1.8rem,8vw,2.8rem);line-height:1.5}.tutor-line>button.secondary{margin-top:.5rem}.talk-heard{color:var(--muted);font-size:.95rem}.talk-suggestion{background:var(--tile-gold);border-radius:.75rem;padding:.9rem 1rem}.talk-suggestion .pinyin{font-size:.9rem;display:block}.talk-help{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.talk-problem{gap:.65rem;margin:1rem 0;display:grid}.read-along{gap:.75rem;padding:0;list-style:none;display:grid}.read-along li{background:var(--tile-gold);text-align:center;border-radius:1rem;padding:1rem}.read-along .hanzi{font-size:clamp(1.6rem,7vw,2.4rem);line-height:1.5}.baseline-card{background:var(--tile-blue);color:var(--ink);border-radius:1rem;gap:.4rem;margin-bottom:1rem;padding:1.1rem;text-decoration:none;display:grid}.baseline-card span{font-size:.85rem}.baseline>button{width:100%;margin-top:1rem;display:block}
