/* Page-specific scene compositions; the shared Scrollcraft engine is unchanged. */
body:has(.page-scene)>.topline{display:none}
.source-content.has-page-scene{display:block;overflow-x:clip;overflow-y:visible}
.page-scene{--ph-bg:#252820;--ph-ink:#f6f4ed;--ph-soft:#c9ccbe;--ph-accent:#ecb657;--ph-line:#9a9e89;--ph-height:calc(100svh - 92px);position:relative;background:var(--ph-bg);color:var(--ph-ink);isolation:isolate;padding:0!important;margin:0!important;width:100%;}
.page-scene.ph-light{--ph-bg:#eeeee5;--ph-ink:#242620;--ph-soft:#626b56;--ph-accent:#242620;--ph-line:#929681}
.page-scene .ph-stage{position:relative;min-height:var(--ph-height);overflow:hidden;isolation:isolate;color:var(--ph-ink);background:var(--ph-bg)}
.page-scene .ph-copy{position:relative;z-index:8;width:55%;max-width:890px;padding:clamp(65px,9vh,120px) 20px 135px var(--gutter);pointer-events:none}
.page-scene .ph-copy a{pointer-events:auto}
.source-content .page-scene .ph-eyebrow,.page-scene .ph-eyebrow{font:750 11px/1.5 Manrope,Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--ph-accent);margin:0 0 25px;max-width:50ch}
.source-content .page-scene h1,.page-scene h1{font:500 clamp(42px,4.55vw,76px)/1.09 Manrope,Arial,sans-serif!important;letter-spacing:-.055em!important;color:var(--ph-ink)!important;max-width:14ch;margin:0;text-wrap:balance}
.source-content .page-scene h1.ph-title-long,.page-scene h1.ph-title-long{font-size:clamp(38px,3.7vw,60px)!important;max-width:20ch}
.source-content .page-scene .ph-description,.page-scene .ph-description{color:var(--ph-soft);font:500 clamp(14px,1.1vw,17px)/1.75 Manrope,Arial,sans-serif;max-width:53ch;margin:26px 0 0;text-wrap:pretty}
.page-scene .ph-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px 26px;margin-top:30px}
.source-content .page-scene .ph-action,.page-scene .ph-action{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;color:var(--ph-bg);background:var(--ph-accent);padding:17px 21px;border:1px solid var(--ph-accent);border-radius:5px;font:750 12px/1.5 Manrope,Arial,sans-serif;text-decoration:none;max-width:100%;transition:background .15s}
.source-content .page-scene .ph-action-secondary,.page-scene .ph-action-secondary{background:none;color:var(--ph-ink);border:none;padding:12px 0;gap:12px}
.page-scene .ph-action svg,.page-scene .ph-chapters svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.page-scene .ph-action:hover{background:var(--ph-ink);color:var(--ph-bg)}
.page-scene .ph-action-secondary:hover{background:none;color:var(--ph-accent);text-decoration:underline;text-underline-offset:5px}
.page-scene .ph-atmosphere{position:absolute;z-index:0;inset:-10%;background:radial-gradient(ellipse at 80% 37%,#446e433f 0,transparent 48%);pointer-events:none}
.page-scene .ph-horizon{position:absolute;left:40%;right:-20%;top:42%;height:85%;background-image:linear-gradient(#aec19813 1px,transparent 1px),linear-gradient(90deg,#aec19813 1px,transparent 1px);background-size:72px 72px;transform:perspective(700px) rotateX(57deg) rotateZ(-16deg);mask-image:linear-gradient(transparent,#000 30%,transparent);pointer-events:none}
.page-scene .ph-oversize{position:absolute;z-index:1;left:43%;top:9%;font:750 clamp(100px,12vw,220px)/1 Manrope,Arial,sans-serif;letter-spacing:-.085em;white-space:nowrap;color:var(--ph-line);opacity:.17;pointer-events:none}
.page-scene .ph-art{position:absolute;z-index:3;left:49%;width:53%;top:7%;bottom:14%;pointer-events:none;perspective:1200px}
.page-scene .ph-subject{position:absolute;z-index:3;width:100%;height:100%;inset:0;object-fit:contain;filter:drop-shadow(0 30px 24px #03160e40);transform-origin:50% 70%;max-width:none}
.page-scene .ph-art-foot{position:absolute;z-index:6;bottom:1%;left:17%;right:9%;display:flex;justify-content:space-between;gap:15px;color:var(--ph-soft);font:600 9px/1.4 Manrope,Arial,sans-serif;letter-spacing:.025em}
.page-scene .ph-art-foot span:before{content:'';display:block;width:5px;height:5px;border:1px solid var(--ph-accent);border-radius:50%;margin-bottom:10px}
.page-scene :is(.ph-blueprint,.ph-network,.ph-ring,.ph-orbits,.ph-signal){position:absolute;z-index:5;inset:0;color:var(--ph-line);opacity:.7}
.page-scene :is(.ph-blueprint,.ph-network,.ph-ring,.ph-orbits,.ph-signal) svg{width:100%;height:100%;stroke:currentColor;stroke-width:1;overflow:visible}
.page-scene [data-ph-line]{stroke:var(--ph-accent);stroke-width:1.7;stroke-dasharray:1;stroke-dashoffset:0}
.page-scene .ph-chapters{position:absolute;z-index:9;bottom:0;left:var(--gutter);right:var(--gutter);min-height:82px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch;border-top:1px solid var(--ph-line);background:var(--ph-bg)}
.source-content .page-scene .ph-chapters a,.page-scene .ph-chapters a{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--ph-soft);font:650 11px/1.5 Manrope,Arial,sans-serif;padding:18px 0;text-decoration:none}
.page-scene .ph-chapters a:hover{color:var(--ph-ink);text-decoration:underline;text-underline-offset:5px}
.page-scene .ph-chapters span{font-size:12px;align-self:center;color:var(--ph-soft)}
.page-scene .ph-motion{position:absolute;z-index:10;right:var(--gutter);top:25px;align-items:center;gap:8px;padding:9px 12px;min-height:38px;border:1px solid var(--ph-line);border-radius:25px;color:var(--ph-ink);background:var(--ph-bg);font:600 9px/1 Manrope,Arial,sans-serif;display:none}
.page-scene.ph-ready .ph-motion{display:flex}
.page-scene .ph-motion svg{height:14px;width:14px;stroke:currentColor;stroke-width:1.3}
.page-scene :is(a,button):focus-visible{outline:3px solid var(--ph-accent);outline-offset:5px}
.ph-content-anchor{scroll-margin-top:110px;height:0!important;padding:0!important;outline:none}
.source-content .ph-source-notes{padding:35px var(--gutter);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px;border-bottom:1px solid var(--line);background:var(--paper);color:var(--green)}
.ph-source-notes>div{font-size:12px;line-height:1.65}.ph-source-notes p{color:var(--muted);font-size:12px;margin-top:8px}.ph-source-notes h2{font-size:17px}.ph-source-notes strong{font-weight:750;display:block}.ph-source-notes br{display:none}.ph-source-notes svg{display:none}
.source-content .ph-checker-section .bbac-checker-card{max-width:1000px;margin:auto}
.ph-art-credit{padding:20px var(--gutter);font-size:10px;color:var(--muted)}.ph-art-credit a{text-decoration:underline}
/* Infrastructure: a machined assembly on a perspective drawing. */
.ph-infrastructure .ph-art{left:50%;width:51%;top:5%;bottom:12%}.ph-infrastructure .ph-blueprint{inset:5% -9% -4% 0;transform:rotate(-8deg)}
.ph-infrastructure.ph-variant-1 .ph-oversize{top:15%;left:48%;writing-mode:vertical-rl;font-size:120px}
.ph-infrastructure.ph-variant-2 .ph-horizon{background-size:110px 45px}
/* Security: a vault held inside independently rotating protective rings. */
.ph-security{--ph-bg:#0d261f}.ph-security .ph-art{left:49%;width:55%;top:3%;bottom:12%}.ph-security .ph-subject{scale:.87}.ph-security .ph-ring{inset:0 -4%;opacity:.6}.ph-security .ph-oversize{top:40%;left:32%;font-size:15vw;opacity:.11}.ph-security .ph-horizon{background:none;border:1px solid #8fbc8729;border-radius:50%;transform:none;inset:9% -15% 0 53%;height:auto}.ph-security .ph-art-foot{bottom:2%;left:20%;right:17%}
/* Connectivity: cable and independently travelling signal paths. */
.ph-connectivity{--ph-bg:#143b31}.ph-connectivity .ph-art{left:44%;width:65%;top:0;bottom:11%}.ph-connectivity .ph-subject{rotate:-9deg;scale:1.02}.ph-connectivity .ph-signal{inset:16% -6% -10% 3%;opacity:.45}.ph-connectivity .ph-oversize{top:auto;bottom:16%;left:40%;font-size:14vw}.ph-connectivity .ph-horizon{inset:0 0 0 53%;height:100%;transform:rotate(22deg);background-size:90px 90px}.ph-connectivity .ph-art-foot{left:24%;right:20%}
/* Workspace: the laptop sits between two independently moving windows. */
.ph-workspace .ph-art,.ph-studio .ph-art{left:51%;width:47%;top:11%;bottom:10%}.ph-workspace .ph-subject,.ph-studio .ph-subject{inset:17% -5% -10%;height:90%;width:110%;z-index:4}.ph-workspace .ph-oversize{left:47%;top:12%;opacity:.13}.ph-workspace .ph-horizon{opacity:.65}
.page-scene .ph-window{position:absolute;border:1px solid #9aaf92;border-radius:10px;background:#f6f4eded;box-shadow:12px 25px 40px #15322519;overflow:hidden;color:#31533e}
.page-scene .ph-window>span{display:block;border-bottom:1px solid #b6c4ac;padding:17px 20px;font:650 11px/1.4 Manrope,Arial,sans-serif}
.page-scene .ph-window>span:before{content:'';display:inline-block;width:5px;height:5px;background:#688455;border-radius:50%;margin-right:15px}
.page-scene .ph-far-window{z-index:2;top:5%;left:8%;width:63%;height:44%;rotate:-11deg}
.page-scene .ph-near-window{z-index:5;top:31%;left:58%;width:43%;height:35%;rotate:9deg;background:#dae5cded}
.page-scene .ph-window-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;padding:23px;height:77%}.ph-window-grid i{background:#dce5d0;border-radius:4px}.ph-window-grid i:first-child{grid-row:span 2;background:#335442}
.page-scene .ph-near-window svg{width:100%;height:75%;stroke:#55734d;stroke-width:8}
.ph-workspace .ph-art-foot,.ph-studio .ph-art-foot{bottom:0;left:10%;right:0}
/* Studio: tall design canvas, offset horizontal foreground, a different silhouette. */
.ph-studio{--ph-bg:#e0e8d6}.ph-studio .ph-oversize{left:auto;right:6%;top:15%;font-size:15vw;writing-mode:vertical-rl;opacity:.14}.ph-studio .ph-far-window{top:0;left:28%;height:66%;width:60%;rotate:8deg;background:#f6f4ed}.ph-studio .ph-near-window{top:55%;left:4%;height:29%;width:67%;rotate:-7deg}.ph-studio .ph-subject{inset:11% -9% 0 0;scale:.9}.ph-studio .ph-horizon{background:none;border:1px solid #90a37d;inset:6% 8% 16% 58%;height:auto;transform:rotate(12deg)}
/* Mobile: a two-device product orbit, with long intersecting ellipses. */
.ph-mobile .ph-art{left:53%;width:44%;top:0;bottom:9%}.ph-mobile .ph-subject{scale:.94}.ph-mobile .ph-orbits{inset:5% -25% 0;opacity:.6}.ph-mobile .ph-oversize{left:38%;top:37%;font-size:10vw}.ph-mobile .ph-horizon{background:none}.ph-mobile .ph-art-foot{bottom:0;left:15%;right:8%}
/* Industry: genuine sector photography, aperture crop and an offset frame. */
.ph-industry{--ph-bg:#e7ebdf}.ph-industry .ph-art{top:9%;left:58%;width:35%;bottom:17%}.ph-industry .ph-photo{width:100%;height:95%;object-fit:cover;filter:saturate(.7);clip-path:polygon(0 0,84% 0,100% 14%,100% 100%,16% 100%,0 86%)}
.ph-industry .ph-oversize{left:38%;top:10%;font-size:13vw;opacity:.13}.ph-industry .ph-photo-outline{position:absolute;inset:-3% -8% 1% 6%;border:1px solid #51734b;z-index:5;clip-path:polygon(0 0,84% 0,100% 14%,100% 100%,16% 100%,0 86%)}
.ph-industry .ph-photo-caption{position:absolute;z-index:6;bottom:9%;left:-17%;background:#242620;color:#f6f4ed;padding:24px 28px;font-size:22px;line-height:1.2;letter-spacing:-.04em}.ph-industry .ph-photo-caption strong{color:#ecb657;font-weight:500}.ph-industry .ph-art-foot{display:none}
/* Local: a deliberately diagrammatic network, never an invented geographic map. */
.ph-local .ph-art{left:51%;width:50%;top:3%;bottom:14%}.ph-local .ph-subject{scale:.78;opacity:.86}.ph-local .ph-network{inset:-4% -5%;z-index:2;opacity:.65}.ph-local .ph-local-stamp{position:absolute;z-index:6;bottom:19%;right:6%;padding:17px 20px;border-left:1px solid var(--ph-accent);font-size:13px;line-height:1.35;letter-spacing:.015em;background:#252820d9}.ph-local .ph-local-stamp strong{font-weight:650;color:var(--ph-accent)}.ph-local .ph-oversize{left:43%;top:5%;font-size:10vw;opacity:.2}.ph-local[data-ph-motif="minster"] .ph-subject{scale:1.08}.ph-local[data-ph-motif="minster"] .ph-local-stamp{bottom:7%;right:8%}
/* Reading and task pages: shorter natural flow, typography leads. */
.page-scene.ph-flow{--ph-height:560px}.ph-flow .ph-copy{width:62%;padding-top:62px;padding-bottom:112px}.source-content .ph-flow h1,.ph-flow h1{font-size:clamp(40px,3.9vw,62px)!important;max-width:20ch}.ph-flow .ph-art{left:64%;width:34%;top:4%;bottom:16%}.ph-flow .ph-oversize{top:25%;left:60%;font-size:10vw;opacity:.12}.ph-flow .ph-chapters{min-height:67px}.ph-flow .ph-description{font-size:14px;max-width:65ch}.ph-flow .ph-art-foot{display:none}.ph-flow .ph-horizon{opacity:.5}.ph-flow .ph-actions{margin-top:23px}
.ph-editorial .ph-art{left:68%;width:29%;top:8%;bottom:17%}.ph-editorial .ph-subject{scale:.83;inset:12% 0 0;height:85%}.ph-editorial .ph-editorial-rule{position:absolute;inset:12% 2% 5% -9%;z-index:2;border-left:1px solid #7e9970;padding-left:24px;color:#527148;font:700 14px/1.25 Manrope,Arial,sans-serif;letter-spacing:-.02em}.ph-editorial .ph-editorial-rule i{position:absolute;height:1px;background:#7e9970;left:0;right:5%;bottom:0}.ph-editorial .ph-oversize{left:61%;top:auto;bottom:15%;font-size:8vw}
.ph-utility{--ph-bg:#e6ecd9}.ph-utility .ph-art{opacity:.88}.ph-utility .ph-blueprint{opacity:.4}
.page-scene.ph-legal{--ph-height:430px;--ph-bg:#f0f1e9}.ph-legal .ph-copy{padding-top:55px}.ph-legal .ph-chapters{min-height:64px}.ph-legal .ph-art{left:74%;width:20%;top:10%;bottom:23%;perspective:1100px}.ph-legal .ph-oversize{left:60%;top:30%;opacity:.07}.ph-legal .ph-horizon{display:none}
.page-scene .ph-paper{position:absolute;inset:0;background:#f9faf5;border:1px solid #acbda1;box-shadow:10px 22px 27px #19342117;rotate:-8deg;z-index:3;padding:22px 25px;color:#496443;filter:none}
.page-scene .ph-paper>span{font:700 8px/1.3 Manrope,Arial,sans-serif;letter-spacing:.2em}.page-scene .ph-paper-mark{font-size:64px;font-weight:700;line-height:1.7;letter-spacing:-.08em}.ph-paper-mark span{font-size:18px;letter-spacing:-.04em}.page-scene .ph-paper i{display:block;height:1px;background:#b3c0a8;margin:12px 0;width:100%}.page-scene .ph-paper i:last-child{width:65%}.page-scene .ph-paper-back{inset:9% -7% -9% 7%;z-index:1;rotate:5deg;background:#dbe3d1}
.page-directory.has-page-scene{padding:0;max-width:none}.page-directory.has-page-scene>section:not(.page-scene){padding:45px var(--gutter)}
main.wrap.has-page-scene{padding:0!important;max-width:none}main.wrap.has-page-scene>.button{margin:24px var(--gutter)}
@media(min-width:761px){.ph-workspace .ph-art-foot,.ph-studio .ph-art-foot{display:none}}
@media(min-width:1100px) and (min-height:760px) and (prefers-reduced-motion:no-preference){.page-scene.ph-journey{height:calc(var(--ph-height) + 400px)}.page-scene.ph-journey .ph-stage{height:var(--ph-height);position:sticky;top:92px;display:flex;align-items:center}.ph-journey .ph-copy{padding-top:45px;padding-bottom:115px}}
@media(min-width:1100px) and (max-height:820px){.source-content .ph-journey h1{font-size:clamp(42px,4.1vw,62px)!important}.ph-journey .ph-description{font-size:14px;line-height:1.6;margin-top:20px}.ph-journey .ph-actions{margin-top:22px}.ph-journey .ph-copy{padding-top:35px}}
@media(max-width:1099px){.page-scene{--ph-height:680px}.page-scene .ph-copy{width:59%;padding:65px 18px 120px var(--gutter)}.source-content .page-scene h1{font-size:48px!important}.page-scene .ph-art{left:57%;width:45%;top:12%;bottom:15%}.page-scene .ph-motion{top:16px}.page-scene .ph-chapters{gap:20px}.ph-flow .ph-copy{width:64%}.ph-flow .ph-art{left:65%;width:33%}.ph-legal .ph-art{left:76%;width:18%;bottom:28%;top:14%}.page-scene .ph-description{font-size:14px}.ph-industry .ph-art{left:63%;width:32%;top:15%;bottom:21%}.ph-industry .ph-photo-caption{font-size:17px;padding:18px}.source-content .ph-source-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .page-scene,.page-scene.ph-flow,.page-scene.ph-legal{--ph-height:0px}
 .page-scene .ph-stage{display:flex;flex-direction:column;min-height:0;height:auto}
 .page-scene .ph-copy,.ph-flow .ph-copy{width:100%;max-width:none;padding:64px 24px 8px}
 .source-content .page-scene h1,.source-content .page-scene h1.ph-title-long,.page-scene h1{font-size:clamp(35px,7.4vw,51px)!important;max-width:19ch;line-height:1.12!important;letter-spacing:-.055em!important}
 .page-scene .ph-eyebrow{font-size:9px;margin-bottom:18px;max-width:75%}
 .source-content .page-scene .ph-description{font-size:13px;line-height:1.7;margin-top:18px;max-width:65ch}
 .page-scene .ph-actions{margin-top:23px;gap:13px 21px}
 .source-content .page-scene .ph-action{padding:14px 17px;font-size:11px;gap:16px}
 .source-content .page-scene .ph-action-secondary{padding:10px 0}
 .page-scene .ph-art{position:relative;inset:auto!important;align-self:center;width:min(94%,580px);height:310px;margin:8px 0 0}
 .page-scene .ph-subject{inset:0;scale:1;width:100%;height:100%}
 .page-scene .ph-art-foot{left:20%;right:20%;bottom:0;font-size:8px}
 .page-scene .ph-oversize{top:auto;bottom:230px;left:5%;font-size:23vw;opacity:.1;writing-mode:horizontal-tb}
 .page-scene .ph-horizon{left:0;top:auto;bottom:50px;height:380px}
 .page-scene .ph-motion{top:13px;right:24px;min-height:34px;padding:8px 11px;font-size:8px}
 .page-scene .ph-chapters{position:relative;inset:auto;margin:24px 24px 0;grid-template-columns:1fr;gap:0;min-height:0}
 .source-content .page-scene .ph-chapters a{padding:14px 0;font-size:11px;border-bottom:1px solid color-mix(in srgb,var(--ph-line) 35%,transparent)}
 .page-scene .ph-chapters a:last-child{border-bottom:0}.page-scene .ph-chapters span{padding:18px 0}
 .ph-infrastructure .ph-art{height:330px}.ph-security .ph-art{height:330px}.ph-security .ph-subject{scale:.88}
 .ph-connectivity .ph-art{width:100%;height:320px}.ph-connectivity .ph-art-foot{left:23%;right:18%}
 .ph-workspace .ph-art,.ph-studio .ph-art{width:88%;margin-top:28px;height:340px}.ph-workspace .ph-subject,.ph-studio .ph-subject{inset:15% -2% -5%;height:90%;width:105%}
 .page-scene .ph-window>span{font-size:8px;padding:10px 12px}.ph-studio .ph-near-window{width:64%;height:29%}.page-scene .ph-window-grid{gap:8px;padding:12px}.ph-workspace .ph-art-foot,.ph-studio .ph-art-foot{left:8%;right:4%;bottom:-4%}
 .ph-mobile .ph-art{height:330px;width:84%}.ph-mobile .ph-subject{scale:.9}.ph-mobile .ph-art-foot{bottom:0}
 .ph-industry .ph-art{width:75%;height:300px;margin-top:30px;margin-bottom:8px}.ph-industry .ph-photo{height:100%;object-position:center}.ph-industry .ph-photo-caption{left:-8%;bottom:7%}.ph-industry .ph-photo-outline{inset:-4% -6% 5% 6%}
 .ph-local .ph-art{height:320px}.ph-local .ph-subject{scale:.9}.ph-local .ph-local-stamp{font-size:10px;right:8%;bottom:15%;padding:12px}.ph-local[data-ph-motif="minster"] .ph-subject{scale:1}
 .ph-editorial .ph-art{height:195px;width:65%;align-self:flex-end;margin-right:24px;margin-top:0}.ph-editorial .ph-subject{scale:.86}.ph-editorial .ph-editorial-rule{font-size:11px;inset:0 0 0 -32%;padding-left:15px}
 .ph-utility .ph-art{height:160px;width:60%;align-self:flex-end;margin-right:14px}.ph-utility .ph-oversize{bottom:180px;font-size:20vw}
 .ph-legal .ph-art{height:180px;width:130px;margin-top:20px;margin-bottom:5px}.ph-legal .ph-paper-mark{font-size:43px;line-height:1.5}.ph-legal .ph-paper{padding:16px}.ph-legal .ph-paper i{margin:8px 0}.ph-legal .ph-oversize{bottom:170px;font-size:23vw}
 .source-content .ph-source-notes{padding:28px 24px;gap:24px}.ph-source-notes>div{font-size:11px}.ph-source-notes p{font-size:11px}.ph-source-notes h2{font-size:16px}.ph-source-notes img{max-width:60px}
 .ph-content-anchor{scroll-margin-top:92px}
}
@media(max-width:380px){.page-scene .ph-copy{padding-top:61px}.source-content .page-scene h1,.source-content .page-scene h1.ph-title-long{font-size:35px!important}.page-scene .ph-actions{gap:8px 18px}.source-content .page-scene .ph-action{font-size:10px}.page-scene .ph-art{height:285px}.ph-flow .ph-art{height:150px}.ph-workspace .ph-art,.ph-studio .ph-art{height:300px}.ph-legal .ph-art{height:175px}.ph-industry .ph-art{height:265px}}
@media(prefers-reduced-motion:reduce){.page-scene .ph-stage{position:relative!important;height:auto!important}.page-scene.ph-journey{height:auto!important}.page-scene .ph-motion{display:none!important}.page-scene [data-ph-plane]{transform:none!important}.page-scene [data-ph-line]{stroke-dashoffset:0!important}.page-scene a{transition:none!important}}
