:root{color-scheme:light;--ink: #111827;--muted: #6B7280;--paper: #EEF2FF;--card: #FFFFFF;--line: #E5E7EB;--accent: #4F46E5;--accent-ink: #FFFFFF;--danger: #EF4444;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink)}.shell{width:min(520px,calc(100% - 32px));margin:48px auto}.app{width:min(1040px,calc(100% - 32px));margin:24px auto 64px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px;flex-wrap:wrap;background:var(--card);border-radius:16px;padding:14px 20px;box-shadow:0 2px 12px #0000000f}.brand.compact p{margin:0;font-size:.85rem}nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}nav a{text-decoration:none;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);color:var(--ink);font-weight:600;font-size:.9rem;transition:background .15s,border-color .15s,color .15s}nav a:hover{border-color:var(--accent);color:var(--accent)}nav a.active{background:var(--portal, var(--accent));color:#fff;border-color:transparent}.page-head,.row{display:flex;gap:12px;align-items:center}.row.wrap,.grid{display:flex;flex-wrap:wrap;gap:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.stack{display:grid;gap:16px}.course-card{text-decoration:none;color:inherit}.row.between{justify-content:space-between}.folder-title{margin:0}.folder-head{display:inline-flex;align-items:center;gap:10px;margin:0;padding:0;background:transparent;color:var(--ink);border:0;border-radius:0;font:inherit;font-size:1.35rem;font-weight:800;cursor:pointer;box-shadow:none;transition:color .15s}.folder-head:hover{color:var(--accent);opacity:1;transform:none}.folder-icon{width:28px;height:28px;flex:0 0 auto;fill:var(--accent)}.folder-count{font-size:.85rem;font-weight:400;color:var(--muted)}.course-shared{color:var(--accent)}.share-row{padding:10px 0;border-bottom:1px solid var(--line);gap:12px}.educator-suspended{opacity:.62}.educator-grant{grid-template-columns:auto 6rem;align-items:center;gap:10px}.course-thumb{display:block;width:calc(100% + 56px);margin:-28px -28px 18px;aspect-ratio:16 / 9;object-fit:cover;border-radius:17px 17px 0 0;background:var(--line);transition:opacity .2s}.course-card:hover .course-thumb{opacity:.92}.meta,.note{color:var(--muted)}a.button,.button{display:inline-block;text-decoration:none;background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:11px 20px;font-weight:700;box-shadow:0 2px 8px #4f46e538;transition:opacity .15s,transform .1s}a.button:hover,.button:hover{opacity:.9;transform:translateY(-1px);color:var(--accent-ink)}select,textarea{font:inherit;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:#fff;transition:border-color .15s,box-shadow .15s}select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}.dialog-backdrop{position:fixed;inset:0;background:#1b243059;display:grid;place-items:center;padding:24px}.dialog{width:min(420px,100%)}.avatar-preview{max-width:180px;display:block;margin:12px 0}.player .stage{position:relative}.stage:fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;border:0;border-radius:0;background:#0d1014}.stage:fullscreen .slide-face{flex:1 1 auto;min-height:0;width:auto;max-width:100%;border:0;border-radius:0}.stage:fullscreen .note{color:#c8cdd4;max-width:80ch}.slide-face{position:relative;container-type:inline-size;aspect-ratio:16 / 9;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px}.slide-layer{position:absolute;inset:0}.slide-layer-leaving{z-index:1;pointer-events:none}.slide-bg{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;transform-origin:var(--focal-x, 50%) var(--focal-y, 50%);will-change:transform}.slide-bg.kb-zoom-in{animation:slide-kb-zoom-in 28s ease-out both}.slide-bg.kb-zoom-out{animation:slide-kb-zoom-out 28s ease-out both}.slide-bg.kb-pan-side{animation:slide-kb-pan-side 28s ease-out both}.slide-bg.kb-drift{animation:slide-kb-drift 28s ease-out both}@keyframes slide-kb-zoom-in{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes slide-kb-zoom-out{0%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes slide-kb-pan-side{0%{transform:scale(1.04) translate3d(-1.2%,0,0)}to{transform:scale(1.04) translate3d(1.2%,0,0)}}@keyframes slide-kb-drift{0%{transform:scale(1.01) translate3d(.8%,0,0)}to{transform:scale(1.05) translate3d(-.8%,0,0)}}.slide-fg-cutout{position:absolute;inset:0;background-position:center;background-size:contain;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 .8cqw 1.8cqw rgba(0,0,0,.45))}.slide-title-pill{position:absolute;padding:.9cqw 1.6cqw;border-radius:1.2cqw;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-sizing:border-box;pointer-events:none}.slide-theme-dark .slide-title-pill{background:linear-gradient(145deg,#0f131cc7,#0f131c94);border:1px solid rgba(255,255,255,.18);box-shadow:0 .8cqw 2.4cqw #00000059}.slide-theme-light .slide-title-pill{background:linear-gradient(145deg,#ffffffdb,#f8f6f2b8);border:1px solid rgba(20,22,26,.12);box-shadow:0 .8cqw 2.4cqw #14161a29}.slide-title-pill h1{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:3.1cqw;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.slide-recap-kicker{display:inline-block;align-self:flex-start;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.3cqw;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#f59e0b;margin-bottom:.15cqw}.slide-recap-footer{display:flex;align-items:center;gap:1cqw;margin-top:auto;padding-top:.4cqw}.slide-recap-progress{flex:1 1 auto;height:.45cqw;border-radius:999px;background:color-mix(in srgb,currentColor 18%,transparent);overflow:hidden}.slide-recap-bar{height:100%;width:100%;background:#f59e0b;transform-origin:left center;animation:slide-recap-fill linear both}@keyframes slide-recap-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.slide-recap-skip{flex:none;padding:.35cqw .9cqw;font-size:1.55cqw;font-weight:600;border-radius:999px;background:#f59e0b;color:#14161a;border:0;cursor:pointer}.slide-panel{position:absolute;border-radius:1.6cqw;pointer-events:none;box-sizing:border-box;backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%);transition:left .36s ease,top .36s ease,width .36s ease,height .36s ease}.slide-theme-dark .slide-panel{background:linear-gradient(155deg,#0f131cc7,#0f131c9e);border:1px solid rgba(255,255,255,.16);box-shadow:0 1.2cqw 3.2cqw #0000005c,inset 0 1px #ffffff1f}.slide-theme-light .slide-panel{background:linear-gradient(155deg,#ffffffd6,#f8f6f2b8);border:1px solid rgba(20,22,26,.1);box-shadow:0 1.2cqw 3.2cqw #14161a24,inset 0 1px #ffffffb3}.slide-zone{position:absolute;display:flex;flex-direction:column;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;justify-content:flex-start;gap:1.2cqw;margin:0;overflow:hidden}.slide-zone-title{justify-content:center;border-bottom:1px solid color-mix(in srgb,currentColor 18%,transparent);padding-bottom:.5cqw;box-sizing:border-box}.slide-face h1{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:calc(3.6cqw * var(--fit, 1));line-height:1.12;letter-spacing:-.025em;text-wrap:balance}.slide-face ul,.slide-bullets{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:calc(2.55cqw * var(--fit, 1));list-style:none;display:flex;flex-direction:column;gap:calc(.85cqw * var(--fit, 1))}.slide-face li{position:relative;display:flex;align-items:flex-start;gap:.65em;padding:.48em .72em;border-radius:.55em;background:color-mix(in srgb,currentColor 7%,transparent);border:1px solid color-mix(in srgb,currentColor 12%,transparent);line-height:1.32;font-weight:500;box-sizing:border-box}.slide-bullet-dot{flex:none;width:.42em;height:.42em;margin-top:.45em;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 .16em #f59e0b38}.slide-bullet-text{flex:1 1 auto;min-width:0}.slide-flow{display:flex;flex-direction:column;align-items:stretch;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:calc(2.35cqw * var(--fit, 1))}.slide-flow-grid,.slide-flow-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(.75cqw * var(--fit, 1));align-items:stretch;font-size:calc(2.15cqw * var(--fit, 1))}.slide-flow-grid .slide-flow-box,.slide-flow-compare .slide-flow-box{height:100%;box-sizing:border-box;align-items:flex-start;padding:.48em .65em;gap:.5em}.slide-flow-loop{display:flex;align-items:center;justify-content:center;gap:.4em;margin-top:.25em;font-size:.78em;font-weight:600;opacity:.82}.slide-flow-loop-icon{width:1.4em;height:1em}.slide-flow-item{display:flex;flex-direction:column;align-items:stretch}.slide-flow-arrow{align-self:center;width:1.3em;height:.85em;margin:.08em 0;opacity:.65}.slide-flow-box{display:flex;align-items:center;gap:.65em;padding:.48em .75em;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.65em;background:color-mix(in srgb,currentColor 8%,transparent);line-height:1.25}.slide-flow-item .slide-flow-box{transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease}.slide-flow-item.is-dim{opacity:.58;transition:opacity .22s ease}.slide-flow-item.is-active .slide-flow-box{background:#f59e0b38;border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b66,0 .3cqw 1cqw #f59e0b2e}.slide-flow-item.is-active .slide-flow-num{background:#f59e0b;border-color:#f59e0b;color:#14161a}@media(prefers-reduced-motion:reduce){.slide-flow-item .slide-flow-box,.slide-flow-item.is-dim{transition:none}}.slide-flow-num{flex:none;display:grid;place-items:center;width:1.65em;height:1.65em;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 10%,transparent);font-size:.78em;font-weight:700}.slide-flow-text{display:flex;flex-direction:column;min-width:0;gap:.1em}.slide-flow-text strong{font-weight:700;letter-spacing:-.01em}.slide-flow-text small{font-size:.84em;opacity:.82;line-height:1.25}.slide-figure{position:absolute;container-type:size;box-sizing:border-box;background:#fcfbf8f0;color:#14161a;border:1px solid rgba(20,22,26,.12);border-radius:1.1cqw;box-shadow:0 .5cqw 1.8cqw #00000038;overflow:hidden;--iw: min(56cqw, calc(94cqh * var(--ar)))}.slide-figure-pic{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--iw);aspect-ratio:var(--ar)}.slide-figure-pic img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.slide-figure-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.slide-figure-lines line{stroke:#475569;stroke-width:1.5;stroke-dasharray:3 2;opacity:.85}.slide-figure-dot{position:absolute;width:1.5cqw;height:1.5cqw;transform:translate(-50%,-50%);border-radius:50%;background:#f59e0b;border:.28cqw solid #14161a;box-sizing:border-box;box-shadow:0 1px 4px #00000059}.slide-figure-label{position:absolute;transform:translateY(-50%);width:calc((100cqw - var(--iw)) / 2 - .03 * var(--iw) - 1.5cqw);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;line-height:1.15;letter-spacing:-.01em;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.slide-figure-label.side-left{right:calc(50% + .53 * var(--iw));text-align:right}.slide-figure-label.side-right{left:calc(50% + .53 * var(--iw));text-align:left}.slide-face .avatar-stage{z-index:2;transition:left .48s ease-in-out,bottom .48s ease-in-out,height .48s ease-in-out,max-width .48s ease-in-out}@keyframes slide-bg-out{to{opacity:0}}@keyframes slide-text-out{to{opacity:0;transform:translateY(-1.4cqw)}}@keyframes slide-text-in{0%{opacity:0;transform:translateY(1.4cqw)}}@media(prefers-reduced-motion:reduce){.slide-face .avatar-stage{transition:none}.slide-face *,.slide-face *:before{animation:none!important}.course-intro-hold{display:none}}.course-intro h1{font-size:calc(5cqw * var(--fit, 1));text-wrap:balance}.course-intro-byline p{margin:0;font-size:calc(2.6cqw * var(--fit, 1));letter-spacing:.01em;opacity:.86}.course-intro-controls{position:absolute;z-index:3;right:3cqw;bottom:3cqw;display:flex;align-items:center;gap:1.6cqw}.course-intro .course-intro-sound{background:#0000006b;border-color:#ffffff73;color:#fff;font-size:1.9cqw;padding:.7cqw 1.4cqw}.course-intro .course-intro-sound[aria-pressed=false]{color:#ffffff9e;border-color:#ffffff38}.course-intro-hold{width:14cqw;height:.5cqw;border-radius:999px;background:#00000040;overflow:hidden}.course-intro-bar{height:100%;width:100%;background:#ffffffd9;transform-origin:left center;animation:course-intro-hold linear both}@keyframes course-intro-hold{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.preview-bar{display:flex;justify-content:space-between;align-items:center;gap:16px}.preview-controls{display:flex;align-items:center;gap:12px;margin-top:16px}.preview-controls audio{flex:1;margin:0}.preview-question{border-top:1px solid var(--line);padding-top:12px}.correct-answer{font-weight:600}.quiz-choices{list-style:none;padding:0;margin:8px 0 0}.quiz-choice{display:flex;align-items:baseline;gap:10px;padding:8px 10px;margin:6px 0;border:1px solid var(--line);border-radius:8px;background:var(--card)}.quiz-choice.correct{border-color:#059669;background:#d1fae5;font-weight:600}.quiz-letter{flex:0 0 1.4em;font-weight:700}.quiz-correct-tag{margin-left:auto;font-size:.85em;color:#047857}.quiz-item{margin-bottom:20px}.quiz-item textarea{width:100%;margin-top:8px}.take-quiz fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 16px;padding:12px 16px 16px;display:grid;gap:8px;justify-items:start}.take-quiz legend{padding:0 6px;font-weight:600}.take-quiz label{display:flex;gap:8px;align-items:baseline}.take-quiz textarea{width:100%}.quiz-mark{margin:4px 0 0;color:var(--danger)}.quiz-mark.ok{color:#047857}.builder{display:grid;gap:16px}@media(min-width:880px){.builder{grid-template-columns:1.3fr .9fr;align-items:start}}.builder-stage{padding:18px}.builder-floor{position:relative;min-height:420px;background:linear-gradient(180deg,#f0f4ff,#e0e8ff 78%,#c7d3ff);border:1px solid var(--line);border-radius:14px;overflow:hidden}.builder-empty{margin:0;padding:48px 24px;text-align:center;color:var(--muted)}.builder-floor .avatar-stage{height:88%;bottom:12px;left:50%;transform:translate(-50%)}.presenter-floor{position:relative;min-height:280px;margin:12px 0 16px;background:linear-gradient(180deg,#f0f4ff,#e0e8ff 78%,#c7d3ff);border:1px solid var(--line);border-radius:14px;overflow:hidden}.presenter-floor .avatar-stage{height:90%;bottom:8px;left:50%;transform:translate(-50%)}.avatar-stage{position:absolute;bottom:8px;height:76%;width:auto;max-width:100%;pointer-events:none}.avatar-puppet{position:relative;display:inline-block;height:100%;width:max-content;background:transparent}.avatar-puppet-base{display:block;height:100%;width:auto;background:transparent}.avatar-gaze{transition:transform .14s ease-out}.slide-face .avatar-puppet-base{filter:drop-shadow(4px 8px 10px rgba(0,0,0,.42))}.slide-face .avatar-stage:before{content:"";position:absolute;left:-8%;right:-8%;bottom:-1%;height:5%;background:radial-gradient(ellipse at 50% 50%,#0000008c,#0000 72%)}.avatar-puppet-layer{position:absolute;pointer-events:none}.slide-row{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.slide-row.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.slide-row.queued{background:#eef0fa;color:var(--muted)}.slide-row input:disabled{cursor:not-allowed}.slide-row:has(input:disabled){cursor:default}.spinner-row{display:inline-flex;align-items:center;gap:10px;vertical-align:middle}.spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.toast{position:sticky;top:12px;z-index:5;margin:0;padding:12px 16px;border-radius:12px;background:#1e1b4b;color:#fff;font-weight:600;box-shadow:0 12px 30px #4f46e547}.notice-pop{position:fixed;z-index:40;left:50%;top:24px;transform:translate(-50%);width:min(440px,calc(100% - 32px));display:flex;align-items:flex-start;gap:16px;margin:0;padding:14px 16px;border-radius:14px;background:#1e1b4b;color:#fff;box-shadow:0 16px 40px #4f46e54d}.notice-pop p{margin:0;flex:1}.notice-pop button{flex:0 0 auto;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);padding:6px 12px;box-shadow:none}.notice-pop button:hover:not(:disabled){background:#ffffff1f;transform:none;opacity:1}.slide-state{margin-left:8px;font-size:.8rem;font-weight:400;color:var(--muted)}.slide-state.done{color:var(--accent)}.slide-state.busy{color:var(--ink)}progress{width:100%;height:8px}.amend{display:grid;gap:12px;justify-items:start}.amend select,.amend textarea{width:100%}.slide-tools{justify-content:space-between;padding:0 4px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 14px;font-size:.85rem;font-weight:600;background:transparent;color:var(--muted);border:1.5px solid var(--line);border-radius:999px;box-shadow:none}.chip:hover{color:var(--accent);border-color:var(--accent);background:#4f46e50d;transform:none;opacity:1}.chip.danger:hover{color:var(--danger);border-color:var(--danger);background:#fef2f2}.slide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:2px solid var(--line);padding-bottom:0}.tabs button{background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent;border-radius:0;margin-bottom:-2px;padding:8px 14px;font-weight:700;font-size:.92rem;box-shadow:none;transition:color .15s,border-color .15s}.tabs button:hover:not(:disabled){color:var(--ink);transform:none;opacity:1}.tabs button[aria-selected=true],.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.mark{width:44px;height:44px;display:grid;place-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:14px;font-weight:800;font-size:1rem;letter-spacing:.02em;flex-shrink:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:.85rem}.brand strong{font-weight:800}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 2px 16px #0000000f}h1{margin:0 0 8px;font-size:1.8rem;font-weight:800}.lede,.note,.switch{color:var(--muted)}.email{font-size:1.2rem;word-break:break-word}form{display:grid;gap:14px;margin-top:18px}label{display:grid;gap:6px;font-size:.95rem}input:not([type=checkbox]):not([type=radio]){font:inherit;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:#fff;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):not([type=radio]):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--accent);cursor:pointer}button{font:inherit;font-weight:700;border:0;border-radius:10px;padding:11px 20px;background:var(--accent);color:var(--accent-ink);cursor:pointer;box-shadow:0 2px 8px #4f46e538;transition:opacity .15s,transform .1s}button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.55;cursor:wait}button.ghost{background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:none}button.ghost:hover:not(:disabled){border-color:var(--muted)}button.ghost.danger{color:var(--danger);border-color:var(--danger);box-shadow:none}button.ghost.danger:hover:not(:disabled){background:#fef2f2}.error{color:var(--danger);margin:0}.status-block{margin:22px 0 26px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.status-block h2{margin:0 0 8px;font-size:1.05rem}.status{margin:0}.status.ok{color:#047857}.status.bad{color:var(--danger)}.voice-registering{margin:12px 0 16px;padding:16px 18px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 55%),var(--bg, #F0F4FF)}.voice-registering .spinner-row{align-items:flex-start;gap:14px;width:100%}.voice-registering-spinner{width:22px;height:22px;margin-top:2px;border-width:3px}.voice-registering-title{margin:0 0 4px;font-weight:650;color:var(--ink)}.voice-registering-copy{margin:0;color:var(--muted);font-size:.95rem;line-height:1.4}.voice-registering-bar{margin-top:14px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 15%,var(--line));overflow:hidden}.voice-registering-bar>span{display:block;height:100%;width:40%;border-radius:inherit;background:var(--accent);animation:voice-register-slide 1.4s ease-in-out infinite}.voice-registering-steps{margin:14px 0 0;padding-left:1.2rem;color:var(--muted);font-size:.92rem;line-height:1.55}.voice-registering-steps .done{color:#047857}.voice-registering-steps .active{color:var(--ink);font-weight:600}@keyframes voice-register-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}@media(prefers-reduced-motion:reduce){.voice-registering-bar>span{width:100%;animation:none;opacity:.7}}a{color:var(--accent)}.portal-school{--portal: #2563EB;--portal-dk: #1D4ED8;--portal-light: #DBEAFE}.portal-teacher{--portal: #059669;--portal-dk: #047857;--portal-light: #D1FAE5}.portal-pupil{--portal: #7C3AED;--portal-dk: #6D28D9;--portal-light: #EDE9FE}.portal-school .topbar,.portal-teacher .topbar,.portal-pupil .topbar{border-top:4px solid var(--portal)}.portal-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:99px;background:var(--portal-light);color:var(--portal-dk);font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.view-as-strip{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#fef9c3;border-bottom:1px solid #FDE047;font-size:.88rem;flex-wrap:wrap}.view-as-strip strong{color:#713f12}.view-as-strip button{background:none;border:1px solid #CA8A04;color:#713f12;font-size:.82rem;font-weight:700;padding:2px 10px;border-radius:99px;cursor:pointer;box-shadow:none}.view-as-strip button:hover:not(:disabled){background:#fef08a;transform:none;opacity:1}.view-as-select{font-size:.85rem;padding:4px 8px;border:1.5px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}.stats-strip{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.stat-card{flex:1 1 120px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 22px;min-width:100px;box-shadow:0 1px 6px #0000000d}.stat-value{font-size:2.2rem;font-weight:800;color:var(--portal, var(--accent));line-height:1.1}.stat-label{font-size:.82rem;font-weight:600;color:var(--muted);margin-top:4px}.progress-bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0 4px}.progress-bar-fill{height:100%;background:var(--portal, var(--accent));border-radius:99px;transition:width .3s ease}.status-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:99px}.status-badge.passed{background:#d1fae5;color:#065f46}.status-badge.progress{background:#dbeafe;color:#1d4ed8}.status-badge.expired{background:#fef3c7;color:#92400e}.status-badge.new{background:var(--line);color:var(--muted)}.portal-heading{font-weight:800;color:var(--portal-dk, var(--ink))}.site,.shell{--site-blue: #4F46E5;--site-blue-dk: #4338CA;--site-teal: #7C3AED;--site-radius: 20px}.site{width:min(1060px,calc(100% - 32px));margin:0 auto 64px}.site>header,.shell>header{display:flex;justify-content:space-between;align-items:center;padding:20px 0 28px;gap:16px;flex-wrap:wrap}.brand-link{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit}.brand-link strong{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}.brand-link p{margin:0;font-size:.82rem;color:var(--muted)}.public-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.public-nav a{text-decoration:none;font-size:.95rem;font-weight:700;color:var(--ink)}.public-nav a:not(.button):hover{color:var(--accent)}.hero{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:var(--site-radius);border:0;padding:56px 48px;box-shadow:0 8px 40px #4f46e552;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:#ffffff12;top:-80px;right:-60px;pointer-events:none}.hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:#ffffff0d;bottom:-50px;left:40px;pointer-events:none}.hero .site-kicker{display:inline-block;background:#fff3;border-radius:99px;padding:5px 16px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:20px}.hero h1{font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.15;max-width:22ch;margin:0 0 18px;color:#fff}.hero .lede{color:#ffffffe6;font-size:1.1rem;max-width:56ch;margin-bottom:36px;line-height:1.6}.hero .row a.button{background:#fff;color:var(--site-blue-dk);font-weight:700;box-shadow:0 4px 16px #0000002e}.hero .row a.button:hover{background:#f0f4ff;transform:translateY(-2px)}.hero .row a:not(.button){color:#ffffffe6;font-weight:600;padding:11px 16px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.feature-card{border-radius:var(--site-radius);padding:32px 28px;background:var(--card);border:1px solid var(--line);box-shadow:0 2px 12px #0000000f;transition:transform .18s,box-shadow .18s}.feature-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #4f46e51f}.feature-card .feature-icon{font-size:2.4rem;margin-bottom:16px;display:block}.feature-card h2{font-size:1.2rem;font-weight:800;margin:0 0 10px;color:var(--site-blue-dk)}.feature-card p{font-size:.97rem;color:var(--muted);margin:0;line-height:1.65}.how-strip{background:var(--card);border:1px solid var(--line);border-radius:var(--site-radius);padding:36px 40px}.how-strip h2{font-size:1.3rem;font-weight:800;margin:0 0 24px;color:var(--site-blue-dk)}.how-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;list-style:none;padding:0;margin:0;counter-reset:step}.how-steps li{counter-increment:step;padding-left:0;font-size:.97rem;color:var(--muted);line-height:1.6;position:relative}.how-steps li:before{content:counter(step);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:.88rem;font-weight:800;margin-bottom:12px}.legal{max-width:740px;margin:0 auto}.legal h1{font-size:1.75rem;font-weight:800;color:var(--site-blue-dk);margin:0 0 6px}.legal .legal-meta{font-size:.88rem;color:var(--muted);margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line)}.legal h2{margin:32px 0 10px;font-size:1.08rem;font-weight:800;color:var(--site-blue-dk)}.legal h3{margin:20px 0 6px;font-size:.97rem;font-weight:700;color:var(--ink)}.legal p{margin:0 0 14px;line-height:1.7;font-size:.97rem}.legal ul,.legal ol{padding-left:1.4em;margin:8px 0 14px}.legal li{margin-bottom:6px;font-size:.97rem;line-height:1.6}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:40px;padding:20px 0 0;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}.site-footer nav{display:flex;gap:20px}.site-footer nav a{border:0;padding:0;border-radius:0;text-decoration:none;color:var(--muted);font-size:.88rem;font-weight:600}.site-footer nav a:hover,.site-footer nav a.active{background:none;color:var(--accent)}.cookie-banner{position:fixed;z-index:40;left:16px;right:16px;bottom:16px;max-width:620px;margin:0 auto;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 32px #0000001f}.cookie-banner p{margin:0;font-size:.92rem;color:var(--muted)}.cookie-banner-copy{flex:1 1 14rem}.cookie-banner-actions{display:flex;gap:8px}.cookie-banner button{font-size:.92rem;padding:8px 18px}body.has-cookie-banner{padding-bottom:100px}.notify-wrap{position:relative}.notify-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,90vw);max-height:360px;overflow:auto;z-index:30;padding:12px}.notify-item{padding:8px 0;border-top:1px solid var(--line)}.notify-item.unread strong{color:var(--portal, var(--accent))}.persona-thumb{aspect-ratio:3 / 4;object-fit:cover;object-position:top center}.persona-thumb-wrap{position:relative;width:calc(100% + 56px);margin:-28px -28px 18px;aspect-ratio:3 / 4;overflow:hidden;border-radius:17px 17px 0 0;background:var(--line)}.persona-thumb-wrap .avatar-stage{position:absolute;left:50%;top:0;bottom:auto;width:auto;max-width:none;height:128%;transform:translate(-50%);pointer-events:none}.persona-thumb-wrap .avatar-puppet,.persona-thumb-wrap .avatar-stage img{width:auto;height:100%;max-width:none;object-fit:unset}.persona-thumb-name{position:absolute;left:0;right:0;bottom:0;margin:0;padding:28px 14px 12px;font-size:1.05rem;font-weight:700;color:#fff;background:linear-gradient(transparent,#111827d1)}.persona-thumb-empty{display:grid;place-items:center;width:100%;height:100%;min-height:160px;background:var(--line);color:var(--muted)}.help-quickstart{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.help-qs-card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 20px;text-decoration:none;color:var(--ink);box-shadow:0 2px 8px #0000000d;transition:transform .18s,box-shadow .18s}.help-qs-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #4f46e51f;color:var(--ink)}.help-qs-icon{font-size:2rem;margin-bottom:4px}.help-qs-card strong{font-size:1rem;font-weight:800}.help-qs-card span:not(.help-qs-icon){font-size:.85rem;color:var(--muted)}.help-section-title{display:flex;align-items:center;gap:12px;font-size:1.4rem;font-weight:800;margin:0 0 16px;color:var(--portal-dk, var(--accent))}.help-section-icon{font-size:1.6rem;line-height:1}.help-steps{display:grid;gap:20px;margin:20px 0}.help-step{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start}.help-step-num{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:800;font-size:.95rem;display:grid;place-items:center;flex-shrink:0}.help-step-body{padding-top:6px;font-size:.97rem;line-height:1.65}.help-step-body em{color:var(--muted);font-style:normal;background:var(--paper);border-radius:4px;padding:1px 5px}.help-tip{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:10px 14px;background:#fffbeb;border:1px solid #FDE68A;border-radius:10px}.help-tip-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.help-tip p{margin:0;font-size:.9rem;color:#78350f;line-height:1.5}.help-list{margin:10px 0 0;padding-left:1.2em;display:grid;gap:6px}.help-list li{font-size:.97rem;line-height:1.55;color:var(--ink)}.help-action{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.help-tip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.help-tip-card{background:var(--paper);border-radius:12px;padding:18px 20px;display:grid;gap:8px}.help-tip-card strong{font-size:.97rem;font-weight:800;color:var(--ink)}.help-tip-card p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.6}.help-tip-card em{font-style:normal;color:var(--ink);font-weight:600}.help-faq{margin-top:12px;display:grid;gap:4px}.help-faq-item{border:1px solid var(--line);border-radius:10px;overflow:hidden}.help-faq-item summary{padding:14px 18px;font-weight:700;font-size:.97rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;-webkit-user-select:none;user-select:none}.help-faq-item summary::-webkit-details-marker{display:none}.help-faq-item summary:after{content:"﹢";font-size:1.3rem;font-weight:400;color:var(--accent);flex-shrink:0}.help-faq-item[open] summary:after{content:"−"}.help-faq-item[open] summary{border-bottom:1px solid var(--line);background:var(--paper)}.help-faq-item p{margin:0;padding:14px 18px;font-size:.95rem;line-height:1.65;color:var(--muted)}.spinner-md{width:24px;height:24px;border-width:3px}.spinner-lg{width:40px;height:40px;border-width:4px}.spinner-light{border-color:#ffffff4d;border-top-color:#fff}.spinner-row.spinner-md{gap:12px;font-weight:600}.spinner-row.spinner-lg{gap:14px}button[aria-busy=true]:before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;opacity:.8;animation:spin .8s linear infinite}@media(prefers-reduced-motion:reduce){button[aria-busy=true]:before{animation-duration:2.4s}}.studio-stage{position:relative}.slide-busy{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center;color:#fff;background:#1e1b4b9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:12px;animation:busy-fade-in .2s ease-out}.slide-busy-queued{background:#1e1b4b61;font-weight:600}.slide-busy-slow{max-width:34ch;font-size:.85rem;opacity:.9}@keyframes busy-fade-in{0%{opacity:0}to{opacity:1}}.studio-card[aria-busy=true] .studio-stage:after{content:"";position:absolute;inset:0;z-index:2;border-radius:12px;pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);background-size:200% 100%;animation:busy-shimmer 1.6s linear infinite}@keyframes busy-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.studio-card[aria-busy=true] .studio-stage:after{animation-duration:6s}.slide-busy{animation:none}}.studio-stage-note{position:absolute;left:10px;bottom:10px;z-index:2;padding:3px 10px;border-radius:999px;background:#111827b3;color:#fff;font-size:.78rem;font-weight:600}.build-progress ol{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.build-step{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:600}.build-step-active{color:var(--ink)}.build-step-done{color:var(--accent)}.build-step-mark{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--paper)}.build-step-done .build-step-mark{background:var(--accent);color:#fff;font-size:.8rem}.run-bar{display:grid;gap:8px;flex:1 1 260px}.run-bar-text{display:flex;align-items:center;gap:10px;font-weight:700}.wizard{max-width:880px;margin:0 auto;width:100%}.app:has(.studio){width:min(1600px,calc(100% - 32px))}.studio{max-width:none}.wizard-card h1,.wizard-card h2{margin-top:0}.kind-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;border:0;padding:0;margin:0 0 14px}.kind-choice legend,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.kind-option{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:start;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer}.kind-option input{margin-top:4px;width:auto}.kind-option .note{grid-column:2;margin:0}.kind-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--card))}.wizard-more{border:1.5px dashed var(--line);border-radius:12px;padding:10px 14px}.wizard-more summary{cursor:pointer;font-weight:700}.wizard-more[open] summary{margin-bottom:10px}.wizard-more>*+*{margin-top:12px}.wizard-summary{margin-top:18px;padding:12px 14px;border-radius:12px;background:var(--paper)}.wizard-summary .note{margin:4px 0}.wizard-naming{margin-top:16px}.stepper ol{list-style:none;display:flex;gap:8px;margin:0;padding:0}.stepper-step{flex:1 1 0}.stepper-button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-weight:700;box-shadow:none}button.stepper-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.stepper-dot{width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--paper);font-size:.85rem}.stepper-current .stepper-button{border-color:var(--accent);color:var(--ink)}.stepper-current .stepper-dot{background:var(--accent);color:#fff}.stepper-done .stepper-dot{background:#dcfce7;color:#15803d}@media(max-width:640px){.stepper-label{display:none}.stepper-current .stepper-label{display:inline}.stepper-step{flex:0 1 auto}.stepper-current{flex:1 1 auto}}.persona-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin:18px 0}.persona-pick{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:12px;border-radius:16px;border:2px solid var(--line);background:var(--card);color:var(--ink);box-shadow:none}.persona-pick:hover:not(:disabled){border-color:var(--accent)}.persona-pick.chosen{border-color:var(--accent);background:#4f46e50f}.persona-pick .persona-thumb-wrap{display:block;width:100%;margin:0 0 8px;border-radius:10px}.persona-pick-badge{position:absolute;top:18px;right:18px;padding:2px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem;font-weight:800}.persona-pick-new{place-items:center;align-content:center;text-align:center;border-style:dashed;min-height:200px}.persona-pick-plus{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:var(--accent);font-size:1.8rem;line-height:1}.return-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--accent)}.return-banner p{margin:4px 0 0}.studio-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.studio-head h1{margin:0}.studio-head .meta{margin:4px 0 0}.studio-card{display:grid;gap:14px}.studio-card.dragging{opacity:.45}.studio-card.dropping{outline:3px dashed var(--accent);outline-offset:2px}.studio-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.studio-card-head h2{margin:0;font-size:1.1rem}.drag-handle{cursor:grab;color:var(--muted);letter-spacing:-3px;padding:4px 6px;-webkit-user-select:none;user-select:none}.studio-head-actions{margin-left:auto;display:flex;gap:8px}.studio-badge{padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.studio-badge.is-voiced{background:#dcfce7;color:#15803d}.studio-badge.is-silent{background:var(--paper);color:var(--muted)}.studio-body{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}@media(min-width:1200px){.studio-body{grid-template-columns:minmax(0,1.35fr) minmax(360px,1fr);gap:24px}.studio-preview{position:sticky;top:16px}}.studio-preview{display:grid;gap:8px}.studio-preview audio{width:100%}.studio-edit{display:grid;gap:12px}.studio-edit .row{flex-wrap:wrap}.studio-layout{border:0;padding:0;margin:0}.studio-layout legend{font-weight:700;padding:0;margin-bottom:6px}.preset-row{display:flex;gap:10px;flex-wrap:wrap}.preset{display:grid;gap:6px;justify-items:center;padding:8px;width:104px;border-radius:12px;border:2px solid var(--line);background:var(--card);color:var(--ink);font-size:.8rem;box-shadow:none}.preset.chosen{border-color:var(--accent);background:#4f46e50f}.preset:hover:not(:disabled){border-color:var(--accent)}.preset-thumb{position:relative;display:block;width:100%;aspect-ratio:16 / 9;border-radius:4px;background:var(--paper);overflow:hidden}.preset-box{position:absolute;display:block;border-radius:2px}.preset-title{background:#818cf8}.preset-body{background:#c7d2fe}.preset-avatar{background:#f9a8d4}.studio-offer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fef3c7}.studio-offer .note{margin:0;color:#92400e}.studio-background{border:1.5px solid var(--line);border-radius:12px;padding:10px 14px}.studio-background summary{cursor:pointer;font-weight:700}.studio-background[open] summary{margin-bottom:10px}.studio-background>*+*{margin-top:10px}.studio-background textarea{width:100%}.studio-voice{flex-wrap:wrap}.studio-gap{justify-self:center;padding:6px 16px;font-size:.85rem;background:transparent;color:var(--muted);border:1.5px dashed var(--line);box-shadow:none}.studio-gap:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.studio-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.studio-bar .note{margin:4px 0 0}.studio-expand{display:grid;gap:8px;justify-items:start}.studio-expand-panel{display:grid;gap:10px;width:100%;padding:12px 14px;border:1.5px solid var(--accent);border-radius:12px;background:#4f46e50d}.studio-expand-panel textarea,.studio-expand-panel input{width:100%}.studio-reword{align-items:center;gap:10px;flex-wrap:wrap}.studio-reword select{width:auto}.studio-diagram{align-items:center;gap:10px;flex-wrap:wrap}.studio-diagram input{flex:1 1 200px;min-width:0}.studio-figure{align-items:center;gap:10px;flex-wrap:wrap}.studio-figure-form,.studio-figure-edit{display:grid;gap:10px;padding:12px 14px;border:1.5px solid var(--accent);border-radius:12px;background:#4f46e50d}.studio-figure-source{display:flex;gap:16px;flex-wrap:wrap;border:0;padding:0;margin:0}.studio-figure-source legend{padding:0;margin-bottom:4px;font-weight:600}.figure-edit-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}@media(max-width:720px){.figure-edit-grid{grid-template-columns:1fr}}.figure-edit-pic{position:relative;width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.figure-edit-pic.armed{cursor:crosshair;outline:2px solid var(--accent)}.figure-edit-pic img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.figure-edit-dot{position:absolute;display:grid;place-items:center;width:22px;height:22px;transform:translate(-50%,-50%);border-radius:50%;background:#14161a;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;pointer-events:none}.figure-edit-dot.on{background:var(--accent);transform:translate(-50%,-50%) scale(1.25)}.figure-edit-labels{display:grid;gap:6px;margin:0;padding:0;list-style:none}.figure-edit-labels li{display:flex;gap:6px;align-items:center}.figure-edit-labels input{flex:1 1 auto;min-width:0}.figure-edit-labels{counter-reset:lbl}.figure-edit-labels li:before{counter-increment:lbl;content:counter(lbl);flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#14161a;color:#fff;font-size:11px;font-weight:700}.studio-figure-form .choice{display:flex;gap:8px;align-items:center}.studio-starts{display:grid;gap:6px}.studio-starts ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.studio-starts li{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:8px;align-items:center}.studio-starts-step{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-starts select{width:100%;min-width:0}@media(max-width:720px){.studio-starts li{grid-template-columns:1fr}}.overview-slides{margin:0;padding-left:1.4rem;display:grid;gap:.35rem}.amend-slides{border:0;margin:0;padding:0;display:grid;gap:.35rem;max-height:16rem;overflow-y:auto}.amend-slides .chip{justify-self:start}.amend-slide{align-items:center;gap:.5rem}.field{display:grid;gap:6px;font-size:.95rem}.field-label{font-weight:600}.bullets-editor{display:grid;gap:10px}.bullets-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bullet-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:8px;border-radius:10px}.bullet-row.dragging{opacity:.45}.bullet-row.dropping{outline:3px dashed var(--accent);outline-offset:2px}@media(max-width:560px){.bullet-row{display:flex;flex-wrap:wrap}.bullet-row input{flex:1 1 10rem}}.studio-header{position:sticky;top:8px;z-index:30;display:grid;gap:8px;padding:10px 16px 8px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 6px 24px #1118271a}.studio-header-row{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}.studio-header-title{flex:1 1 220px;min-width:0}.studio-header-title h1{margin:0;font-size:1.15rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-header-title .meta{margin:0;font-size:.82rem}.studio-header .stepper{flex:0 1 auto}.studio-header .stepper ol{gap:6px}.studio-header .stepper-step{flex:0 0 auto}.studio-header .stepper-button{padding:5px 10px;gap:8px;border-radius:10px;font-size:.9rem}.studio-header .stepper-dot{width:22px;height:22px;font-size:.78rem}.studio-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.studio-header-actions button{padding:7px 14px;white-space:nowrap}.studio-menu{position:relative}.studio-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:min(360px,90vw);margin:0;padding:6px;list-style:none;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 14px 36px #11182733}.studio-menu-list button,.studio-menu-list a{display:grid;gap:2px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-weight:700;text-align:left;text-decoration:none;box-shadow:none;white-space:normal}.studio-menu-list small{color:var(--muted);font-weight:600;font-size:.8rem}.studio-menu-list button:hover:not(:disabled),.studio-menu-list a:hover{background:var(--paper)}.studio-menu-list button:disabled{opacity:.5;cursor:not-allowed}.studio-menu-sep{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}.studio-status{display:flex;align-items:center;gap:12px;min-height:38px;padding:4px 12px;border-radius:10px;background:var(--paper);color:var(--muted);font-size:.9rem}.studio-status-text{flex:1 1 auto;min-width:0}.studio-status-detail{color:var(--muted);font-weight:600}.studio-status progress{flex:0 1 220px;width:220px}.studio-status button{flex:0 0 auto;padding:5px 12px;white-space:nowrap}.studio-status.is-busy{background:#4f46e514;color:var(--ink);animation:status-in .2s ease-out both}.studio-status.is-done{background:#dcfce7;color:#15803d;font-weight:700}.studio-status.is-error{background:#fee2e2;color:#b91c1c;font-weight:700}@keyframes status-in{0%{opacity:.4}}@media(prefers-reduced-motion:reduce){.studio-status.is-busy{animation:none}}@media(max-width:720px){.studio-header{top:0;border-radius:0 0 14px 14px}.studio-status progress{display:none}}.flow-review{display:grid;gap:12px;scroll-margin-top:150px}.flow-review h2{margin:0}.flow-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.flow-item{padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--card)}.flow-item.is-off{opacity:.55}.flow-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer}.flow-head input{width:auto}.flow-voice{padding:2px 10px;border-radius:999px;background:var(--paper);color:var(--muted);font-size:.78rem;font-weight:800}.flow-text{margin:8px 0 0;line-height:1.6}.flow-text del{background:#fee2e2;color:#b91c1c;text-decoration:line-through;border-radius:4px;padding:0 2px}.flow-text ins{background:#dcfce7;color:#15803d;text-decoration:none;font-weight:700;border-radius:4px;padding:0 2px}.question-editor{display:grid;gap:12px}.question-answers{border:1.5px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;gap:8px}.question-answer{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center}.question-answer input[type=radio]{width:auto}.question-editor .inline{display:inline-flex;gap:6px;align-items:center;font-weight:600}.question-editor .inline input{width:auto}.quiz-intro{max-width:640px;margin:0 auto;width:100%}.quiz-facts{list-style:none;padding:0;margin:12px 0 18px;display:flex;flex-wrap:wrap;gap:8px}.quiz-facts li{padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--card));font-weight:600}.quiz-headline{font-size:1.6rem;font-weight:700;margin:0}.quiz-result{padding:12px 0}.quiz-marks{font-weight:400;color:var(--muted, #6b7280)}.marked-answer{border-left:4px solid #d1d5db;padding:6px 12px;margin:10px 0}.marked-answer.full{border-color:#047857}.marked-answer.partial{border-color:#d97706}.marked-answer.none{border-color:var(--danger, #b91c1c)}.marked-prompt{font-weight:600;margin:0 0 4px}.marked-given,.marked-feedback,.marked-right,.marked-model{margin:4px 0}.marked-text{white-space:pre-wrap;overflow-wrap:anywhere}.marked-points{list-style:none;padding:0;margin:6px 0}.marked-points li.met{color:#047857}.marked-points li.missed{color:var(--danger, #b91c1c)}.attempt-strip{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0}.attempt-strip li{display:grid;gap:2px;padding:6px 12px;border:1px solid #d1d5db;border-radius:8px}.attempt-strip li.best{border-color:#047857}.attempt{border-top:1px solid #e5e7eb;padding:8px 0}.attempt summary{cursor:pointer;font-weight:600}.progress-list{list-style:none;padding:0;margin:0 0 12px}.progress-list>li{padding:4px 0;display:grid;gap:4px}.progress-row{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left}.results-questions li{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.quiz-settings{border:0;padding:0;margin:12px 0 0}.question-points{border:0;padding:0;margin:0}.login-slips{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px}.login-slip{border:1.5px dashed #6b7280;border-radius:10px;padding:12px 14px;display:grid;gap:4px;background:#fff;break-inside:avoid}.login-slip code{font-size:1.1rem;font-weight:700}@media print{.topbar,.site-footer,.no-print{display:none!important}body{background:#fff!important}.print-slips-card{box-shadow:none!important;border:0!important;padding:0!important}}
