/* A²DL consolidated layout — replaces layout-fix.css, final-layout-v3/v4.css
   and contact-viewport.css. Base styles and all existing artwork remain intact. */
:root{--a2dl-nav-height:76px}
html{scroll-padding-top:var(--a2dl-nav-height)}
#hero,#laboratory,#work,#finale{scroll-margin-top:var(--a2dl-nav-height)}
/* Approved hero viewport sizing and EXPLORE v2 (unchanged animation). */
@media(min-width:701px){
  #hero.hero{height:100dvh;min-height:0}
  #hero .hero-inner{box-sizing:border-box;height:100%;min-height:0;padding:83px 24px 13px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
  #hero .hero-inner>.eyebrow{flex:0 0 auto;margin:0}
  #hero h1{flex:0 0 auto;font-size:clamp(36px,min(6vw,9vh),88px);line-height:1.08;margin:0}
  #hero .hero-logo{flex:0 1 auto;min-height:0;width:min(76vw,88vh,850px);max-height:calc(100dvh - 230px);aspect-ratio:1.12;margin:0 auto}
  #hero .hero-logo img{width:100%;height:100%;object-fit:contain}
  #hero .explore{flex:0 0 auto;margin:0}
}
@media(max-width:700px){:root{--a2dl-nav-height:64px}}
/* Projects: label centered, cards unchanged. */
#work.work{position:relative}
#work .work-section-label{position:absolute;top:calc(var(--a2dl-nav-height) + 16px);left:0;right:0;text-align:center;margin:0;z-index:3;font-size:11px;letter-spacing:3px;color:#e9b970;pointer-events:none}
@media(min-width:1100px) and (min-height:760px){
 #work.work{min-height:100dvh;display:flex;align-items:center}
 #work.work>.section-shell{width:100%;padding-top:calc(var(--a2dl-nav-height) + 30px);padding-bottom:32px}
}
@media(max-width:700px){#work .work-section-label{position:relative;top:auto;padding-top:95px}#work.work>.section-shell{padding-top:20px}}
/* Entire fourth screen: quotation + contact + legal footer, one grid.
   No 100vh height on #contact itself. */
.a2dl-finale{
  box-sizing:border-box;min-height:100dvh;
  padding-top:var(--a2dl-nav-height);
  display:grid;grid-template-rows:auto minmax(0,1fr) auto;
  overflow:visible;
  scroll-margin-top:0;
}
.a2dl-finale #motion,.a2dl-finale #contact{min-height:0!important;height:auto!important;border:0;overflow:visible}
.a2dl-finale #motion{
  padding:12px 22px 4px!important;display:flex;align-items:center;justify-content:center;
}
.a2dl-finale #motion blockquote{padding:0!important;margin:0 auto;max-width:1100px}
.a2dl-finale #motion blockquote::before{inset:-10px -25px}
.a2dl-finale #motion blockquote p{
  font-size:clamp(19px,2.1vw,31px)!important;line-height:1.25!important;margin:0!important;
}
.a2dl-finale #motion .quote-first,.a2dl-finale #motion .quote-second,.a2dl-finale #motion blockquote em{display:block}
.a2dl-finale #motion blockquote em{font-size:.79em;line-height:1.35;margin-top:7px}
.a2dl-finale #motion blockquote footer{margin-top:8px!important;font-size:9px;letter-spacing:.18em}
.a2dl-finale #motion blockquote footer span{display:inline;margin-left:8px}
.a2dl-finale #contact{
  display:flex!important;align-items:center;justify-content:center;
  padding:10px 22px 12px!important;margin:0!important;
  scroll-margin-top:0!important;
}
.a2dl-finale #contact>.section-shell{
  padding:0!important;margin:0 auto;max-width:850px;width:100%;text-align:center;
}
.a2dl-finale #contact .eyebrow{margin:0 0 10px!important;font-size:11px;letter-spacing:3px}
.a2dl-finale #contact h2{font-size:clamp(34px,4vw,58px)!important;line-height:1.06!important;margin:0 auto 13px!important}
.a2dl-finale #contact .section-shell>p:not(.eyebrow):not(.notice):not(.contact-email){font-size:clamp(14px,1.1vw,17px);line-height:1.45!important;margin:0 auto 15px!important}
.a2dl-finale #contact .contact-button{margin:0!important;padding:11px 22px!important}
.a2dl-finale>.footer{
  display:block!important;position:relative;z-index:3;align-self:end;
  width:100%;box-sizing:border-box;background:rgba(2,10,23,.78)!important;
  border-top:1px solid rgba(185,154,105,.35);
}
.a2dl-finale>.footer .footer-inner{box-sizing:border-box;min-height:62px;padding:9px 5vw!important}
/* Short or narrow screens: content stays readable, scrolling is allowed. */
@media(max-width:900px), (max-height:730px){
 .a2dl-finale{min-height:100dvh;grid-template-rows:auto 1fr auto}
 .a2dl-finale #motion{padding:20px 18px 8px!important}
 .a2dl-finale #motion blockquote p{font-size:clamp(19px,3.5vw,27px)!important}
 .a2dl-finale #contact{padding:22px 18px!important}
 .a2dl-finale #contact h2{font-size:clamp(31px,5vw,49px)!important}
}
@media(max-width:700px){
 .a2dl-finale{padding-top:var(--a2dl-nav-height)}
 .a2dl-finale #motion{padding:35px 18px 18px!important}
 .a2dl-finale #motion blockquote p{font-size:clamp(20px,5vw,29px)!important}
 .a2dl-finale #contact{padding:25px 18px 35px!important}
 .a2dl-finale>.footer .footer-inner{min-height:85px}
}
