/* <heyoh-stream> — Slack threads drifting across the venue floor. Loads after landing.css. */
heyoh-stream{flex:none;display:block;position:relative;z-index:2;margin-top:-4.5cqi;--sm-w:clamp(21rem,31cqi,28rem);
--sl-mention:light-dark(#1264a3,#1d9bd1);--sl-mention-bg:light-dark(#e8f5fa,#1d3d4f)}
heyoh-stream[hidden]{display:none}
.st-viewport{overflow:clip;padding:.75rem 0 clamp(.6rem,1.6vh,1.25rem);padding:.5rem 0 1rem;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;
-webkit-mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}
.is-dragging .st-viewport{cursor:grabbing}
.st-track{display:grid}
.st-row{display:flex;width:max-content;will-change:transform}
.st-set{display:flex;align-items:flex-start;gap:clamp(.8rem,1.6cqi,1.25rem);padding-right:clamp(.8rem,1.6cqi,1.25rem)}
.st-hint{display:none;margin:0;text-align:center;color:var(--muted);font-size:.85rem}
@media (pointer:coarse){.st-hint{display:block}}

/* Card = a Slack thread */
.sm{width:var(--sm-w);flex:none;display:flex;flex-direction:column;gap:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:.9rem 1.05rem .95rem;box-shadow:0 1px 2px var(--shadow-s),0 22px 40px -20px var(--shadow);cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),height .3s var(--ease)}
.sm:hover{transform:translateY(-3px);box-shadow:0 1px 2px var(--shadow-s),0 26px 44px -18px var(--shadow)}
.sm:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.sl-msg{display:grid;grid-template-columns:2.4rem minmax(0,1fr);column-gap:.65rem;align-items:start}
.sl-av{width:2.4rem;height:2.4rem;border-radius:.5rem;display:grid;place-items:center;font-size:.82rem;font-weight:600;letter-spacing:.02em;background:var(--av,var(--info-bg));color:var(--av-fg,var(--info-fg));overflow:hidden}
.sl-av--1{--av:var(--good-bg);--av-fg:var(--good-fg)}.sl-av--2{--av:var(--warn-bg);--av-fg:var(--warn-fg)}.sl-av--3{--av:var(--neutral-bg);--av-fg:var(--neutral-fg)}
.sl-av--heyoh{background:transparent}.sl-av--heyoh img{width:100%;height:100%;display:block}
.sl-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .45rem;line-height:1.2}
.sl-h b{font-size:.95rem;font-weight:700;color:var(--ink)}
.sl-time{font-size:.74rem;color:var(--muted);white-space:nowrap}
.sl-t{margin:.15rem 0 0;font-size:clamp(.98rem,min(1.35cqi,2.1vh),1.18rem);line-height:1.35;color:var(--ink);text-wrap:pretty}
.sl-at{background:var(--sl-mention-bg);color:var(--sl-mention);border-radius:.25rem;padding:0 .18em}
.sl-rl{display:flex;align-items:center;gap:.6rem;font-size:.78rem;color:var(--ink-2);margin:.1rem 0 0 3.05rem}
.sl-rl::after{content:"";flex:1;height:1px;background:var(--line)}
.sl-work{margin:.15rem 0 0}
.sl-work p{margin:0;display:flex;gap:.5rem;align-items:flex-start;font-size:clamp(.86rem,1.8vh,.95rem);line-height:1.4;color:var(--ink-2)}
.sl-spin{flex:none;width:.85rem;height:.85rem;margin-top:.3rem;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--sl-mention);animation:sl-spin 1s linear infinite}
@keyframes sl-spin{to{transform:rotate(360deg)}}
.sl-done p{margin:.15rem 0 0;font-size:clamp(.86rem,1.8vh,.95rem);line-height:1.38;color:var(--ink)}
.sl-done ul{margin:.3rem 0 0;padding-left:1.15rem;display:grid;gap:.1rem;font-size:clamp(.84rem,1.75vh,.92rem);line-height:1.32;color:var(--ink)}
.sl-done li b{font-weight:600}
.sl-done .sl-foot{margin-top:.35rem;color:var(--ink-2);font-size:clamp(.82rem,1.7vh,.9rem)}
/* Phases: 0 = message, 1 = Heyoh working (status lines step with position), 2 = Heyoh replied */
.sm[data-phase="0"] .sl-thread{display:none}
.sm[data-phase="1"] .sl-done,.sm[data-phase="2"] .sl-work{display:none}
.sm.sl-anim .sl-thread{animation:sl-in .35s var(--ease)}
.sl-status{display:inline-block;animation:sl-in .3s var(--ease)}
@keyframes sl-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

@container page (max-width:43.7rem){heyoh-stream{--sm-w:min(24rem,86cqi);margin-top:-2rem}}
/* Reduced motion: static, scrollable strip, final state shown */
.is-static .st-viewport{overflow-x:auto;cursor:auto;-webkit-mask-image:none;mask-image:none;padding-bottom:1.2rem}
.is-static .st-row{transform:none!important;padding-inline:clamp(1rem,4cqi,3rem)}
.is-static .sl-spin,.is-static .sl-thread,.is-static .sl-status{animation:none}
@media (prefers-contrast:more){.sm{box-shadow:none}}
@media (forced-colors:active){.sm,.sl-at{border:1px solid ButtonText}.st-viewport{-webkit-mask-image:none;mask-image:none}}
@media print{heyoh-stream{display:none}}
/* Short desktop windows: trim the reply so header + hero + venue + cards + footer fit 100vh */
@media (min-width:44rem) and (max-height:47rem){.sl-done .sl-foot{display:none}.sm{padding:.7rem .9rem .75rem;gap:.4rem}.sl-done ul{gap:.05rem}.st-viewport{padding-top:.4rem;padding-bottom:.5rem}heyoh-stream{--sm-w:clamp(21rem,30cqi,27rem)}}
@media (min-width:44rem) and (max-height:46rem){.sl-done ul li:nth-child(n+3){display:none}.sl-rl{margin-top:0}.sl-t{font-size:.95rem}}
