/* Light, progressive enhancement. The photographs remain the source of the spectacle. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.hero-media{z-index:0}
.hero-media>img{position:absolute;inset:0;object-position:var(--hero-focus,50% 74%)}
.hero-content{animation:none}
#hero-image{z-index:1}.hero-media>.hero-snapshot{z-index:0;animation:none;transition:none}
.hero-tools{position:absolute;z-index:3;top:120px;right:var(--gutter)}
.motion-control{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 13px;border:1px solid #b7d9ee42;border-radius:3px;background:#0917249c;color:#cfdfeb;font:10px 'IBM Plex Mono',monospace;letter-spacing:.04em;backdrop-filter:blur(10px);transition:border-color .25s,background .25s}
.motion-control svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.2}.motion-control:hover{background:#17374acc;border-color:#c4eaff}.motion-control[aria-pressed=false] svg{opacity:.6}.motion-control:disabled{opacity:.8;cursor:default}.footer-motion{background:transparent;backdrop-filter:none}
.hero-grid{margin:0;inset:0;border:0;background:radial-gradient(#c3e6ff2e .8px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent 45%,#000);opacity:.5}
.hero-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.65;mix-blend-mode:screen}
.hero-atmosphere:before{content:'';position:absolute;inset:-20%;background:radial-gradient(ellipse at 78% 70%,#1479b52b,transparent 43%),radial-gradient(ellipse at 45% 90%,#54388822,transparent 36%);transform:translate3d(0,0,0)}
html[data-motion=on][data-effects=full] .hero.is-inview .hero-atmosphere:before{animation:ambient-drift 16s ease-in-out infinite alternate}
@keyframes ambient-drift{to{transform:translate3d(3%,-3%,0) scale(1.06)}}
html.fx-paused .hero-atmosphere:before{animation-play-state:paused!important}
.hero-selectors{gap:12px}.hero-selectors button{border:1px solid #badcf130;border-radius:3px;padding:10px 14px;min-height:52px;background:#07152255;backdrop-filter:blur(8px);transition:background .35s,border-color .35s,color .35s}
.hero-selectors button[aria-pressed=true]{border-color:#b7e2ff99;background:#a9d9ff14}.hero-selectors button:after{bottom:-1px;height:2px;border-radius:1px}.hero-selectors button:hover{background:#c8e8ff15}
.hero-project{border-top-color:#badcf15c}.hero-project-icon{transition:transform .35s var(--motion-ease)}.hero-project a:hover .hero-project-icon{transform:translate(3px,-3px)}
.service,.project-card,.signal-diagram{position:relative}.project-image:after,.service-image:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;border:1px solid #ceebff00;background:radial-gradient(300px circle at var(--light-x,50%) var(--light-y,50%),#d1efff12,transparent 75%);opacity:0;transition:opacity .4s,border-color .4s}
@media(hover:hover) and (pointer:fine){html[data-motion=on] .project-card:hover .project-image:after,html[data-motion=on] .service:hover .service-image:before{opacity:1;border-color:#ceebff55}}
.project-card:focus-visible .project-image:after{opacity:1;border-color:#ceebff99}
html[data-motion=on] .page-intro>.eyebrow,html[data-motion=on] .page-intro>h1,html[data-motion=on] .page-intro>.page-deck{animation:editorial-enter .8s var(--motion-ease) both}.page-intro>h1{animation-delay:.06s!important}.page-intro>.page-deck{animation-delay:.12s!important}
@keyframes editorial-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:1100px) and (min-width:701px){.hero{display:block;min-height:800px;height:auto;max-height:none;padding:160px var(--gutter) 0}.hero-tools{top:102px}.hero-project{position:relative;left:auto;right:auto;bottom:auto;width:100%;max-width:320px;margin-top:32px}.hero-bottom{position:relative;left:auto;right:auto;bottom:auto;margin-top:28px;padding:22px 0}.hero-selectors{width:100%}.hero-selectors button{flex:1}}
@media(max-width:700px){
 .hero{padding-top:145px;min-height:0;height:auto;max-height:none}.hero-tools{top:84px}.hero h1{font-size:clamp(34px,9.2vw,42px);line-height:1.08;letter-spacing:-.045em;margin-bottom:22px}.hero .eyebrow{font-size:9px;letter-spacing:.07em;margin-bottom:23px}.hero-description{font-size:15px;line-height:1.65;margin-bottom:26px}.hero-content .actions{gap:16px;flex-wrap:wrap}.hero-content .button{padding:14px 16px;min-height:50px;font-size:13px;gap:12px}.hero-link{font-size:13px;gap:12px}.hero-project{margin-top:32px;padding-top:13px}.hero-project strong{font-size:18px}.hero-project a{padding-top:7px}.hero-project>.micro{font-size:9px}.hero-bottom{margin-top:22px;padding:18px 0 24px}.hero-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}.hero-selectors button{font-size:10px;line-height:1.4;min-width:0;padding:9px 6px;min-height:58px;text-align:left}.hero-selectors button>span{font-size:9px;margin-bottom:5px}.hero-atmosphere{opacity:.3}.hero-grid{opacity:.25}.hero-media{top:-10%;height:110%}
}
html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-motion=off] .reveal{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-atmosphere:before,.page-intro>*{animation:none!important}.hero-media img{animation:none!important}}

/* A touch-first scene console, built from the existing project photography. */
.scene-console{--scene-accent:#9dd9ff;--scene-soft:#8acfff14;position:relative;isolation:isolate;border:1px solid #345366;border-radius:8px;background:radial-gradient(ellipse at 100% 10%,#15394b 0,transparent 55%),#091720;box-shadow:0 25px 65px -35px #17384c70;color:#e9f4fc;padding:28px;overflow:hidden}
.scene-console[data-scene-mode=service]{--scene-accent:#c4b3ff;--scene-soft:#b7a1ff18}.scene-console[data-scene-mode=performance]{--scene-accent:#f4c999;--scene-soft:#e9b87b14}
.console-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:24px;color:#a0bacb}.console-topbar>.micro{font-size:10px;letter-spacing:.1em;display:flex;align-items:center;gap:9px}.console-topbar i{height:5px;width:5px;background:var(--scene-accent);border-radius:50%;box-shadow:0 0 12px var(--scene-accent);flex-shrink:0}.console-topbar #scene-index{color:#85a1b3;white-space:nowrap}
.scene-console .scene-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:0;margin:0 0 32px;padding:0}.scene-console .scene-tabs button{display:flex;justify-content:center;align-items:center;gap:14px;position:relative;min-height:58px;border:1px solid #39505f;background:#ffffff03;color:#b8cbd8;border-radius:3px;font-size:14px;transition:color .3s,border-color .3s,background .3s}.scene-tabs button>span{font:10px 'IBM Plex Mono',monospace;color:#829cab}.scene-console .scene-tabs button[aria-selected=true]{border-color:var(--scene-accent);color:#f1f8fc;background:var(--scene-soft)}.scene-console .scene-tabs button[aria-selected=true]>span{color:var(--scene-accent)}.scene-console .scene-tabs button:hover{background:#e4f6ff0b}
.scene-console .scene-layout{grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr);gap:40px;align-items:center;outline-offset:8px}.scene-console .scene-copy{padding:8px 0 8px 8px}.scene-console .scene-copy h3{color:#edf6fc;font-size:clamp(28px,2.4vw,42px);line-height:1.18;letter-spacing:-.035em;margin:20px 0}.scene-console .scene-copy p{color:#b1c4d2;font-size:15px;line-height:1.8;margin-bottom:20px}.scene-console .scene-copy .scene-kicker{color:var(--scene-accent);font-size:9px;letter-spacing:.09em;margin:0;line-height:1.7}.scene-console .scene-copy .scene-disclaimer{font-size:11px;line-height:1.8;color:#93adbf;margin:28px 0 22px;max-width:300px}.scene-console .scene-plan{font-size:13px;color:#d7ebf8;border-color:#577180;gap:18px;padding:10px 0;min-height:44px}
.scene-replay{display:inline-flex;align-items:center;gap:9px;padding:10px 0;min-height:44px;border:0;border-bottom:1px solid #46616f;background:none;color:var(--scene-accent);font-size:12px;transition:color .3s}.scene-replay svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.4;fill:none}.scene-replay:disabled{color:#829cac;cursor:default;border-color:#2d4655}
.scene-console .signal-diagram{min-width:0;padding:0;border:1px solid #385465;background:#06121c;border-radius:4px;overflow:hidden}.scene-photo{margin:0;border-bottom:1px solid #385465}.scene-photo>img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;display:block;background:#06121c}.scene-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:#0e212e;min-height:44px}.scene-photo figcaption>span{font:8px 'IBM Plex Mono',monospace;letter-spacing:.06em;color:#a9c2d3;line-height:1.7}.scene-photo figcaption>a{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:#d1e6f5;white-space:nowrap;font-size:10px}.scene-photo figcaption>a:hover{color:white}.scene-signal-system{padding:22px 16px 18px;background:radial-gradient(ellipse at 50% 0%,var(--scene-soft),transparent 75%)}
.scene-console .signal-center{display:flex;align-items:center;justify-content:flex-start;flex-direction:row;gap:12px;padding:13px 16px;border:1px solid #58778b;background:#102737;border-radius:3px}.signal-hub-icon svg{width:30px;height:30px;stroke:var(--scene-accent);fill:none;stroke-width:1.1;display:block}.scene-console .signal-center strong{display:block;color:#d8edfa;font-size:9px;letter-spacing:.1em}.scene-console .signal-center div>span{display:block;color:var(--scene-accent);font-size:12px;margin-top:4px;line-height:1.5}.scene-console .signal-center>.signal-state{margin-left:auto;font-size:8px;color:#8ca8ba;text-align:right;letter-spacing:.04em}
.signal-routing{width:100%;height:36px;display:block;fill:none;stroke-width:1;overflow:visible}.route-base{stroke:#426278}.route-pulse{stroke:var(--scene-accent);stroke-width:2}.route-pulse path{stroke-dasharray:1;stroke-dashoffset:0;opacity:0}.routing-compact{display:none}.scene-console .signal-outputs{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.scene-console .signal-output{position:relative;min-width:0;min-height:95px;border:1px solid #365569;border-radius:3px;background:#102431;padding:14px 10px}.signal-label{display:flex;gap:7px;align-items:center;margin-bottom:12px}.signal-label svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:var(--scene-accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.scene-console .signal-outputs small{margin:0;color:var(--scene-accent);font-size:8px;letter-spacing:.06em}.scene-console .signal-outputs span[data-signal]{font-size:11px;line-height:1.5;display:block;color:#c6dbe9}
@media(min-width:701px) and (max-width:1100px){.scene-console{padding:24px}.scene-console .scene-layout{grid-template-columns:1fr;gap:26px}.scene-console .signal-diagram{grid-row:1}.scene-console .scene-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;padding:0}.scene-copy>div{grid-row:span 3}.scene-console .scene-copy .scene-disclaimer{margin:14px 0;max-width:none}.scene-replay,.scene-console .scene-plan{justify-self:start}.scene-console .scene-copy h3{font-size:34px}.scene-photo>img{aspect-ratio:2;object-fit:contain;max-height:350px}}
@media(max-width:700px){.scene-console{padding:14px;border-radius:5px}.console-topbar{padding:5px 0 19px;gap:10px}.console-topbar>.micro{font-size:8px;letter-spacing:.02em;gap:7px}.console-topbar #scene-index{font-size:8px}.scene-console .scene-tabs{gap:6px;margin-bottom:18px}.scene-console .scene-tabs button{flex-direction:column;gap:6px;font-size:11px;min-height:61px;padding:10px 4px}.scene-tabs button>span{font-size:9px}.scene-console .scene-layout{grid-template-columns:1fr;gap:28px}.scene-console .signal-diagram{grid-row:1}.scene-console .scene-copy{padding:0 6px 10px}.scene-console .scene-copy h3{font-size:30px;margin:14px 0}.scene-console .scene-copy p{font-size:14px;line-height:1.75}.scene-console .scene-copy .scene-disclaimer{margin:20px 0 10px;max-width:none}.scene-photo figcaption{padding:0 10px;gap:8px}.scene-photo figcaption>span{font-size:7px;max-width:150px}.scene-photo figcaption>a{font-size:9px;gap:4px}.scene-signal-system{padding:16px 10px 12px}.scene-console .signal-center{padding:11px 10px;gap:9px}.signal-hub-icon svg{width:24px;height:24px}.scene-console .signal-center>.signal-state{display:none}.scene-console .signal-center div>span{font-size:11px}.scene-console .signal-outputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scene-console .signal-output{padding:12px;min-height:84px}.scene-console .signal-output:nth-child(n+3):before{content:'';position:absolute;width:1px;height:13px;left:50%;top:-14px;background:#426278}.scene-console .signal-outputs span[data-signal]{font-size:11px}.signal-label{margin-bottom:9px}.routing-wide{display:none}.routing-compact{display:block;height:28px}}

/* Native horizontal browsing on touch-sized screens; the desktop grid stays editorial. */
.project-rail-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:-10px 0 25px}.project-rail-controls .micro{font-size:9px;letter-spacing:.08em;color:#9eb8ca}.project-rail-controls p{margin:7px 0 0;font:14px 'IBM Plex Mono',monospace;color:#e2f1fa}.project-rail-buttons{display:flex;gap:8px}.project-rail-buttons button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #718d9f;background:#132c3c;color:#e0f2ff;border-radius:3px;font-size:23px;transition:background .25s,border-color .25s}.project-rail-buttons button:hover{background:#21455a;border-color:#b6daed}.project-rail-buttons button:disabled{opacity:.35;cursor:default}.project-rail-progress{height:2px;background:#294252;margin-top:25px;overflow:hidden}.project-rail-progress>span{display:block;height:100%;background:#b3ddf6;transform:scaleX(var(--rail-progress,.167));transform-origin:left;transition:transform .3s ease-out}
@media(max-width:1100px){#project-grid.rail-ready{position:relative;display:flex;flex-wrap:nowrap;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:5px;overscroll-behavior-x:contain;padding:5px 5px 14px;margin-inline:-5px;scrollbar-width:thin;scrollbar-color:#51738a #132635}#project-grid.rail-ready>.project-card{flex:0 0 calc((100% - 20px)/2);min-width:0;scroll-snap-align:start}#project-grid.rail-ready .project-image{aspect-ratio:1.25}#project-grid.rail-ready .project-meta h3{font-size:26px}#project-grid.rail-ready:focus-visible{outline:1px solid #a7d2ec;outline-offset:7px}}
@media(max-width:700px){#project-grid.rail-ready{gap:16px}#project-grid.rail-ready>.project-card{flex-basis:86%}#project-grid.rail-ready .project-image{aspect-ratio:1.15}#project-grid.rail-ready .project-meta h3{font-size:25px;line-height:1.2}#project-grid.rail-ready .project-meta small{font-size:9px;line-height:1.7}#project-grid.rail-ready .project-meta p{font-size:12px}.project-rail-controls{margin-top:0;margin-bottom:20px}}
/* Full-frame photography, with room for longer captions and finger-sized controls. */
#gallery-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:16px 24px;width:96vw;height:94svh;max-height:94svh;overflow:hidden;background:#07121cf7}#gallery-viewer .viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;border-bottom:1px solid #426074;padding-bottom:8px}#viewer-count{font-size:11px;letter-spacing:.07em;color:#acc9dc}#gallery-viewer #viewer-close{position:static;min-height:44px;min-width:80px;padding:10px 12px;border:1px solid #59778c;border-radius:3px;background:#122c3e}#gallery-viewer .viewer-stage{height:auto;min-height:0;grid-template-columns:48px minmax(0,1fr) 48px;gap:15px;touch-action:pan-y pinch-zoom}#gallery-viewer .viewer-stage img{min-width:0;min-height:0;width:100%;height:100%;object-fit:contain;user-select:none}#gallery-viewer .viewer-stage button{min-width:44px;height:52px;border-radius:3px;background:#0a2132df}#gallery-viewer .viewer-stage button:disabled{opacity:.35}#gallery-viewer .viewer-footer{min-width:0}#gallery-viewer #viewer-caption{margin:0;text-align:center;font-size:13px;line-height:1.6;color:#d2e4f0;overflow-wrap:anywhere;max-height:15svh;overflow-y:auto}.viewer-status-row{display:flex;justify-content:center;align-items:center;gap:12px;min-height:22px;margin-top:4px}#viewer-status{font-size:11px;line-height:1.5;color:#abc7db;margin:0}#viewer-retry{min-height:44px;padding:8px 14px;border:1px solid #6f95ad;background:#153247;color:#e2f3ff;border-radius:3px}.viewer-hint{font-size:10px;line-height:1.5;text-align:center;color:#9cb6c8;margin:3px 0 0}@media(hover:hover) and (pointer:fine){.viewer-hint{display:none}}
@media(max-width:700px){#gallery-viewer[open]{width:98vw;height:96svh;max-height:96svh;padding:10px 10px 14px;gap:10px}#viewer-count{font-size:10px}#gallery-viewer .viewer-stage{grid-template-columns:44px minmax(0,1fr) 44px;gap:0}#gallery-viewer .viewer-stage img{grid-column:1/-1;grid-row:1}#viewer-prev{grid-column:1;grid-row:1;z-index:1}#viewer-next{grid-column:3;grid-row:1;z-index:1}#gallery-viewer #viewer-caption{font-size:12px;line-height:1.6}.viewer-hint{font-size:10px}#viewer-status{font-size:10px}}
/* Reserve the original photo ratio before lazy decoding, including older galleries. */
.editorial-gallery button img{display:block;height:auto;aspect-ratio:var(--photo-ratio,3/2);object-fit:contain}

/* Readable technical detail and consistent link rhythm at every screen size. */
.scene-console .console-topbar>.micro,.scene-console .console-topbar #scene-index{font-size:10px;letter-spacing:.045em}.scene-console .scene-copy .scene-kicker{font-size:10px}.scene-console .scene-copy h3{text-wrap:balance}.scene-photo figcaption{flex-wrap:wrap;padding-block:4px;row-gap:0}.scene-photo figcaption>span{font-size:10px;line-height:1.6;flex:1 1 150px}.scene-photo figcaption>a{font-size:12px;min-height:44px}.scene-console .signal-center strong{font-size:10px}.scene-console .signal-center div>span{font-size:13px}.scene-console .signal-center>.signal-state{font-size:9px}.scene-console .signal-outputs small{font-size:10px;letter-spacing:.04em}.scene-console .signal-outputs span[data-signal]{font-size:12px}.scene-console .signal-output{min-height:100px}.project-rail-controls .micro{font-size:11px;letter-spacing:.055em}.project-meta small{line-height:1.65}.contact .email{min-height:44px;padding-block:8px;line-height:1.5}.button>span[aria-hidden],.text-link>span[aria-hidden]{flex-shrink:0}.page-intro h1,.section-heading h2{text-wrap:balance}.page-hero figcaption,.editorial-gallery figcaption{font-size:13px}.footer-bottom>.micro{line-height:1.7}
@media(max-width:850px){.site-header{--menu-header:80px}.site-header.scrolled{--menu-header:70px}.site-header nav{max-height:calc(100svh - var(--menu-header));overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#53788f #0b1823}.site-header nav.open{animation:nav-open .22s ease-out both}.site-header nav>a{flex-shrink:0}.menu-button i{position:relative;border:0}.menu-button i:before,.menu-button i:after{content:'';position:absolute;left:0;right:0;height:1px;background:#c8e4f5;transition:transform .25s var(--motion-ease)}.menu-button i:before{top:0}.menu-button i:after{top:6px}.menu-button[aria-expanded=true] i:before{transform:translateY(3px) rotate(45deg)}.menu-button[aria-expanded=true] i:after{transform:translateY(-3px) rotate(-45deg)}}
@keyframes nav-open{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(max-width:700px){.hero .eyebrow{font-size:10px}.hero-selectors button{font-size:12px;line-height:1.45}.hero-selectors button>span{font-size:10px}.hero-project>.micro{font-size:10px}#project-grid.rail-ready .project-meta small{font-size:11px}.scene-console .console-topbar>.micro{font-size:9px;letter-spacing:.015em}.scene-console .console-topbar #scene-index{font-size:9px}.scene-photo figcaption{padding:5px 10px;flex-wrap:nowrap;gap:10px}.scene-photo figcaption>span{font-size:10px;max-width:none;flex:1 1 110px;min-width:0}.scene-photo figcaption>a{font-size:12px;flex-shrink:0}.scene-console .signal-outputs small{font-size:10px}.scene-console .signal-outputs span[data-signal]{font-size:12px}.scene-console .signal-output{padding:12px 10px;min-height:93px}.scene-console .signal-center div>span{font-size:12px}.scene-console .scene-copy .scene-disclaimer{font-size:12px;line-height:1.7}.scene-console .scene-copy .scene-plan{font-size:14px}.scene-replay{font-size:13px}.scene-console .scene-tabs button{font-size:12px}.footer-bottom>.micro{font-size:10px;letter-spacing:.025em}}
/* Keep editable text comfortable on tablet layouts as well as phones. */
form input:not([type=checkbox]),form select,form textarea,.project-search input,.planner-fields input,.planner-fields select{font-size:16px}

/* Comfortable standalone touch targets without expanding inline prose links. */
.footer-bottom>a,.breadcrumb{display:inline-flex;align-items:center;min-height:44px}
.footer-bottom{align-items:center}.project-search input{min-height:44px}
.form-note a{display:inline-block;padding-block:12px;margin-block:-12px}

/* The dark console sits inside a light section and needs its own bright focus ring. */
.scene-console :focus-visible{outline-color:#b5ddf5}

/* Project spotlight: let the installation and its context lead. */
.feature-story{display:grid;grid-template-columns:1fr 1.6fr;gap:32px;margin-top:28px;border-top:1px solid #2a4255;padding-top:28px}.feature-story>.micro{color:#8ab2d1;line-height:1.8;margin:0}.feature-story>p:last-child{max-width:680px;margin:0;color:#a9bdcc;font-size:clamp(16px,1.4vw,19px);line-height:1.8}@media(max-width:700px){.feature-story{grid-template-columns:1fr;gap:12px;margin-top:22px;padding-top:22px}}

/* Slideshow controls stay within the existing hero utility row. */
.hero-tools{display:flex;align-items:center;gap:8px}#hero-playback svg{stroke-width:1.6}
@media(max-width:380px){.hero-tools .motion-control{padding-inline:9px;gap:6px;font-size:9px}}

/* A quiet, persistent index keeps long project stories easy to explore. */
.case-nav{position:sticky;top:78px;z-index:18;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px var(--gutter);background:#0d1c28f5;border-block:1px solid #375064;backdrop-filter:blur(16px)}
.case-nav-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38%}
.case-nav-links{display:flex;align-items:center;gap:8px}.case-nav-links a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 15px;font-size:12px;line-height:1.4;color:#b9cbd8;border:1px solid transparent;border-radius:3px;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.case-nav-links a[aria-current=location]{color:#eff8ff;background:#244256;border-color:#6f97b1}.case-nav-links a:hover{color:#fff;background:#203849}.case-nav-links a>span:not([aria-hidden]){font:10px 'IBM Plex Mono',monospace;color:#a9cce2}.case-nav-links .case-nav-contact{border-color:#54788f;color:#e1f1fc;margin-left:10px}
#project-overview,#project-film,#project-photos{scroll-margin-top:60px}.case-related .project-meta p{color:#516a7c}.case-related .project-meta small{color:#245d80}.case-related .project-image{background:#dce5eb}.case-related+.page-cta{padding-top:30px}
@media(max-width:850px){.case-nav{top:70px;padding-block:8px;gap:0}.case-nav-title{display:none}.case-nav-links{width:100%;justify-content:space-between;gap:4px}.case-nav-links a{padding:8px 10px}.case-nav-links .case-nav-contact{margin-left:0}#project-overview,#project-film,#project-photos{scroll-margin-top:50px}}
@media(max-width:380px){.case-nav-links a{padding-inline:7px;font-size:11px;gap:5px}.case-nav-links{gap:2px}}

@media(max-width:1100px){.case-related .project-grid{display:flex;flex-wrap:nowrap;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:5px 5px 16px;margin-inline:-5px;scrollbar-width:thin;scrollbar-color:#7d99ab #dce5eb}.case-related .project-card{flex:0 0 calc((100% - 20px)/2);min-width:0;scroll-snap-align:start}}
@media(max-width:700px){.case-related .project-card{flex-basis:86%}.case-related .project-meta h3{font-size:25px}}

/* The photo index is created only when requested and keeps the full-frame viewer uncluttered. */
#gallery-viewer [hidden]{display:none!important}
#gallery-viewer .viewer-toolbar{gap:8px}
#viewer-count{flex:1;min-width:0;line-height:1.5}
#viewer-browse{min-height:44px;flex:0 0 auto;padding:10px 12px;border:1px solid #59778c;border-radius:3px;background:#122c3e;color:#e2f3ff;font-size:12px}
#viewer-browse[aria-expanded="true"]{background:#23465e;border-color:#a7d4f4}
#viewer-picker{min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;align-content:start;padding:5px;scroll-padding:5px}
#viewer-picker button{min-width:0;position:relative;padding:5px;background:#112737;border:1px solid #446276;border-radius:3px;color:#d4e9f8;text-align:left;cursor:pointer}
#viewer-picker button[aria-current="true"]{border-color:#acd9fa;background:#244b66;box-shadow:inset 0 0 0 1px #acd9fa}
#viewer-picker img{width:100%;aspect-ratio:16/10;object-fit:contain;background:#06101a;display:block}
#viewer-picker span{display:block;padding:6px 3px 2px;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em}
#gallery-viewer.browsing-photos .viewer-hint{display:none}
@media(max-width:700px){#viewer-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#viewer-browse{padding-inline:9px;font-size:11px}}
