:root{--nar-size:clamp(176px, 19vw, 256px);--nar-rail:calc(var(--nar-size) + var(--spacing-5xl));--nar-hero:clamp(300px, 33vw, 468px);--nar-stage:calc(var(--nar-hero) * 1.42)}.narrating .band--rail{padding-left:var(--nar-rail)}.slot{display:none}.narrating .slot{display:block;width:var(--nar-size);height:var(--nar-size);pointer-events:none}.narrating .slot--hero{width:var(--nar-hero);height:calc(var(--nar-hero) + 104px);margin-inline:auto}.slot--lead{flex:none}.narrating .slot--orbit,.narrating .slot--pair{width:100%;height:auto;aspect-ratio:1}.narrating .slot--mark{width:0;height:0}.narrating .slot--wait{display:none}.narrator{position:fixed;left:0;top:0;z-index:20;pointer-events:none;width:0;height:0;will-change:transform}.narrator__fig{position:absolute;left:0;top:0;width:100%;height:100%}.narrator__probe{position:fixed;left:-9999px;top:0;width:var(--nar-size);height:0;visibility:hidden;pointer-events:none}.narrator[hidden]{display:none}.narrator__say{position:fixed;z-index:21;pointer-events:none;max-width:min(30ch,38vw,var(--say-max,100vw));opacity:0;transition:opacity .35s var(--ease)}.narrator__say.on{opacity:1}.narrator__say.on.cramped{opacity:0}.narrator__say.railed{width:var(--say-w);max-width:none}.narrator__bubble{position:relative;display:inline-block;background:var(--background-default);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:var(--radius-md);border-bottom-left-radius:var(--radius-sm);padding:var(--spacing-md) var(--spacing-lg);font:var(--type-body-md);box-shadow:var(--shadow-md);animation:nar-drift 5s ease-in-out infinite}.narrator__bubble:before{--notch:18px;content:"";position:absolute;left:calc(var(--spacing-sm) * -1 - 1px);top:50%;width:var(--notch);height:var(--notch);margin-top:calc(var(--notch) / -2);background:var(--background-default);border:solid var(--border-subtle);border-width:0 0 1px 1px;border-bottom-left-radius:var(--radius-xs);transform:rotate(45deg)}.narrator__say.left .narrator__bubble:before{left:auto;right:calc(var(--spacing-sm) * -1 - 1px);border-width:1px 1px 0 0;border-radius:0 var(--radius-xs) 0 0}.narrator__say.under .narrator__bubble:before{left:50%;top:calc(var(--spacing-sm) * -1 - 1px);margin:0 0 0 calc(var(--notch) / -2);border-width:1px 0 0 1px;border-radius:var(--radius-xs) 0 0 0}@keyframes nar-drift{0%,to{transform:translateY(-4px) rotate(-.5deg)}50%{transform:translateY(5px) rotate(.7deg)}}@media(prefers-reduced-motion:reduce){.narrator__bubble{animation:none}}.narrator__caret{display:inline-block;width:2px;height:1em;margin-left:var(--spacing-2xs);vertical-align:-.14em;background:var(--background-brand);animation:nar-blink 1.05s steps(1) infinite}.narrator__caret.off{display:none}@keyframes nar-blink{50%{opacity:0}}@media(max-width:980px){:root{--nar-size:136px;--nar-hero:min(276px, 62vw);--nar-stage:min(340px, 84vw)}.narrating .band--rail{padding-left:var(--gutter)}.narrator__say{max-width:min(34ch,86vw,var(--say-max,100vw))}.narrating .slot--mark{width:100%;height:var(--nar-size);max-width:none;margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.narrating .slot--hero{height:calc(var(--nar-hero) + 112px);margin-inline:auto}.narrating .slot--lead{margin-inline:auto}.narrating .slot--wait{display:block;width:100%;height:var(--nar-size);max-width:none;margin-top:var(--spacing-lg)}}.hero__crowd{position:absolute;inset:0;pointer-events:none}.buddy{position:absolute;aspect-ratio:1;opacity:0;transform:scale(.2);transition:opacity .26s var(--ease),transform .44s cubic-bezier(.34,1.7,.5,1)}.buddy.in{opacity:1;transform:none}.buddy.out{opacity:0;transform:scale(.2);transition:opacity .2s ease-in .08s,transform .28s cubic-bezier(.6,-.5,.75,.3)}.buddy .sabadoji{width:100%}.buddy__say{position:absolute;left:50%;bottom:-6px;translate:-50% 0;white-space:nowrap;padding:var(--spacing-2xs) var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--background-default);color:var(--text-secondary);font:var(--type-label-sm);box-shadow:var(--shadow-sm);opacity:0;transform:translateY(4px);transition:opacity .24s var(--ease),transform .24s var(--ease)}.buddy__say.in{opacity:1;transform:none}
