/* One logo asset and predictable landscape sizing, including short in-app viewports. */
#viewport .review-brand,#viewport #story .review-brand,#collection .page-brand{width:min(100%,330px);height:100px;max-width:330px;justify-self:center;margin-inline:auto}
#viewport .review-brand img,#collection .page-brand img{object-fit:contain;width:100%;height:100%;filter:none}
#viewport #story .portrait .portrait-raster{filter:brightness(.46)}
#project .review-content .mail-note{margin-top:18px}
#project #enquiry{margin-top:14px}#project #enquiry legend{font-size:23px;line-height:1.2}#project #enquiry label{color:#cfbea0}#project #enquiry .study-note{font-size:11px}#project #formProgress{font-size:10px;color:#bfa773}#project #enquirySummary{font-size:13px;line-height:1.5;white-space:pre-line}#project #copyEnquiry{min-height:40px}
@media(orientation:portrait){#viewport .review-brand,#viewport #story .review-brand{height:125px;width:min(100%,340px)}#viewport #story .portrait .portrait-raster{height:clamp(150px,calc(100svh - 290px),400px)}}
@media(orientation:landscape){
 #viewport .review-content h1,#viewport .review-content .contact-intro h1{font-size:clamp(24px,3vw,34px);line-height:1.12}
 #viewport .review-content p{font-size:13px;line-height:1.55}
 #viewport #story .review-content{padding-top:14px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px 5%}
 #viewport #story .review-top{padding:0;min-width:0}
 #viewport #story .portrait{top:14px}
 #viewport #story .portrait .portrait-raster{height:clamp(150px,calc(100svh - 115px),340px)}
 #viewport #story .portrait figcaption{height:48px;min-height:48px;padding:8px 0;line-height:1.3}
 #viewport #story .portrait strong{font-size:11px}#viewport #story .portrait span{font-size:10px;margin-top:4px}
}
@media(orientation:landscape) and (max-height:300px){
 :root{--gallery-dock:36px}
 #room-navigation{height:36px;min-height:36px}#room-navigation #back,#room-navigation .room-toggle{min-height:32px;font-size:9px}
 #viewport .review-content{padding-left:5%;padding-right:5%;padding-bottom:58px}
 #viewport .review-top,#viewport #story .review-top{padding-top:8px;padding-bottom:0}
 #viewport .review-brand,#viewport #story .review-brand,#collection .page-brand{width:230px;height:64px;max-width:100%}
 #viewport .review-content .contact-layout{padding-top:12px;gap:5%}
 #viewport .review-content h1,#viewport .review-content .contact-intro h1{font-size:24px;margin-bottom:16px}
 #viewport .review-content .intro{font-size:13px;line-height:1.45;margin-bottom:18px}
 #viewport #story .review-content{padding-top:10px;gap:8px 5%;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
 #viewport #story .review-top{padding:0}
 #viewport #story .portrait{position:relative;top:auto;align-self:start}
 #viewport #story .portrait .portrait-raster{height:125px;min-height:0;max-height:none}
 #viewport #story .portrait figcaption{height:42px;min-height:42px;padding:5px 0}
 #viewport #story .about-layout>article{padding-top:0}
 #viewport #story .review-content .eyebrow{font-size:8px;margin-bottom:8px}
 #viewport #story .review-content h1{font-size:23px;margin-bottom:14px}
 #viewport #collection{padding:12px 5% 8px;grid-template-rows:65px minmax(0,1fr);gap:5px 5%}
 #collection .collection-copy{gap:3px}#collection .collection-copy h1{font-size:19px;line-height:1.1}
 #collection #filters{min-height:22px}#collection #filters button{min-height:22px;font-size:10px}#collection #galleryCue{font-size:8px}
 #collection .photo-controls{gap:5px;min-height:30px}#collection .photo-controls button{font-size:10px;min-height:30px}#collection .collection-action{font-size:9px;min-height:24px}
}
@media(orientation:landscape) and (max-height:300px){#collection .collection-action{display:none}#collection .collection-copy{justify-content:flex-start}}
html[data-scroll=story] body>header{position:absolute}

/* Review 9: portrait is a direct grid child, with one viewport-based size. */
#viewport #story .review-content>.portrait{margin:0 auto}
@media(orientation:portrait){#viewport #story .review-content{display:flex;flex-direction:column}#viewport #story .review-top{order:0}#viewport #story .portrait{order:1}#viewport #story .about-layout{order:2}#viewport #story .review-footer{order:3}}
@media(orientation:landscape){
 #viewport #story .review-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:10px 5%;padding-top:12px}
 #viewport #story .review-top{grid-column:2;grid-row:1;padding:0}
 #viewport #story .about-layout{display:block;grid-column:2;grid-row:2;padding:0;min-width:0}
 #viewport #story .review-content>.portrait{grid-column:1;grid-row:1/3;position:sticky;top:12px;width:100%;align-self:start}
 #viewport #story .portrait .portrait-raster{height:calc(100svh - var(--gallery-dock) - 76px);min-height:0;max-height:560px;width:100%;object-fit:contain;object-position:center bottom}
 #viewport #story .portrait figcaption{height:48px;min-height:48px;padding:7px 0}
 #viewport #story .review-footer{grid-column:1/-1}
}
html[data-scroll=story]{scroll-padding-block:20px calc(var(--gallery-dock) + 32px)}
#project a,#project button,#project select,#project textarea{touch-action:manipulation;scroll-margin-block:30px calc(var(--gallery-dock) + 35px)}
#project .company>a{min-height:44px;display:flex!important;align-items:center}
#project .social{margin-top:16px;margin-bottom:24px}
#project #formSend{display:inline-flex;gap:12px;align-items:center;font-size:14px;min-height:44px;color:#dcc491}
#project #formSend[hidden]{display:none}
#project .review-content{padding-bottom:calc(var(--gallery-dock) + 80px)}
/* Opaque engraved plaques conceal legacy names throughout camera travel. */
#camera .art-label{z-index:8;background:#080604;isolation:isolate}
#camera .art-label[data-room=project]{left:80%;top:74%;width:18%;height:5.5%;transform:rotate(5deg)}
@media(orientation:portrait){#camera .art-label[data-room=project]{left:59%;top:76.4%;width:36%;height:4.5%;transform:rotate(4deg)}}

/* One uninterrupted room, lit through transparent content layers. */
body #viewport{bottom:0}
#room-navigation{background:transparent;box-shadow:none;backdrop-filter:none;border:0}
#room-navigation:before{display:none}
#room-navigation #back,#room-navigation .room-toggle{background:transparent;text-shadow:0 1px 5px #000,0 0 12px #000}
#viewport #collection{padding-bottom:calc(var(--gallery-dock) + 12px)}
#viewport #story .portrait .portrait-raster{filter:brightness(.52)}
#viewport #story .review-content>.portrait{height:auto;min-height:0;overflow:visible;flex:none}
#viewport #story .portrait figcaption{height:auto;min-height:64px;padding:14px 0 16px;line-height:1.5;flex:none;position:static}
#viewport #story .portrait span{line-height:1.5;margin-top:6px}
#viewport #story .portrait:before{background:radial-gradient(ellipse at 85% 44%,#ac894524,transparent 70%);inset:-10px -15px 20px;filter:blur(20px)}
#viewport #story .about-layout{margin-top:0}
@media(orientation:portrait){
 #viewport #story .review-content{gap:0;align-items:stretch}
 #viewport #story .portrait{position:relative;top:auto;margin:12px auto 0;flex:0 0 auto}
 #viewport #story .portrait .portrait-raster{height:clamp(160px,calc(100svh - 290px),400px);width:100%;max-height:none}
 #viewport #story .about-layout{display:block;flex:none;margin:28px 0 0;padding-top:0}
}
@media(orientation:landscape){#viewport #story .portrait figcaption{min-height:48px;padding:8px 0 10px}#viewport #story .portrait .portrait-raster{height:calc(100svh - var(--gallery-dock) - 82px)}}
/* A soft falloff behind navigation replaces the former solid band. */
#room-navigation:before{display:block;position:absolute;top:auto;bottom:0;left:0;right:0;width:100%;height:calc(100% + 36px);z-index:-1;background:linear-gradient(transparent,#080604b0 58%,#080604ed);pointer-events:none}
#viewport #story.review-page:before{background:linear-gradient(90deg,#080604b0,#08060499 38%,#08060465 75%,#080604a0),url('assets/room-blank-alcove.webp') 60% center/cover no-repeat}
#room-navigation:before{height:calc(100% + 48px);background:linear-gradient(transparent,#080604ee 42%,#080604fa 70%)}

/* About and the Studio share the exact same continuous gallery backdrop. */
#viewport #story.review-page:before{background:linear-gradient(#08060440,#080604b5),url('assets/room-blank-alcove.webp') 60% center/cover no-repeat;filter:none;opacity:1;pointer-events:none}
#viewport #story .portrait .portrait-raster{display:block;width:100%;background-size:contain;background-position:center bottom;background-repeat:no-repeat;pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
#viewport #story .portrait{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:pan-y pinch-zoom}
#viewport #story .portrait:before{pointer-events:none}
#viewport #project .review-content{position:relative;z-index:2}
#viewport #project.active a{pointer-events:auto!important;cursor:pointer;-webkit-touch-callout:default;touch-action:manipulation}
#viewport #project:before,#viewport #project:after{pointer-events:none!important}
