/* Shared editorial components for future service landing pages. */
:root{--radius-card:8px;--section-space:88px;--body-size:16px;--measure:65ch}
button{font:inherit}button:focus-visible{outline:2px solid var(--sky);outline-offset:5px}.hero h1{font-size:clamp(46px,5.2vw,72px)}.hero-top .eyebrow{font-size:12px;font-weight:bold}.eyebrow{font-size:11px}.hero-foot,.hero-rule,.tag,figcaption,.photo-caption{font-size:10px}.section{padding-top:var(--section-space);padding-bottom:var(--section-space)}.lead{font-size:17px}.fit{padding-top:65px;padding-bottom:10px}.fit h2{font-size:38px;margin-top:22px}.fit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:30px}.fit-grid p{border-top:1px solid var(--line);padding-top:22px;font-size:16px;line-height:1.7;color:var(--muted)}.fit-grid span{display:block;font:11px monospace;color:var(--mint);margin-bottom:16px}.steps p.deliverable{min-height:0;color:var(--text);font-size:13px;border-top:1px solid var(--line);padding-top:15px;margin-top:12px}.method-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:30px;border-bottom:1px solid var(--line);padding:12px 0 35px}.method-cta p{font-size:19px}.method-cta small{display:block;color:var(--muted);font-size:13px;line-height:1.7;max-width:460px;margin-top:9px}.photo-footer{flex-wrap:wrap}.photo-footer p{flex:1 1 350px}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:32px 24px}.gallery-grid figure:nth-child(1){grid-column:1/6;grid-row:1/3}.gallery-grid figure:nth-child(2){grid-column:6/13}.gallery-grid figure:nth-child(3){grid-column:9/13;grid-row:2/4}.gallery-grid figure:nth-child(4){grid-column:6/9;grid-row:2}.gallery-grid figure:nth-child(5){grid-column:1/9;grid-row:3}.network-node{transition:opacity .4s}.network svg>g:nth-of-type(2){stroke-dasharray:600;stroke-dashoffset:600;animation:connect 6s ease-in-out infinite}.network .node-label{font-size:9px}.node-label.one{animation:labelGlow 6s infinite}.node-label.two{animation:labelGlow 6s 1.5s infinite}.node-label.three{animation:labelGlow 6s 3s infinite}@keyframes connect{0%{stroke-dashoffset:600}65%,100%{stroke-dashoffset:0}}@keyframes labelGlow{25%,45%{border-color:var(--mint);color:var(--mint)}}
@media(max-width:700px){:root{--section-space:62px}.hero h1{font-size:clamp(42px,10.7vw,62px)}.hero-top .eyebrow{font-size:10px;letter-spacing:.6px}.hero-visual{height:300px}.hero-foot,.hero-rule{font-size:9px}.fit{padding-top:45px}.fit h2{font-size:32px}.fit-grid{grid-template-columns:1fr;gap:0}.fit-grid p{margin:0;padding:17px 0;display:flex;gap:20px;font-size:15px}.fit-grid span{margin:5px 0 0}.method-cta{flex-direction:column;align-items:flex-start}.gallery-grid{grid-template-columns:1fr 1fr;gap:24px 14px}.gallery-grid figure:nth-child(n){grid-column:auto;grid-row:auto}.gallery-grid figure:nth-child(2),.gallery-grid figure:nth-child(5){grid-column:1/-1}.gallery-grid figure:nth-child(3){grid-column:1;grid-row:3}.gallery-grid figure:nth-child(4){grid-column:2;grid-row:3}.gallery-grid figure:nth-child(1){grid-column:1/-1}.gallery-grid figure:nth-child(1) img{aspect-ratio:2/3;max-height:650px;object-fit:contain}.gallery-grid figure:nth-child(4) img{aspect-ratio:2/3}.gallery-grid figcaption{font-size:9px}.photo-footer .button,.photo-footer .outline-button{width:100%;justify-content:center;text-align:center}.signature{margin-top:0;justify-self:start}.contact h2{font-size:48px}.contact p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.network svg>g:nth-of-type(2){stroke-dashoffset:0}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Homepage: editorial previews, not interactive gallery controls. */
.home-photo-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}
.home-photo-grid figure:nth-child(n){grid-column:span 2;grid-row:auto}
.home-photo-grid figure:nth-child(4){grid-column:2/span 2}
.home-photo-grid figure:nth-child(5){grid-column:4/span 2}
.photo-preview{overflow:hidden;border-radius:var(--radius-card);background:var(--panel);cursor:default}
.home-photo-grid figure:nth-child(n) img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:0}
.home-photo-grid figure:hover img{transform:none}
@media(hover:hover) and (pointer:fine){.home-photo-grid .photo-preview:hover img{transform:scale(1.025)}}
@media(max-width:700px){.home-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.home-photo-grid figure:nth-child(n){grid-column:auto;grid-row:auto}.home-photo-grid figure:first-child{grid-column:1/-1}.home-photo-grid figcaption{font-size:9px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){.home-photo-grid .photo-preview:hover img{transform:none}}

/* Pre-release accessibility review: navigation remains available on phones. */
nav a{display:inline-flex;align-items:center;min-height:44px}
.project-row>a{min-width:44px;min-height:44px;display:grid;place-items:center}
.pulse{animation-iteration-count:1}
.network svg>g:nth-of-type(2){animation:connect 4s ease-in-out 1 forwards}
.network .node-label{animation:none}
@media(max-width:700px){header{height:auto;min-height:85px;flex-wrap:wrap;padding-top:18px;padding-bottom:12px;gap:12px}nav{width:100%;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}nav>a:not(.nav-contact){display:inline-flex;font-size:12px}.project-row{grid-template-columns:45px minmax(0,1fr) 44px;gap:10px}}
