/* RAS kiosk: compact masthead, permanent analysis, media-first height.
   Gridnik and black preserve the studio identity. #999 on #000: 7.37:1.
   Only data uses colour; the camera shutter never changes vertex values. */
@font-face{font-family:Gridnik;src:url('../fonts/FoundryGridnik-Light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:Gridnik;src:url('../fonts/FoundryGridnik-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Gridnik;src:url('../fonts/FoundryGridnik-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
:root{color-scheme:dark;--font:Gridnik,ui-monospace,monospace;--ink:#ddd;--mid:#aaa;--line:#303030;--side:248px}
*{box-sizing:border-box;letter-spacing:0}
html,body{height:100%;margin:0;background:#000}
body{font:12px/1.4 var(--font);color:var(--ink);overflow:hidden}
.caps{text-transform:uppercase}[hidden]{display:none!important}
button{font:inherit;cursor:pointer;border-radius:0;-webkit-tap-highlight-color:transparent}
button:focus-visible,#tlWrap:focus-visible{outline:2px solid #eee;outline-offset:2px}
#gl{position:fixed;inset:0;display:block;width:100vw;height:100vh;z-index:0}
/* Separate layers prevent disappearing text after WebGL canvas resize. */
#app,#frame,#side{transform:translateZ(0)}
#frame{position:relative;z-index:2;display:flex;align-items:center;gap:24px;height:40px;margin:0 24px;border-bottom:1px solid var(--line)}
#frame-tl{font-size:13px;font-weight:500;white-space:nowrap}
#frame-tr{display:flex;align-items:center;justify-content:space-between;flex:1;gap:16px}
#frame-tr h1{margin:0;font-size:12px;font-weight:400;color:#aaa}
#frame-tr .sub{font-size:10px;color:#999}
#app{position:fixed;top:52px;left:24px;right:24px;bottom:12px;z-index:1;display:grid;grid-template-rows:minmax(0,1fr) 44px 40px 76px;gap:8px;pointer-events:none}
#app button,#viewMain,#tlWrap,#side,#clips{pointer-events:auto}
#main{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) var(--side);gap:20px}
@media(min-width:901px) and (min-height:581px){
  body.portrait #app{grid-template-columns:clamp(240px,calc((100dvh - 116px) * var(--media-ratio,.5625)),42%) minmax(0,1fr) var(--side);column-gap:20px}
  body.portrait #main{display:contents}
  body.portrait #stim{grid-column:1;grid-row:1/-1}
  body.portrait #cortex{grid-column:2;grid-row:1}
  body.portrait #side{grid-column:3;grid-row:1}
  body.portrait #timeline{grid-column:2/-1;grid-row:2}
  body.portrait #deck{grid-column:2/-1;grid-row:3;gap:8px}
  body.portrait #clips{grid-column:2/-1;grid-row:4}
  body.portrait #views{overflow-x:auto;scrollbar-width:none}
  body.portrait #views button{flex-shrink:0}
}
#stim,#cortex{min-width:0;min-height:0;display:grid;grid-template-rows:52px minmax(0,1fr)}
.sec-hd{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-auto-rows:min-content;gap:2px 8px;align-content:start;min-width:0}
.eyebrow{grid-column:1;grid-row:1;font-size:9px;color:#999}
.sec-hd b{grid-column:1/-1;grid-row:2;font-size:15px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#clipMeta{grid-column:2;grid-row:1;font-size:9px;color:#999;font-variant-numeric:tabular-nums;white-space:nowrap}
#clipNote{grid-column:1/-1;grid-row:3;font-size:10px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modeKey{grid-column:1/-1;display:flex;gap:14px;font-size:10px;color:#aaa}
#modeKey span{display:flex;align-items:center;gap:5px}#modeKey i{width:6px;height:6px;display:inline-block}
.key-text{background:#ff2d2d}.key-audio{background:#2dff6a}.key-video{background:#2d7bff}
#stimBody,#viewMain{position:relative;min-height:0;min-width:0;overflow:hidden}
video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;background:#000}
body.portrait video{object-position:center bottom}
#noVis{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;color:#aaa}
#viewMain{width:100%;height:100%;max-width:440px;max-height:440px;align-self:center;justify-self:center;cursor:grab;touch-action:none}#viewMain:active{cursor:grabbing}
#cameraShutter{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
#side{display:flex;flex-direction:column;min-height:0;min-width:0;padding-left:16px;border-left:1px solid var(--line);overflow-y:auto;scrollbar-width:thin}
.blk{padding:12px 0;border-top:1px solid #262626}
.blk:first-child{padding-top:0;border-top:0}.blk:last-child{margin-top:auto;padding-bottom:0}
.blk-hd{font-size:10px;color:#999;margin-bottom:8px}
#telemetry{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-variant-numeric:tabular-nums}
#telemetry div{display:flex;flex-direction:column;min-width:0}
#telemetry b{font-size:10px;font-weight:400;color:#999}#telemetry span{font-size:11px;color:#ccc}
#insets{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.inset{position:relative;aspect-ratio:1.35;border:1px solid #262626;min-width:0}
.inset span{position:absolute;top:3px;left:5px;font-size:9px;color:#aaa}
#roiRows{display:grid;gap:7px}
#roiRows .row{display:grid;grid-template-columns:66px minmax(0,1fr) 36px;gap:8px;align-items:center}
#roiRows .nm{font-size:10px;color:#aaa;white-space:nowrap}
#roiRows .vl{font-size:10px;text-align:right;font-variant-numeric:tabular-nums}
#roiRows .tr{position:relative;height:4px;background:#171717}
#roiRows .tr::after{content:'';position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:#444}
#roiRows .tr i{position:absolute;top:0;bottom:0}
#legend .bar{height:6px;border:1px solid #333;margin-bottom:4px}
#legend .ticks{display:flex;justify-content:space-between;font-size:10px;color:#999;margin-bottom:6px}
#lgNote{font-size:9px;color:#999}
#legend.rgb .bar{background:linear-gradient(90deg,#ff2d2d,#2dff6a,#2d7bff)}#legend.rgb .ticks{display:none}
#timeline{display:grid;grid-template-columns:170px minmax(0,1fr) 130px;align-items:center;gap:16px;padding-top:7px;border-top:1px solid var(--line)}
.tl-hd{display:contents}.tl-hd .cap{grid-column:1;grid-row:1;color:#999;font-size:10px}
#clock{grid-column:3;grid-row:1;text-align:right;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
#tlWrap{grid-column:2;grid-row:1;height:36px;position:relative;cursor:crosshair;touch-action:none;border:1px solid #262626;overflow:hidden}
#tlCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#tlHead{position:absolute;top:0;bottom:0;width:1px;background:#fff;pointer-events:none}
#deck{display:flex;gap:12px;align-items:stretch;min-width:0}
.grp{display:flex;border:1px solid #333;min-width:0}
.grp button{background:transparent;border:0;border-right:1px solid #333;color:#aaa;padding:6px 14px;font-size:11px;white-space:nowrap;min-height:38px;transition:background .12s,color .12s}
.grp button:last-child{border-right:0}.grp button:hover{background:#191919;color:#fff}
.grp button[aria-pressed=true]{background:#ddd;color:#000}#deck .spacer{flex:1}
#play,.icon-button{width:40px;min-width:40px;display:grid;place-items:center;padding:0!important}
.play-icon,.fullscreen-icon,.audio-icon{display:block;width:18px;height:18px;background:currentColor;mask:center/contain no-repeat}
.play-icon{mask-image:url('../icons/play.svg')}#play[aria-pressed=true] .play-icon{mask-image:url('../icons/pause.svg')}
.fullscreen-icon{mask-image:url('../icons/maximize.svg')}:fullscreen .fullscreen-icon{mask-image:url('../icons/minimize.svg')}
.audio-icon{mask-image:url('../icons/audio-lines.svg')}
#clips{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;border-top:1px solid #333;padding-top:6px}
#clips button{flex:1 0 96px;min-width:0;display:grid;align-content:start;gap:2px;padding:0 0 3px;text-align:left;background:transparent;border:0;border-bottom:2px solid transparent}
#clips .thumb{display:block;width:100%;height:34px;object-fit:cover;border:1px solid #333;background:#151515}
#clips .audio-thumb{display:grid;place-items:center}
#clips .ix{display:flex;justify-content:space-between;font-size:8px;color:#999;font-variant-numeric:tabular-nums}
#clips .nm{font-size:9px;color:#aaa;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:128px}
#clips button:hover{background:#151515}#clips button[aria-pressed=true]{border-bottom-color:#eee}
#clips button[aria-pressed=true] .thumb{border-color:#eee}#clips button[aria-pressed=true] .nm{color:#fff}
body.busy #deck,body.busy #clips,body.busy #tlWrap{opacity:.4;pointer-events:none}
body.busy #deck *,body.busy #clips *{pointer-events:none}
body.busy #tlWrap::after{content:'LOADING';position:absolute;inset:0;display:grid;place-items:center;background:#0009;font-size:10px}
#loading{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#000;color:#aaa}
@media(min-width:1700px){:root{--side:288px}.inset{aspect-ratio:1.2}.sec-hd b{font-size:16px}}
@media(max-height:800px) and (min-width:901px){.blk{padding:8px 0}.inset{aspect-ratio:1.8}#roiRows{gap:5px}#telemetry{gap:3px 12px}}
@media(max-width:1100px){:root{--side:210px}#main{gap:14px}#side{padding-left:12px}.grp button{padding:6px 10px}#deck{gap:8px}}
@media(max-width:900px),(max-height:580px){
  html,body{height:auto;min-height:100%;overflow-y:auto;overflow-x:hidden}
  #frame{margin:0 16px;gap:16px}#frame-tr .sub{display:none}
  #app{position:relative;inset:auto;margin:12px 16px;display:flex;flex-direction:column;gap:10px}
  #main,body.portrait #main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
  #stim,#cortex{grid-template-rows:52px 360px}
  #side{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:12px 0 0;border:0;border-top:1px solid #333;overflow:visible}
  #side .blk{margin:0;padding:0;border:0}.inset{aspect-ratio:1.65}
  #deck{flex-wrap:wrap}#deck .spacer{display:none}#views{flex:1}#views button{flex:1;padding:6px 8px}
  #timeline{grid-template-columns:110px minmax(0,1fr) 120px;gap:8px}
  #clips{min-height:78px}#clips button{flex:0 0 104px}#clips .thumb{height:40px}
}
@media(max-width:560px){
  #frame{height:38px}#frame-tl{font-size:12px}#frame-tr{justify-content:flex-end}#frame-tr h1{font-size:10px}
  #main,body.portrait #main{grid-template-columns:minmax(0,1fr)}
  #stim{grid-template-rows:52px 240px}body.portrait #stim{grid-template-rows:52px min(110vw,560px)}
  #cortex{grid-template-rows:52px 320px}
  #side{grid-template-columns:1fr;gap:20px}#telemetry{grid-template-columns:repeat(3,1fr)}
  #insets{grid-template-columns:repeat(4,minmax(0,1fr))}.inset{aspect-ratio:.95}.inset span{font-size:8px;left:2px}
  #timeline{grid-template-columns:minmax(0,1fr) 120px}.tl-hd .cap{display:none}#tlWrap{grid-column:1}#clock{grid-column:2}
  #views{order:4;flex:1 0 100%;flex-wrap:wrap}#views button{flex:1 0 30%;min-height:42px;border-bottom:1px solid #333}
  #deck>.grp:nth-last-child(2){margin-left:auto}.grp button{min-height:42px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
