.classroom{--cr-gap:clamp(8px, 1.1vw, 16px);--cr-header-h:52px;--cr-avatar-w:min(18vw, 340px);--cr-textbox-h:min(20vh, 180px);grid-template-rows:var(--cr-header-h) minmax(0, 1fr) var(--cr-textbox-h);gap:var(--cr-gap);height:100dvh;padding:0 var(--cr-gap) var(--cr-gap);box-sizing:border-box;background:radial-gradient(ellipse 60% 55% at 45% 30%, var(--room-glow), transparent 70%), var(--room-wall);color:var(--board-text);font-family:var(--font-dialogue);display:grid;position:relative;overflow:hidden}[data-theme=midnight-archive] .classroom:before{content:"";pointer-events:none;background-image:radial-gradient(circle, var(--room-star) 1px, transparent 1.6px), radial-gradient(circle, var(--room-star-dim) 1px, transparent 1.4px);opacity:.35;background-position:13px 27px,71px 5px;background-size:97px 97px,151px 151px;position:absolute;inset:0}.classroom[data-textbox=collapsed]{--cr-textbox-h:52px}.classroom :focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.cr-header{align-items:center;gap:clamp(12px,2vw,32px);min-width:0;display:flex;position:relative}.cr-course{font-family:var(--font-label);letter-spacing:.08em;color:var(--accent-metal);white-space:nowrap;font-size:clamp(15px,1.35vw,20px)}.cr-home{color:var(--muted-text);margin-right:.9em;text-decoration:none}.cr-home:hover,.cr-home:focus-visible{color:var(--board-text)}[data-theme=midnight-archive] .cr-course{text-transform:uppercase;letter-spacing:.22em;font-size:clamp(12px,1vw,15px)}.cr-progress{align-items:center;gap:14px;min-width:0;display:flex}.cr-progress__label{color:var(--muted-text);white-space:nowrap;font-size:clamp(14px,1.2vw,18px);font-style:italic}.cr-pips{gap:6px;display:flex}.cr-pip{background:var(--pip-off);width:26px;height:6px}.cr-pip.is-done{background:var(--accent-metal)}[data-theme=midnight-archive] .cr-pip{width:10px;height:10px;margin:0 3px;transform:rotate(45deg)}.cr-header__actions{align-items:center;gap:12px;margin-left:auto;display:flex}.cr-raise{background:var(--accent-metal);height:42px;color:var(--on-accent);border:2px solid var(--accent-metal-strong);font-family:var(--font-label);letter-spacing:.05em;cursor:pointer;border-radius:4px;align-items:center;gap:10px;padding:0 20px;font-size:clamp(16px,1.35vw,20px);display:inline-flex}.cr-raise:hover:not(:disabled){filter:brightness(1.12)}.cr-raise:disabled{opacity:.5;cursor:default}.cr-raise kbd{min-width:22px;font-family:var(--font-code);border:1px solid;border-radius:3px;padding:0 5px;font-size:14px;line-height:20px}.cr-iconbtn{height:36px;color:var(--muted-text);border:1px solid var(--pip-off);font-family:var(--font-label);cursor:pointer;background:0 0;border-radius:4px;padding:0 12px;font-size:15px}.cr-iconbtn:disabled{opacity:.45;cursor:default}.cr-depth{align-items:center;gap:6px;display:flex}.cr-depth__label{border:1px solid var(--accent-metal);color:var(--accent-metal);font-family:var(--font-label);letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:14px}.cr-toast{z-index:5;background:var(--room-panel);border:1px solid var(--accent-metal);color:var(--board-text);font-family:var(--font-label);white-space:nowrap;pointer-events:none;border-radius:999px;padding:6px 16px;font-size:16px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.cr-settings{position:relative}.cr-settings__panel{z-index:20;background:var(--room-panel);border:1px solid var(--accent-metal);border-radius:6px;gap:10px;min-width:240px;padding:14px 16px;font-size:17px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.cr-settings__panel label{justify-content:space-between;align-items:center;gap:8px;display:flex}.cr-settings__panel select{font:inherit;background:var(--room-wall);color:var(--board-text);border:1px solid var(--pip-off);border-radius:4px;padding:2px 6px}.cr-stage{grid-template-columns:var(--cr-avatar-w) minmax(0, 1fr);gap:var(--cr-gap);min-height:0;display:grid;position:relative}.classroom[data-avatar=hidden] .cr-stage{grid-template-columns:minmax(0,1fr)}.cr-avatar{z-index:2;min-width:0;position:relative}.cr-avatar__sprite{left:0;right:0;bottom:calc(-1 * var(--cr-textbox-h) * .35);aspect-ratio:360/560;max-height:calc(100% + var(--cr-textbox-h) * .35);margin:0 auto;position:absolute}.cr-avatar__sprite.is-animated{animation:4.5s ease-in-out infinite cr-bob}@keyframes cr-bob{50%{transform:translateY(-3px)}}.cr-avatar__layer{object-fit:contain;object-position:bottom;width:100%;height:100%;position:absolute;inset:0}[data-theme=midnight-archive] .cr-avatar:before{content:"";inset:4% 4% calc(-1 * var(--cr-gap)) 4%;border:3px solid var(--accent-metal);background:var(--room-wood);border-radius:999px 999px 0 0;position:absolute}.cr-board{background:var(--board-frame);min-width:0;min-height:0;box-shadow:0 18px 40px var(--shadow);box-sizing:border-box;border-radius:6px;padding:12px;position:relative}.cr-board>.ai-board{border:2px solid var(--board-frame-inner);box-sizing:border-box}[data-theme=midnight-archive] .cr-board{background:var(--board-surface);border:2px solid var(--board-frame);box-shadow:inset 0 0 0 5px var(--board-surface), inset 0 0 0 6px var(--board-frame);border-radius:2px;padding:0}[data-theme=midnight-archive] .cr-board>.ai-board{border:none;width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.cr-overlay{background:color-mix(in srgb, var(--board-surface) 82%, transparent);text-align:center;z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:clamp(20px,2vw,30px);display:flex;position:absolute;inset:12px}.cr-overlay p{margin:0}.cr-overlay__note{color:var(--muted-text);font-size:.65em}.cr-aside{z-index:6;box-sizing:border-box;background:var(--room-panel);border:2px solid var(--accent-metal);width:min(46%,620px);box-shadow:0 12px 30px var(--shadow);border-radius:6px;flex-direction:column;gap:10px;padding:14px 16px;display:flex;position:absolute;top:12px;bottom:12px;right:12px}.cr-aside__header{font-family:var(--font-label);letter-spacing:.06em;color:var(--accent-metal);font-size:clamp(15px,1.25vw,19px)}.cr-aside__question{color:var(--muted-text);margin:0;font-size:clamp(16px,1.3vw,20px);font-style:italic}.cr-aside__status{margin:0;font-size:clamp(16px,1.3vw,20px)}.cr-aside__board{border:1px solid color-mix(in srgb, var(--board-text) 25%, transparent);flex:1;min-height:120px}.cr-aside__form{flex-direction:column;gap:10px;font-size:clamp(16px,1.3vw,20px);display:flex}.cr-aside__form textarea{font:inherit;background:var(--room-wall);color:var(--board-text);border:1px solid var(--pip-off);resize:vertical;border-radius:4px;padding:8px 10px}.cr-aside__actions{flex-wrap:wrap;gap:10px;display:flex}.cr-talk,.cr-aside__cancel{height:42px;color:var(--board-text);border:2px solid var(--accent-metal);font:inherit;cursor:pointer;touch-action:none;background:0 0;border-radius:4px;padding:0 16px}.cr-talk.is-on{background:var(--accent-metal);color:var(--on-accent)}.cr-aside__cancel{border-color:var(--pip-off);color:var(--muted-text)}.cr-aside__error{color:var(--off-material);margin:0}.cr-textbox{z-index:3;background:var(--textbox-bg);color:var(--textbox-ink);border:3px solid var(--textbox-border);box-shadow:0 12px 30px var(--shadow);box-sizing:border-box;border-radius:4px;grid-template-columns:minmax(0,1fr) minmax(200px,22%);gap:24px;min-height:0;padding:18px 24px 12px 32px;display:grid;position:relative}[data-theme=midnight-archive] .cr-textbox{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-width:1px;border-radius:10px}.classroom[data-textbox=collapsed] .cr-textbox{align-items:center;padding-top:8px;padding-bottom:8px}.cr-nameplate{background:var(--nameplate-bg);color:var(--nameplate-text);border:2px solid var(--accent-metal);font-family:var(--font-label);letter-spacing:.05em;padding:2px 22px;font-size:clamp(16px,1.4vw,22px);position:absolute;top:-20px;left:32px}.classroom[data-textbox=collapsed] .cr-nameplate{display:none}.cr-subtitle{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:clamp(18px,1.75vw,27px);line-height:1.38;display:-webkit-box;overflow:hidden}.classroom[data-textbox=collapsed] .cr-subtitle{-webkit-line-clamp:1;font-size:clamp(16px,1.4vw,21px)}.cr-subtitle__ahead{opacity:.42}.cr-subtitle--idle{opacity:.7;font-style:italic}.cr-textbox__side{flex-direction:column;gap:4px;min-width:0;display:flex}.classroom[data-textbox=collapsed] .cr-textbox__side{flex-direction:row;justify-content:flex-end}.cr-scope{font-family:var(--font-label);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:clamp(14px,1.2vw,19px);display:flex}.cr-scope__dot{background:var(--in-material);border-radius:50%;width:11px;height:11px}.cr-scope.is-off .cr-scope__dot{background:var(--off-material);border-radius:2px;transform:rotate(45deg)}.cr-scope.is-off{color:var(--off-material)}.cr-scope__reason{font-family:var(--font-dialogue);flex-basis:100%;font-size:.85em;font-style:italic;line-height:1.2}.cr-source{color:var(--textbox-accent);font-size:clamp(14px,1.2vw,19px);font-style:italic}.cr-transport{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.cr-transport button{color:var(--textbox-ink);border:2px solid var(--textbox-border);font:inherit;cursor:pointer;background:0 0;border-radius:3px;padding:2px 12px;font-size:clamp(14px,1.15vw,18px)}.cr-transport button:hover:not(:disabled){filter:brightness(1.12)}.cr-transport button:disabled{opacity:.45;cursor:default}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:720px){.classroom{--cr-header-h:auto;grid-template-rows:auto minmax(0,1fr) auto}.cr-header{flex-wrap:wrap;row-gap:6px;padding-top:6px}.cr-stage{grid-template-columns:minmax(0,1fr)}.cr-avatar{display:none}.cr-textbox{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.cr-avatar__sprite.is-animated{animation:none}}.cr-source__chip{color:inherit;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-right:.6em;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline}.cr-source__chip:hover,.cr-source__chip:focus-visible{color:var(--textbox-accent)}.cr-verified{letter-spacing:.02em;font-size:.82em}.cr-verified.is-checked{color:var(--in-material)}.cr-verified.is-unverified{color:var(--off-material)}.cr-mode{border:1px solid var(--off-material);color:var(--off-material);letter-spacing:.04em;border-radius:999px;margin-left:.9em;padding:1px 8px;font-size:.8em}.cr-drawer{z-index:40;background:var(--textbox-bg);width:min(420px,100vw - 32px);max-height:calc(100vh - 96px);color:var(--textbox-ink);border:2px solid var(--textbox-border);box-shadow:0 10px 30px var(--shadow);border-radius:8px;flex-direction:column;display:flex;position:fixed;top:64px;right:16px}.cr-drawer__head{border-bottom:1px solid var(--textbox-border);font-family:var(--font-label);justify-content:space-between;gap:12px;padding:10px 14px;display:flex}.cr-drawer__head button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}.cr-drawer__body{font-family:var(--font-dialogue);padding:12px 14px;font-size:17px;line-height:1.45;overflow:auto}.cr-drawer__body pre{white-space:pre-wrap;margin:0;font-family:inherit}.cr-check{z-index:30;background:var(--textbox-bg);max-width:640px;color:var(--textbox-ink);border:2px solid var(--textbox-border);box-shadow:0 12px 32px var(--shadow);font-family:var(--font-dialogue);border-radius:10px;margin:0 auto;padding:18px 22px;font-size:19px;position:absolute;inset:auto 6% 8%}.cr-check__who{font-family:var(--font-label);color:var(--textbox-accent);margin:0;font-size:.8em}.cr-check__question{margin:4px 0 10px;font-size:1.15em}.cr-check__feedback{margin:6px 0}.cr-check__feedback.is-correct strong{color:var(--in-material)}.cr-check__feedback.is-partial strong,.cr-check__feedback.is-wrong strong{color:var(--off-material)}.cr-check__form textarea{border:1.5px solid var(--textbox-border);background:color-mix(in srgb, var(--textbox-bg) 80%, white);width:100%;color:var(--textbox-ink);font:inherit;border-radius:6px;padding:8px 10px}.cr-check__actions{align-items:center;gap:12px;margin-top:8px;display:flex}.cr-check__actions button[type=button]{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.cr-check__wait{font-style:italic}
