/* Continuous industrial art direction for the public WordPress routes. */
.rooms{--paper:#edf2e9;--mist:#9bb2b9;background:#081419;overflow:clip}
.scene-cover{isolation:isolate;overflow:hidden;position:relative;display:grid;align-items:center;min-height:clamp(465px,66svh,780px);padding:clamp(62px,7vw,116px) var(--g) 84px;background:#101f25}
.scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;z-index:-3}
.scene-cover:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#051219eb 0%,#0512199e 31%,#0512190f 65%),linear-gradient(0deg,#051219bc 0%,transparent 27%);pointer-events:none}
.scene-heading{position:relative;z-index:3;width:min(64%,900px)}.cover-path,.scene-strip,.room-title small,.reading-room aside small,.model-actions span,.field-photos figcaption,.model-pass figcaption,.nav-bays small,.chosen-model small{font:600 11px/1.4 monospace;text-transform:uppercase;letter-spacing:.14em}
.cover-path{display:flex;align-items:center;gap:12px;color:#cdf8ed}.cover-path a{text-decoration:none}.cover-path i{width:28px;height:1px;background:#75dfd6}
.scene-heading h1{font-size:clamp(58px,7.8vw,134px);line-height:.98;letter-spacing:-.046em;max-width:15ch;margin:24px 0 20px;overflow-wrap:break-word;text-wrap:balance}
.scene-heading p{font-size:clamp(16px,1.45vw,22px);max-width:38ch;margin:0 0 24px;color:#e0e9e8;text-shadow:0 1px 12px #07141a}
.scene-strip{position:absolute;z-index:2;inset:auto var(--g) 18px;display:flex;align-items:center;gap:14px;color:#d6eceb}.scene-strip i{flex:1;height:3px;border-top:1px solid #b7e3df69;background:repeating-linear-gradient(90deg,#b7e3df69 0 1px,transparent 1px 26px)}
.room-title h2,.reading-room aside h2{font:600 clamp(38px,5vw,82px)/1.05 Hangar,sans-serif;letter-spacing:-.035em;margin:8px 0 24px}.room-title small,.reading-room aside small{color:#91c4c2}
.reading-room,.field-gallery,.model-room,.journal-room,.no-route{padding:clamp(48px,7vw,108px) var(--g)}
.reading-room{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.5fr);gap:clamp(24px,6vw,120px);position:relative;border-top:1px solid #27454d}
.reading-room aside{align-self:start;position:sticky;top:24px}.reading-room aside h2{font-size:clamp(33px,4vw,64px);overflow-wrap:anywhere}.reading-index{display:grid;gap:10px;margin:14px 0 22px}.reading-index a{font-size:14px;color:#b9cccd;text-decoration:none;border-left:1px solid #4c7179;padding-left:12px}.reading-index a:hover{color:var(--ice)}
.reader{max-width:79ch;font-size:clamp(16px,1.25vw,19px);line-height:1.68;margin:0}.reader img{max-width:min(100%,365px);border:1px solid #37535c}.reader>img{width:min(32%,360px);height:clamp(90px,11vw,170px);object-fit:cover;margin:0 .8% 12px 0}.reader details summary{cursor:pointer;color:#b2dcda;padding:16px 0;border-bottom:1px solid #325057}
.nav-bays{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#365159}.nav-bays a{isolation:isolate;position:relative;min-height:clamp(180px,20vw,300px);display:flex;flex-direction:column;align-items:start;justify-content:end;padding:clamp(17px,2.4vw,44px);overflow:hidden;text-decoration:none;background:#17282d}.nav-bays img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s}.nav-bays a:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#03151af0,transparent 125%);z-index:-1}.nav-bays b{font:600 clamp(23px,3.6vw,58px)/1.1 Hangar,sans-serif}.nav-bays small,.journal-entry small{color:#b6ece4}.nav-bays a>span{position:absolute;top:16px;right:20px;font-size:24px}.nav-bays a:hover img,.journal-entry:hover img{transform:scale(1.045)}
.journal-room{background:#e8eae1;color:#182a2c}.journal-room .room-title small{color:#456366}
.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px}.journal-entry{border-top:1px solid #617572;position:relative;text-decoration:none;padding:9px 0 23px}.journal-entry>div{aspect-ratio:1.9;background:#718c8c;overflow:hidden}.journal-entry img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.journal-entry small{display:block;font:11px monospace;color:#415d5c;margin:15px 0 7px}.journal-entry h3{font:550 clamp(21px,2.3vw,36px)/1.12 Hangar,sans-serif;max-width:95%}.journal-entry span{position:absolute;right:0;bottom:0}.journal-entry:first-child{grid-column:span 2}
.field-photos{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.field-photos figure,.model-pass figure{margin:0}.field-photos img{width:100%;height:clamp(170px,24vw,340px);object-fit:cover}.field-photos figcaption,.model-pass figcaption{color:#b8d6d4;margin-top:8px}
.model-pass{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(22px,5vw,80px);align-items:center}.model-pass img{width:100%;max-height:400px;object-fit:contain;background:#101e26}.model-pass h3{font:600 clamp(24px,3vw,48px)/1.1 Hangar,sans-serif;margin:8px 0}.model-pass p{max-width:45ch;color:#c5d3d3}.size-stamp{font:600 clamp(55px,8vw,120px)/1 Hangar,sans-serif;color:var(--ice)}.size-stamp small{font:12px monospace;margin:0 8px}
.model-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:30px 0}.model-actions a{display:grid;text-decoration:none;border:1px solid #54787f;padding:clamp(13px,2vw,30px);background:linear-gradient(135deg,#18343c,#0a1c21)}.model-actions b{font:500 clamp(24px,4vw,50px)/1.15 Hangar,sans-serif;color:var(--ice)}.model-actions span{color:#a3c1c2}.chosen-model{padding:13px;border:1px solid #5f9c9e;display:grid}.chosen-model a,.chosen-model small{color:var(--ice);font-size:12px}.stock-grid h3 a{font:inherit;margin:0;text-decoration:none}
@media(min-width:831px){.rooms:has(.reader) .scene-heading h1{max-width:14ch}.rooms:has(.reader) .scene-heading h1:has(+.action){font-size:clamp(46px,5.6vw,100px);max-width:21ch}}
@media(max-width:830px){.scene-cover{min-height:clamp(520px,79svh,760px);align-items:end;padding:185px var(--g) 56px}.scene-art{object-position:73% center}.scene-cover:before{background:linear-gradient(0deg,#06171cf5 0%,#07191cc2 29%,#07191c13 68%)}.scene-heading{width:100%}.scene-heading h1{font-size:clamp(42px,10vw,70px);margin:14px 0;max-width:20ch}.scene-heading p{font-size:16px;max-width:35ch}.scene-strip{font-size:9px}.reading-room,.model-pass{grid-template-columns:1fr}.reading-room aside{position:static}.reading-index{display:none}.nav-bays{grid-template-columns:1fr}.nav-bays a{min-height:130px}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-photos{grid-template-columns:1fr 1fr}.field-photos figure:first-child{grid-column:span 2}.model-actions a{padding:10px}.reader>img{height:88px}}
@media(max-width:470px){.journal-grid{grid-template-columns:1fr}.journal-entry:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.nav-bays img,.journal-entry img{transition:none}}
.facility{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);align-items:center;gap:6vw;background:radial-gradient(at 65% 45%,#173840,#08171d 72%);border-bottom:1px solid #38545c}
.facility h2{font-size:clamp(48px,7vw,110px);line-height:.97;letter-spacing:-.04em;margin:17px 0}.facility em{color:var(--ice);font-style:normal}.facility p{max-width:34ch}.facility nav{display:grid;margin-top:22px}.facility nav a{display:flex;gap:14px;align-items:center;border-top:1px solid #47656c;padding:10px 2px;text-decoration:none}.facility nav small,.map-legend{font:11px monospace;letter-spacing:.12em;color:var(--ice)}.facility nav b{margin-left:auto}
.facility-map{overflow:hidden;background:radial-gradient(at 58% 42%,#1c3f46,#091a20 72%);border:1px solid #48656b;position:relative}.facility-map svg{display:block;width:100%}.map-road{stroke:#c0b178;stroke-width:3;stroke-dasharray:6 10;fill:none;animation:route-pulse 7s infinite linear}.map-pin{color:#88f7e3}.map-pin rect{fill:#90e6d9}.map-pin text{fill:#0d3038;font:600 13px monospace}.map-building{transition:transform .35s,filter .35s}.facility-map a:hover .map-building,.facility-map a:focus-visible .map-building,.facility-map .illuminated .map-building{transform:translateY(-8px);filter:brightness(1.4)}.map-legend{position:absolute;bottom:12px;left:14px}
.map-switch{white-space:nowrap;display:inline-flex;align-items:center;gap:5px;color:var(--ice);border:1px solid #678486;padding:5px 9px;text-decoration:none;font:12px monospace}.map-switch span{font-size:20px}
@keyframes route-pulse{to{stroke-dashoffset:-160}}
@media(max-width:830px){.facility{grid-template-columns:1fr;gap:22px}.facility nav{grid-template-columns:1fr 1fr;gap:0 12px}.mast{gap:8px}.map-switch{font-size:0;padding:0 6px}.map-legend{font-size:9px}.facility-map{min-height:0}}
@media(prefers-reduced-motion:reduce){.map-road{animation:none}.map-building{transition:none}}
.scene-cover[data-section="42"],.scene-cover[data-section="49"],.scene-cover[data-section="48"]{--room-accent:#ffc889}.scene-cover .cover-path{color:var(--room-accent,#b0f7ea)}
.scene-cover[data-section="article"]{background:#0b1920}.scene-cover[data-section="article"] .scene-art{filter:brightness(.55)}.scene-cover[data-section="article"] .scene-heading{width:57%}
.archive-frame{position:absolute;z-index:2;right:var(--g);top:50%;transform:translateY(-50%) rotate(1.8deg);width:min(31%,500px);margin:0;border:1px solid #b6bcb2;padding:7px;background:#e3e6df;box-shadow:0 18px 42px #030c1599}.archive-frame img{display:block;width:100%;height:auto;max-height:34svh;object-fit:contain;background:#d6dbd4}.archive-frame figcaption{color:#27383b;font:10px monospace;letter-spacing:.12em;padding:9px 2px 3px}
img[role=button]{cursor:zoom-in}.field-lightbox{width:min(84vw,880px);padding:12px;background:#10262e;color:#dce9e7;border:1px solid #678682}.field-lightbox::backdrop{background:#031016e8}.field-lightbox form{text-align:right;margin-bottom:8px}.field-lightbox button{padding:10px 14px;background:#142f38;color:inherit;border:1px solid #658884;font:12px monospace}.field-lightbox img{max-width:100%;max-height:65svh;display:block;margin:auto;object-fit:contain}.field-lightbox footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 0;background:none}.field-lightbox p{margin:0}.field-lightbox [hidden],.journal-entry[hidden]{display:none}
.journal-search{margin:0 0 25px;display:flex;align-items:end;justify-content:space-between;gap:18px}.journal-search label,.bench-lane label{display:grid;gap:8px;font:12px monospace}.journal-search input,.bench-lane select{max-width:100%;background:transparent;border:1px solid currentColor;color:inherit;padding:12px;font:inherit}.journal-search[hidden],.bench[hidden]{display:none}
.bench{border:1px solid #617d82;margin:32px 0;background:linear-gradient(120deg,#15303a,#091b21);display:grid;grid-template-columns:.75fr 1.25fr;padding:clamp(17px,3vw,42px);gap:3vw}.bench-caption small,.bench-legend{font:11px monospace;letter-spacing:.09em;color:#9cc2c1}.bench h3{font:600 clamp(29px,3.7vw,56px)/1.04 Hangar,sans-serif;margin:10px 0}.bench-caption p{line-height:1.5;max-width:36ch}.bench-pair{display:grid;gap:20px}.bench-lane select{width:100%;color:#d2e7e0;background:#122b31}.bench-scale{position:relative;height:36px;display:flex;align-items:center;border-bottom:1px solid #638087;background:repeating-linear-gradient(90deg,transparent 0 9%,#68929533 9% calc(9% + 1px),transparent calc(9% + 1px) 10%)}.bench-scale i{display:block;width:100%;height:20px;transform-origin:left;transform:scaleX(var(--length,.5));transition:transform .45s ease;background:repeating-linear-gradient(90deg,#afddd5 0 4px,#70a29d 4px 6px);border:1px solid #c7e4d3}.bench-lane[data-family=dry] .bench-scale i{filter:sepia(.65)}.bench-legend{display:flex;justify-content:space-between;padding:8px 0}
.field-photos figure{position:relative}.field-photos figcaption{padding:10px 0;border-bottom:1px solid #33545b}.field-photos img{border:1px solid #3e6268}
.request{isolation:isolate;position:relative;overflow:hidden}.request:before{content:'';z-index:-1;position:absolute;inset:0;background:linear-gradient(90deg,#07171acc 0%,#07171af0 53%,#07171a 80%),url(dispatch.webp) 45% 60% / cover;pointer-events:none}
@media(max-width:830px){.scene-cover[data-section="article"]{padding-top:32px;display:flex;align-items:stretch;flex-direction:column;justify-content:end;gap:18px}.scene-cover[data-section="article"] .scene-heading{width:100%}.archive-frame{position:relative;top:auto;right:auto;transform:none;width:min(63%,300px);align-self:end}.archive-frame img{max-height:16svh}.archive-frame figcaption{font-size:8px;padding:5px 0 1px}.bench{grid-template-columns:1fr}.field-lightbox{width:92vw}.journal-search{align-items:start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.bench-scale i{transition:none}}
@supports (animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference){
  .scene-art{animation:room-depth linear both;animation-timeline:view();animation-range:exit 0% exit 90%}

  @keyframes room-depth{from{transform:scale(1.015)}to{transform:scale(1.12) translateY(2%)}}

 }
}
.no-route{min-height:68svh;background:linear-gradient(90deg,#07171aee,#07171a44),url(dispatch.webp) center / cover}.no-route h1{font-size:clamp(42px,7vw,108px);max-width:13ch;line-height:1}

/* Contact strip between rooms. The image plane, rotor and weather masks keep one aperture. */
nav.nav-bays {
    --rail-edge:#6b7c71;--rail-text:#e4eadb;--shot-footer:clamp(90px,7.5vw,116px);
    position:relative;isolation:isolate;counter-reset:shot;
    grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;
    padding:clamp(20px,2.3vw,38px) var(--g) clamp(18px,2.2vw,34px);
    gap:10px clamp(10px,1.25vw,23px);border-block:1px solid #68796e;
    background:radial-gradient(ellipse at 10% 16%,#31403a88,transparent 40%),
        linear-gradient(112deg,#162425,#092024 54%,#122022);
    box-shadow:inset 0 3px #101d1e,inset 0 -3px #0b171a;
}
nav.nav-bays::before {
    content:attr(aria-label);content:attr(aria-label) / "";
    display:block;grid-column:1/-1;margin:0 0 4px;
    padding:7px 0 8px 17px;border-bottom:1px solid #66796b70;
    background:linear-gradient(#d2b685,#d2b685) left 50% / 5px 5px no-repeat;
    color:#d6decc;font:650 clamp(11px,1.05vw,15px)/1.2 ui-monospace,monospace;letter-spacing:.035em;
}
nav.nav-bays>a {
    counter-increment:shot;position:relative;isolation:isolate;
    display:flex;align-items:stretch;justify-content:flex-end;min-height:clamp(212px,22vw,385px);
    padding:13px clamp(12px,1.25vw,22px);
    border:1px solid var(--rail-edge);border-radius:3px;background:linear-gradient(140deg,#203637,#15292c);
    box-shadow:inset 0 -3px #101b1d,0 2px 0 #0a1519,0 7px 12px #020b0e38;
}
nav.nav-bays>a::before {
    content:"";position:absolute;inset:auto 0 0;height:var(--shot-footer);z-index:-1;
    border-top:1px solid #7d918164;
    background:linear-gradient(110deg,#25383a,#172b2c 73%,#1c3030);
}
nav.nav-bays>a::after {
    content:counter(shot,decimal-leading-zero);content:counter(shot,decimal-leading-zero) / "";
    position:absolute;z-index:2;top:10px;left:10px;min-width:24px;
    padding:3px 5px;border:1px solid #9fae9480;background:#142326db;
    color:#eddfbe;font:650 10px/1.1 ui-monospace,monospace;letter-spacing:.04em;text-align:center;
}
nav.nav-bays>a>.bay-photo {
    position:absolute;inset:0 0 var(--shot-footer);width:auto;height:auto;z-index:-2;
    background:#1b2c31;box-shadow:inset 0 0 0 1px #101c1d;
}
nav.nav-bays>a>.bay-photo::after {
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(0deg,#0b192156,transparent 22%);
}
nav.nav-bays>a>small {position:relative;color:#c6d7c5;font:650 clamp(9px,.74vw,12px)/1.2 ui-monospace,monospace;letter-spacing:.075em;margin-bottom:5px}
nav.nav-bays>a>b {position:relative;min-width:0;padding-right:32px;max-width:100%;color:var(--rail-text);font:600 clamp(25px,2.7vw,46px)/1.02 Hangar,sans-serif;letter-spacing:-.015em;text-wrap:balance}
nav.nav-bays>a>span {
    position:absolute;inset:auto 12px 14px auto;display:grid;place-items:center;width:29px;height:29px;
    color:#c4d8c9;border:1px solid #7187799c;border-radius:50%;font:normal 17px/1 system-ui;
}
nav.nav-bays>a:focus-visible {
    z-index:2;outline:3px solid #ebce96;outline-offset:2px;border-color:#e4c891;
}
nav.nav-bays>a:focus-visible>span {color:#142726;background:#eed6a5;border-color:#f3d6a3}
@media(hover:hover) and (pointer:fine) {
    nav.nav-bays>a:hover {border-color:#c6b58b}
    nav.nav-bays>a:hover>span {color:#132926;background:#ead4a5;border-color:#f2d49f}
}
@media(max-width:830px) {
    nav.nav-bays {grid-template-columns:1fr;gap:8px;padding-block:16px 20px}
    nav.nav-bays::before {padding-block:5px 8px;margin-bottom:1px}
    nav.nav-bays>a {--shot-footer:64px;min-height:clamp(178px,44vw,255px);padding:9px 12px}
    nav.nav-bays>a>b {font-size:clamp(25px,6vw,38px)}
    nav.nav-bays>a>small {font-size:9px;margin-bottom:3px}
    nav.nav-bays>a:not(:first-of-type) {
        min-height:clamp(112px,26vw,165px);padding:12px 12px 12px calc(42% + 12px);justify-content:center;
    }
    nav.nav-bays>a:not(:first-of-type)>.bay-photo {inset:0 58% 0 0}
    nav.nav-bays>a:not(:first-of-type)::before {inset:0 0 0 42%;height:auto;border-top:0;border-left:1px solid #71867880}
    nav.nav-bays>a:not(:first-of-type)>b {padding-right:0;padding-bottom:18px;font-size:clamp(22px,5.65vw,34px);text-wrap:pretty}
    nav.nav-bays>a:not(:first-of-type)>span {bottom:7px;right:8px;width:22px;height:22px;font-size:13px}
}
@media(prefers-reduced-motion:no-preference) {
    /* Only a card actually arriving on screen receives this finite animation.
       Links and their labels never disappear while scripts or images load. */
    nav.nav-bays>a[data-shot-entry]>.bay-photo {animation:bay-expose .68s cubic-bezier(.16,.72,.22,1) both}
    nav.nav-bays>a[data-shot-entry]::after {animation:bay-slate .52s ease-out both}
    nav.nav-bays>a>span {transition:background-color .2s,color .2s,transform .2s}
    @keyframes bay-expose {from{clip-path:inset(0 0 13% 0)}to{clip-path:inset(0)}}
    @keyframes bay-slate {from{transform:translateY(5px)}to{transform:translateY(0)}}
    @media(hover:hover) and (pointer:fine) {nav.nav-bays>a:hover>span {transform:translate(2px,-2px)}}
}
@media(forced-colors:active) {
    nav.nav-bays>a::after,nav.nav-bays>a>span {background:Canvas;color:CanvasText;border-color:CanvasText}
    nav.nav-bays>a:focus-visible {outline-color:Highlight}
}
