.sandbox-games{display:flex;gap:15px;flex-wrap:wrap}#star-wars-sandbox{overflow:hidden}#star-wars-sandbox .gallery{position:relative;display:flex;gap:12px;align-items:center;padding:65px 0;scrollbar-width:none;touch-action:pan-x pan-y;cursor:grab}#star-wars-sandbox .cell{flex:0 0 auto;width:clamp(190px,20vw,320px);height:clamp(265px,28vw,390px);margin:0;overflow:hidden;transform:perspective(700px) rotateY(var(--curve,0deg)) scaleY(var(--stretch,1));background:var(--site-wash)}#star-wars-sandbox .cell img{width:100%;height:100%;object-fit:cover;pointer-events:none}#star-wars-sandbox .gallery-bar{display:none}.embed-frame.audio{position:relative;pointer-events:auto}.embed-frame.audio iframe{pointer-events:auto}@media(prefers-reduced-motion:reduce){#star-wars-sandbox .cell{transform:none}}

.making-muscle{font-size:clamp(22px,3vw,36px)!important;max-width:none!important}.robot-story{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(25px,5vw,80px);align-items:center;padding:70px 0;border-top:1px solid var(--hair)}.robot-story img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover;border-radius:4px}.robot-story h2{font-size:clamp(32px,4vw,56px)}.robot-story p{line-height:1.7}.robot-story a{color:inherit}.robot-story>a>span{display:block;margin-top:12px;font-size:12px}@media(max-width:700px){.robot-story{grid-template-columns:1fr}}
/* Comfortable measure and gutters around the narrative video. */
body[data-page=fun] .robot-story{box-sizing:border-box;width:100%;max-width:1440px;margin:0 auto;padding:clamp(40px,6vw,88px) clamp(24px,5vw,80px);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,4vw,64px)}.robot-story>div{min-width:0}.robot-video{width:100%;aspect-ratio:16/9;position:relative;background:#111;border-radius:4px;overflow:hidden}.robot-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.robot-film-link{display:inline-block;font-size:13px!important;line-height:1.5;margin:15px 0 0;max-width:100%}body[data-page=fun] .robot-story h2{font-size:clamp(30px,3.1vw,46px);line-height:1.12;margin:20px 0 24px;overflow-wrap:break-word}body[data-page=fun] .robot-story p{font-size:17px;line-height:1.65;max-width:58ch;white-space:normal;overflow-wrap:break-word;margin:0 0 18px}body[data-page=fun] .robot-story .eyebrow{font-size:11px;letter-spacing:.09em;line-height:1.5}body[data-page=fun] .robot-story>div>a{font-size:14px;line-height:1.5}body[data-page=fun] .fun-hero>p:not(.making-muscle){max-width:62ch;font-size:16px;line-height:1.65;margin-left:auto;margin-right:auto}@media(max-width:850px){body[data-page=fun] .robot-story{grid-template-columns:1fr;gap:30px}body[data-page=fun] .robot-story p{font-size:16px;max-width:62ch}.robot-story h2 br{display:none}}

/* Loop normalization owns the curved ribbon: native snapping must not reposition transformed cards. */
#star-wars-sandbox .gallery{scroll-snap-type:none;scroll-behavior:auto;overflow-anchor:none}
#star-wars-sandbox .cell{scroll-snap-align:none;transition:box-shadow .25s ease}
.sandbox-games{justify-content:center;margin-top:24px}
.gallery button.cell{padding:0;border:0;color:white;font:inherit;text-align:left}
.gallery .cell.vid .play{font-size:46px;text-shadow:0 2px 12px #0009}
.video-caption{position:absolute;bottom:14px;left:16px;right:16px;color:white;font:16px/1.3 Arial;text-shadow:0 1px 6px #000}
.gallery .cell.death-film{aspect-ratio:9/16}
/* Embedded players need an explicit width inside the flex lightbox. */
.lb-slot{width:100%;min-width:0;display:flex;justify-content:center}
.lb-frame.video{width:min(1100px,calc(84vh * 16 / 9));max-width:100%;flex:none}
.lb-close{z-index:3}
/* One shared measure for the FUN introduction; title scales to stay on one line. */
body[data-page=fun] .fun-hero{container-type:inline-size}
body[data-page=fun] .fun-hero h1{font-size:min(60px,5cqw);white-space:nowrap;letter-spacing:0;max-width:100%}
body[data-page=fun] .fun-hero>p:not(.making-muscle){width:100%;max-width:100%}
body[data-page=fun] .fun-hero>.making-muscle{width:100%;max-width:100%}
