/* Shared layouts for the three dedicated pages. The brand palette lives in style.css. */
.page-shell{min-height:100vh}
.page-shell header{max-width:none;padding-left:max(56px,calc((100vw - 1208px)/2));padding-right:max(56px,calc((100vw - 1208px)/2))}
.page-shell nav .active{color:var(--mint)}
.page-shell .brand small{letter-spacing:.9px}
.page-hero{padding-top:82px;padding-bottom:88px;border-bottom:1px solid var(--line)}
.page-hero .eyebrow{font-size:11px;margin:0 0 26px}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:80px;align-items:end}
.page-hero h1{font-size:clamp(50px,6vw,88px);max-width:900px;margin:0;letter-spacing:-.065em;line-height:1.04}
.page-hero h1 em{display:block}
.page-hero .lead{max-width:480px;margin:0 0 28px}
.page-hero .button{margin-top:8px}
.page-micro{font:10px/1.6 monospace;letter-spacing:1px;color:var(--muted);margin:26px 0 0}
.page-hero-art{position:relative;min-height:340px;margin-top:58px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:radial-gradient(circle at 62% 45%,#19372e 0,#111820 34%,#0a0e13 70%)}
.page-hero-art:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#25303a55 1px,transparent 1px),linear-gradient(90deg,#25303a55 1px,transparent 1px);background-size:50px 50px;mask-image:linear-gradient(90deg,transparent,#000 30%,#000 80%,transparent)}
.page-hero-art .orbit{position:absolute;left:50%;top:50%;border:1px solid #45d39c67;border-radius:50%;transform:translate(-50%,-50%)}
.page-hero-art .orbit:nth-child(1){width:100px;height:100px;background:#45d39c14}
.page-hero-art .orbit:nth-child(2){width:220px;height:220px}
.page-hero-art .orbit:nth-child(3){width:340px;height:340px;border-color:#38bdf835}
.page-hero-art .center-dot{position:absolute;left:50%;top:50%;width:34px;height:34px;background:var(--mint);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 60px #45d39c6b}
.page-hero-art .satellite{position:absolute;width:12px;height:12px;border:2px solid var(--sky);border-radius:50%;background:var(--bg)}
.page-hero-art .satellite.a{left:31%;top:38%}.page-hero-art .satellite.b{right:28%;top:21%}.page-hero-art .satellite.c{right:20%;bottom:28%}
.art-note{position:absolute;padding:9px 12px;border:1px solid var(--line);background:#0a0e13e0;color:var(--muted);font:9px monospace;letter-spacing:.6px}
.art-note.a{left:7%;bottom:14%}.art-note.b{right:7%;top:10%}
.page-index{display:flex;gap:26px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px;border-bottom:1px solid var(--line);font:11px monospace;color:var(--muted)}
.page-index a:hover{color:var(--mint)}
.page-section{padding-top:100px;padding-bottom:100px}
.page-section.bordered{border-bottom:1px solid var(--line)}
.page-section .eyebrow{margin-top:0;margin-bottom:22px}
.section-split{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr);gap:90px}
.section-split h2{max-width:800px}
.section-split .copy{max-width:650px;color:var(--muted);font-size:16px;line-height:1.85}
.section-split .copy p:first-child{margin-top:0}
.section-split .copy strong{color:var(--text);font-weight:600}
.page-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:45px}
.page-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:30px;min-height:245px}
.page-card .num{color:var(--mint);font:11px monospace}
.page-card h3{font-size:23px;line-height:1.2;font-weight:500;letter-spacing:-.5px;margin:43px 0 15px}
.page-card p{font-size:14px;color:var(--muted);line-height:1.8;margin:0}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:42px}
.case-card{padding:34px;background:#0e151c;border:1px solid var(--line);border-radius:8px}
.case-card .case-label{display:block;color:var(--mint);font:10px monospace;letter-spacing:1px;margin-bottom:18px}
.case-card h3{font-size:26px;line-height:1.2;letter-spacing:-.7px;font-weight:500;margin:0 0 20px}
.case-card p,.case-card li{font-size:14px;line-height:1.8;color:var(--muted)}
.case-card ul{padding-left:18px;margin:20px 0}
.case-card .case-outcome{border-top:1px solid var(--line);padding-top:18px;color:var(--text);margin-bottom:0}
.case-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:22px;max-width:730px}
.faq-stack details{margin-left:0}
.faq-stack{max-width:820px;margin:42px 0 0 auto}
.page-cta{display:grid;grid-template-columns:1.3fr .7fr;gap:50px;align-items:end;padding-top:95px;padding-bottom:100px}
.page-cta h2{font-size:clamp(42px,5vw,68px)}
.page-cta p{color:var(--muted);font-size:15px;line-height:1.8}
.page-cta .button{margin-top:16px}
.page-cta .email{overflow-wrap:anywhere}
.photo-page .page-hero{border:0;padding-bottom:62px}
.photo-page .page-hero-grid{grid-template-columns:1fr 1fr}
.photo-page .page-hero h1{max-width:700px}
.photo-page .signature-mark{width:170px;height:auto;filter:invert(1);margin:38px 0 0 auto}
.photo-banner{height:clamp(330px,48vw,670px);position:relative;overflow:hidden;background:var(--panel)}
.photo-banner img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.photo-banner:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0a0e13b8)}
.photo-banner .caption{position:absolute;z-index:1;bottom:28px;left:max(56px,calc((100vw - 1208px)/2));font:10px monospace;letter-spacing:1px}
.gallery-intro{padding-top:95px}
.gallery-intro h2{max-width:730px}
.gallery-intro p:last-child{font-size:15px;line-height:1.8;color:var(--muted);max-width:650px}
.photo-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-top:28px;padding-bottom:80px}
.photo-gallery figure{grid-column:span 4}
.photo-gallery figure:nth-child(1),.photo-gallery figure:nth-child(5){grid-column:span 6}
.gallery-open{all:unset;display:block;width:100%;cursor:zoom-in;overflow:hidden;border-radius:7px;background:var(--panel)}
.gallery-open:focus-visible{outline:2px solid var(--sky);outline-offset:5px}
.gallery-open img{display:block;width:100%;height:570px;object-fit:cover;transition:transform .45s ease}
.photo-gallery figure:nth-child(1) img,.photo-gallery figure:nth-child(5) img{height:650px}
.gallery-open:hover img{transform:scale(1.035)}
.photo-gallery figcaption{font-size:10px;line-height:1.6}
.lightbox{max-width:min(1100px,94vw);max-height:94vh;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);padding:14px;box-shadow:0 30px 90px #000b}
.lightbox::backdrop{background:#000d}
.lightbox img{max-height:calc(94vh - 100px);max-width:calc(94vw - 30px);width:auto;margin:auto;object-fit:contain}
.lightbox-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}
.lightbox-tools span{color:var(--muted);font:10px monospace}
.lightbox-tools button{border:1px solid var(--line);color:var(--text);background:var(--panel);padding:10px 14px;cursor:pointer}
.photo-story{background:var(--panel);border-block:1px solid var(--line)}
.photo-story .section-split{align-items:center}
.photo-story .mini-route{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:28px;font:10px monospace;color:var(--mint)}
.project-page .page-hero-art{background:linear-gradient(145deg,#0a0e13,#101e26)}
.project-page .page-hero-art:before{background-image:linear-gradient(#25303a70 1px,transparent 1px),linear-gradient(90deg,#25303a70 1px,transparent 1px)}
.system-stack{position:absolute;inset:44px 70px;display:grid;grid-template-columns:1fr 1fr;gap:14px;transform:rotate(-5deg)}
.system-stack span{border:1px solid #45d39c70;border-radius:6px;background:#111820e6;padding:20px 15px;color:var(--mint);font:10px monospace;letter-spacing:1px;box-shadow:0 20px 35px #0004}
.system-stack span:nth-child(2),.system-stack span:nth-child(3){border-color:#38bdf870;color:var(--sky)}
.system-stack b{display:block;margin-top:18px;color:var(--text);font:23px Arial}
.project-feature{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;border-top:1px solid var(--line);padding:70px 0}
.project-feature:first-of-type{border-top:0}
.project-feature h3{font-size:clamp(30px,3.2vw,44px);letter-spacing:-1.5px;line-height:1.15;font-weight:500;margin:8px 0 23px}
.project-feature p{font-size:15px;line-height:1.85;color:var(--muted);max-width:570px}
.project-feature .feature-label{color:var(--mint);font:10px monospace;letter-spacing:1px}
.feature-art{min-height:280px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at center,#19352e,#111820 42%,#0a0e13);overflow:hidden}
.feature-art .art-core{font:clamp(55px,8vw,100px) Georgia;color:var(--mint);opacity:.8}
.feature-art.sky{background:radial-gradient(circle at center,#15303b,#111820 42%,#0a0e13)}
.feature-art.sky .art-core{color:var(--sky)}
.feature-art .art-small{font:11px monospace;color:var(--muted);letter-spacing:1px;border-top:1px solid var(--line);padding-top:14px}
.feature-art .art-column{text-align:center}
.scope-note{padding:25px 30px;border-left:2px solid var(--mint);background:var(--panel);color:var(--muted);font-size:14px;line-height:1.8}
@media(max-width:1000px){.page-shell header{padding-left:30px;padding-right:30px}.page-hero-grid{gap:38px}.section-split{gap:45px}.gallery-open img{height:440px}.photo-gallery figure:nth-child(1) img,.photo-gallery figure:nth-child(5) img{height:510px}.photo-banner .caption{left:30px}}
@media(max-width:700px){.page-shell header{padding-left:22px;padding-right:22px}.page-hero{padding-top:50px;padding-bottom:62px}.page-hero-grid,.photo-page .page-hero-grid{grid-template-columns:1fr;gap:25px}.page-hero h1{font-size:clamp(42px,11vw,66px)}.page-hero .lead{margin-top:5px}.page-hero-art{margin-top:20px;min-height:300px}.page-index{gap:14px;font-size:10px}.page-section{padding-top:65px;padding-bottom:65px}.section-split{grid-template-columns:1fr;gap:23px}.section-split .copy{font-size:15px}.page-card-grid,.case-grid{grid-template-columns:1fr}.page-card{min-height:0}.page-card h3{margin-top:22px}.faq-stack{margin-top:25px}.page-cta{grid-template-columns:1fr;gap:18px;padding-top:65px;padding-bottom:70px}.photo-page .page-hero{padding-bottom:40px}.photo-page .signature-mark{margin:0;width:125px}.photo-banner{height:420px}.photo-banner img{object-position:45% center}.photo-banner .caption{left:22px}.gallery-intro{padding-top:65px}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.photo-gallery figure:nth-child(n){grid-column:span 1}.photo-gallery figure:first-child{grid-column:span 2}.gallery-open img,.photo-gallery figure:nth-child(1) img,.photo-gallery figure:nth-child(5) img{height:360px}.photo-gallery figure:first-child img{height:510px}.project-feature{grid-template-columns:1fr;gap:25px;padding:45px 0}.project-feature .feature-art{min-height:220px;grid-row:1}.system-stack{inset:36px 35px}}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none}.gallery-open:hover img{transform:none}}
