#sway-project .sw-scroll-story{height:440svh;position:relative;margin:24px calc(clamp(20px,4.2vw,70px)*-1) 0}
#sway-project .sw-story-pin{position:sticky;top:96px;height:calc(100svh - 112px);min-height:510px;background:#17231e;color:#f3f0e6;isolation:isolate;overflow:hidden}
#sway-project .sw-has-story .sw-object{height:calc(100% - 54px);margin:0;overflow:hidden}
#sway-project .sw-has-story .sw-editorial{scroll-margin-top:110px}
#sway-project .sw-paper.sw-has-story .sw-object-copy{top:48px;width:35%}
#sway-project .sw-has-story .sw-object-copy h2{font-size:clamp(66px,8.5vw,130px);margin:10px 0 16px}
#sway-project .sw-has-story .sw-state-note,#sway-project .sw-has-story .sw-drag{display:none}
#sway-project .sw-has-story[data-story-stage="1"] .sw-object-copy h2,#sway-project .sw-has-story[data-story-stage="2"] .sw-object-copy h2,#sway-project .sw-has-story[data-story-stage="3"] .sw-object-copy h2{font-size:clamp(44px,5.8vw,85px)}
#sway-project .sw-has-story[data-story-stage="1"] .sw-object-line,#sway-project .sw-has-story[data-story-stage="2"] .sw-object-line,#sway-project .sw-has-story[data-story-stage="3"] .sw-object-line{display:none}
#sway-project .sw-has-story[data-kind="mush"] .sw-object-copy h2{font-size:clamp(54px,7vw,110px)}
#sway-project .sw-has-story[data-kind="mush"][data-story-stage="2"] .sw-object-copy h2,#sway-project .sw-has-story[data-kind="mush"][data-story-stage="3"] .sw-object-copy h2{font-size:clamp(36px,4.8vw,68px)}
#sway-project .sw-story-topline{position:absolute;z-index:5;top:15px;left:clamp(20px,4.2vw,70px);right:25px;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.06em;color:#bec8bc;pointer-events:none}
#sway-project .sw-free-toggle{pointer-events:auto;background:none;border:0;border-bottom:1px solid #7e8b77;padding:0 0 4px;color:inherit;font-size:10px}
#sway-project .sw-story-aside{position:absolute;top:43%;left:clamp(20px,4.2vw,70px);width:27%;max-width:350px;z-index:4;pointer-events:none}
#sway-project [data-story-stage="1"] .sw-story-aside,#sway-project [data-story-stage="2"] .sw-story-aside,#sway-project [data-story-stage="3"] .sw-story-aside{top:190px}
#sway-project .sw-story-count{font-size:9px;letter-spacing:.12em;color:#b9c8b5}
#sway-project .sw-story-caption h3{font-family:var(--serif);font-size:clamp(23px,2.4vw,36px);letter-spacing:-.025em;line-height:1.13;margin:10px 0 14px}
#sway-project .sw-story-caption p{font-size:12px;line-height:1.65;color:#c9d0c4;max-width:34ch;margin:0}
#sway-project .sw-story-rail{position:absolute;z-index:8;bottom:0;left:0;right:0;height:54px;display:flex;align-items:center;gap:clamp(14px,3vw,44px);padding:0 clamp(20px,4.2vw,70px);background:#13201b;color:#d4dccf}
#sway-project .sw-story-rail button{display:flex;gap:9px;align-items:center;white-space:nowrap;border:0;background:none;color:#9eae9e;font-size:11px;padding:8px 0}
#sway-project .sw-story-rail button small{font-size:9px;color:#94a98e}
#sway-project .sw-story-rail button[aria-current="step"]{color:#f7f0df}
#sway-project .sw-story-rail button[aria-current="step"] small{color:#dd7956}
#sway-project .sw-story-progress{position:absolute;inset:0 0 auto;height:2px;background:#344137;overflow:hidden}
#sway-project .sw-story-progress i{display:block;height:100%;width:100%;background:#cf7956;transform:scaleX(0);transform-origin:left}
#sway-project .sw-story-exit{margin-left:auto;font-size:10px;white-space:nowrap;border-bottom:1px solid #677c63;padding-bottom:3px}
#sway-project .sw-gesture-hint{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,-50%);text-align:center}
#sway-project .sw-gesture-hint>span{display:block;border:1px solid #f6ead3aa;border-radius:50%;width:44px;height:44px;margin:auto;font-size:26px;line-height:40px;animation:sw-press-cue 1.8s ease-in-out infinite;background:#18261c44;color:#fff3d4}
#sway-project .sw-gesture-hint small{display:block;margin-top:9px;font-size:9px;white-space:nowrap;color:#f6e9d0;text-shadow:0 1px 3px #15241d}
@keyframes sw-press-cue{0%,100%{transform:translateY(-6px);opacity:.7}50%{transform:translateY(4px);opacity:1}}
#sway-project .sw-hotspots{position:absolute;inset:0 0 54px;z-index:5;pointer-events:none}
#sway-project .sw-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:#c8d5be;stroke-width:.7;opacity:.55}
#sway-project .sw-hotspot{pointer-events:auto;position:absolute;display:flex;align-items:center;gap:7px;background:#19271ee8;color:#f7f1e0;border:0;padding:3px 8px 3px 0;font-size:10px;white-space:nowrap;transform:translateY(-3px)}
#sway-project .sw-hotspot small{display:grid;place-items:center;width:21px;height:21px;border:1px solid #b8c6b1;border-radius:50%;font-size:9px;background:#19281e}
#sway-project .sw-hotspot:hover,#sway-project .sw-hotspot:focus-visible{color:#efc399;outline:1px solid #b88a63;outline-offset:3px}
#sway-project .sw-part-detail{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid #5c6e58;pointer-events:auto}
#sway-project .sw-part-thumb{height:112px;width:110px;background:#e5ebe5;overflow:hidden}
#sway-project .sw-part-thumb canvas{width:100%;height:100%;display:block;pointer-events:none}
#sway-project .sw-part-detail h4{font-size:12px;font-weight:500;margin:0 0 7px;color:#f1eddf}
#sway-project .sw-part-detail p{font-size:10px;line-height:1.5;color:#bac9b4;margin:0}
#sway-project .sw-part-open{font-size:9px;background:none;border:0;border-bottom:1px solid #778972;margin-top:10px;padding:0 0 4px;color:#ecceaa}
#sway-project .sw-circuit{margin-top:24px;pointer-events:auto}
#sway-project .sw-circuit-caption{display:flex;justify-content:space-between;gap:8px;color:#c6d2be;font-size:8px;letter-spacing:.06em;border-top:1px solid #5a6d53;padding-top:12px}
#sway-project .sw-circuit-caption b{font-size:9px;font-weight:400;color:#edc895;letter-spacing:0}
#sway-project .sw-circuit-svg{width:100%;height:auto;display:block;overflow:visible;color:#a0b696}
#sway-project .sw-circuit-node{fill:#19271e;stroke:#a2b799;stroke-width:1;cursor:pointer}
#sway-project .sw-circuit-node rect{rx:0}
#sway-project .sw-circuit-node path,#sway-project .sw-circuit-node circle:not(.sw-led-halo){fill:none}
#sway-project .sw-circuit-node text{fill:#c5d2be;stroke:none;text-anchor:middle;font:8px var(--body);letter-spacing:.05em}
#sway-project .sw-circuit-node:hover,#sway-project .sw-circuit-node:focus-visible{stroke:#e6b68c;outline:none}
#sway-project .sw-light-node{stroke:#f4d595}
#sway-project .sw-led-halo{opacity:var(--led-opacity,1)}
#sway-project .sw-signal{stroke-dasharray:2 12;animation:sw-circuit-flow 2s linear infinite;animation-play-state:paused;opacity:.18}
#sway-project .sw-circuit[data-powered="true"] .sw-light-signal{animation-play-state:running;opacity:.95}
#sway-project .sw-circuit[data-running="true"] .sw-motion-signal{animation-play-state:running;opacity:.9}
@keyframes sw-circuit-flow{to{stroke-dashoffset:-28}}
#sway-project .sw-has-story[data-story-follow="true"] .sw-console,#sway-project .sw-has-story[data-story-follow="true"] .sw-parts,#sway-project .sw-has-story .sw-model-note{display:none!important}
#sway-project .sw-has-story[data-story-follow="false"] .sw-story-aside,#sway-project .sw-has-story[data-story-follow="false"] .sw-story-rail{display:none}
#sway-project .sw-has-story[data-story-follow="false"] .sw-console{position:absolute;bottom:0;left:20px;right:20px;padding:12px 0;background:#17231e;color:#f5f0e3;gap:12px;z-index:8;border-color:#62765c}
#sway-project .sw-has-story[data-story-follow="false"] .sw-console button,#sway-project .sw-has-story[data-story-follow="false"] .sw-console label{font-size:10px}
#sway-project .sw-has-story[data-story-follow="false"] .sw-parts{display:none}
#sway-project .sw-has-story[data-story-follow="false"] .sw-object-copy{width:27%}
#sway-project .sw-has-story[data-room="light"] .sw-story-pin{background:#faf9f6;color:#202620}
#sway-project .sw-has-story[data-room="light"] .sw-story-topline{color:#52634d}
#sway-project .sw-reduced-story .sw-scroll-story{height:calc(100svh - 112px);min-height:560px}
#sway-project .sw-reduced-story .sw-story-pin{position:relative;top:0;height:100%}
@media(max-width:1050px){#sway-project .sw-story-aside{width:30%}#sway-project .sw-part-detail{grid-template-columns:80px 1fr;gap:8px}#sway-project .sw-part-thumb{width:80px;height:90px}#sway-project .sw-story-caption h3{font-size:25px}#sway-project .sw-story-caption p{font-size:11px}}
@media(max-width:850px){
 #sway-project .sw-scroll-story{height:420svh}
 #sway-project .sw-story-pin{top:80px;height:calc(100svh - 92px);min-height:0}
 #sway-project .sw-paper.sw-has-story .sw-object-copy{top:43px;width:88%;left:20px}
 #sway-project .sw-has-story .sw-object-copy h2,#sway-project .sw-has-story[data-kind="mush"] .sw-object-copy h2{font-size:54px;margin:6px 0 10px}
 #sway-project .sw-has-story .sw-object-line{font-size:14px;max-width:28ch}
 #sway-project .sw-has-story[data-story-stage="1"] .sw-object-copy h2,#sway-project .sw-has-story[data-story-stage="2"] .sw-object-copy h2,#sway-project .sw-has-story[data-story-stage="3"] .sw-object-copy h2{font-size:40px}
 #sway-project .sw-story-topline{left:20px;right:20px;font-size:8px;gap:10px}
 #sway-project .sw-free-toggle{font-size:9px}
 #sway-project .sw-story-aside,#sway-project [data-story-stage="1"] .sw-story-aside,#sway-project [data-story-stage="2"] .sw-story-aside,#sway-project [data-story-stage="3"] .sw-story-aside{top:155px;left:20px;width:calc(100% - 40px);max-width:none}
 #sway-project .sw-story-caption h3{font-size:21px;margin:4px 0 7px;max-width:28ch}
 #sway-project .sw-story-caption p{display:none}
 #sway-project .sw-story-count{font-size:8px}
 #sway-project .sw-has-story[data-story-stage="0"] .sw-story-caption{display:none}
 #sway-project .sw-story-rail{height:50px;padding:0 16px;gap:15px}
 #sway-project .sw-story-rail button{font-size:9px;gap:4px}
 #sway-project .sw-story-rail button small{font-size:8px}
 #sway-project .sw-story-exit{font-size:8px}
 #sway-project .sw-hotspots{bottom:50px}
 #sway-project .sw-hotspot{font-size:8px;gap:4px;padding-right:4px}
 #sway-project .sw-hotspot small{width:18px;height:18px;font-size:8px}
 #sway-project .sw-hotspot span{max-width:65px;overflow:hidden;text-overflow:ellipsis}
 #sway-project .sw-part-detail{position:absolute;top:100px;left:0;width:180px;display:block;background:#18271ef2;padding:10px;margin:0;z-index:6;border:1px solid #657759}
 #sway-project .sw-part-thumb{width:100%;height:100px;margin-bottom:8px}
 #sway-project .sw-part-detail p{font-size:9px;max-width:none}
 #sway-project .sw-circuit{margin-top:0;position:absolute;bottom:0;left:0;width:min(360px,100%)}
 #sway-project .sw-circuit-svg{max-height:min(170px,27svh)}
 #sway-project [data-story-stage="3"] .sw-story-aside{top:120px;bottom:65px}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-caption{max-width:42%;padding-top:0}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-caption h3{font-size:19px}
 #sway-project .sw-gesture-hint small{max-width:135px;white-space:normal;line-height:1.3}
 #sway-project .sw-has-story[data-story-follow="false"] .sw-console{gap:8px;left:16px;right:16px}
 #sway-project .sw-has-story[data-story-follow="false"] .sw-object-copy{width:85%}
 #sway-project .sw-reduced-story .sw-scroll-story{height:calc(100svh - 92px);min-height:475px}
}
@media(max-height:680px) and (min-width:851px){#sway-project .sw-story-pin{top:85px;height:calc(100svh - 96px);min-height:430px}#sway-project [data-story-stage="1"] .sw-story-aside,#sway-project [data-story-stage="2"] .sw-story-aside,#sway-project [data-story-stage="3"] .sw-story-aside{top:145px}#sway-project .sw-story-caption h3{font-size:24px}#sway-project .sw-story-caption p{font-size:10px}#sway-project .sw-circuit{margin-top:8px}#sway-project .sw-circuit-svg{max-height:180px}#sway-project .sw-part-detail{margin-top:8px;padding-top:8px}}
@media(prefers-reduced-motion:reduce){#sway-project .sw-gesture-hint>span,#sway-project .sw-signal{animation:none!important}}

/* Fit the complete operating diagram above the chapter rail at every desktop height. */
@media(min-width:851px){
 #sway-project .sw-has-story[data-story-stage="3"] .sw-object-copy{display:none}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-aside{top:65px;bottom:74px;width:32%;max-width:410px;display:flex;flex-direction:column;min-height:0}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-caption{flex:0 0 auto}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-caption h3{font-size:clamp(24px,2.4vw,34px);margin:8px 0 10px;max-width:17ch}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-caption p{font-size:11px;line-height:1.6;max-width:36ch}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-circuit{display:flex;flex-direction:column;flex:1 1 0;min-height:0;margin-top:18px}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-circuit-caption{flex:0 0 auto;padding-top:10px;padding-bottom:6px}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-circuit-svg{width:100%;height:100%;min-height:0;max-height:260px;flex:1 1 0;overflow:hidden}
}
@media(max-width:850px){
 #sway-project .sw-has-story[data-story-stage="3"] .sw-object-copy{display:none}
 #sway-project .sw-has-story[data-story-stage="3"] .sw-story-aside{top:58px;bottom:65px}
}
/* One text block per stage: never stack a product tagline over the story caption. */
#sway-project .sw-has-story[data-story-follow="true"] .sw-object-line{display:none}
#sway-project .sw-has-story[data-story-follow="true"][data-story-stage="1"] .sw-object-copy,
#sway-project .sw-has-story[data-story-follow="true"][data-story-stage="2"] .sw-object-copy{display:none}
#sway-project .sw-has-story[data-story-follow="true"][data-story-stage="0"] .sw-story-aside{top:auto;bottom:90px}
#sway-project .sw-story-caption h3{text-wrap:balance}
