.flow-shell{max-width:1050px;padding-bottom:24px}.flow-shell .hero{margin-bottom:20px}.flow-shell .compact-hero{min-height:140px;padding-top:20px;padding-bottom:20px}.compact-hero .hero-art{height:110px;transform:scale(.65);transform-origin:center}.compact-hero h1{font-size:34px}.flow-main{max-width:820px;margin:auto;scroll-margin-top:18px}.flow-main>.practice-card{margin-bottom:20px}.tri-label{display:flex;flex-direction:column;gap:2px;line-height:1.35;text-align:inherit;min-width:0}.tri-label strong{font-size:15px;line-height:1.5}.tri-label small{display:block;font-weight:450;font-size:12px;line-height:1.5;letter-spacing:0}.tri-label [lang=lo]{line-height:1.75;font-family:Noto Sans Lao,Lao UI,Leelawadee UI,sans-serif}.tri-button{min-height:76px;white-space:normal;gap:12px;padding:12px 20px}.flow-shell .button{height:auto}.flow-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 auto 26px;max-width:820px}.flow-steps li{display:flex;align-items:center;gap:12px;padding:14px;background:#f1ecef;border:1px solid #e9e1ed;border-radius:15px;color:#84798c;font-size:22px;font-weight:800}.flow-steps li.active{background:#ede4fa;color:#6340ac;border-color:#bea5e7}.flow-steps li>span{font-size:14px}.flow-steps small{display:block;font-weight:450;font-size:11px;line-height:1.8}.welcome-card h2{margin:10px 0}.welcome-sub{color:var(--muted)}.flow-shell .board-form{grid-template-columns:1.3fr 1fr;margin-top:28px}.form-field>.tri-label{margin-bottom:8px}.flow-shell input{font-size:18px;min-height:54px}.mode-field{margin:22px 0}.mode-field>small{display:block;color:var(--muted)}.flow-shell select{height:auto;min-height:52px;font-size:15px}.role-fieldset{border:0;padding:0;margin:20px 0}.role-fieldset legend{font-size:14px;font-weight:700;margin-bottom:8px}.role-fieldset .role-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.flow-shell .role-button{display:flex;justify-content:center;min-width:0;text-align:center;min-height:100px;padding:12px 8px}.flow-shell .role-button .tri-label{width:100%}.flow-shell .role-button .tri-label strong{font-size:14px}.flow-shell .role-button .tri-label small{font-size:11px}.start-button{width:100%;justify-content:center;font-size:20px}.start-button>span:last-child{font-size:28px}.flow-shell .tip{font-size:13px;line-height:1.8}.student-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:13px;background:var(--mint);padding:12px 18px;margin-bottom:20px}.student-bar strong{overflow-wrap:anywhere}.student-bar span{font-size:12px;flex-shrink:0}.flow-practice .card-top{align-items:flex-start}.flow-shell .toggle{min-height:64px;text-align:right}.flow-shell .toggle .tri-label strong{font-size:12px}.flow-shell .toggle .tri-label small{font-size:10px}.flow-shell .translation{font-size:15px;line-height:1.9;margin-bottom:25px}.flow-practice .record-zone{padding-bottom:8px}.flow-shell .record-button{width:78px;min-width:78px;height:78px;min-height:78px;border-radius:27px}.record-button>span{font-size:28px}.record-label{display:flex;justify-content:center;margin-top:17px}.record-label .tri-label strong{font-size:16px}.flow-shell .record-hint{font-size:13px;line-height:1.8}.flow-shell .audio-status{font-size:14px;line-height:1.9;color:#60516b;margin:15px 0}.flow-shell .action-row{display:flex;flex-wrap:wrap;gap:12px}.flow-shell .action-row>.button{flex:1;min-width:145px}.secondary-actions{display:flex;justify-content:space-between;gap:15px;margin-top:22px;padding-top:16px;border-top:1px dashed var(--line)}.secondary-actions .button{background:transparent;border:0;padding:8px;color:#7a6a89;box-shadow:none}.saved-line{color:var(--mint-ink);text-align:center;font-size:13px;margin:15px 0}.partner-turn{background:#faf6ff}.partner-action{text-align:center;padding:18px 0 25px}.partner-action .button{margin:15px auto}.final-card{text-align:center}.final-grade{font-size:84px;font-weight:850;color:var(--purple);line-height:1.3;margin:20px 0 8px}.final-card .status-banner{text-align:left}.flow-shell .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));text-align:center}.result-board h3 small,.flow-main h3 small{display:block;margin-top:5px;font-weight:450;color:var(--muted);line-height:1.8}.table-wrap{overflow-x:auto}.flow-shell .leader-table{min-width:0;width:100%;table-layout:fixed}.leader-table th:nth-child(1){width:22%}.leader-table th:nth-child(2){width:52%}.leader-table td{overflow-wrap:anywhere}.line-review{margin-top:20px}.review-row{display:grid;grid-template-columns:28px minmax(0,1fr) 42px;gap:12px;padding:18px 0;border-top:1px solid var(--line);align-items:start}.review-row p{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.review-row>.tri-button{grid-column:2/4;justify-self:start;min-width:140px}.review-grade{font-size:24px;font-weight:800;color:var(--purple)}.review-row .diff{font-size:18px;line-height:1.9}.help-row{display:flex;justify-content:center;margin:25px 0}.help-row .button{background:transparent;box-shadow:none;border:0}.flow-shell .footer-note{font-size:12px;line-height:1.8}.flow-modal{max-width:620px;max-height:88dvh;overflow:auto}.flow-modal p{font-size:14px;line-height:1.9}.flow-modal .modal-actions{display:flex;flex-wrap:wrap;gap:12px}.flow-modal .modal-actions>.button{flex:1;min-width:150px}.flow-shell .error-banner,.flow-shell .status-banner{overflow-wrap:anywhere}.flow-shell button:disabled{opacity:.45}.flow-shell [lang=lo]{font-family:Noto Sans Lao,Lao UI,Leelawadee UI,sans-serif}@media(max-width:700px){.flow-shell{padding-bottom:20px}.flow-shell .hero{min-height:180px}.flow-shell .compact-hero{min-height:120px;padding:18px}.flow-shell .compact-hero .hero-art{display:none}.flow-shell .compact-hero h1{font-size:30px}.flow-shell .compact-hero .hero-copy{max-width:none}.flow-steps{gap:6px;margin-bottom:18px}.flow-steps li{padding:10px 8px;gap:6px;font-size:18px}.flow-steps li>span{font-size:12px}.flow-steps small{font-size:9px}.flow-shell .board-form{grid-template-columns:1fr;gap:20px}.flow-shell .welcome-card h2{font-size:22px}.flow-shell .practice-card{padding:22px 18px}.flow-shell .role-fieldset .role-picker{grid-template-columns:1fr 1fr}.role-fieldset .role-button:last-child{grid-column:1/3;min-height:80px}.flow-shell .role-button .tri-label small{font-size:12px}.flow-shell .role-button .tri-label strong,.tri-label strong{font-size:14px}.tri-label small{font-size:11px}.tri-button{padding:10px 12px;min-height:76px}.flow-shell .practice-header h2{font-size:21px}.student-bar{padding:10px 12px}.student-bar span{font-size:10px}.flow-shell .counter{font-size:11px;max-width:60%;line-height:1.8}.flow-shell .prompt-text{font-size:27px}.flow-shell .translation{font-size:13px}.flow-shell .action-row>.button{min-width:125px}.flow-shell .tip{font-size:12px}.flow-shell .status-banner{font-size:13px}.flow-shell .main-footer{margin-bottom:0}.review-row{gap:8px;grid-template-columns:22px minmax(0,1fr) 34px}.review-row>div>strong{font-size:16px}.review-grade{font-size:21px}.final-grade{font-size:70px}.flow-shell .summary-grid .stat-card strong{font-size:30px}.flow-shell .leader-table th,.flow-shell .leader-table td{padding:12px 6px;font-size:13px}}.flow-shell .role-button>.tri-label{height:auto;display:flex;align-items:center;background:transparent;border-radius:0;grid-row:auto}.wechat-notice{margin:18px 0 26px;padding:22px 24px;border:2px solid #d4bcec;border-radius:22px;background:#f5efff;color:#49355e}.wechat-notice h2{font-size:22px;margin:0 0 12px;display:flex;justify-content:space-between;gap:12px}.wechat-notice h2>span{font-size:30px;color:#7950c6}.wechat-notice p{font-size:14px;line-height:1.75;margin:12px 0;overflow-wrap:anywhere}.wechat-notice p>span{font-size:12px}.wechat-menu-step{background:#fff;padding:14px;border-radius:12px}.wechat-link-row{display:flex;gap:12px;align-items:center}.wechat-link-row input{width:100%;min-width:0;flex:1;padding:14px 12px;border:1px solid #b8a0d1;border-radius:10px;background:#fff;color:#49355e;font-size:16px}.wechat-link-row button{flex-shrink:0;min-width:150px}.wechat-copy-status:empty{display:none}.wechat-copy-status{color:#56358b;font-weight:600}@media(max-width:700px){.wechat-notice{padding:18px 16px}.wechat-notice h2{font-size:20px}.wechat-link-row{flex-direction:column;align-items:stretch}.wechat-link-row input{box-sizing:border-box}.wechat-link-row button{width:100%;min-height:76px}}.flow-shell .first-role-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-shell .first-role-picker .role-button:last-child{grid-column:auto;min-height:100px}.recording-controls{margin:20px 0}.record-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.record-actions .button{justify-content:center;padding:10px;min-width:0}.recording-status{color:#ad476d;font-weight:700;text-align:center}.is-recording{box-shadow:0 0 0 5px #b385ef30!important}.retry-hint{border-radius:12px;background:#fff3de;padding:14px;font-size:13px;line-height:1.8}.dialogue-guide p{font-size:14px;line-height:1.9;margin-bottom:18px}.dialogue-guide .card-top{margin-bottom:8px}.dialogue-role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialogue-role-tabs button{border:2px solid #e3d7f1;border-radius:17px;background:#fff;color:#79638f;padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:5px}.dialogue-role-tabs .selected{background:#7950c6;color:#fff;border-color:#7950c6;box-shadow:0 5px #dfd0f3}.dialogue-role-tabs strong{font-size:18px}.dialogue-role-tabs span{font-size:11px}.dialogue-role-tabs small{font-size:12px}.dialogue-role-tabs b{font-size:20px;margin-top:3px}.dialogue-active{text-align:center;color:#7046b1;font-weight:700;margin:18px 0 0!important}.dialogue-lines{display:flex;flex-direction:column;list-style:none;padding:0;gap:20px;margin:24px 0}.dialogue-line{width:94%;padding:24px;border:1px solid #e5dbed;border-radius:8px 24px 24px;background:#fff;scroll-margin-top:20px;box-sizing:border-box}.dialogue-line.active-role{align-self:flex-end;background:#f8f3ff;border-color:#cbb5ec;border-radius:24px 8px 24px 24px;box-shadow:0 5px 16px #7950c60b}.line-speaker{display:flex;align-items:center;gap:9px;font-size:13px;color:#8e74a2}.line-speaker>span:last-child{margin-left:auto}.speaker-letter{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#e8dcf7;color:#73509e;font-weight:800}.dialogue-text{font-size:24px;font-weight:700;line-height:1.7;margin:16px 0 8px}.dialogue-line .pinyin{font-size:15px;min-height:0;margin:6px 0 10px}.flow-shell .dialogue-line .translation{font-size:14px;line-height:1.8;margin-bottom:18px}.dialogue-line>.button{font-size:12px;min-height:64px}.dialogue-bottom>p{text-align:center;line-height:1.9;font-size:14px}.dialogue-bottom>.button{margin:20px auto 0;display:flex}.result-reveal{position:relative;min-height:155px;margin:20px 0}.grade-unwrapping{min-height:170px;display:grid;place-content:center}.grade-unwrapping>span{font-size:55px;color:#b493de;animation:grade-wait .85s ease-in-out}.grade-unwrapping p{margin:8px}.grade-unwrapping small{font-size:12px;color:var(--muted)}.grade-arrival{animation:grade-arrive .8s cubic-bezier(.2,.8,.25,1.1) both;text-shadow:0 5px 0 #e2d1f5}.celebration-title{color:#95691c;font-weight:700;line-height:1.8}.result-reveal>.button{display:inline-flex;margin:5px auto 15px;font-size:12px;background:#fff5dd;border-color:#f0ddb1}.fireworks{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:70}.firework-burst{position:absolute;width:1px;height:1px}.firework-burst i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--color);box-shadow:0 0 9px var(--color);opacity:0;animation:firework-expand 2.3s cubic-bezier(.15,.6,.3,1) var(--delay) both}@keyframes grade-wait{0%{transform:rotate(-20deg) scale(.7)}to{transform:rotate(180deg) scale(1.2)}}@keyframes grade-arrive{0%{opacity:0;transform:scale(.4) rotate(-9deg)}65%{opacity:1;transform:scale(1.13) rotate(3deg)}to{transform:scale(1) rotate(0)}}@keyframes firework-expand{0%{opacity:0;transform:translateY(50px) scale(.3)}12%{opacity:1;transform:translate(0) scale(1)}65%{opacity:1;transform:translate(var(--dx),var(--dy)) scale(.75)}to{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 45px)) scale(.2)}}@media(max-width:700px){.flow-shell .first-role-picker{grid-template-columns:1fr 1fr}.flow-shell .first-role-picker .role-button:last-child{grid-column:auto}.dialogue-line{width:97%;padding:18px 14px}.dialogue-text{font-size:23px}.dialogue-role-tabs button{padding:13px 8px}.dialogue-role-tabs span{font-size:10px}.dialogue-role-tabs strong{font-size:16px}.record-actions{grid-template-columns:1fr 1fr;gap:8px}.record-actions>.button:last-child{grid-column:1/3;min-height:65px}.record-actions .tri-label strong{font-size:13px}.record-actions .tri-label small{font-size:10px}.dialogue-guide .card-top>strong{font-size:12px}.dialogue-guide .card-top{gap:8px}.dialogue-guide p,.flow-shell .dialogue-line .translation{font-size:13px}}@media(prefers-reduced-motion:reduce){.grade-arrival,.grade-unwrapping>span{animation:none}.firework-burst i{animation:none;opacity:.75;transform:translate(var(--dx),var(--dy)) scale(.5)}}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:42px 40px;margin:18px 0 38px;border-radius:32px;background:linear-gradient(120deg,#f1e9ff,#fff4de);overflow:hidden}.portal-hero h1{font-size:58px;line-height:1.25;letter-spacing:-2px;margin:18px 0;color:#3d2556}.portal-hero h1>span{color:#9463cf}.portal-hero p{line-height:1.8;color:#716080;font-size:15px}.portal-hero .hero-tags{margin-top:22px}.portal-speech-art{position:relative;width:270px;height:230px;flex-shrink:0}.portal-speech-art>span{position:absolute;display:grid;place-items:center;border-radius:28px 28px 28px 5px;box-shadow:0 12px #dec6ed;background:#fff;color:#7248a4;font-size:32px;font-weight:800;width:200px;height:100px;top:20px;left:0;transform:rotate(-7deg)}.portal-speech-art>span:nth-child(2){top:124px;left:58px;transform:rotate(7deg);background:#7952bd;color:#fff;font-size:25px;border-radius:28px 28px 5px;box-shadow:0 10px #e1cce8}.portal-speech-art i{position:absolute;right:3px;top:2px;font-size:52px;color:#d9a651;font-style:normal}.library-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 4px 22px}.library-heading h2{font-size:24px;margin:0;color:#463151}.library-heading p{font-size:13px;color:#8a7399;margin:0}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.lesson-tile{border:2px solid #e4d7f0;box-shadow:0 7px #eadef2;border-radius:28px;padding:26px;text-align:left;background:#fff;color:#4e3565;cursor:pointer;transition:transform .18s,box-shadow .18s}.lesson-tile:hover{transform:translateY(-4px);box-shadow:0 11px #eadef2}.lesson-tile:focus-visible{outline:4px solid #ba8ef4;outline-offset:5px}.lesson-tile.home{border-color:#bce0d5;box-shadow:0 7px #d3e9df;background:#fbfffc;color:#2b6156}.lesson-tile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.lesson-number{font-size:12px;letter-spacing:2px;font-weight:800}.lesson-emoji{font-size:48px;line-height:1.2}.lesson-tile h3{font-size:32px;margin:0;line-height:1.4}.lesson-tile h3>small{display:block;font-size:14px;font-weight:500;letter-spacing:2px;margin-bottom:8px}.lesson-translation{font-size:14px;line-height:1.9;min-height:55px;opacity:.8}.lesson-counts{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.lesson-counts>span{font-size:12px;background:#f2e9fc;border-radius:8px;padding:7px 10px}.home .lesson-counts>span{background:#e4f3ec}.lesson-counts-en{font-size:12px;opacity:.7;margin:9px 0 20px}.lesson-enter{border-top:1px solid #e8dff0;display:flex;align-items:center;justify-content:space-between;padding-top:19px;font-size:19px;font-weight:800}.lesson-enter small{display:block;margin-top:5px;font-size:12px;font-weight:400}.lesson-enter>b{font-size:29px}.portal-guide{text-align:center;line-height:2;margin:35px 0 25px;font-size:14px;color:#7d698d}.portal-guide>span{font-size:12px}.lesson-navigation{display:flex;justify-content:flex-start;margin:10px 0 18px}.lesson-navigation .tri-button{min-height:58px;padding:8px 17px}.lesson-navigation .tri-label strong{font-size:13px}.lesson-navigation .tri-label small{font-size:10px}.home-lesson-art{position:relative;width:210px;height:190px;display:grid;place-items:center}.home-lesson-art>span{font-size:130px;filter:drop-shadow(0 10px 0 #ddceef)}.home-lesson-art>b{position:absolute;right:-6px;top:0;border-radius:16px 16px 16px 0;padding:13px 18px;background:#fff;color:#8055b4;font-size:22px;transform:rotate(8deg)}@media(max-width:700px){.portal-hero{padding:26px 24px;gap:8px;margin-bottom:28px;position:relative}.portal-hero>div:first-child{position:relative;z-index:1}.portal-hero h1{font-size:42px;letter-spacing:-1px}.portal-hero p{font-size:12px;max-width:255px}.portal-hero .eyebrow{font-size:10px}.portal-speech-art{position:absolute;right:6px;top:24px;transform:scale(.45);transform-origin:top right;opacity:.5}.library-heading{display:block}.library-heading h2{font-size:22px}.library-heading p{margin-top:6px}.lesson-grid{grid-template-columns:1fr;gap:23px}.lesson-tile{padding:24px}.lesson-tile h3{font-size:30px}.lesson-translation{min-height:0}.portal-guide{font-size:12px}.portal-guide>span{font-size:11px}.home-lesson-art{width:100px;height:125px}.home-lesson-art>span{font-size:85px}.home-lesson-art>b{font-size:15px;padding:8px 12px;right:-4px;top:-12px}}@media(prefers-reduced-motion:reduce){.lesson-tile{transition:none}.lesson-tile:hover{transform:none}}:root{color-scheme:light;--paper:#fbf8f1;--card:#fff;--ink:#312742;--muted:#756d81;--purple:#7650cc;--purple-dark:#5834a9;--lavender:#f0eafa;--line:#e8e1ed;--mint:#dff3e7;--mint-ink:#287354;--orange:#f5a762;--orange-light:#fff0dc;--shadow:0 9px 28px rgb(63 42 80 / 5%);font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.65}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 100% 0,#f2e9fc66,transparent 48%),radial-gradient(ellipse at 0 75%,#fcebd233,transparent 35%)}button,input,select,textarea{font:inherit}button,input,select{min-height:44px}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .17s ease,border-color .17s ease,box-shadow .17s ease,transform .17s ease}button:disabled{cursor:not-allowed;opacity:.48;transform:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,audio:focus-visible{outline:3px solid #b68ae7;outline-offset:4px}a{color:var(--purple-dark);text-underline-offset:4px}button svg{flex-shrink:0;vertical-align:middle}img,svg,video{max-width:100%}input,select,textarea{width:100%;border:1.5px solid var(--line);padding:11px 14px;color:var(--ink);background:#fff;border-radius:13px;min-width:0}input::placeholder{color:#958c9f}input:focus,select:focus,textarea:focus{border-color:#ac8edc}audio{width:100%;max-width:100%;height:42px;margin:8px 0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.3;letter-spacing:-.035em}h2{font-size:26px;margin-bottom:10px}h3{font-size:18px;margin-bottom:8px}p{margin-bottom:14px}small{font-size:12px}strong{font-weight:750}hr{border:0;border-top:1px solid var(--line);margin:24px 0}[hidden]{display:none!important}.app-shell{max-width:1180px;margin:0 auto;padding:0 32px 35px}.topbar{min-height:92px;display:flex;justify-content:space-between;gap:16px;align-items:center}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:800;letter-spacing:-.035em;text-decoration:none;color:var(--ink)}.brand-icon{width:43px;height:43px;border-radius:15px;display:grid;place-items:center;background:var(--purple);color:#fff;font-size:24px;box-shadow:0 4px #e5d8f9;transform:rotate(-6deg)}.brand-sub{display:block;font-size:10px;color:var(--muted);letter-spacing:.17em;line-height:1.3;font-weight:650;margin-top:2px}.pill{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 12px;color:var(--muted);font-size:12px;font-weight:650;line-height:1.5}.hero{position:relative;min-height:226px;padding:35px 42px;border:1px solid #e8daf6;border-radius:29px;background:#efe7fa;overflow:hidden;margin-bottom:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.hero:before{content:"";position:absolute;right:46px;top:-130px;width:410px;height:410px;border:1px solid #d7c5ee88;border-radius:50%;pointer-events:none}.hero:after{content:"";position:absolute;right:-130px;bottom:-240px;width:450px;height:450px;border:1px solid #d7c5ee88;border-radius:50%;pointer-events:none}.hero-copy{position:relative;z-index:1;max-width:660px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--purple-dark);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px}.eyebrow:before{content:"";height:7px;width:7px;background:var(--purple);border-radius:50%}.hero h1{font-size:clamp(32px,4.1vw,49px);margin:0 0 11px;font-weight:850}.hero h1 em{font-style:normal;color:var(--purple)}.hero p{color:#746580;margin:0;font-size:14px;max-width:450px;line-height:1.9}.hero .pill{background:#ffffff8a;border:0;color:var(--purple-dark);margin-top:17px}.hero-art{flex:0 0 208px;height:190px;position:relative;margin-right:35px;z-index:1}.clock-face{position:absolute;width:160px;height:160px;top:12px;left:25px;background:#fffdf4;border:8px solid #9a76d9;border-radius:50%;box-shadow:5px 7px #d3bcef,0 13px 26px #6e4a9820;transform:rotate(-8deg)}.clock-face:before{content:"";position:absolute;top:9px;left:calc(50% - 2px);height:9px;width:4px;border-radius:4px;background:#d5c6df;box-shadow:0 117px #d5c6df}.clock-face:after{content:"";position:absolute;top:calc(50% - 2px);left:8px;height:4px;width:9px;border-radius:4px;background:#d5c6df;box-shadow:118px 0 #d5c6df}.clock-hand{position:absolute;left:calc(50% - 3px);bottom:50%;width:6px;background:#66408e;border-radius:8px;transform-origin:bottom center;z-index:3}.clock-hand.hour{height:35px;transform:rotate(212.5deg)}.clock-hand.minute{height:49px;transform:rotate(30deg);background:#ed9b58}.clock-hand.minute:after{content:"";position:absolute;width:12px;height:12px;bottom:-6px;left:-3px;border-radius:50%;background:#66408e}.clock-eye{position:absolute;width:5px;height:8px;left:60px;top:94px;border-radius:50%;background:#614377;box-shadow:20px 0 #614377}.clock-eye+.clock-eye{display:none}.clock-smile{position:absolute;width:15px;height:8px;left:66px;top:106px;border:2px solid #614377;border-top:0;border-radius:0 0 12px 12px}.spark{position:absolute;color:#dfa065;font-size:29px;font-weight:700;right:4px;top:3px;transform:rotate(15deg)}.spark:nth-of-type(2n){color:#8fb4a0;left:5px;top:130px;font-size:21px}.hero-art>.pill{position:absolute;right:-25px;bottom:-1px;transform:rotate(7deg);color:#795329;background:#fff1d7;border:2px solid #fff;box-shadow:0 4px 9px #644a8020;white-space:nowrap}.layout{display:grid;grid-template-columns:213px minmax(0,1fr);align-items:start;gap:28px}.sidebar{display:flex;flex-direction:column;gap:9px;position:sticky;top:22px}.sidebar>p{color:var(--muted);font-size:11px;letter-spacing:.13em;font-weight:750;padding-left:15px;margin:0 0 5px}.nav-button{width:100%;border:1px solid transparent;background:transparent;display:flex;align-items:center;text-align:left;gap:12px;border-radius:17px;padding:14px 12px}.nav-button:hover{background:#f0eafa88}.nav-button.active{background:#fff;border-color:#e5d8f4;box-shadow:var(--shadow);color:var(--purple-dark)}.nav-icon{width:37px;height:37px;border-radius:12px;background:#ede5f5;flex-shrink:0;display:grid;place-items:center;font-size:19px}.active .nav-icon{background:var(--purple);color:#fff}.nav-copy{font-size:14px;font-weight:750;line-height:1.4}.nav-sub{display:block;font-size:10px;font-weight:450;color:var(--muted);margin-top:4px}.sidebar .tip{margin-top:18px;font-size:12px;padding:16px}.main-panel{min-width:0}.practice-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:1px 0 17px}.practice-header h2{margin:1px 0 0;font-size:25px}.practice-header p{margin:5px 0 0;color:var(--muted);font-size:12px}.section-kicker{font-size:10px;letter-spacing:.13em;font-weight:800;color:#94809c;text-transform:uppercase}.progress-track{height:7px;border-radius:9px;background:#ece6f1;overflow:hidden;margin:0 0 20px}.progress-fill{height:100%;background:#a085d3;border-radius:inherit;transition:width .35s ease}.practice-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px 32px;box-shadow:var(--shadow)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:25px}.counter{display:inline-flex;align-items:center;border-radius:9px;padding:5px 9px;color:var(--purple-dark);background:var(--lavender);font-size:11px;font-weight:750;letter-spacing:.04em}.toggle{border:0;background:transparent;color:var(--muted);padding:5px 8px;font-size:12px;display:inline-flex;align-items:center;gap:6px}.toggle[aria-pressed=true]{color:var(--purple)}.prompt-text{text-align:center;font-size:clamp(25px,3.1vw,35px);font-weight:750;letter-spacing:.035em;line-height:1.7;margin:5px 0 8px;overflow-wrap:anywhere}.pinyin{text-align:center;color:#9a85aa;font-size:17px;letter-spacing:.025em;line-height:1.8;min-height:28px;margin:0 auto 23px;overflow-wrap:anywhere}.listen-button{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 auto;padding:10px 20px;border:1px solid #dfd2ed;background:#f6f1fd;color:var(--purple-dark);border-radius:14px;font-weight:650;font-size:13px}.listen-button:hover{background:#eee3fa}.listen-button[aria-pressed=true]{background:#dfd0f5}.audio-status{text-align:center;font-size:11px;color:#91869b;min-height:19px;margin:7px 0 0}.record-zone{text-align:center;padding:25px 0 10px;margin-top:22px;border-top:1px dashed #e5dceb}.record-button{min-width:180px;min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;background:var(--purple);color:#fff;font-weight:700;border:0;border-radius:19px;box-shadow:0 5px #563697,0 7px 15px #7650cc25}.record-button:hover{background:#6841bb;transform:translateY(-1px)}.record-button:active{transform:translateY(3px);box-shadow:0 2px #563697}.record-button.recording{background:#dc6978;box-shadow:0 5px #ad4454,0 0 0 7px #fbedf0}.record-button svg{width:22px;height:22px}.record-hint{margin:15px 0 0;font-size:12px;color:#8d8197}.wave-bars{height:28px;display:inline-flex;align-items:center;justify-content:center;gap:4px;vertical-align:middle}.wave-bars i,.wave-bars span{display:block;width:4px;height:12px;border-radius:3px;background:currentColor;animation:wave 1s ease-in-out infinite alternate}.wave-bars :nth-child(2){animation-delay:-.4s;height:23px}.wave-bars :nth-child(3){animation-delay:-.7s;height:17px}.wave-bars :nth-child(4){animation-delay:-.2s;height:26px}.wave-bars :nth-child(5){animation-delay:-.5s}@keyframes wave{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}.action-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:21px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);padding:10px 17px;min-height:44px;border-radius:13px;text-decoration:none;background:#fff;color:var(--ink);font-weight:650;font-size:13px}.button.primary{background:var(--purple);color:#fff;border-color:var(--purple)}.button.primary:hover{background:var(--purple-dark);border-color:var(--purple-dark)}.button.secondary{background:#f7f3fb;color:var(--purple-dark);border-color:#e7dbf3}.button.secondary:hover{background:#ece2f8}.button.ghost{background:transparent;border-color:transparent;color:var(--muted)}.button.ghost:hover{background:#f6f2f9;color:var(--purple-dark)}.feedback{display:grid;grid-template-columns:66px minmax(0,1fr);gap:17px;background:#eef7f0;border:1px solid #d3e8d7;padding:18px;border-radius:18px;margin-top:22px;align-items:start}.grade-badge{width:62px;height:66px;display:inline-grid;place-items:center;border-radius:17px;background:#fff;color:var(--purple-dark);font-size:29px;font-weight:850;box-shadow:0 4px #d8e8db;line-height:1;letter-spacing:-.04em}.feedback .grade-badge{color:#387657}.feedback h3{font-size:15px;margin:1px 0 6px}.feedback p{color:#5b7767;font-size:12px;margin:4px 0}.diff{display:flex;flex-wrap:wrap;gap:3px;font-size:19px;line-height:1.6;margin:9px 0;overflow-wrap:anywhere}.diff span{padding:1px 3px;border-radius:4px}.match{color:#2c7454}.missing{color:#ad6624;background:#ffe7c8;border-bottom:2px dashed #d69551}.wrong{color:#ad405d;background:#ffe1e9;border-bottom:2px solid #db8ca3}.result-text{font-size:13px;color:#5d516a;overflow-wrap:anywhere}.tip{padding:13px 17px;border-radius:15px;background:#fff3e1;color:#866746;font-size:12px;line-height:1.85;margin:16px 0 0}.tip p:last-child{margin-bottom:0}.sentence-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:18px 0}.sentence-item{min-height:45px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:#94879f;font-weight:650;padding:7px 5px;font-size:12px;line-height:1.3}.sentence-item.done{background:var(--mint);color:var(--mint-ink);border-color:#c5dfce}.sentence-item.selected{border-color:var(--purple);color:var(--purple-dark);background:var(--lavender);box-shadow:0 0 0 2px #e9def9}.sentence-item small{display:block;font-size:9px;margin-top:3px}.dialogue-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.dialogue-card{text-align:left;background:#fff;padding:19px;border:1.5px solid var(--line);border-radius:18px}.dialogue-card:hover{border-color:#b397d6}.dialogue-card.selected{border-color:var(--purple);background:#f4eefc}.dialogue-card h3{font-size:16px;margin:6px 0}.dialogue-card p,.dialogue-card small{color:var(--muted);font-size:11px;margin:0}.role-picker{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 16px;align-items:center}.role-button{border:1px solid #e6dcef;border-radius:12px;padding:10px 14px;background:#fff;color:#7b648b;font-size:12px;font-weight:650}.role-button.selected,.role-button[aria-pressed=true]{background:var(--purple);color:#fff;border-color:var(--purple)}.chat-thread{display:flex;flex-direction:column;gap:18px;margin:10px 0 22px}.chat-bubble{position:relative;max-width:90%;align-self:flex-start;padding:15px 18px;background:#f5f3f7;border-radius:5px 19px 19px;border:1px solid #ede7f1}.chat-bubble.mine{align-self:flex-end;border-radius:19px 5px 19px 19px;background:#eee5fa;border-color:#dfd1ee}.chat-bubble.selected{box-shadow:0 0 0 2px #ac88d6}.speaker{display:flex;align-items:center;gap:7px;color:#947c9f;font-size:10px;font-weight:700;margin-bottom:6px}.mine .speaker{color:#8460ac}.chat-text{font-size:20px;font-weight:650;line-height:1.6;overflow-wrap:anywhere;margin:0}.chat-pinyin{color:#9d84aa;font-size:12px;line-height:1.7;margin:5px 0 0;overflow-wrap:anywhere}.chat-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:8px}.chat-actions .button{padding:7px 10px;font-size:11px;background:#ffffff90}.chat-actions .grade-badge{width:auto;min-width:37px;height:29px;border-radius:8px;padding:4px 8px;font-size:17px;box-shadow:none}.status-banner,.error-banner{padding:12px 16px;border-radius:13px;font-size:12px;line-height:1.8;margin:12px 0;overflow-wrap:anywhere}.status-banner{background:#eef3fb;border:1px solid #dce5f4;color:#567494}.error-banner{background:#fff0ee;border:1px solid #f1d4cd;color:#9d5143}.round-complete{text-align:center;padding:27px 22px;margin:20px 0;border-radius:20px;background:#f0e8fb;border:1px solid #e2d2f5}.round-complete h3{color:var(--purple-dark);font-size:22px}.round-complete p{color:#8a759a;font-size:13px}.round-complete .action-row{justify-content:center}.board-form{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:13px;margin:18px 0}.form-field{min-width:0}.form-field label{display:block;color:#776582;font-size:12px;font-weight:650;margin-bottom:6px}.form-field small{display:block;color:#9a8da3;margin-top:5px;font-size:10px}.challenge-select{margin:12px 0 18px}.leader-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.leader-table th{color:#9a8ba5;font-size:10px;font-weight:650;text-align:left;padding:12px 10px;background:#faf7fc;border-bottom:1px solid var(--line)}.leader-table td{padding:15px 10px;border-bottom:1px solid #eee8f2;overflow-wrap:anywhere}.leader-table th:first-child,.leader-table td:first-child{width:53px;text-align:center}.leader-table th:last-child,.leader-table td:last-child{text-align:right}.leader-table tr:last-child td{border-bottom:0}.leader-table tr.mine td{background:#f4eefa;color:var(--purple-dark);font-weight:650}.leader-table .grade-badge{display:inline-grid;width:41px;height:34px;border-radius:10px;font-size:20px;background:#f0e8fb;box-shadow:none}.rank-medal{display:inline-grid;place-items:center;width:29px;height:32px;border-radius:10px;color:#a3702e;background:#ffedca;font-weight:800}.empty-state{text-align:center;padding:40px 18px;color:#9b89a6;border:1px dashed #dfd2e9;border-radius:17px;margin:15px 0}.empty-state h3{color:#6b567b;font-size:17px}.empty-state p{font-size:12px;max-width:310px;margin:6px auto 0}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.stat-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:17px 12px;text-align:center}.stat-card strong{display:block;font-size:27px;color:var(--purple-dark);line-height:1.2}.stat-card span,.stat-card p{font-size:10px;color:#95859f;margin:7px 0 0}.footer-note{font-size:11px;line-height:1.9;color:#9d92a5;text-align:center;max-width:750px;margin:30px auto 0}.footer-note button{border:0;background:none;color:#91749f;text-decoration:underline;text-underline-offset:3px;padding:5px;font-size:inherit}.source-list{display:flex;flex-direction:column;gap:14px}.source-card{background:#f8f5fb;border:1px solid #ebe3f1;padding:17px;border-radius:16px;overflow-wrap:anywhere}.source-card h3{font-size:16px}.source-card p{color:#95809f;font-size:12px;margin-bottom:6px}.source-card a{font-size:12px}.modal-backdrop{position:fixed;inset:0;z-index:100;padding:22px;display:flex;align-items:center;justify-content:center;background:#35243c68;backdrop-filter:blur(5px)}.modal{width:min(560px,100%);max-height:min(84vh,780px);overflow-y:auto;overscroll-behavior:contain;padding:28px;border-radius:26px;background:#fffdf9;border:1px solid #fff;box-shadow:0 25px 80px #31204035}.modal h2{font-size:24px}.modal p,.modal li{color:#83748d;font-size:13px;line-height:1.9}.modal ul,.modal ol{padding-left:20px}.modal-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:22px}.toast{position:fixed;z-index:120;left:50%;bottom:35px;transform:translate(-50%);max-width:calc(100vw - 36px);background:#443050;color:#fff;padding:12px 21px;border-radius:14px;font-size:13px;box-shadow:0 5px 25px #34213e30;text-align:center}.mobile-nav{display:none}@media(max-width:900px){.app-shell{padding:0 24px 30px}.hero{padding:29px}.hero-art{flex-basis:170px;margin-right:10px;transform:scale(.9)}.layout{grid-template-columns:175px minmax(0,1fr);gap:18px}.nav-button{gap:9px;padding:12px 10px}.nav-copy{font-size:13px}.nav-icon{width:32px;height:32px;font-size:17px}.practice-card{padding:23px}.sidebar .tip{padding:12px;font-size:11px}}@media(max-width:700px){.app-shell{padding:0 18px 28px}.topbar{min-height:76px}.brand{font-size:19px;gap:10px}.brand-icon{width:36px;height:36px;border-radius:12px;font-size:21px}.brand-sub{font-size:8px}.topbar>.pill{padding:5px 9px;font-size:10px}.hero{min-height:190px;padding:24px;border-radius:23px;margin-bottom:19px;gap:0}.hero h1{font-size:34px}.hero p{font-size:12px;max-width:255px}.hero .eyebrow{font-size:9px}.hero-art{height:145px;flex-basis:140px;margin:0 -6px 0 -16px;transform:scale(.77);transform-origin:center}.hero-art .clock-face{left:4px;top:2px}.hero-art>.pill{bottom:-29px;right:-32px}.hero-art .spark{right:-26px}.hero-copy>.pill{margin-top:12px;font-size:10px}.layout{display:block}.sidebar{flex-direction:row;gap:8px;position:static;margin-bottom:23px}.sidebar>p,.sidebar>.tip{display:none}.nav-button{flex:1 1 0;min-width:0;min-height:67px;justify-content:center;gap:7px;padding:10px 5px;border-radius:14px;background:#f2edf6}.nav-copy{font-size:12px}.nav-sub{font-size:8px}.nav-icon{width:28px;height:28px;border-radius:9px;font-size:15px}.practice-header h2{font-size:24px}.practice-card{border-radius:22px}.prompt-text{font-size:30px}.pinyin{font-size:15px}.record-zone{padding-top:22px}.footer-note{font-size:10px;margin-top:23px}}@media(max-width:440px){.app-shell{padding-left:15px;padding-right:15px}.topbar{min-height:72px;gap:8px}.hero{padding:23px 20px;min-height:184px}.hero h1{font-size:30px;letter-spacing:-.04em}.hero p{max-width:200px;font-size:11px;line-height:1.9}.hero .eyebrow{font-size:8px;letter-spacing:.09em}.hero-art{flex-basis:96px;margin:0 -12px 0 -13px;transform:scale(.59);transform-origin:20% center}.hero-art>.pill{right:-83px;font-size:14px}.hero-art .spark{right:-68px}.hero-copy>.pill{font-size:9px;padding:5px 8px}.nav-button{gap:5px;padding:9px 5px}.nav-icon{width:25px;height:27px;font-size:15px}.nav-copy{font-size:11px}.nav-sub{font-size:8px;margin-top:3px}.practice-header{gap:10px;margin-bottom:14px}.practice-header h2{font-size:23px}.practice-header .pill{font-size:10px;padding:6px 9px}.practice-header p{font-size:11px}.practice-card{padding:19px 17px}.card-top{margin-bottom:23px}.counter{font-size:10px}.toggle{font-size:11px}.prompt-text{font-size:27px;line-height:1.6}.pinyin{font-size:14px;min-height:25px;margin-bottom:21px}.record-button{min-width:178px}.record-hint{font-size:11px}.action-row{gap:7px}.action-row .button{font-size:12px;padding:10px 12px}.sentence-grid{gap:5px}.sentence-item{border-radius:10px;font-size:11px;padding:7px 1px}.feedback{grid-template-columns:51px minmax(0,1fr);padding:14px;gap:12px}.grade-badge{width:49px;height:55px;font-size:25px;border-radius:13px}.feedback h3{font-size:14px}.feedback p{font-size:11px}.diff{font-size:17px}.dialogue-options{gap:9px}.dialogue-card{padding:13px;border-radius:15px}.dialogue-card h3{font-size:14px}.dialogue-card p,.dialogue-card small{font-size:10px}.role-picker{gap:6px}.role-button{padding:9px 11px;font-size:11px}.chat-bubble{max-width:94%;padding:13px 14px}.chat-text{font-size:18px}.chat-pinyin{font-size:11px}.board-form{gap:10px}.board-form input,.board-form select{padding:10px;font-size:14px}.leader-table{font-size:12px}.leader-table th,.leader-table td{padding:13px 7px}.leader-table th:first-child,.leader-table td:first-child{width:42px}.summary-grid{gap:8px}.stat-card{padding:15px 8px}.stat-card strong{font-size:24px}.stat-card span{font-size:9px}.modal-backdrop{padding:15px}.modal{padding:23px 20px;border-radius:23px;max-height:86dvh}}@media(max-width:359px){.app-shell{padding-left:11px;padding-right:11px}.hero{padding:20px 16px}.hero h1{font-size:27px}.hero-art{flex-basis:82px;transform:scale(.52)}.nav-icon{display:none}.sentence-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.board-form{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{body{background:#fff}.topbar>.pill,.hero-art,.sidebar,.record-zone,.action-row,.modal-backdrop,.toast{display:none}.app-shell{max-width:none;padding:0}.layout{display:block}.practice-card{box-shadow:none}}.hero-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.hero-tags span{font-size:11px;line-height:1.5;padding:5px 9px;background:#ffffff85;color:#82629d;border-radius:7px}.hero h1>span{color:var(--purple)}.clock-twelve,.clock-three,.clock-six,.clock-nine{position:absolute;font-size:13px;font-weight:750;color:#b09bc2;line-height:1}.clock-twelve{top:8px;left:calc(50% - 8px)}.clock-three{right:9px;top:calc(50% - 6px)}.clock-six{bottom:8px;left:calc(50% - 4px)}.clock-nine{left:9px;top:calc(50% - 6px)}.clock-face:before,.clock-face:after{display:none}.clock-eye.left{left:60px;box-shadow:20px 0 #614377}.clock-eye.right{display:none}.clock-label{position:absolute;right:-25px;bottom:-1px;transform:rotate(7deg);padding:8px 13px;font-size:12px;font-weight:750;color:#795329;background:#fff1d7;border:2px solid #fff;border-radius:11px;box-shadow:0 4px 9px #644a8020;white-space:nowrap}.sidebar>.section-kicker{padding:5px 14px 8px}.sidebar-note{margin-top:20px;padding:20px 16px;border:1px dashed #e5d9cc;border-radius:18px;background:#fff6e8}.sidebar-note>span{display:block;font-size:25px;color:#e9a355;margin-bottom:7px}.sidebar-note strong{display:block;color:#8b6d4f;font-size:12px}.sidebar-note p{margin:8px 0 0;font-size:11px;color:#a08d79;line-height:1.9}.sentence-prompt{padding:6px 0 19px}.sentence-prompt .pinyin{margin-bottom:8px}.translation{font-size:13px;color:#9b90a3;text-align:center;margin-bottom:4px;line-height:1.7}.listen-button>span{font-size:10px;padding-left:8px;border-left:1px solid #ded1ec;margin-left:3px;opacity:.7}.listen-button.playing{background:#e9dcf9}.record-button{min-width:76px;width:76px;height:76px;border-radius:26px;padding:20px}.record-button svg{width:29px;height:29px}.record-hint>strong,.record-hint>span{display:block}.record-hint>strong{font-size:13px;color:#7e6b8d;font-weight:600}.record-hint>span{font-size:10px;margin-top:5px;color:#aa9bb4}.record-zone>.wave-bars{color:#bc899a;margin-top:12px}.result-text>small{font-size:10px;color:#8b9c8d}.diff .substitution,.diff .substitute,.diff .different{color:#ad6624;background:#ffe7c8;border-bottom:2px dashed #d69551}.counter small{margin-left:8px;font-size:10px;color:#b09bc2}.sentence-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.sentence-item{display:grid;grid-template-columns:23px minmax(0,1fr);column-gap:7px;align-items:center;text-align:left;padding:10px 11px;min-height:61px}.sentence-item>span:first-child{grid-row:1/3;align-self:center;font-size:15px;color:#a98dbb;font-weight:750}.sentence-item>span:nth-child(2){font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7c6a86}.sentence-item small{font-size:9px;margin-top:3px;font-weight:450}.sentence-item.done>span:first-child{color:#4b8b64}.sentence-item.done>span:nth-child(2){color:#4e755c}.dialogue-card>span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f2e8fc;color:#9d78bd;font-size:23px;margin-bottom:8px}.dialogue-card>strong,.dialogue-card>small{display:block}.dialogue-card>strong{font-size:15px;line-height:1.6;margin-bottom:4px}.role-button{flex:1;display:grid;grid-template-columns:28px 1fr;column-gap:8px;text-align:left;min-width:125px;padding:12px}.role-button>span{grid-row:1/3;align-self:center;display:grid;place-items:center;width:26px;height:29px;border-radius:8px;background:#f1e8f9;font-size:12px}.role-button.selected>span{background:#9879d7;color:#fff}.role-button>strong{font-size:12px}.role-button>small{font-size:10px;font-weight:400;opacity:.72}.role-picker{margin-top:14px}.chat-actions>.ghost,.status-banner>.ghost{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--purple-dark);padding:8px 4px;font-size:11px}.chat-actions>.ghost svg{width:15px;height:15px}.chat-bubble .record-zone{padding-top:17px;margin-top:10px}.chat-bubble .record-button{width:62px;height:62px;min-width:62px;border-radius:22px}.chat-bubble .record-button svg{width:23px;height:23px}.chat-bubble .feedback{background:#faf7fe;border-color:#e2d6ef}.chat-bubble .action-row .button{font-size:11px}.round-complete>strong{display:block;margin-bottom:16px}.practice-card+.practice-card{margin-top:19px}.form-field{display:block;font-size:12px;color:#776582;font-weight:650}.form-field>input,.form-field>select{display:block;margin-top:7px;font-weight:400}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card>span{display:block;margin:0 0 9px}.stat-card strong small{font-size:14px;color:#b39ec4;font-weight:500}.leader-table tr.is-me td{background:#f4eefa;color:var(--purple-dark);font-weight:650}.leader-table td>strong{font-size:23px;color:var(--purple-dark)}.leader-table td>small{font-size:10px}.empty-state>svg{width:39px;height:39px;margin-bottom:14px;color:#bba0d0}.guide-steps{list-style:none;counter-reset:guide;padding:0;margin:21px 0}.guide-steps li{counter-increment:guide;position:relative;padding:2px 0 21px 42px;font-size:13px;color:#9b8ba5}.guide-steps li:before{content:counter(guide,decimal-leading-zero);position:absolute;left:0;top:0;background:#eee3f9;color:#9470b4;font-size:10px;font-weight:750;border-radius:10px;width:29px;height:29px;display:grid;place-items:center}.guide-steps strong{display:block;font-size:14px;color:#72607f;margin-bottom:4px}.grade-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:19px 0}.grade-scale>span{padding:10px 5px;text-align:center;background:#f5effa;border-radius:11px}.grade-scale strong,.grade-scale small{display:block}.grade-scale strong{color:#9876b2;font-size:20px}.grade-scale small{font-size:9px;color:#b29cc1}.main-panel>.practice-card>p{font-size:13px;line-height:1.9;color:#8f7f99}.main-footer>span{display:block;font-size:9px;margin-top:3px}.modal>.brand-icon{margin-bottom:20px}@media(max-width:700px){.app-shell{padding-bottom:104px}.sidebar{display:none}.hero{margin-bottom:26px}.mobile-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:0;bottom:0;right:0;z-index:40;background:#fffdf9f5;backdrop-filter:blur(14px);border-top:1px solid #e6ddec;padding:7px 10px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -5px 24px #4d32690a}.mobile-nav button{border:0;background:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:8px 4px;color:#b3a1bc;min-height:55px;border-radius:13px;font-size:10px}.mobile-nav button.active{background:#f0e7fa;color:#7b4fb0}.mobile-nav button svg{width:21px;height:21px}.mobile-nav button span{white-space:nowrap}.clock-label{bottom:-29px;right:-32px}.hero-tags{gap:5px;margin-top:12px}.hero-tags span{font-size:9px;padding:4px 6px}.sentence-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.sentence-item{padding:8px;column-gap:4px;grid-template-columns:18px minmax(0,1fr)}.toast{bottom:100px}.main-footer{margin-bottom:8px}.practice-header h2{font-size:24px}.grade-scale{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:440px){.hero{min-height:200px;padding:24px 18px}.hero-copy{max-width:225px}.hero h1{font-size:32px}.hero-art{height:145px;flex-basis:80px;margin-left:-20px;transform:scale(.59);transform-origin:10% center}.clock-label{right:-93px;bottom:-29px;font-size:14px}.hero-tags{gap:4px}.hero-tags span{font-size:8px;padding:4px 5px}.sentence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sentence-item{padding:10px 12px;grid-template-columns:23px minmax(0,1fr)}.sentence-item>span:nth-child(2){font-size:11px}.practice-header h2{font-size:21px}.section-kicker{font-size:9px}.practice-header .pill{font-size:9px;padding:5px 7px;white-space:nowrap}.translation{font-size:12px}.sentence-prompt{padding-bottom:16px}.record-button{min-width:72px;width:72px;height:72px}.record-hint>strong{font-size:12px}.record-hint>span{font-size:9px}.dialogue-card>strong{font-size:12px}.dialogue-card>span{width:29px;height:29px;font-size:20px}.role-button{min-width:110px;padding:10px;gap:6px}.role-button>strong{font-size:11px}.role-button>small{font-size:9px}.grade-scale{gap:5px}.grade-scale strong{font-size:18px}.grade-scale small{font-size:8px}.chat-bubble.mine{max-width:100%;width:100%}.chat-bubble .record-hint>span{font-size:9px}.main-panel>.practice-card>p{font-size:12px}}@media(max-width:359px){.hero h1{font-size:29px}.hero-copy{max-width:200px}.hero-art{flex-basis:72px;transform:scale(.52)}.hero-tags span{font-size:7px}.practice-header h2{font-size:19px}.app-shell{padding-bottom:104px}.mobile-nav{padding-left:5px;padding-right:5px}}@media(max-width:700px){.mobile-nav button{font-size:11px}.hero-tags span{font-size:10px}}@media(max-width:440px){.hero{gap:10px;padding:22px 17px;min-height:204px;justify-content:flex-start}.hero-copy{flex:1 1 auto;min-width:0;max-width:none}.hero h1{font-size:30px;white-space:nowrap}.hero p{max-width:none;font-size:11px}.hero-art{flex:0 0 100px;width:100px;height:134px;margin:0;transform:none}.hero-art .clock-face{left:0;top:16px;width:100px;height:100px;border-width:5px;box-shadow:3px 4px #d3bcef,0 8px 20px #6e4a9815}.clock-twelve,.clock-three,.clock-six,.clock-nine{font-size:9px}.clock-twelve{top:5px;left:calc(50% - 5px)}.clock-three{right:5px;top:calc(50% - 4px)}.clock-six{bottom:5px;left:calc(50% - 3px)}.clock-nine{left:5px;top:calc(50% - 4px)}.clock-hand{left:calc(50% - 2px);width:4px}.clock-hand.hour{height:23px}.clock-hand.minute{height:31px}.clock-hand.minute:after{width:8px;height:8px;bottom:-4px;left:-2px}.clock-eye.left{width:3px;height:5px;left:37px;top:59px;box-shadow:13px 0 #614377}.clock-smile{width:10px;height:6px;left:41px;top:67px;border-width:1.5px}.clock-label{display:none}.hero-art .spark{right:0;top:0;font-size:17px}.hero-art .spark-two{left:0;top:115px;font-size:17px}.hero-tags{gap:5px;margin-top:12px}.hero-tags span{font-size:10px;padding:4px 6px;white-space:nowrap}}@media(max-width:359px){.hero{gap:5px;padding-left:14px;padding-right:14px}.hero h1{font-size:27px}.hero-art{flex-basis:88px;width:88px}.hero-art .clock-face{transform:rotate(-8deg) scale(.88);transform-origin:left center}.hero-tags span,.hero p{font-size:10px}}
