/* The public demo keeps one fixed caption lane and the existing footer height. */
body.public-demo #beat-progress,body.public-demo .structured-beat-menu {display:none!important;}
body.public-demo .scratch-region {background:#25473b url(../session-presentation/assets/green-tile.png) repeat 0 0 / 512px 512px;}
body.public-demo:not([data-demo-title=visible]) .board-lesson-title {opacity:0;visibility:hidden;}
/* Center opening actions on the room, independently of the caption gutter. */
body.public-demo:not([data-demo-layout=teaching]) .board-footer {padding-inline:var(--presentation-caption-right);}
body.public-demo:not([data-demo-layout=teaching]) .session-caption-strip,body.public-demo[data-demo-stage=handoff] .session-caption-strip {left:var(--presentation-caption-right);}
body.public-demo[data-demo-stage=handoff] .presentation-voice {visibility:hidden;}
body.public-demo[data-demo-stage=arrival] #board-zeno>svg {opacity:0;}
body.public-demo[data-demo-stage=arrival] :is(.nb-topbar,.board-footer,.presentation-voice,.dev-workspace-launcher) {visibility:hidden;}
/* Reuse the room's entrance motion as the greeting brings its UI into place. */
body.public-demo[data-demo-stage=setup] :is(.nb-topbar,.board-footer) {animation:presentation-arrive 850ms cubic-bezier(.16,1,.3,1) both;}
@media(prefers-reduced-motion:reduce){body.public-demo[data-demo-stage=setup] :is(.nb-topbar,.board-footer){animation:none;}}
body.public-demo[data-demo-stage=invitation] #lesson-controls {display:none!important;}
body.public-demo[data-demo-stage=invitation] #lesson-controls:has(.presentation-activity:not([hidden])) {display:flex!important;}
body.public-demo[data-demo-stage=invitation] #lesson-controls > :not(.presentation-activity) {display:none!important;}
body.public-demo[data-demo-stage=setup] #lesson-controls > :not(#raise-hand-button):not(#type-button):not(.presentation-activity) {display:none!important;}
body.public-demo .board-controls {position:relative;min-height:49px;}
/* Extra actions sit above the reserved caption lane, never in its toolbar. */
body.public-demo[data-demo-stage=invitation] #begin-button {position:absolute;left:50%;transform:translateX(-50%);bottom:var(--microphone-cue-bottom);white-space:nowrap;}
body.public-demo[data-demo-stage=setup]:has(#interrupt-transcript[contenteditable=true]) :is(.microphone-tutorial,.microphone-preflight-actions) {display:none;}
@media(max-width:760px){
 body.public-demo .board-workspace > .scratch-region {width:100%;border-left:0;}
 body.public-demo:not([data-demo-layout=teaching]) .board-controls {justify-content:center;}
}

/* Primary entry and a clearly available exit, in the top bar only. */
body.public-demo .nb-topbar-actions{gap:12px;}
body.public-demo .nb-topbar-actions .demo-header-action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border:1px solid #a9c5b580;border-radius:4px;color:var(--presentation-paper);font:13px/1 var(--font-ui);text-decoration:none;white-space:nowrap;}
body.public-demo .nb-topbar-actions .demo-header-action:hover{background:#f5f2ea12;}
body.public-demo .nb-topbar-actions .demo-header-primary{background:var(--presentation-paper);border-color:var(--presentation-paper);color:var(--presentation-green);}
body.public-demo .nb-topbar-actions .demo-header-primary:hover{background:var(--presentation-accent);border-color:var(--presentation-accent);}
@media(max-width:760px){body.public-demo .nb-topbar-actions{gap:8px;}body.public-demo .nb-topbar-actions .demo-header-action{padding-inline:10px;min-height:38px;font-size:11px;}}
