/* the Studio window on the home page of the deck (generated from test_flow3/stage.css) */
.studio-host{--edge:rgba(255,255,255,.07);--is:#3d8bff;--oos:#ff9b42;--good:#3ddc97;--bad:#ff5a64;--s1:#0b0c10;--accent:#4cc9ff;margin:14px 0 4px}
.sw-box{position:relative;width:100%}
.sw-box .sw{position:absolute;left:0;top:0;transform-origin:0 0;z-index:1}
.sw .bar{display:flex;align-items:center;gap:8px;padding:0 14px;height:38px;background:#0e0f13;border-bottom:1px solid var(--edge)}
.sw .bar i{width:11px;height:11px;border-radius:50%;background:#2a2b33}
.sw .bar .title{margin-left:12px;color:#8d8e99}
.sw .tabs{display:flex;gap:2px;margin-left:auto}
.sw-caps{position:relative;min-height:176px;margin-top:6px}
.sw-caps .scap{position:absolute;left:0;top:0;right:0;visibility:hidden}
.sw-caps .scap h2{font-size:clamp(28px,3.4vw,46px);line-height:1;letter-spacing:-.035em;font-weight:600}
.sw-caps .scap h2 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.sw-caps .scap h2 .w>span{display:inline-block;will-change:transform}
.sw-caps .scap p{margin-top:12px;max-width:560px;font-size:16px;line-height:1.5;color:var(--muted)}
.sw-caps .scap small{display:block;margin-top:8px;font-size:12px;color:#6c6d79}
.toe-live.gone{display:none}
.sw .it.weak .chip{background:rgba(255,155,66,.14);color:var(--oos)}
.sw .slbl .leg span.w::before{background:#f4f0ff}
/* the Studio window: one box, always 1040 x 540, moved and scaled by the timeline */
.sw{position:absolute;left:0;top:0;width:1040px;height:540px;transform-origin:0 0;z-index:2;will-change:transform}
.sw-tilt{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.sw .skin{position:absolute;inset:0;border-radius:14px;background:#0b0c10;box-shadow:0 0 0 1px rgba(255,255,255,.08),inset 0 1px 0 rgba(255,255,255,.1),0 70px 130px -50px rgba(76,201,255,.35),0 40px 90px -40px rgba(0,0,0,.95)}
.sw .sheen{position:absolute;inset:0;border-radius:14px;pointer-events:none;background:linear-gradient(112deg,transparent 38%,rgba(255,255,255,.045) 50%,transparent 62%)}
.sw .chrome{position:absolute;inset:0;border-radius:14px;overflow:hidden;font-size:12px;color:#cfd0d8}
.sw .bar{height:38px}
.sw .tabs span{padding:6px 12px;border-radius:6px;color:#8d8e99;transition:background .35s,color .35s}
.sw .tabs span.on{background:#1a1b22;color:#e9e9ee}
.sw .sbody{display:grid;grid-template-columns:210px 1fr;height:calc(100% - 38px)}
.sw .sside{position:relative;background:#0d0e12;border-right:1px solid var(--edge);overflow:hidden}
.sw .list{position:absolute;inset:0;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.sw .list .hd{display:flex;justify-content:space-between;color:#6f707b;font-size:11px;padding:0 6px 8px}
.sw .list .hd b{color:#e9e9ee;font-weight:600;font-variant-numeric:tabular-nums}
.sw .it{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:5px 8px;border-radius:6px;color:#d6d7de;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11.5px}
.sw .it .chip{font-size:10px;padding:2px 7px;border-radius:999px;background:#1a1b22;color:#8d8e99}
.sw .it.pass .chip{background:rgba(61,220,151,.12);color:var(--good)}
.sw .it.fail .chip{background:rgba(255,90,100,.12);color:var(--bad)}
.sw .it.fail span{text-decoration:line-through;text-decoration-color:rgba(255,90,100,.6);color:#7d7e8a}
.sw .it i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}
.sw .smain{display:grid;grid-template-rows:auto 1fr auto;min-width:0}
.sw .slbl{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:14px 18px 0;color:#8d8e99}
.sw .slbl b{color:#ececf1;font-weight:600;font-size:13px}
.sw .slbl .leg{display:flex;gap:14px;font-size:11.5px}
.sw .slbl .leg span::before{content:"";display:inline-block;width:10px;height:2px;margin-right:6px;vertical-align:middle;background:var(--is)}
.sw .slbl .leg span.o::before{background:var(--oos)}
.sw .slbl .leg span.m::before{background:#8f7bff}
.sw .slbl .leg span.p::before{background:var(--good)}
.sw .plot{position:relative;padding:10px 18px 8px;min-height:0}
.sw .plot svg{width:100%;height:100%;display:block;overflow:visible}
.sw .sstats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--edge)}
.sw .sstats div{padding:11px 18px;border-right:1px solid var(--edge)}
.sw .sstats div:last-child{border-right:0}
.sw .sstats small{display:block;color:#6f707b;font-size:11px}
.sw .sstats b{font-size:18px;font-weight:600;color:#f1f1f5;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
/* what is "chrome" (fades in at the search), against the line itself (always there) */
.sw .skin,.sw .sheen,.sw .bar,.sw .sside,.sw .slbl,.sw .sstats,.sw .gridlines{opacity:0}

/* phone: a narrower window without the side list, the caption right under it */
@media (max-width:900px){
  .sw{width:620px;height:420px}
  .sw .sside{display:none}
  .sw .sbody{grid-template-columns:1fr}
  .sw .bar .title{display:none}
  .sw .tabs{margin-left:0}
  .sw .slbl{padding:12px 16px 0}
  .sw .sstats b{font-size:20px}
}

/* the selector */
.sw-ctl{position:relative;z-index:3;display:flex;align-items:center;gap:10px;margin-top:12px}
.sw-ctl button{display:grid;place-items:center;border:0;cursor:pointer;color:#cfd0d8;flex:none}
@media (max-width:600px){.c-n{display:none}}
@media (max-width:360px){.studio-host .sw-ctl{gap:4px}.studio-host .c-dots button{width:14px}.studio-host .sw-ctl .c-prev,.studio-host .sw-ctl .c-next,.studio-host .sw-ctl .c-play{width:34px;height:34px}}
.sw-ctl .c-prev,.sw-ctl .c-next,.sw-ctl .c-play{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);transition:background .25s,color .25s,transform .25s}
.sw-ctl .c-prev:hover,.sw-ctl .c-next:hover,.sw-ctl .c-play:hover{background:rgba(255,255,255,.14);color:#fff}
.sw-ctl .c-next{background:#f2f2f5;color:#0b0b0d;box-shadow:none}
.sw-ctl .c-next:hover{background:#fff;color:#0b0b0d;transform:translateX(2px)}
.sw-ctl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sw-ctl .i-play{display:none;fill:currentColor;stroke:none}
.sw-ctl.paused .i-pause{display:none}.sw-ctl.paused .i-play{display:block}
.c-dots{display:flex;align-items:center;gap:2px}
.c-dots button{width:22px;height:38px;background:none}
.c-dots i{display:block;width:8px;height:8px;border-radius:50%;background:#4a4b55;transition:width .4s cubic-bezier(.2,.7,.2,1),background .3s}
.c-dots button:hover i{background:#9b9ca8}
.c-dots button.on i{width:26px;border-radius:5px;background:#4cc9ff}
.c-n{margin-left:auto;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:#6c6d79;white-space:nowrap}
@media (max-width:600px){
  .sw{width:420px;height:340px}
  .sw .bar{height:34px;padding:0 10px;gap:6px}
  .sw .tabs span{padding:5px 9px;font-size:11.5px}
  .sw .sbody{height:calc(100% - 34px)}
  .sw .slbl{padding:10px 12px 0;font-size:11px}
  .sw .slbl b{font-size:12.5px}
  .sw .slbl .leg{font-size:10.5px;gap:10px}
  .sw .plot{padding:8px 12px 6px}
  .sw .sstats>div{padding:8px 10px}
  .sw .sstats small{font-size:10px}
  .sw .sstats b{font-size:15px}
}
@media (max-width:900px){ .sw-caps{min-height:150px} .sw-caps .scap h2{font-size:clamp(24px,7vw,32px)} .sw-caps .scap p{font-size:14px;margin-top:8px} }
/* the home card is a grid: its column must not grow to its widest child (it pushed the card past the right edge on phones) */
.hero .copy-card{grid-template-columns:minmax(0,1fr);max-width:100%;box-sizing:border-box}
.hero .copy-card>*{min-width:0;max-width:100%}
@media (prefers-reduced-motion:reduce){ .sw .skin,.sw .sheen,.sw .bar,.sw .sside,.sw .slbl,.sw .sstats,.sw .gridlines{opacity:1} .sw-caps .scap:last-child{visibility:visible} }
