@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff");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}:root{--bg:#f4f1ea;--surface:#fffdf9;--surface-2:#efebe3;--text:#1c1a1f;--muted:#4a4550;--accent:#6c3fc1;--accent-text:#fdfaf5;--accent-soft:#f1ebfa;--pink:#b8336f;--teal:#0e7a73;--amber:#9a5b00;--sky:#1f68ad;--pink-soft:#f8e6ee;--teal-soft:#e1f1ee;--amber-soft:#f8ecd8;--sky-soft:#e3eef8;--warn:#7f5200;--warn-soft:#faefd9;--danger:#a1332b;--danger-soft:#f8e1dd;--border:#d6cfc2;--border-strong:#857c8f;--focus:#1f5fbf;--shadow:0 1px 2px #281e140f, 0 4px 14px #281e1412;--radius:20px;--radius-sm:14px;--font:"Atkinson Hyperlegible", system-ui, sans-serif;--size:20px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1e1d20;--surface:#2a292d;--surface-2:#353439;--text:#f0eee9;--muted:#c3bec8;--accent:#b99af5;--accent-text:#1b1530;--accent-soft:#352d48;--pink:#f291c0;--teal:#5ccfc2;--amber:#efc26a;--sky:#8dc3f3;--pink-soft:#3a2533;--teal-soft:#1f3533;--amber-soft:#3a3020;--sky-soft:#213040;--warn:#f0c36a;--warn-soft:#3a3019;--danger:#f2948b;--danger-soft:#3f2324;--border:#4a4850;--border-strong:#858090;--focus:#8ab4ff;--shadow:0 1px 2px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-evening=true]{--bg:#f5eee3;--surface:#fffbf4;--surface-2:#f1e9dc;--text:#221c18;--muted:#4d433b;--accent:#7a3cb0;--accent-text:#fcf6ed;--accent-soft:#f4e8f2;--pink:#b5365f;--teal:#2a7468;--amber:#9a5600;--sky:#3a67a0;--pink-soft:#f6e2e5;--teal-soft:#e4eee6;--amber-soft:#f6e7d0;--sky-soft:#e7ebf1;--warn-soft:#f8ead2;--danger-soft:#f6ddd5;--border:#dccfbc;--border-strong:#8e7f72}@media (prefers-color-scheme:dark){:root[data-evening=true]:not([data-theme=light]){--bg:#221e1d;--surface:#2d2827;--surface-2:#38312f;--text:#f2ebe2;--muted:#c7bbb1;--accent:#cfa0ea;--accent-text:#21151f;--accent-soft:#3c2c38;--pink:#f39cb2;--teal:#7ccbb6;--amber:#f2bd6a;--sky:#a7bfe6;--pink-soft:#3d272c;--teal-soft:#243230;--amber-soft:#3d3020;--sky-soft:#283039;--warn-soft:#3d3019;--danger-soft:#422523;--border:#4c4341;--border-strong:#88776f;--focus:#9ab8ff}}:root[data-calm=true]{--accent:#5b6370;--accent-text:#fdfaf5;--accent-soft:#eceae7;--pink:#7a6e74;--teal:#66726f;--amber:#7a7166;--sky:#69707a;--pink-soft:#efebe8;--teal-soft:#ebece9;--amber-soft:#efebe5;--sky-soft:#eaebec}@media (prefers-color-scheme:dark){:root[data-calm=true]:not([data-theme=light]){--accent:#a9b0bb;--accent-text:#1b1921;--accent-soft:#2f2e35;--pink:#a79da3;--teal:#9aa5a2;--amber:#a9a196;--sky:#9ca3ad;--pink-soft:#302d33;--teal-soft:#2c2f31;--amber-soft:#312e2c;--sky-soft:#2c2e33}}:root[data-font=system]{--font:system-ui, sans-serif}:root[data-size=normal]{--size:17px}:root[data-size=larger]{--size:24px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--size);-webkit-text-size-adjust:100%;margin:0;line-height:1.55}body{min-height:100vh}a{color:var(--accent)}img,svg{max-width:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.cb-layer{display:none}}:root[data-calm=true] *,:root[data-calm=true] :before,:root[data-calm=true] :after{transition:none!important;animation:none!important}:root[data-calm=true] .cb-layer{display:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.wrap{max-width:980px;margin:0 auto;padding:20px 16px 48px}header.top{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex;position:sticky;top:0}header.top nav{flex-wrap:wrap;gap:4px;display:flex}.brand{color:var(--text);border-radius:12px;align-items:center;gap:10px;min-height:48px;padding-right:6px;text-decoration:none;display:inline-flex}.brand strong{font-size:1.05em}.logo{flex:none;display:block}.nav-link{gap:6px}.nav-link .icon{color:var(--accent);flex:none}h1{margin:.4em 0;font-size:1.5em;line-height:1.25}h2{margin:.8em 0 .4em;font-size:1.2em;line-height:1.3}h3{margin:.6em 0 .3em;font-size:1.05em}h3.sub{color:var(--muted);margin:1em 0 .4em;font-size:.85em;font-weight:700}p{margin:.4em 0}p,li{max-width:72ch}.muted{color:var(--muted)}.big-text{font-size:1.1em}.small{font-size:.9em}.with-icon{align-items:center;gap:10px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:14px 0;padding:18px}.card>:first-child{margin-top:0}.card.accent{border-left:6px solid var(--accent)}.card.warn{border-left:6px solid var(--warn)}.card.danger{border-left:6px solid var(--danger)}.card.with-badge{align-items:flex-start;gap:14px;display:flex}.card.with-badge>.icon-badge{margin-top:2px}.card.pick{text-align:left;width:100%;margin:0;display:block}.card.pick:hover{border-color:var(--accent)}.grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;display:grid}.grid>.card{margin:0}.tone-accent{--tone:var(--accent);--tone-soft:var(--accent-soft)}.tone-pink{--tone:var(--pink);--tone-soft:var(--pink-soft)}.tone-teal{--tone:var(--teal);--tone-soft:var(--teal-soft)}.tone-amber{--tone:var(--amber);--tone-soft:var(--amber-soft)}.tone-sky{--tone:var(--sky);--tone-soft:var(--sky-soft)}.icon-badge{background:var(--tone-soft,var(--accent-soft));width:2.2em;height:2.2em;color:var(--tone,var(--accent));border:2px solid var(--tone,var(--accent));border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-badge .icon{width:1.2em;height:1.2em}.card.teacher{border-top:6px solid var(--tone,var(--accent))}.teacher-top{align-items:center;gap:12px;display:flex}.teacher-top h3,.teacher-top p{margin:0}.teacher .dots span{border-color:var(--tone)}.teacher .dots span.on{background:var(--tone)}.hello h1{margin:.1em 0 .2em;font-size:1.8em}.hello-sub{color:var(--muted);margin:0;font-weight:700}.wave{display:inline-block}.card.hero{border:2px solid var(--accent);flex-wrap:wrap;align-items:center;gap:16px;padding:20px;display:flex}.hero-body{flex:220px;min-width:0}.hero-body h2{color:var(--accent);margin:0 0 .2em}.hero-icon{font-size:1.2em}.btn.big,button.big{min-height:56px;padding:12px 32px;font-size:1.1em;font-weight:700}.journey-stats{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:12px;display:grid}.stat{border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.stat>div{flex-direction:column;min-width:0;display:flex}.stat-num{font-size:1.4em;line-height:1.1}.stat-label{color:var(--muted);font-size:.85em}.daydots{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.daydots li{flex-direction:column;align-items:center;gap:2px;display:flex}.daydot{border:2px solid var(--border-strong);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.daydots li.on .daydot{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.daydot-day{color:var(--muted);font-size:.65em}.journey-subjects{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.journey-subjects li{align-items:center;gap:10px;display:flex}.journey-subjects li>span{flex-direction:column;line-height:1.3;display:flex}.journey-subjects .ring{color:var(--tone)}.badges{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.badge{border:2px solid var(--accent);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-size:.9em;display:inline-flex}.badge-icon{background:var(--amber-soft);width:34px;height:34px;color:var(--amber);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.badge-emoji{font-size:1.2em;line-height:1}.badge.locked{border-style:dashed;border-color:var(--border-strong);color:var(--muted)}.badge.locked .badge-icon{background:var(--surface-2);color:var(--muted)}.badge.locked .badge-emoji{filter:grayscale();opacity:.6}.journey.compact{padding:12px 14px;font-size:.9em}.journey.compact .journey-stats{grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:8px}.journey.compact .stat{gap:8px;padding:6px 10px}.journey.compact .stat-num{font-size:1.15em}.journey.compact .icon-badge{font-size:.85em}.journey.compact .journey-subjects{margin-top:10px}.journey.compact .daydot{width:20px;height:20px}.journey-foot{justify-content:space-between;margin-top:10px}.ring{color:var(--tone,var(--accent));flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.ring svg{position:absolute;inset:0}.ring-track{stroke:var(--surface-2)}.ring-fill{stroke:var(--tone,var(--accent));transition:stroke-dashoffset .5s ease-out}.ring-center{color:var(--text);font-size:.8em;font-weight:700;display:inline-flex;position:relative}.ring-center .icon{color:var(--tone,var(--accent))}button,.btn{font:inherit;border:1px solid var(--border-strong);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:14px;padding:10px 18px;transition:background-color .15s,border-color .15s,transform .12s}button:not(:disabled):active,.btn:active{transform:scale(.98)}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:700}button.ghost{background:0 0;border-color:#0000}button.small{min-height:48px;padding:6px 14px;font-size:.9em}button:disabled{opacity:.5;cursor:default}button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.choices{flex-direction:column;gap:12px;margin:16px 0;display:flex}.choices button{text-align:left;border-radius:var(--radius-sm);align-items:center;gap:14px;min-height:60px;font-size:1.05em;display:flex}.choices button[aria-checked=true]{background:var(--accent-soft);border:2px solid var(--accent)}.choices button .letter{background:var(--surface-2);border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-weight:700;display:inline-flex}.choices button[aria-checked=true] .letter{background:var(--accent);color:var(--accent-text)}.passage{background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre-wrap;max-width:68ch;padding:14px 16px}.stem{max-width:68ch;font-size:1.15em}input,textarea,select{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:12px;max-width:100%;min-height:48px;padding:10px 12px}input[type=range]{accent-color:var(--accent);padding:0}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:24px;height:24px;min-height:0}textarea{width:100%;min-height:160px}table{border-collapse:collapse;width:100%;font-size:.9em}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px}th{color:var(--muted);border-bottom:2px solid var(--border-strong);font-weight:700}.pill{background:var(--surface-2);border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.85em;display:inline-flex}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.pill.tone-pill{border:1px solid var(--pink);background:var(--surface);margin:0 4px}.dots{flex-wrap:wrap;gap:5px;display:inline-flex}.dots span{border:2px solid var(--accent);border-radius:50%;width:14px;height:14px}.dots span.on{background:var(--accent)}.plain-list{padding:0;list-style:none}.plain-list li{align-items:center;gap:8px;padding:4px 0;display:flex}.plain-list .icon{color:var(--accent);flex:none}.chat{flex-direction:column;gap:10px;max-height:55vh;padding:4px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;max-width:85%;padding:12px 16px}.bubble.student{background:var(--accent-soft);border-bottom-right-radius:6px;align-self:flex-end}.bubble.teacher{background:var(--surface-2);border-bottom-left-radius:6px;align-self:flex-start}.bubble.speaking{outline:2px solid var(--accent)}.bubble img{border-radius:8px;max-width:100%;display:block}.tv{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);white-space:normal;max-width:100%;margin:10px 0;padding:10px 12px;display:block;overflow-x:auto}.tv-svg{width:100%;height:auto;display:block}.tv-on{fill:var(--accent);stroke:var(--text);stroke-width:1.5px}.tv-off{fill:var(--surface);stroke:var(--text);stroke-width:1.5px}.tv-axis{stroke:var(--text);stroke-width:2px;stroke-linecap:round}.tv-text{fill:var(--text);font-family:var(--font);font-size:16px}.tv-text.small{font-size:12px}.tv-text.strong{font-weight:700}.tv-dot,.tv-bar{fill:var(--tone,var(--accent))}.tv-table{width:auto;min-width:50%;font-size:.9em}.tv-table th,.tv-table td{padding:4px 10px}.mic{border-radius:50%;width:72px;height:72px;font-size:1.6em}.mic[aria-pressed=true]{background:var(--danger-soft);border-color:var(--danger)}.canvas-wrap{border-radius:var(--radius-sm);border:1px solid var(--border);touch-action:none;background:#fff;position:relative;overflow:hidden}.canvas-wrap canvas{touch-action:none;width:100%;display:block}.camera video,.camera canvas,.camera img{border-radius:var(--radius-sm);background:#000;width:100%}.crop{touch-action:none;position:relative}.crop .box{border:3px solid #fff;position:absolute;box-shadow:0 0 0 9999px #00000073}.crop .handle{border:2px solid var(--accent);background:#fff;border-radius:50%;width:28px;height:28px;position:absolute;transform:translate(-50%,-50%)}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex}.timeline li.now{border:2px solid var(--accent);background:var(--accent-soft)}.timeline li.done{opacity:.7}.timeline li.done strong{text-decoration:line-through;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.timeline-main{flex:150px;min-width:0}.timeline .kind{text-align:center;width:40px;font-size:1.5em}.today-head{align-items:center}.eye-rest{border-radius:var(--radius-sm);background:var(--surface);border:2px solid var(--teal);flex-wrap:wrap;align-items:center;gap:18px;padding:14px;display:flex}.eye-rest .ring-fill{transition:stroke-dashoffset .25s linear}.eye-rest .stack{flex:200px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.error{color:var(--danger)}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn.small{min-height:48px;padding:6px 14px;font-size:.9em}.btn.ghost{background:0 0;border-color:#0000}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:700}.btn[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);font-weight:700}.modal{z-index:20;background:#140e1c8c;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.modal>.card{width:min(900px,100%);max-height:95vh;overflow-y:auto}.split{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}@media (width<=820px){.split{grid-template-columns:minmax(0,1fr)}}table.compact{border-collapse:collapse;width:100%;font-size:.85em}table.compact th,table.compact td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:4px 6px}details>summary{cursor:pointer;align-items:center;min-height:44px;display:flex}.cb-layer{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.cb-p{width:var(--px);height:var(--px);will-change:transform, opacity;line-height:1;animation-timing-function:ease-out;animation-fill-mode:both;display:block;position:absolute}.cb-p svg{width:100%;height:100%;display:block}.cb-shape-bit{height:calc(var(--px) * .55);background:currentColor;border-radius:2px;animation-name:cb-fall}.cb-shape-dot{background:currentColor;border-radius:50%;animation-name:cb-fall}.cb-shape-star{animation-name:cb-fall}.cb-shape-sparkle{animation-name:cb-burst}.cb-shape-heart{animation-name:cb-rise}.cb-shape-dancer{width:auto;height:auto;font-size:var(--px);animation-name:cb-dance;animation-timing-function:ease-in-out}@keyframes cb-fall{0%{opacity:0;transform:translate(0,0)rotate(0)}10%{opacity:1}75%{opacity:1}to{transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot));opacity:0}}@keyframes cb-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}20%{opacity:1}70%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.9) rotate(var(--rot));opacity:0}}@keyframes cb-rise{0%{opacity:0;transform:translate(0,0)scale(.6)}15%{opacity:1}75%{opacity:1}to{transform:translate3d(var(--dx), calc(-1 * var(--dy)), 0) scale(1) rotate(var(--rot));opacity:0}}@keyframes cb-dance{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}15%{opacity:1;transform:translate(-50%,-62%)scale(1)rotate(-8deg)}35%{transform:translate(-50%,-50%)scale(1)rotate(8deg)}55%{transform:translate(-50%,-62%)scale(1)rotate(-8deg)}78%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-54%)scale(.9)}}.cb-chip{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:41;pointer-events:none;background:var(--surface);max-width:calc(100vw - 32px);color:var(--text);border:2px solid var(--accent);box-shadow:var(--shadow);text-align:center;opacity:0;border-radius:999px;padding:10px 22px;font-size:1.05em;font-weight:700;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,12px)}.cb-chip:empty{border:0;padding:0}.cb-chip.show{opacity:1;transform:translate(-50%)}@media (width<=640px){.wrap{padding:14px 16px 40px}header.top{flex-direction:column;align-items:flex-start;gap:4px;position:static}.card{padding:16px}.card.hero .btn.big{width:100%}.bubble{max-width:92%}}.mic-panel{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;display:flex}.mic-toggle{background:var(--surface);max-width:100%;min-height:64px;color:var(--text);border:2px solid var(--border-strong);white-space:normal;text-align:left;border-radius:999px;align-items:center;gap:12px;padding:10px 24px 10px 12px;font-size:1.1em;font-weight:700;display:inline-flex}.mic-toggle .mic-icon{background:var(--surface-2);width:44px;height:44px;color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.mic-toggle.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent);animation:2.4s ease-in-out infinite mic-glow}.mic-toggle.on .mic-icon{background:var(--accent-text);color:var(--accent)}.mic-slash{background:currentColor;border-radius:2px;width:32px;height:3px;position:absolute;transform:rotate(-45deg)}.mic-label{overflow-wrap:anywhere;min-width:0}.mic-status{color:var(--muted);font-size:.9em}@media (width<=480px){.mic-panel,.mic-toggle{width:100%}.mic-toggle{justify-content:center}}@keyframes mic-glow{0%,to{box-shadow:0 0 0 0 var(--accent-soft)}50%{box-shadow:0 0 0 10px var(--accent-soft)}}.bubble.aside{opacity:.8;border-style:dashed}.stage-banner{background:var(--amber-soft);color:var(--text);border-bottom:2px solid var(--amber);text-align:center;padding:6px 16px;font-size:.85em}.talk-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.talk-switch{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.talk-switch button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 18px;font-weight:700;display:inline-flex}.talk-switch button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);outline:2px solid var(--accent);outline-offset:-2px}.talk-switch button.on .icon{color:var(--accent)}.mic-card{margin:0}.talk-stage{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.talk-stage.with-rail{grid-template-columns:minmax(0,1fr) minmax(260px,340px)}.talk-rail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;min-height:0;padding:12px;display:flex}.talk-rail .chat{max-height:60vh}.talk-rail .bubble{max-width:100%;font-size:.92em}.talk-rail-head{justify-content:space-between;align-items:center;gap:8px;display:flex}@media (width<=820px){.talk-stage.with-rail{grid-template-columns:minmax(0,1fr)}.talk-rail{z-index:20;border-radius:var(--radius) var(--radius) 0 0;max-height:62vh;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-bottom:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0000002e}.talk-rail .chat{max-height:calc(62vh - 70px)}}.board{background:var(--surface);border:1px solid var(--border);border-top:6px solid var(--tone,var(--accent));border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:18px;min-height:260px;padding:20px;display:flex}.board-empty{text-align:center;justify-content:center;align-items:center}.board-empty p{margin:0}.board-block{flex-direction:column;gap:6px;display:flex}.board-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.8em}.board-why{background:var(--tone-soft,var(--surface-2,transparent));border-left:4px solid var(--tone,var(--accent));border-radius:8px;padding:10px 14px}.board-why-text{margin:0;font-size:1.1em;line-height:1.4}.tv-why{font-style:italic;display:block}.board-problem{margin:0;font-size:1.35em;font-weight:700;line-height:1.35}.board-pictures{align-items:flex-start}.board .tv{background:0 0;border:0;margin:0;padding:0}.tv-problem{font-weight:700;display:block}.tv-steps,.tv-words{flex-direction:column;gap:8px;display:flex}.tv-step{align-items:flex-start;gap:10px;display:flex}.tv-step-n{background:var(--tone-soft,var(--accent-soft));width:1.7em;height:1.7em;color:var(--tone,var(--accent));border:2px solid var(--tone,var(--accent));border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.9em;font-weight:700;display:inline-flex}.tv-word{border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;gap:4px 10px;padding:8px 12px;display:flex}.tv-word strong{color:var(--tone,var(--accent))}.board .tv-steps,.board .tv-words{font-size:1.05em}.updating{z-index:1000;text-align:center;background:var(--bg);color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:fixed;inset:0}.device-list{margin:0;padding:0;list-style:none}.device-list li{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.device-list li:first-child{border-top:none}.break-glass{border:2px solid var(--danger)}.break-glass button.danger{background:var(--danger);color:var(--bg);border-color:var(--danger)}.stage-main{align-items:flex-start;gap:14px;display:flex}.stage-main>.board,.stage-main>.stage-fill{flex:1;min-width:0}.char-dock{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:none;align-items:stretch;margin:0;padding:6px 6px 2px;display:flex;position:sticky;top:12px}.char-dock.small{width:132px}.char-dock.medium{width:200px}.char-dock.large{width:280px}.char-dock.hidden{background:0 0;border:0;width:auto;padding:0}.character{aspect-ratio:372/300;width:100%}.character svg{width:100%;height:100%;display:block}.char-tools{justify-content:center;gap:2px;display:flex}.char-tools button{min-width:36px}@media (width<=620px){.stage-main{flex-direction:column-reverse;align-items:stretch}.char-dock,.char-dock.medium{align-self:center;width:min(100%,220px);position:static}.char-dock.small{width:140px}.char-dock.large{width:min(100%,300px)}}.portrait{aspect-ratio:372/300;background:var(--surface-2);border-radius:var(--radius);width:150px;display:block}.portrait svg{width:100%;height:100%;display:block}
