/* Only study40. Nothing here changes the first three narrative scenes or device shells. */
#app .special40-bridge{pointer-events:none}
#app .special40-bridge>:not(.special__photo){visibility:hidden!important}
#app .special40-bridge .special__photo{opacity:.88;transform:translateY(-40px) scale(.85);transform-origin:left top}
/* Keep an open, continuous film run, rather than a pouch around tiny pictures. */
#app .deck{translate:0 -650px;background:transparent!important;overflow:visible!important}
#app .deck>:not(.film40){visibility:hidden!important}
.film40{position:absolute;left:-38px;top:0;width:360px;height:650px;z-index:5;pointer-events:auto;color:#171717}
.film40-label{position:absolute!important;left:0!important;top:-28px!important;margin:0!important;font:10px/1.5 var(--lemon-read)!important;letter-spacing:.08em;white-space:nowrap}
.film40-window{height:100%;overflow:hidden;mask-image:linear-gradient(transparent,#000 4%,#000 96%,transparent)}
.film40-track{will-change:transform;display:flex;flex-direction:column;gap:24px;padding:0 18px}
.film40-frame{display:block;flex:none;width:324px;height:406px;position:relative;background:none;border:0;border-left:2px solid #17171722;border-right:2px solid #17171722;padding:8px 12px 20px;cursor:zoom-in}
.film40-frame:before,.film40-frame:after{content:'';position:absolute;top:0;bottom:0;width:4px;background:repeating-linear-gradient(#17171788 0 5px,transparent 5px 17px)}
.film40-frame:before{left:2px}.film40-frame:after{right:2px}
.film40-frame img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .25s}
.film40-frame span{position:absolute;bottom:0;right:12px;font:9px var(--lemon-read);color:#666}
.film40-frame:hover img,.film40-frame:focus-visible img{transform:scale(1.035)}
.film40-frame:focus-visible{outline:2px solid #e30613;outline-offset:3px}
.n678{position:fixed;inset:100px 7vw auto;z-index:8;color:#171717;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);gap:8vw;transform-origin:center;visibility:hidden;pointer-events:none}
.n678-copy,.n678-evidence{min-width:0}
.n678-index{font:11px/1.5 var(--lemon-read);color:#e30613;letter-spacing:.04em;border-left:3px solid #e30613;padding-left:10px}
.n678 h2{font:700 clamp(27px,3.05vw,43px)/1.23 'Story Mechanical',var(--lemon-read);letter-spacing:-.04em;margin:23px 0 20px;max-width:650px;text-wrap:balance}
.n678 p{font:15px/1.85 var(--lemon-read);margin:0 0 17px}
.n678 .n678-lead{font-weight:700;font-size:17px;margin-bottom:25px}
.n678 .n678-foot{font-size:15px;margin-top:28px;padding-top:15px;border-top:2px solid #171717;max-width:550px;font-weight:700}
.n678-evidence{padding-top:20px}
.n678-phone{display:block;width:245px;max-height:480px;object-fit:contain;border:4px solid #202020;background:#202020;border-radius:24px;margin:0 auto}
.n678 ul{list-style:none;padding:0;margin:20px 0 0;font:12px/1.9 var(--lemon-read)}
.n678 li{border-bottom:1px solid #17171733;padding:5px 0}
.n678-axes p,.n678-authorship p{display:grid;grid-template-columns:30px 1fr;gap:15px;align-items:start;border-top:1px solid #171717;padding:18px 0;margin:0;font-size:17px;line-height:1.6}
.n678-axes b,.n678-authorship b{color:#e30613;font-size:12px;padding-top:3px}
.n678-handoff{border-left:5px solid #e30613;margin-top:36px;padding-left:20px}
.n678-handoff h3{font:700 20px/1.4 'Story Mechanical',var(--lemon-read);margin:0 0 17px}
.n678-handoff p{font-size:13px;line-height:1.8}
.n678-authorship{margin-top:80px}
body[data-narrative678='8'] .field__says{opacity:.10;pointer-events:none}
html[lang=en] .n678 h2{font-size:clamp(28px,3.1vw,42px)}
html[lang=en] .n678 p{font-size:14px;line-height:1.75}
@media(max-width:700px){#app .deck{translate:0 -330px}.film40{left:-80px;width:270px;height:470px}.film40-track{gap:20px;padding:0 10px}.film40-frame{width:250px;height:300px}.n678{inset:85px 6vw auto;gap:18px;grid-template-columns:1fr}.n678 h2{font-size:25px;margin:15px 0}.n678 p,html[lang=en] .n678 p{font-size:12px;line-height:1.65}.n678 .n678-lead,.n678 .n678-foot{font-size:13px;margin-bottom:12px}.n678 .n678-evidence{padding-top:0}.n678-6{grid-template-columns:1.4fr 1fr;gap:15px}.n678-phone{width:100%;border-radius:15px}.n678 ul{font-size:9px}.n678-axes p,.n678-authorship p{font-size:12px;padding:9px 0}.n678-handoff{margin-top:14px}.n678-handoff h3{font-size:16px}.n678-handoff p{font-size:11px}.n678-authorship{margin-top:0}.n678 h2{max-width:100%}}
@media(prefers-reduced-motion:reduce){.film40-track{will-change:auto}.film40-frame img{transition:none}}

/* Material aspect ratios determine their own frame height: no blank pouch. */
.film40{left:-72px;width:430px}.film40-frame{width:394px}.film40-frame img{height:100%;max-height:510px;object-fit:contain}
.n678{z-index:25}
body:is([data-narrative678="6"],[data-narrative678="7"]) #app .gauge{opacity:.12!important}
body[data-narrative678="8"] .field__marks{opacity:.16}
@media(max-width:700px){.film40{left:-80px;width:270px}.film40-frame{width:250px}}

#app .deck{translate:0 -760px;z-index:12!important}
body[data-narrative678="6"] #app .gauge__word.is-read{opacity:0!important}
@media(max-width:700px){#app .deck{translate:0 -330px}}
/* Owner correction: material continuity without literal film borders. */
#app .special40-bridge{display:none!important}
.film40-frame{border:0;padding:0 0 16px}
.film40-frame:before,.film40-frame:after{display:none}
.film40-track{padding:0 18px}
/* 06 and 07 now physically belong to the original moving half-discs. */
body[data-narrative678] #app .gauge{opacity:1!important}
#app .n678-half{position:absolute;inset:auto;top:calc(-300 * var(--s));left:calc(90 * var(--s));width:calc(450 * var(--s));display:block;color:#171717;transform:none!important;z-index:8;letter-spacing:0;line-height:normal;pointer-events:none}
#app .gauge__dial--right .n678-half{left:calc(-540 * var(--s))}
#app .n678-half h2{font-size:calc(31 * var(--s));line-height:1.25;letter-spacing:-.035em;margin:18px 0 14px}
#app .n678-half p{font-size:calc(15 * var(--s));line-height:1.75;margin:0 0 13px}
#app .n678-half .n678-lead{font-size:calc(16 * var(--s));margin-bottom:17px}
#app .n678-half .n678-foot{font-size:calc(14 * var(--s));margin:18px 0 0;padding-top:12px;border-top:1px solid}
#app .n678-half .n678-index{font-size:calc(11 * var(--s));letter-spacing:.02em}
#app .n678-6 .n678-evidence{display:grid;grid-template-columns:90px 1fr;gap:20px;padding-top:20px;align-items:center}
#app .n678-6 .n678-phone{width:88px;height:170px;border-radius:9px;border-width:2px;object-fit:contain}
#app .n678-6 ul{margin:0;font-size:calc(12 * var(--s));line-height:1.8}
#app .n678-half .n678-evidence{padding-top:18px}
#app .n678-axes{display:none}
#app .n678-handoff{margin-top:0;padding-left:13px;border-left-width:3px}
#app .n678-handoff h3{font-size:calc(17 * var(--s));margin-bottom:10px}
#app .n678-handoff p{font-size:calc(13 * var(--s));line-height:1.7;margin-bottom:9px}
body:is([data-narrative678="6"],[data-narrative678="7"]) #app .gauge__words,
body:is([data-narrative678="6"],[data-narrative678="7"]) #app .gauge__needle{opacity:0}
body[data-narrative678="8"] #app .poster{translate:calc(420 * var(--s)) 0}
@media(max-width:700px){#app .n678-half{width:calc(500 * var(--s));left:calc(55 * var(--s))}#app .gauge__dial--right .n678-half{left:calc(-555 * var(--s))}#app .n678-half h2{font-size:calc(34 * var(--s))}#app .n678-6 .n678-evidence{grid-template-columns:50px 1fr;gap:6px}#app .n678-6 .n678-phone{width:48px;height:90px}#app .n678-half p{font-size:calc(18 * var(--s))}}
/* Re-establish the existing half-circle boundary lost in the paper palette. */
.gauge__dial:before{content:'';position:absolute;left:0;top:0;width:calc(var(--rim) * 2 * var(--s));height:calc(var(--rim) * 2 * var(--s));border:1.5px solid #17171799;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:5}
html[lang=en] #app .n678-half{top:calc(-350 * var(--s))}
html[lang=en] #app .n678-half p{line-height:1.65}
body[data-narrative678] #app .poster{translate:calc(var(--blue40-shift,0) * var(--s)) 0}
/* Keep a small clear handoff, rather than replacing the collision with a blank screen. */
#app .fan{translate:0 calc(-440 * var(--s))}

/* Reordered local hosts keep their exact original sample trajectories. */
#app .tri{translate:0 var(--tri40-offset,0px)}
#app .win{translate:0 var(--win40-offset,0px)}
