:root{--bg: #f4f5fb;--surface: #ffffff;--surface-2: #f7f8fd;--line: #e1e4f0;--ink: #1f2346;--ink-2: #565c80;--sky: #4bb4f8;--peri: #7f9df4;--lilac: #c896f4;--pink: #f797bb;--sun: #f6c343;--navy: #3f4a8c;--primary: #4a5fd6;--primary-press: #2f3c96;--primary-soft: #e8ecff;--done: #1f7a55;--done-soft: #ddf5ea;--danger: #b4234a;--danger-soft: #ffe7ee;--state-demonstrated: #d8efff;--state-gap: #ffe0ec;--state-resolved: #e4e8ff;--head: "Nunito", "Atkinson Hyperlegible Next", system-ui, sans-serif;--read: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, sans-serif;--pixel: "Pixelify Sans", "Courier New", monospace;--radius: 16px;--shadow: 0 1px 2px rgb(31 35 70 / .06), 0 4px 16px rgb(31 35 70 / .06);color-scheme:light;font-family:var(--read);font-size:16px;line-height:1.55;color:var(--ink);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;scrollbar-gutter:stable}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}a{color:var(--primary)}h1,h2,h3{font-family:var(--head);line-height:1.2;margin:0}h1{font-size:clamp(26px,3.4vw,34px);font-weight:900}h2{font-size:20px;font-weight:800}h3{font-size:16px;font-weight:800}p,blockquote{margin:0}:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}svg{display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.fine-print{font-size:14px;color:var(--ink-2)}.error{color:var(--danger);font-weight:700}.link-button{color:var(--primary);font-weight:700;padding:6px 2px;min-height:44px}.link-button:hover{text-decoration:underline}.back-link:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;rotate:45deg;vertical-align:1px}.sample-tag{display:inline-block;font-family:var(--read);font-size:13px;font-weight:700;color:#7a4b00;background:#fff1c7;border-radius:999px;padding:2px 10px;vertical-align:middle}.profile{font-size:13px;font-weight:700;color:var(--navy);background:var(--primary-soft);border-radius:999px;padding:1px 10px;margin-left:6px;text-transform:capitalize}.avatar{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;font-family:var(--head);font-weight:900;color:#fff;background:linear-gradient(135deg,var(--peri),var(--lilac))}.pixel-avatar{flex:none;width:52px;height:52px;padding:6px;border-radius:14px;background:#000;image-rendering:pixelated}.pixel-avatar-lg{width:96px;height:96px;padding:10px;border-radius:20px}.bubble{position:relative;background:var(--surface-2);border:2px solid var(--line);border-radius:16px;padding:10px 14px}.thinking-dots{display:inline-flex;gap:6px;align-items:center;min-height:24px}.thinking-dots i{width:9px;height:9px;border-radius:50%;background:currentColor;animation:dot-step 1.2s infinite ease-in-out}.thinking-dots i:nth-child(2){animation-delay:.15s}.thinking-dots i:nth-child(3){animation-delay:.3s}@keyframes dot-step{0%,60%,to{opacity:.25;translate:0 0}30%{opacity:1;translate:0 -4px}}.choices{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.choice{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 20px;border-radius:14px;font-family:var(--head);font-weight:800;font-size:16px;text-decoration:none;color:var(--navy);background:var(--surface);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);transition:translate .12s ease-out,box-shadow .12s ease-out,background .15s}.choice:hover:not(:disabled){background:var(--primary-soft)}.choice:active:not(:disabled){translate:0 3px;box-shadow:0 0 0 var(--line)}.choice-primary{color:#fff;background:var(--primary);border-color:var(--primary-press);box-shadow:0 3px 0 var(--primary-press)}.choice-primary:hover:not(:disabled){background:#3f53c4}.choice-primary:active:not(:disabled){box-shadow:0 0 0 var(--primary-press)}.choice:disabled{opacity:.5}.choice-wide{width:100%}.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--primary)}.status-chip{flex:none;font-size:13px;font-weight:700;color:var(--navy);background:var(--primary-soft);border-radius:999px;padding:3px 12px}.status-chip.approved{color:var(--done);background:var(--done-soft)}.status-chip.waiting{color:#7a5200;background:#fff6d9}.status-chip.missing,.status-chip.not-approved{color:var(--danger);background:var(--danger-soft)}.requested-tag{color:#7a5200;background:#fff6d9}.review-request-note{font-size:15px;background:#fff6d9;border-radius:12px;padding:8px 12px}.status-group{flex:none;display:grid;justify-items:end;gap:4px}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-row .choice[aria-pressed=true]{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.work-list{display:grid;gap:12px}.status-explain{font-size:15px}.review-request{display:grid;gap:8px}.review-request textarea{min-height:72px}.status-detail{font-size:13px;color:var(--ink-2)}.gold-star{display:flex;gap:8px;align-items:center;font-weight:700;color:#7a5200;background:#fff6d9;border-radius:12px;padding:8px 12px}.gold-star:before{content:"";flex:none;width:18px;height:18px;background:var(--sun);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}input,textarea,select{border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);min-height:44px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea{width:100%;resize:vertical}del{color:var(--danger);text-decoration-thickness:2px}ins{color:var(--done);text-decoration:none;font-weight:700}code{font-size:.9em;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}details{margin-top:10px}summary{cursor:pointer;color:var(--primary);font-weight:700;min-height:32px}details>p,details>div{margin-top:6px}.signin{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(circle at 15% 20%,rgb(75 180 248 / .18),transparent 40%),radial-gradient(circle at 85% 80%,rgb(247 151 187 / .2),transparent 40%),var(--bg)}.signin-card{width:min(460px,100%);display:grid;gap:20px;justify-items:center;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:32px 28px}.signin-logo{width:min(260px,80%);height:auto}.signin-tagline{font-family:var(--head);font-weight:800;font-size:18px;color:var(--ink-2);margin-top:-8px}.pip-says{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%}.pip-says .bubble{flex:1;min-height:76px}.pip-says .pixel-avatar{transition:transform .15s}.pip-says:hover .pixel-avatar{transform:translateY(-2px)}.pip-voice{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:-8px;font-size:14px;color:var(--ink-2)}.pip-voice .sound-button{min-height:32px;padding:4px 12px}.dev-login{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;border-top:2px dashed var(--line);padding-top:18px}.dev-login h2{grid-column:1 / -1;font-size:15px;color:var(--ink-2)}.dev-login label{display:grid;gap:4px;font-size:14px;font-weight:700;min-width:0}.dev-login input{width:100%}.dev-login .choice{grid-column:1 / -1}.appbar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;min-height:64px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line)}.appbar-left{display:flex;align-items:center;gap:16px;min-width:0}.appbar-brand{display:flex;align-items:center;min-height:44px}.appbar-brand img{height:38px;width:auto}.appbar-class{font-family:var(--head);font-weight:800;font-size:17px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;padding-left:16px;border-left:1px solid var(--line)}.appbar-tabs{display:flex;align-self:stretch;gap:4px}.appbar-tabs a{position:relative;display:flex;align-items:center;text-decoration:none;padding:0 18px;font-family:var(--head);font-weight:800;color:var(--ink-2);border-radius:10px 10px 0 0}.appbar-tabs a:hover{background:var(--surface-2);color:var(--ink)}.appbar-tabs a[aria-current=page]{color:var(--primary)}.appbar-tabs a[aria-current=page]:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:4px;border-radius:4px 4px 0 0;background:var(--primary)}.account{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.account-name{font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:1080px;margin:0 auto;padding:24px 20px 48px}.site-footer{text-align:center;font-size:13px;color:var(--ink-2);padding:0 16px 24px}.loading{display:grid;justify-items:center;gap:10px;padding:80px 0;color:var(--ink-2)}.banner-error{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--danger-soft);color:var(--danger);border-radius:12px;padding:6px 16px;margin-bottom:16px;font-weight:700}.class-banner{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:flex-end;min-height:220px;padding:24px 28px;border-radius:20px;background:linear-gradient(110deg,var(--sky) 0%,var(--peri) 40%,var(--lilac) 75%,var(--pink) 100%);color:#fff}.class-banner h1{font-size:clamp(28px,4.4vw,42px);text-shadow:0 2px 0 var(--navy),0 4px 0 rgb(63 74 140 / .35)}.class-banner p{font-family:var(--head);font-weight:800;font-size:18px;margin-top:4px;text-shadow:0 1px 0 var(--navy)}.class-banner>div{position:relative;z-index:1}.class-banner img{position:absolute;right:20px;top:50%;translate:0 -50%;height:calc(100% - 44px);width:auto;max-width:46%;object-fit:cover;border:4px solid #fff;border-radius:12px;image-rendering:pixelated;box-shadow:0 6px #3f4a8c59;rotate:2deg}.stream-grid{display:grid;grid-template-columns:220px 1fr;gap:20px;margin-top:20px;align-items:start}.upcoming{display:grid;gap:10px;padding:16px}.upcoming h2{font-size:16px}.upcoming-item{display:grid;text-align:left;font-weight:700;color:var(--ink);padding:8px 0}.upcoming-item span{font-size:13px;font-weight:400;color:var(--ink-2)}.upcoming-item:hover{color:var(--primary)}.upcoming .link-button{justify-self:end;min-height:32px}.stream-posts{display:grid;gap:14px}.post{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;text-align:left;width:100%}.post-assignment{align-items:center;transition:box-shadow .15s,translate .15s}.post-assignment:hover{translate:0 -2px;box-shadow:0 2px 4px #1f234614,0 10px 24px #1f23461a}.post-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--sun);background:var(--primary);box-shadow:inset 0 -3px 0 var(--primary-press)}.post-icon svg{width:22px;height:22px}.post-body{flex:1;display:grid;gap:6px;min-width:0}.post-title{font-family:var(--head);font-weight:800;font-size:17px}.post-meta{font-size:14px;color:var(--ink-2)}.post-update{display:grid;grid-template-columns:1fr auto}.post-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.post-images{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:4px}.post-images-1{grid-template-columns:1fr}.post-images a{display:block;border-radius:12px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}.post-images img{display:block;width:100%;max-height:360px;object-fit:cover}.post-images-1 img{object-fit:contain}.post-images a:has(.post-image-art){justify-self:start;border:0;background:#000}.post-images img.post-image-art{width:auto;max-width:100%;height:160px;padding:10px;image-rendering:pixelated}.composer{display:grid;gap:12px;padding:16px 18px}.composer textarea{width:100%;resize:vertical}.composer-row{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.composer-pictures{display:flex;flex-wrap:wrap;gap:8px}.composer-picture{position:relative}.composer-picture img{display:block;width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.composer-remove{position:absolute;top:-8px;right:-8px;width:26px;height:26px;border-radius:50%;border:0;color:#fff;background:var(--ink);line-height:1}.setup-list{list-style:none;margin:0;padding:12px 18px;display:flex;flex-wrap:wrap;gap:4px 24px;font-size:14px;color:var(--ink-2);box-shadow:none;background:transparent;border-style:dashed}.setup-list li{display:flex;align-items:center;gap:8px}.setup-list li:before{content:"";width:9px;height:9px;border-radius:50%;background:#3aa877}.setup-list li.missing:before{background:var(--sun)}.assignment{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.assignment-main{display:grid;gap:18px}.back-link{justify-self:start}.assignment-head{display:flex;gap:16px;align-items:center;padding-bottom:18px;border-bottom:2px solid var(--primary-soft)}.assignment-head p{color:var(--ink-2);margin-top:4px}.chalkboard{display:grid;gap:8px;padding:24px 28px;border-radius:18px;background:#386557;color:#eef3d6;border:8px solid #b9844f;box-shadow:inset 0 0 0 2px #00000026,var(--shadow)}.chalkboard h2{font-size:22px;color:#fff}.board-title{font-family:var(--pixel);font-size:22px;line-height:1.1;color:#fff}.board-question{white-space:pre-wrap;overflow-wrap:anywhere}.chalkboard-strip{grid-template-columns:auto 1fr;align-items:center;column-gap:24px;padding:16px 22px;border-width:6px}.chalkboard-strip .board-title{font-size:18px}.section-heading{margin-top:6px}.quest-steps{list-style:none;counter-reset:quest;margin:0;padding:0;display:grid;gap:10px}.quest-steps li{counter-increment:quest;position:relative;padding:12px 16px 12px 62px;min-height:56px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.quest-steps li:before{content:counter(quest);position:absolute;left:16px;top:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-family:var(--head);font-weight:900;color:#fff;text-shadow:0 1px 0 var(--navy)}.quest-steps li:nth-child(1):before{background:var(--sky)}.quest-steps li:nth-child(2):before{background:var(--peri)}.quest-steps li:nth-child(3):before{background:var(--lilac)}.quest-steps li>b{display:block;font-family:var(--head);font-weight:800}.your-work{position:sticky;top:88px;display:grid;gap:14px;padding:20px}.your-work-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.record-page{max-width:780px;margin:0 auto;display:grid;gap:16px}.record-page h1{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.record-card{padding:24px;display:grid;gap:14px}.recorder{display:grid;gap:14px}.record-row{display:flex;gap:22px;align-items:center}.record-row>div{display:grid;gap:12px;min-width:0}.record-button{flex:none;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--pink);border:4px solid #fff;box-shadow:0 0 0 3px #d9668f,0 5px 0 3px #b84d76;transition:translate .12s ease-out}.record-button:hover{translate:0 -1px}.record-button:active{translate:0 3px}.record-dot{width:30px;height:30px;border-radius:50%;background:#fff}.record-stop{width:26px;height:26px;border-radius:6px;background:#fff}.record-button.is-recording{animation:rec-pulse 1.4s ease-in-out infinite}@keyframes rec-pulse{50%{box-shadow:0 0 0 10px #f797bb59,0 5px 0 3px #b84d76}}.record-invitation{font-family:var(--head);font-weight:800;font-size:18px}.recorder-note{font-size:14px;color:var(--ink-2)}.recording-wave{display:flex;gap:5px;align-items:center;height:32px}.recording-wave i{width:6px;height:100%;border-radius:3px;background:var(--pink);animation:wave .9s ease-in-out infinite}.recording-wave i:nth-child(2n){animation-delay:.2s;background:var(--lilac)}.recording-wave i:nth-child(3n){animation-delay:.4s;background:var(--peri)}@keyframes wave{50%{scale:1 .35}}.processing{display:flex;gap:14px;align-items:center;color:var(--ink-2)}.transcript-review{display:grid;gap:12px}.review-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.review-head h3{font-size:18px}.chalk-count{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--ink-2)}.chalk-count i{width:14px;height:14px;background:var(--sun);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}.chalk-count i.used{background:var(--line)}.chalk-count span{margin-left:4px}.transcript-review audio{width:100%}.word-transcript{max-height:260px;overflow:auto;padding:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);line-height:1.4}.word-transcript button{padding:2px 3px;border-radius:6px;min-height:30px}.word-transcript button:not(:disabled):hover{background:var(--primary-soft)}.word-transcript button.selected{background:var(--sun);color:var(--ink)}.word-transcript button:disabled{cursor:default}.word-editor{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.word-editor label{display:grid;gap:4px;font-weight:700;flex:1 1 240px}.correction-list{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding-left:20px;font-size:15px}.game-screen{--surface: #000;--surface-2: #0d0d12;--line: #ffffff;--ink: #ffffff;--ink-2: #c3c6d8;--primary-soft: #222634;color:var(--ink);background:#000;border-radius:24px;padding:clamp(10px,2vw,20px);box-shadow:0 0 0 6px var(--surface-frame, #fff),0 0 0 9px var(--peri),0 14px 0 9px #3f4a8c59;margin:9px}.game-screen .choice{justify-content:flex-start;font-family:var(--pixel);font-weight:500;font-size:19px;color:#fff;background:transparent;border:0;border-radius:0;box-shadow:none;padding:6px 4px 6px 26px;position:relative;translate:none}.game-screen .choice:before{content:"";position:absolute;left:2px;width:15px;height:15px;background:var(--sun);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:0}.game-screen .choice:hover:not(:disabled),.game-screen .choice:focus-visible{background:transparent;color:var(--sun)}.game-screen .choice:hover:not(:disabled):before,.game-screen .choice:focus-visible:before,.game-screen .choice-primary:before{opacity:1}.game-screen .choice-primary{color:var(--sun)}.game-screen .choice:focus-visible{outline:none}.game-screen .record-invitation,.game-screen .review-head h3{font-family:var(--pixel);font-weight:500}.game-screen .word-transcript{font-family:var(--read)}.game-screen .record-button{border-color:#000}.game-screen .word-transcript button.selected{color:#000}.game-screen del{color:#ff9db7}.game-screen ins{color:#8ee6b8}.game-screen input{background:#000;color:#fff;border-color:#fff;border-radius:0}.game-screen .error{color:#ff9db7}.game-loading{max-width:640px;margin:48px auto;display:grid;justify-items:center;gap:14px;padding:48px 24px;text-align:center}.game-loading img{width:112px;height:112px;image-rendering:pixelated}.game-loading h1{font-family:var(--pixel);font-weight:500;font-size:32px}.game-loading p{color:var(--ink-2);max-width:40ch}.scene-wrap{max-width:1000px;margin:0 auto}.scene-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.scene-toolbar p{font-family:var(--head);font-weight:800;font-size:18px}.scene-toolbar b{color:var(--primary)}.sound-button{min-height:40px;padding:6px 16px;border-radius:999px;font-weight:700;color:var(--ink-2);background:var(--surface);border:2px solid var(--line)}.sound-button[aria-pressed=true]{color:var(--primary);border-color:var(--primary)}.scene-sample{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:0;margin:0 0 14px;font-size:14px;color:var(--ink-2)}.classroom{position:relative;aspect-ratio:8 / 5;overflow:hidden;background:#000;border-radius:10px}.room-art,.room-art>svg{display:block;width:100%;height:100%;image-rendering:pixelated}.chalk-writing{position:absolute;left:46%;top:8.5%;font-family:var(--pixel);color:#e7edc8;line-height:1.1;pointer-events:none}.chalk-writing{max-width:30%}.chalk-writing>span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chalk-writing>span:first-child{font-size:clamp(13px,2.7vw,27px)}.chalk-writing>span:last-child{font-size:clamp(8px,1.3vw,13px);opacity:.8}.dialogue-box{position:absolute;left:3%;right:3%;bottom:3%;min-height:25%;display:grid;grid-template-columns:clamp(56px,10vw,96px) 1fr;gap:clamp(12px,2.4vw,24px);align-items:center;background:#000;border:4px solid #fff;padding:clamp(10px,1.6vw,16px) clamp(14px,2.4vw,24px);color:#fff;cursor:pointer;font-family:var(--pixel)}.dialogue-portrait{width:100%;height:auto;aspect-ratio:1;image-rendering:pixelated}.dialogue-name{font-family:var(--pixel);font-size:15px;color:var(--ink-2, #c3c6d8);margin-bottom:2px}.dialogue-line{position:relative;padding-left:1.1em;font-size:clamp(15px,2.1vw,22px);line-height:1.4;min-height:1.4em}.dialogue-line:before{content:"*";position:absolute;left:0}.dialogue-line.is-thinking:before{content:""}.dialogue-line.is-thinking{padding-left:0}.advance-hint{position:absolute;right:14px;bottom:6px;font-size:14px;color:#c3c6d8}.advance-hint:after{content:"";display:inline-block;margin-left:6px;border:5px solid transparent;border-top:6px solid currentColor;border-bottom:0;vertical-align:1px;animation:hint-bob .9s steps(2) infinite}@keyframes hint-bob{50%{translate:0 2px}}.scene-answer,.scene-choices{border:4px solid #fff;padding:18px 22px 20px;margin-top:14px}.scene-answer{display:grid;gap:12px}.scene-answer .dialogue-name{display:flex;justify-content:space-between;gap:12px;font-size:18px;color:#fff}.scene-answer .dialogue-name span{color:#c3c6d8;font-size:15px}.scene-answer .word-transcript{max-height:180px}.scene-choices{display:flex;flex-wrap:wrap;align-items:center;gap:4px 28px}.scene-choices .choices-note,.scene-choices .error{width:100%;margin-top:6px;font-size:14px;color:#c3c6d8}.ending-status{width:100%;font-family:var(--pixel);font-size:26px;color:var(--sun)}.ending-spark{position:absolute;top:27%;left:47.5%;width:5%;image-rendering:pixelated;animation:spark-blink 1.6s steps(2) infinite}@keyframes spark-blink{50%{opacity:.35}}.classroom #child-head{animation:child-listen 3s ease-in-out infinite;transform-origin:127px 56px}.expression-thinking #child-head{animation:child-think 1.5s ease-in-out infinite}.expression-aha #child-head{animation:child-nod 2s ease-in-out infinite}.event-pass-0 #left-classmate,.event-pass-0 #right-classmate{animation:class-leaves 3.5s ease-in forwards}.event-pass-0 #right-classmate{animation-delay:.5s}.event-pass-1 #student-gesture{animation:chalk-draw .7s steps(2) infinite}.ending-board-note{position:absolute;top:18%;left:31%;color:#e7edc8;font-family:var(--pixel);font-size:clamp(12px,2.2vw,24px);transform:rotate(-4deg);animation:write-note 1.8s steps(8) both;overflow:hidden;white-space:nowrap}.ending-toy-cart,.ending-notebook{position:absolute;top:47%;left:52%;width:7%;line-height:0;image-rendering:pixelated;animation:bring-object 1.3s steps(6) both}.ending-toy-cart svg,.ending-notebook svg{width:100%;height:auto}.ending-notebook{transform:rotate(-9deg)}@keyframes child-listen{50%{translate:0 -1px}}@keyframes child-think{50%{rotate:-3deg}}@keyframes child-nod{20%{translate:0 1px}40%{translate:0 0}}@keyframes class-leaves{to{translate:100px -45px;opacity:0}}@keyframes chalk-draw{to{translate:1px -1px}}@keyframes write-note{0%{max-width:0}to{max-width:300px}}@keyframes bring-object{0%{translate:35px 0;opacity:0}to{translate:0 0;opacity:1}}.finished{position:relative;max-width:560px;margin:40px auto;padding:36px 28px;display:grid;justify-items:center;gap:14px;text-align:center}.finished .choices{justify-content:center;margin-top:6px}.reward{position:absolute;top:26px;left:calc(50% + 40px);color:var(--sun);width:34px;animation:pop .6s cubic-bezier(.3,1.6,.5,1) both}@keyframes pop{0%{scale:0;rotate:-40deg}}.teacher-page{display:grid;gap:18px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px}.page-heading>div:first-child{max-width:560px;display:grid;gap:6px}.page-heading p{color:var(--ink-2)}.teacher-tabs{display:flex;overflow-x:auto;overflow-y:hidden;align-items:stretch;gap:4px;border-bottom:1px solid var(--line)}.teacher-tabs [role=tab]{position:relative;white-space:nowrap;min-height:48px;padding:0 18px;font-family:var(--head);font-weight:800;color:var(--ink-2)}.teacher-tabs [role=tab]:hover{color:var(--ink)}.teacher-tabs [role=tab][aria-selected=true]{color:var(--primary)}.teacher-tabs [role=tab][aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:4px;border-radius:4px 4px 0 0;background:var(--primary)}.teacher-tabs .refresh{margin-left:auto}.sample-notice{background:#fff6d9;border:1px solid #f3dd94;border-radius:14px;padding:12px 16px;font-size:15px}.recap-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.recap-row{display:grid;grid-template-columns:minmax(180px,1.3fr) repeat(3,minmax(0,1fr));gap:14px;padding:16px 18px;align-items:start}.recap-row+.recap-row{border-top:1px solid var(--line)}.recap-header{background:var(--surface-2);font-size:14px;font-weight:700;color:var(--ink-2);padding-block:10px}.recap-row p{font-size:14px;color:var(--ink-2);margin-top:4px}.bucket{border-radius:12px;padding:10px 12px;min-height:72px}.bucket-gap{background:var(--state-gap)}.bucket-resolved{background:var(--state-resolved)}.bucket-unassessed{border:2px dashed var(--line)}.bucket-label{display:none;font-size:13px;font-weight:700;color:var(--ink-2)}.bucket b{display:block;font-family:var(--head);font-size:24px;font-weight:900;line-height:1}.bucket p{font-size:13px}.bucket ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;gap:4px}.bucket li{font-size:13px;font-weight:700;background:#ffffffbf;border-radius:999px;padding:1px 8px}.support-queue{display:grid;gap:10px;justify-items:start;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.recap-draft{width:100%;padding:14px 16px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);display:grid;gap:8px}.integration-note{font-size:14px;color:var(--ink-2)}.evidence-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.attempt-list{position:sticky;top:88px;display:grid;gap:4px;max-height:calc(100vh - 110px);overflow:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.attempt-list h2{font-size:16px;padding:4px 8px 8px;display:flex;justify-content:space-between}.attempt-list h2 span{color:var(--ink-2)}.attempt-item{display:grid;grid-template-columns:36px 1fr;column-gap:10px;align-items:center;text-align:left;padding:8px;border-radius:12px}.attempt-item .avatar{grid-row:span 3;align-self:start}.attempt-item:hover{background:var(--surface-2)}.attempt-item.active{background:var(--primary-soft)}.attempt-name{font-weight:700}.attempt-name .sample-tag{font-size:11px;padding:0 7px}.attempt-status,.attempt-item time{font-size:13px;color:var(--ink-2)}.evidence-detail{display:grid;gap:16px}.evidence-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.evidence-title h2{width:100%;font-size:26px;font-weight:900}.evidence-title>p:not(.sample-tag){width:100%;color:var(--ink-2)}.result-pill{font-size:13px;font-weight:700;border-radius:999px;padding:3px 12px;background:var(--surface-2);border:1px dashed var(--ink-2);display:inline-block}.result-pill:first-letter,.provenance dd:first-letter,.criterion h3 span:first-letter{text-transform:uppercase}.result-pill.pass,.result-pill.correct{background:var(--state-demonstrated);border:0;color:#0b5a8c}.result-pill.needs-work,.result-pill.incorrect{background:var(--state-gap);border:0;color:#96224e}.evidence-section{display:grid;gap:10px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.section-title{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:18px}.section-title span{font-family:var(--read);font-size:13px;font-weight:400;color:var(--ink-2)}.provenance{display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;margin:0;font-size:14px}.provenance dt{font-weight:700;color:var(--ink-2)}.provenance dd{margin:0}.evidence-section audio{width:100%}.evidence-section blockquote{padding:10px 14px;border-left:4px solid var(--peri);background:var(--surface-2);border-radius:0 10px 10px 0}.correction-line{display:flex;flex-wrap:wrap;gap:8px;font-size:14px}.correction-line time{color:var(--ink-2)}.criterion-list{display:grid;gap:10px}.criterion{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:12px 14px;border-radius:12px;border:2px dashed var(--line)}.criterion>div{display:grid;gap:6px}.criterion-demonstrated{background:var(--state-demonstrated);border:0}.criterion-missing,.criterion-contradicted{background:var(--state-gap);border:0}.criterion-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900;background:#fff}.criterion h3{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.criterion h3 span{font-family:var(--read);font-size:13px;font-weight:700;color:var(--ink-2)}.criterion blockquote{background:#ffffffa6}.diagnostic{display:grid;gap:8px;justify-items:start}.diagnostic>*{justify-self:stretch}.diagnostic .result-pill{justify-self:start}.diagnostic+.diagnostic{border-top:1px solid var(--line);padding-top:14px}.review-section{border:2px solid var(--peri);background:linear-gradient(180deg,#f3f5ff,var(--surface) 60%)}.review-radios{display:flex;flex-wrap:wrap;gap:10px}.review-radios label{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font-weight:700;cursor:pointer}.review-radios label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.review-radios input{accent-color:var(--primary);min-height:0}.review-criterion,.review-note{display:grid;gap:6px;font-weight:700}.review-section .choice{justify-self:start}.review-audit{display:grid;gap:4px}.review-audit+.review-audit{border-top:1px solid var(--line);padding-top:10px}.review-audit time{font-size:13px;color:var(--ink-2)}a.card,a.upcoming-item{color:inherit;text-decoration:none}a.link-button{display:inline-flex;align-items:center;text-decoration:none}.home{display:grid;gap:20px}.empty-state{max-width:560px}.join-form{display:grid;gap:8px;padding:14px 16px;width:min(100%,340px)}.join-form label{font-family:var(--head);font-weight:800}.join-row{display:flex;gap:8px;min-width:0}.join-row input{flex:1;min-width:0;font-family:var(--head);font-weight:800;letter-spacing:.12em;text-transform:uppercase}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.course-card{display:grid;overflow:hidden;transition:box-shadow .15s,translate .15s}.course-card:hover{translate:0 -2px;box-shadow:0 2px 4px #1f234614,0 10px 24px #1f23461a}.course-card-banner{display:flex;align-items:flex-end;min-height:96px;padding:14px 16px;background:linear-gradient(110deg,var(--sky) 0%,var(--peri) 45%,var(--lilac) 85%,var(--pink) 100%);color:#fff;font-family:var(--head);font-weight:900;font-size:20px;line-height:1.2;text-shadow:0 1px 0 var(--navy)}.course-card-body{display:grid;gap:4px;padding:12px 16px 16px}.course-card-next{font-weight:700}.course-actions{display:flex;justify-content:flex-end}.confirm{display:grid;gap:10px;padding:12px 14px;border-radius:14px;background:var(--danger-soft);color:var(--ink);font-size:15px;text-align:left}.choice-danger{color:#fff;background:var(--danger);border-color:#7d1531;box-shadow:0 3px #7d1531}.choice-danger:hover:not(:disabled){background:#9c1d40}.desk-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.desk-side{display:grid;gap:16px}.side-form{display:grid;gap:10px;padding:16px}.side-form h2{font-size:17px}.side-form label{display:grid;gap:6px;font-weight:700}.side-form .choice{justify-self:start}.teach-course-row{align-items:center}.join-code{font-family:var(--head);font-weight:900;font-size:32px;line-height:1;letter-spacing:.12em;color:var(--navy);-webkit-user-select:all;user-select:all}.join-code-sm{flex:none;font-size:18px;padding:6px 10px;border-radius:10px;background:var(--primary-soft)}.course-head{min-height:0;align-items:center;flex-wrap:wrap;gap:16px}.code-card{display:grid;gap:6px;justify-items:start;padding:14px 16px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 6px #3f4a8c59}.code-label{font-size:13px;font-weight:700;color:var(--ink-2)}.code-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.code-actions .confirm{flex-basis:100%;max-width:320px}.tab-count{font-family:var(--read);font-size:13px;color:var(--ink-2);margin-left:4px}.new-assignment{justify-self:start}.teach-assignment{align-items:center;flex-wrap:wrap}.teach-assignment .post-body{flex:1 1 260px}.teach-assignment .post-title .status-chip{margin-left:6px;vertical-align:2px}.post-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.roster{display:grid;padding:8px 16px}.roster>.fine-print{padding:10px 0}.roster-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0}.roster-row+.roster-row{border-top:1px solid var(--line)}.roster-name{flex:1;display:grid;font-weight:700;min-width:0}.roster-name small{font-weight:400;font-size:13px;color:var(--ink-2)}.roster-row .confirm{flex-basis:100%}.edited-tag{color:var(--navy);background:var(--primary-soft)}.assignment-form{max-width:820px}.form-stack{display:grid;gap:16px;margin:0;padding:0;border:0;min-width:0}.form-section{display:grid;gap:14px;padding:20px}.form-section-head,.repeat-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.repeat-head .link-button{min-height:32px}.field{display:grid;gap:6px;font-weight:700;min-width:0}.field .fine-print,.field input,.field textarea,.field select,.side-form input{font-weight:400}::placeholder{color:var(--ink-2);opacity:.6}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.repeat-item{display:grid;gap:10px;padding:14px 16px;border:2px solid var(--line);border-radius:14px;background:var(--surface-2)}.form-section>.choice{justify-self:start}.concept-checks{display:grid;gap:6px;margin:0;padding:0;border:0}.concept-checks .check{align-items:center;font-weight:400}.concept-checks .check input{margin:0}.concept-checks legend{font-weight:700;margin-bottom:6px;padding:0}.ubot-box{grid-template-columns:minmax(0,1fr) auto;align-items:center;border:2px dashed var(--peri);background:#f3f5ff}.ubot-box>p{grid-column:1 / -1}.ubot-label{justify-self:start;font-weight:700;color:var(--navy);background:var(--primary-soft);border-radius:999px;padding:4px 14px}.locked-notice{display:grid;gap:10px;justify-items:start}.form-actions{display:grid;gap:10px;margin-top:18px}fieldset:disabled input,fieldset:disabled textarea,fieldset:disabled select{background:var(--surface-2);color:var(--ink-2)}@media(max-width:860px){.appbar{display:flex;flex-wrap:wrap;padding:6px 16px 0;gap:8px 12px}.appbar-left{flex:1}.appbar-class{display:none}.account{margin-left:auto}.appbar-tabs{order:3;width:100%;min-height:48px;margin:0;justify-content:center}.account-name{display:none}.page{padding:16px 16px 40px}.stream-grid,.assignment,.evidence-layout,.desk-grid{grid-template-columns:1fr}.upcoming{display:none}.your-work,.attempt-list{position:static;max-height:none}.class-banner{min-height:220px;padding:20px}.class-banner img{width:42%;height:auto;max-width:none;top:16px;right:16px;translate:0 0}.recap-header{display:none}.recap-row{grid-template-columns:1fr}.bucket-label{display:block}.chalkboard-strip{grid-template-columns:1fr}.game-screen{border-radius:16px;margin:6px}}@media(max-width:560px){.record-row{flex-direction:column;align-items:flex-start}.dialogue-box{position:static;margin-top:10px}.classroom{aspect-ratio:auto;overflow:visible;background:transparent}.room-art{aspect-ratio:8 / 5;height:auto;border-radius:8px;overflow:hidden}.dev-login{grid-template-columns:1fr}.join-form{width:100%}.ubot-box{grid-template-columns:1fr}.ubot-box .choice{justify-self:start}.join-code{font-size:28px}}@media(prefers-reduced-motion:reduce){:not(.game-screen,.game-screen *),:not(.game-screen,.game-screen *):before,:not(.game-screen,.game-screen *):after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
