:root {
  --ink: #101214;
  --ink-soft: #1a1e21;
  --paper: #ededeb;
  --paper-deep: #e3e4e1;
  --silver: #c7ced1;
  --muted: #5e6365;
  --line: #c8cbc9;
  --display: "DIN Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --body: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
[hidden] { display: none !important; }
::selection { color: var(--ink); background: var(--silver); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.container { width: min(100% - 96px, 1520px); margin-inline: auto; }
.section-pad { padding-block: clamp(90px, 10vw, 160px); }
.skip-link { position: fixed; top: -60px; left: 16px; z-index: 100; padding: 12px 16px; background: #fff; color: #111; }
.skip-link:focus { top: 16px; }

.eyebrow { display: flex; align-items: center; gap: 15px; margin: 0; color: #d3d8d9; font-size: 11px; font-weight: 700; letter-spacing: .2em; line-height: 1.5; text-transform: uppercase; }
.eyebrow-line { flex: none; width: 28px; height: 1px; background: currentColor; }
.dark-eyebrow { color: #4c5356; }
em { font-style: normal; color: #778084; }

.site-header { position: absolute; top: 0; left: 0; z-index: 30; width: 100%; min-height: 104px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 22px max(48px, calc((100vw - 1520px)/2)); color: #f5f6f5; border-bottom: 1px solid rgba(255,255,255,.2); transition: background .25s ease, box-shadow .25s ease; }
.site-header.is-scrolled { position: fixed; min-height: 82px; padding-block: 11px; background: rgba(16,18,20,.96); box-shadow: 0 8px 28px rgba(0,0,0,.12); backdrop-filter: blur(12px); }
.brand { width: clamp(205px, 18vw, 280px); display: block; }
.brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; align-items: center; gap: clamp(24px, 2.6vw, 50px); white-space: nowrap; }
.desktop-nav a { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: color .2s; }
.desktop-nav a:hover { color: var(--silver); }
.header-cta { justify-self: end; display: flex; align-items: center; justify-content: center; gap: 26px; min-height: 48px; padding: 0 22px; background: #e6e8e6; color: var(--ink); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; transition: background .2s, transform .2s; }
.header-cta:hover { background: #fff; transform: translateY(-2px); }
.header-cta span { font-size: 18px; font-weight: 400; }
.menu-toggle, .mobile-nav { display: none; }

.hero { position: relative; isolation: isolate; min-height: 100svh; min-height: max(760px, 100svh); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: #1d2327; color: #fff; }
.hero-media, .hero-media img, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media { z-index: -2; }
.hero-media img { object-fit: cover; object-position: center 47%; }
.hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(5,10,12,.81) 0%, rgba(8,12,14,.62) 32%, rgba(10,15,17,.14) 72%), linear-gradient(0deg, rgba(3,7,9,.68) 0%, rgba(6,9,10,0) 38%, rgba(3,6,7,.2) 100%); }
.hero-inner { padding-top: 220px; padding-bottom: clamp(105px, 9vw, 150px); }
.hero-eyebrow { margin-bottom: clamp(22px, 3vw, 42px); }
.hero h1 { max-width: 1200px; margin: 0; font-family: var(--display); font-size: clamp(108px, 12.2vw, 220px); font-weight: 700; letter-spacing: -.025em; line-height: .77; text-transform: uppercase; text-wrap: balance; }
.hero .period { color: #c5cccf; }
.hero-intro { max-width: 840px; display: flex; align-items: end; gap: 38px; margin-top: clamp(38px, 5vw, 74px); }
.hero-intro p { max-width: 490px; margin: 0; color: #e8ebeb; font-size: clamp(16px, 1.3vw, 20px); font-weight: 400; line-height: 1.55; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 62px; padding: 0 25px; font-size: 12px; font-weight: 800; letter-spacing: .13em; text-align: left; text-transform: uppercase; white-space: nowrap; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-3px); }
.button span { font-size: 21px; font-weight: 400; line-height: 1; }
.button-light { background: #e9ecea; color: var(--ink); }
.button-light:hover { background: #fff; }
.button-outline { border: 1px solid rgba(255,255,255,.6); color: #fff; }
.button-outline:hover { background: #fff; color: var(--ink); }
.hero-foot { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; min-height: 70px; border-top: 1px solid rgba(255,255,255,.35); color: #e4e8e7; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.hero-foot a { display: inline-flex; align-items: center; gap: 14px; }
.hero-foot a:hover { color: #fff; }
.hero-foot a span { font-size: 18px; font-weight: 400; }

.intro { background: var(--paper); }
.intro-grid { display: grid; grid-template-columns: 29% 1fr; column-gap: 9%; }
.intro h2, .section-head h2, .owner h2, .contact h2 { margin: 0; font-family: var(--display); font-size: clamp(72px, 7.8vw, 145px); font-weight: 700; letter-spacing: -.02em; line-height: .84; text-transform: uppercase; }
.intro h2 { max-width: 1060px; }
.intro-bottom { display: flex; align-items: end; justify-content: space-between; gap: 60px; margin-top: 65px; padding-top: 28px; border-top: 1px solid var(--line); }
.intro-bottom p { max-width: 580px; margin: 0; color: #3e4446; font-size: 19px; line-height: 1.65; }
.text-link { flex: none; display: inline-flex; align-items: center; gap: 32px; padding-bottom: 10px; border-bottom: 1px solid currentColor; font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; transition: gap .2s; }
.text-link:hover { gap: 42px; }
.text-link span { font-size: 19px; font-weight: 400; }

.work { background: var(--ink); color: #f0f2f0; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 80px; margin-bottom: 55px; }
.section-head h2 { max-width: 880px; margin-top: 30px; font-size: clamp(70px, 7.2vw, 130px); }
.section-head > p { max-width: 270px; margin: 0 0 5px; color: #5d6669; font-size: 15px; line-height: 1.6; }
.section-head-light > p { color: #a8afb0; }
.work-grid { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, minmax(270px, 350px)); gap: 16px; }
.work-card { position: relative; display: block; width: 100%; min-width: 0; padding: 0; overflow: hidden; border: 0; background: #252c30; color: #fff; cursor: pointer; text-align: left; }
.work-card-large { grid-row: span 2; }
.work-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .4s; }
.work-card-large img { object-position: center 47%; }
.work-card:not(.work-card-large) img { object-position: center 52%; }
.work-card:hover img { transform: scale(1.035); filter: brightness(.85); }
.work-card::after { content: ""; position: absolute; inset: 52% 0 0; background: linear-gradient(0deg, rgba(0,0,0,.73), transparent); pointer-events: none; }
.work-meta { position: absolute; z-index: 1; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: end; gap: 16px; padding: 26px 28px; font-size: 10px; font-weight: 800; letter-spacing: .17em; line-height: 1.4; text-transform: uppercase; }
.work-meta > span:last-child { color: #e7e8e8; white-space: nowrap; }
.work-meta > span:last-child span { margin-left: 8px; font-size: 18px; font-weight: 400; }

.services { background: var(--paper); }
.services-heading { margin-bottom: 75px; }
.services-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px, 7vw, 120px); align-items: stretch; }
.service-image { position: relative; min-height: 610px; overflow: hidden; background: #c8ccca; }
.service-image img { width: 100%; height: 100%; object-fit: cover; transition: opacity .18s ease, transform .5s ease; }
.service-image img.is-changing { opacity: .55; transform: scale(1.02); }
.image-index { position: absolute; left: 20px; bottom: 20px; padding: 11px 13px; background: rgba(16,18,20,.87); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.service-list { align-self: center; border-top: 1px solid var(--line); }
.service-item { border-bottom: 1px solid var(--line); }
.service-trigger { display: grid; grid-template-columns: 44px 1fr 20px; align-items: center; gap: 18px; width: 100%; min-height: 108px; padding: 20px 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; text-align: left; font-family: var(--display); font-size: clamp(30px, 3vw, 54px); font-weight: 700; line-height: .95; text-transform: uppercase; transition: color .2s; }
.service-trigger:hover { color: #697174; }
.service-no { align-self: start; margin-top: 6px; color: #596164; font-family: var(--body); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.service-plus { align-self: start; margin-top: 3px; font-family: var(--body); font-size: 24px; font-weight: 300; text-align: right; }
.service-panel { padding: 0 28px 28px 62px; }
.service-panel p { max-width: 540px; margin: 0 0 22px; color: #4f5759; font-size: 16px; line-height: 1.65; }
.small-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px; border-bottom: 1px solid #4f5759; font-size: 10px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.small-link span { font-size: 17px; font-weight: 400; }

.owner { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; background: #1b2022; color: #f5f6f5; }
.owner-image { min-height: 760px; overflow: hidden; }
.owner-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; filter: saturate(.75); }
.owner-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(70px, 8vw, 140px) clamp(55px, 7vw, 130px); }
.owner h2 { max-width: 780px; margin-top: 50px; font-size: clamp(76px, 7.6vw, 138px); }
.owner-copy > p:not(.eyebrow) { max-width: 590px; margin: 52px 0 0; color: #c9cfd0; font-size: 18px; line-height: 1.7; }
.owner-note { display: flex; align-items: center; gap: 18px; width: 100%; max-width: 590px; margin: 47px 0 45px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); color: #f1f3f2; font-family: var(--display); font-size: 32px; font-weight: 700; letter-spacing: .03em; line-height: 1; text-transform: uppercase; }
.owner-note-mark { color: #9fa8ab; font-size: 22px; letter-spacing: -.02em; line-height: 1; }
.text-link-light { color: #ecf0ef; }

.contact { position: relative; isolation: isolate; overflow: hidden; background: #15191b; color: #f5f6f5; }
.contact::before { content: ""; position: absolute; z-index: -1; inset: -20%; opacity: .22; background: repeating-linear-gradient(116deg, transparent 0 12%, #6c7477 12.06% 12.12%, transparent 12.2% 18%); transform: translateX(40%); }
.contact-inner { position: relative; padding-block: 20px; }
.contact h2 { max-width: 1200px; margin-top: 65px; font-size: clamp(118px, 14vw, 260px); }
.contact-lead { max-width: 610px; margin: 48px 0 0; color: #cbd0d0; font-size: clamp(18px, 1.5vw, 23px); line-height: 1.55; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 42px; }
.contact-actions .button { min-width: 285px; }
.contact-details { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; margin-top: clamp(90px, 11vw, 170px); padding-top: 22px; border-top: 1px solid rgba(255,255,255,.28); color: #bec5c6; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.site-footer { background: #0d0f10; color: #b6bdbe; }
.footer-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; min-height: 170px; }
.footer-brand { display: block; width: 220px; }
.footer-brand img { width: 100%; height: auto; }
.footer-links { display: flex; flex-wrap: wrap; gap: 25px; }
.footer-links a { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.footer-links a:hover { color: #fff; }
.footer-grid p { justify-self: end; margin: 0; font-size: 11px; letter-spacing: .06em; }

.lightbox { width: min(92vw, 1300px); max-height: 92vh; padding: 0; border: 1px solid rgba(255,255,255,.25); background: #101214; color: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.lightbox::backdrop { background: rgba(0,0,0,.85); backdrop-filter: blur(4px); }
.lightbox img { width: 100%; max-height: calc(92vh - 64px); object-fit: contain; }
.lightbox p { margin: 0; padding: 20px 24px; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.lightbox-close { position: absolute; top: 12px; right: 12px; z-index: 1; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.7); color: #fff; cursor: pointer; font-size: 30px; line-height: 1; }

@media (max-width: 1180px) {
  .site-header { gap: 12px; padding-inline: 38px; }
  .brand { width: 210px; }
  .desktop-nav { gap: 20px; }
  .header-cta { padding-inline: 15px; gap: 10px; }
  .container { width: min(100% - 76px, 1520px); }
  .hero h1 { font-size: clamp(110px, 13vw, 175px); }
  .intro-grid { grid-template-columns: 23% 1fr; column-gap: 5%; }
  .owner-copy { padding-inline: 55px; }
}

@media (min-width: 901px) and (max-height: 760px) {
  .hero { min-height: 100svh; }
  .hero-inner { padding-top: 135px; padding-bottom: 78px; }
  .hero-eyebrow { margin-bottom: 22px; }
  .hero h1 { font-size: clamp(92px, 10vw, 150px); }
  .hero-intro { margin-top: 25px; }
  .hero-foot { min-height: 53px; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 74px; }
  .site-header { grid-template-columns: 1fr auto; min-height: 88px; padding: 13px 34px; }
  .site-header.is-scrolled { min-height: 72px; padding: 9px 34px; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { z-index: 2; justify-self: end; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #fff; cursor: pointer; }
  .menu-toggle span { width: 20px; height: 1px; background: currentColor; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .mobile-nav:not([hidden]) { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; padding: 20px 34px 38px; background: #111416; box-shadow: 0 20px 30px rgba(0,0,0,.3); }
  .mobile-nav a { padding: 19px 0; border-bottom: 1px solid rgba(255,255,255,.2); font-family: var(--display); font-size: 37px; font-weight: 700; line-height: 1; text-transform: uppercase; }
  .mobile-nav a:last-child { color: #c6cdcf; }
  .hero { min-height: 100svh; }
  .hero h1 { font-size: clamp(105px, 16vw, 170px); }
  .hero-intro { align-items: start; flex-direction: column; gap: 25px; }
  .intro-grid { grid-template-columns: 1fr; gap: 35px; }
  .intro h2 { font-size: clamp(85px, 11vw, 125px); }
  .intro-bottom { align-items: start; flex-direction: column; gap: 26px; margin-top: 42px; }
  .section-head { align-items: start; flex-direction: column; gap: 20px; }
  .section-head > p { max-width: 500px; }
  .services-layout { grid-template-columns: 1fr; gap: 35px; }
  .service-image { min-height: 540px; max-height: 600px; }
  .owner { grid-template-columns: 1fr; }
  .owner-image { min-height: 500px; max-height: 650px; }
  .owner-copy { padding: 95px 7vw 110px; }
  .owner h2 { font-size: clamp(100px, 11vw, 145px); }
  .footer-grid { grid-template-columns: 1fr auto; padding-block: 45px; }
  .footer-grid p { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 700px) {
  .container { width: min(100% - 36px, 1520px); }
  .section-pad { padding-block: 82px; }
  .site-header { padding-inline: 18px; min-height: 76px; }
  .site-header.is-scrolled { padding-inline: 18px; }
  .brand { width: 190px; }
  .mobile-nav:not([hidden]) { padding-inline: 22px; }
  /* The small viewport stays stable as browser bars hide, without a phone-size floor. */
  .hero { min-height: 100svh; }
  .hero-media img { object-position: center 48%; }
  .hero-shade { background: linear-gradient(0deg, rgba(4,8,10,.86) 0%, rgba(4,8,10,.58) 54%, rgba(4,8,10,.19) 100%); }
  .hero-inner { padding-top: clamp(100px, 18svh, 170px); padding-bottom: 80px; }
  .hero-eyebrow { margin-bottom: 20px; font-size: 9px; }
  .hero h1 { font-size: clamp(60px, 19vw, 112px); line-height: .78; }
  .hero-intro { margin-top: 24px; gap: 20px; }
  .hero-intro p { max-width: 450px; font-size: 15px; }
  .hero-intro .button { min-height: 55px; font-size: 11px; }
  .hero-foot { min-height: 56px; font-size: 9px; }
  .hero-foot span:last-child { display: none; }
  .intro h2, .section-head h2 { font-size: clamp(67px, 16vw, 104px); }
  .intro-bottom p { font-size: 16px; }
  .work-grid { grid-template-columns: 1fr; grid-template-rows: none; gap: 12px; }
  .work-card, .work-card-large { grid-row: auto; height: 340px; }
  .work-card-large { height: 440px; }
  .work-meta { padding: 21px 18px; font-size: 9px; }
  .services-heading { margin-bottom: 40px; }
  .service-image { min-height: 350px; height: 52vh; max-height: 500px; }
  .service-trigger { grid-template-columns: 32px 1fr 20px; gap: 10px; min-height: 88px; font-size: clamp(29px, 9vw, 44px); }
  .service-panel { padding-left: 42px; }
  .service-panel p { font-size: 15px; }
  .owner-image { min-height: 420px; height: 55vh; }
  .owner-copy { padding: 76px 18px 88px; }
  .owner h2 { margin-top: 34px; font-size: clamp(80px, 18vw, 122px); }
  .owner-copy > p:not(.eyebrow) { margin-top: 35px; font-size: 16px; }
  .owner-note { margin: 34px 0; font-size: 25px; }
  .contact h2 { margin-top: 42px; font-size: clamp(95px, 21vw, 150px); }
  .contact-lead { margin-top: 32px; font-size: 18px; }
  .contact-actions { flex-direction: column; align-items: stretch; }
  .contact-actions .button { width: 100%; }
  .contact-details { flex-direction: column; gap: 13px; margin-top: 90px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-grid p { grid-column: 1; }
}

@media (max-width: 1024px) and (max-height: 600px) {
  .hero-inner { padding-top: 100px; padding-bottom: 70px; }
  .hero-eyebrow { margin-bottom: 18px; }
  .hero h1 { font-size: clamp(50px, min(18vw, 13svh), 96px); }
  .hero-intro { margin-top: 20px; gap: 16px; }
  .hero-intro p { font-size: 14px; line-height: 1.5; }
  .hero-intro .button { min-height: 48px; font-size: 11px; }
  .hero-foot { min-height: 48px; }
}

@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) {
  .hero-inner { display: grid; grid-template-columns: .95fr 1.05fr; align-items: end; gap: 10px 20px; padding-top: 92px; padding-bottom: 56px; }
  .hero-eyebrow { grid-column: 1 / -1; margin-bottom: 0; font-size: 9px; }
  .hero h1 { font-size: clamp(52px, 9vw, 76px); }
  .hero-intro { margin-top: 0; flex-direction: column; align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* The material collection — shared multi-page design system. */
@font-face { font-family:'SRS Condensed'; src:url('/assets/fonts/BarlowCondensed-Bold.ttf') format('truetype'); font-style:normal; font-weight:700; font-display:swap; }
:root { --display:"DIN Condensed","SRS Condensed","Arial Narrow",sans-serif; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.brand { width:clamp(225px,19vw,285px); }
.site-header { min-height:105px; }
.site-header.is-scrolled { min-height:82px; }
.desktop-nav a { position:relative; padding-block:10px; }
.desktop-nav a::after { position:absolute; content:""; bottom:1px; left:0; height:1px; width:0; background:#e6e9e8; transition:width .25s; }
.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after { width:100%; }
.button-dark { border:1px solid var(--ink); background:var(--ink); color:white; cursor:pointer; }
.button-dark:hover { background:#31383b; }
.section-aside { max-width:275px; }
.section-aside p { margin:0 0 25px; font-size:15px; line-height:1.65; color:#afb7b9; }
.section-aside .text-link { font-size:10px; }
.technical-tag,.feature-number,.study-caption { font-family:var(--body); text-transform:uppercase; font-size:10px; line-height:1.5; font-weight:600; letter-spacing:.16em; }
.technical-tag { color:#586064; }
.craft-section { position:relative; overflow:hidden; padding:65px 0 0; background:#e8e9e6; }
.craft-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:35px; border-bottom:1px solid #bfc4c2; }
.craft-layout { position:relative; display:grid; grid-template-columns:.88fr 1.12fr; gap:20px; align-items:center; padding-block:80px 65px; }
.craft-copy { position:relative; z-index:2; padding-block:25px; }
.craft-copy h2 { position:relative; max-width:740px; margin:0; font-family:var(--display); font-size:clamp(80px,8.1vw,150px); line-height:.86; letter-spacing:-.025em; text-transform:uppercase; }
.craft-copy h2 em { color:#5c666b; }
.craft-copy > p { max-width:395px; margin:36px 0 30px; color:#424a4d; font-size:17px; line-height:1.65; }
.material-stage { position:relative; min-width:0; margin:0 -3vw 0 0; aspect-ratio:1/1.07; background:radial-gradient(ellipse at 55% 48%,#354047 0,#1a2227 48%,#111719 78%); overflow:hidden; }
.material-stage::before { content:""; position:absolute; inset:28px; border:1px solid #6c787733; background:linear-gradient(transparent calc(50% - .5px),#81918a14 50%,transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),#81918a14 50%,transparent calc(50% + .5px)); }
.material-stage img { position:absolute; width:116%; max-width:none; height:auto; left:-8%; top:4%; transform:translate(var(--mx,0px),var(--my,0px)); transition:transform .8s ease-out; filter:drop-shadow(0 42px 24px #0007); }
.material-stage figcaption { position:absolute; left:32px; right:32px; bottom:30px; display:flex; justify-content:space-between; border-top:1px solid #667475; padding-top:15px; font-size:9px; color:#bac4c6; letter-spacing:.17em; text-transform:uppercase; }
.material-callout { position:absolute; bottom:17%; right:38px; display:flex; align-items:center; gap:13px; font-size:10px; line-height:1.55; letter-spacing:.06em; color:#d6dcdb; }
.callout-dot { position:relative; width:7px; height:7px; border:1px solid #e1e7e6; border-radius:50%; box-shadow:0 0 0 5px #d0dedd12; }
.callout-dot::before { content:""; position:absolute; height:1px; width:63px; right:12px; top:2px; background:#acbabb; }
.material-cross { position:absolute; width:13px; height:13px; color:#98a7a8; }
.material-cross::before,.material-cross::after { content:""; position:absolute; background:currentColor; }
.material-cross::before { top:6px; width:13px; height:1px; }.material-cross::after { left:6px; width:1px; height:13px; }
.cross-one { left:22px; top:22px; }.cross-two { right:22px; top:22px; }
.craft-principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #bfc4c2; padding-block:34px 42px; }
.craft-principles > div { display:grid; grid-template-columns:40px 1fr; padding:0 34px; border-left:1px solid #bfc4c2; }
.craft-principles > div:first-child { padding-left:0; border:0; }
.craft-principles > div:last-child { padding-right:0; }
.craft-principles span { grid-row:span 2; font-size:10px; letter-spacing:.05em; color:#525f63; padding-top:5px; }
.craft-principles h3 { margin:0; font-size:17px; letter-spacing:-.025em; }
.craft-principles p { max-width:255px; margin:8px 0 0; font-size:13px; color:#4c575b; line-height:1.55; }
.work-grid { grid-template-columns:1fr 1fr; grid-template-rows:repeat(2,minmax(280px,360px)); gap:18px; }
.work-card-large img { object-position:center 47%; }
.work-meta { text-shadow:0 1px 10px #0008; }
.service-image img { position:absolute; inset:0; }
.owner { min-height:700px; }.owner-image { min-height:700px; position:relative; }
.owner-image img { position:absolute; inset:0; }
.footer-top { display:grid; grid-template-columns:1.2fr .7fr 1.3fr 1fr; gap:40px; padding-block:80px 65px; }
.footer-brand { width:min(270px,100%); }
.footer-identity>p { color:#a0aaae; font-size:14px; line-height:1.7; margin-top:24px; }
.footer-column { display:flex; flex-direction:column; gap:13px; font-size:12px; line-height:1.5; }
.footer-column a { width:fit-content; }.footer-column a:hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.footer-label { margin:0 0 11px; text-transform:uppercase; font-size:9px; letter-spacing:.17em; font-weight:700; color:#839095; }
.footer-contact a { word-break:break-word; }.footer-contact>p:last-child { color:#98a5a8; margin:8px 0 0; }
.footer-bottom { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #303638; font-size:10px; letter-spacing:.05em; }
.footer-bottom>a { text-transform:uppercase; letter-spacing:.13em; }
.dark-page { background:#101517; color:#f0f2ee; }
.dark-page .site-header { background:#101517; }
.dark-page main { padding-top:106px; }
.breadcrumbs { padding-top:35px; color:#9ba7ab; }
.breadcrumbs ol { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px; font-size:10px; line-height:1.6; letter-spacing:.06em; }
.breadcrumbs li+li::before { content:"/"; padding-right:10px; color:#6d7b80; }
.breadcrumbs a:hover { color:white; text-decoration:underline; text-underline-offset:4px; }
.breadcrumbs [aria-current] { color:#d0d7d9; }
.page-intro { padding-block:65px 80px; }
.page-intro h1,.service-hero h1,.contact-page h1,.not-found h1 { font-family:var(--display); font-size:clamp(88px,10vw,180px); font-weight:700; letter-spacing:-.02em; line-height:.85; text-transform:uppercase; margin:35px 0; }
.page-intro>p:last-child { font-size:18px; line-height:1.65; max-width:580px; color:#b6c0c4; }
.display-heading { font-family:var(--display); font-size:clamp(67px,6.8vw,115px); line-height:.88; letter-spacing:-.02em; text-transform:uppercase; margin:35px 0 65px; }
.service-feature { display:grid; grid-template-columns:1.1fr .9fr; min-height:470px; border-top:1px solid #3f4a4f; padding-block:45px; gap:clamp(40px,7vw,120px); }
.service-feature:nth-of-type(even) { grid-template-columns:.9fr 1.1fr; }
.service-feature:nth-of-type(even) .service-feature-image { order:2; }
.service-feature-image { position:relative; min-height:390px; overflow:hidden; }
.service-feature-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.service-feature-image:hover img { transform:scale(1.025); }
.service-feature-copy { align-self:center; padding-block:30px; }
.feature-number { color:#a3afb3; }
.service-feature h2 { font-family:var(--display); font-size:clamp(50px,5.2vw,88px); line-height:.9; text-transform:uppercase; margin:35px 0 24px; }
.service-feature-copy>p { max-width:480px; color:#b2bec1; font-size:16px; line-height:1.7; margin:0 0 32px; }
.region-note { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-block:70px; border-top:1px solid #3f4a4f; }
.region-note>p:last-child { max-width:440px; font-size:20px; line-height:1.5; color:#c5cdce; }
.service-hero { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,100px); padding-block:55px 100px; align-items:center; }
.service-hero h1 { font-size:clamp(76px,7.3vw,125px); max-width:650px; }
.service-hero h1 { margin-top:0; }
.service-kicker { display:flex; align-items:center; gap:15px; font:700 11px/1.5 var(--body); letter-spacing:.2em; color:#d3d8d9; margin-bottom:35px; }
.service-kicker::before { content:""; width:28px; height:1px; flex:none; background:currentColor; }
.service-hero-copy>p:not(.eyebrow) { max-width:600px; margin:30px 0; font-size:17px; color:#c2cbcd; line-height:1.65; }
.service-hero-image { position:relative; height:650px; margin:0; overflow:hidden; }
.service-hero-image img { width:100%; height:100%; object-fit:cover; }
.service-hero-image::after { position:absolute; content:""; inset:70% 0 0; background:linear-gradient(transparent,#0008); }
.service-hero-image figcaption { position:absolute; z-index:1; bottom:23px; left:24px; right:20px; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
.service-hero-note { display:flex; align-items:center; gap:8px; color:#9faeb2; font-size:10px; letter-spacing:.08em; margin-top:25px; }
.status-dot { width:5px; height:5px; border-radius:50%; background:#a6b4b7; }
.service-body { background:#ededeb; color:var(--ink); }
.editorial-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:12%; }
.editorial-aside { position:sticky; top:125px; align-self:start; }
.editorial-aside>p:not(.eyebrow) { font-size:23px; line-height:1.5; letter-spacing:-.03em; margin:45px 0 28px; }
.editorial-section+.editorial-section { margin-top:50px; padding-top:45px; border-top:1px solid #c7cccb; }
.editorial-section h2 { font-family:var(--display); font-size:clamp(45px,4.3vw,75px); text-transform:uppercase; line-height:.98; margin:0 0 25px; max-width:780px; }
.editorial-section p { font-size:17px; line-height:1.8; color:#3f494d; max-width:760px; }
.considerations { background:#192125; }
.consideration-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; }
.consideration-grid article { border-top:1px solid #536167; padding-top:22px; }
.consideration-grid h3 { font-size:22px; line-height:1.3; letter-spacing:-.035em; margin:24px 0 18px; }
.consideration-grid p { color:#b9c4c8; font-size:15px; line-height:1.75; margin:0; }
.roof-study { overflow:hidden; background:#080c0e; }
.roof-study-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:0; align-items:center; }
.roof-study h2,.faq h2,.about-statement h2,.brand-statement h2 { font-family:var(--display); font-size:clamp(72px,7.2vw,122px); line-height:.87; letter-spacing:-.02em; text-transform:uppercase; margin:32px 0; }
.roof-study-grid>div { padding-block:80px; position:relative; z-index:1; }
.roof-study-grid p:not(.eyebrow) { max-width:420px; color:#b0bdc2; font-size:17px; line-height:1.7; margin-bottom:32px; }
.study-caption { color:#85969e; font-size:9px; }
.roof-study img { width:120%; max-width:none; margin-left:-5%; }
.faq { background:#e5e8e4; color:var(--ink); }
.faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; }
.faq h2 { margin-top:35px; }
.faq details { border-top:1px solid #b1bbb9; }
.faq details:last-child { border-bottom:1px solid #b1bbb9; }
.faq summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:30px; font-size:19px; font-weight:500; line-height:1.4; padding:26px 0; }
.faq summary::-webkit-details-marker { display:none; }.faq summary>span { font-size:27px; color:#536468; font-weight:300; transition:transform .2s; }
.faq details[open] summary>span { transform:rotate(45deg); }
.faq details>p { margin:0 45px 28px 0; font-size:16px; line-height:1.75; color:#425155; }
.related-section { padding-block:70px; }
.related-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:45px; margin-top:32px; }
.related-grid>a { border-top:1px solid #455357; padding:24px 0; display:flex; align-items:center; justify-content:space-between; gap:30px; font-family:var(--display); text-transform:uppercase; font-size:clamp(33px,3vw,52px); line-height:.98; }
.related-grid>a>span:last-child { font-family:var(--body); font-size:30px; color:#a6b4b9; }
.project-filter { display:flex; align-items:center; gap:12px; padding-bottom:30px; }
.project-filter button { border:1px solid #47555a; color:#b6c1c4; background:transparent; border-radius:0; padding:13px 22px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.project-filter button.is-active { background:#e1e6e3; border-color:#e1e6e3; color:#142024; }
.project-filter button>span { margin-left:15px; font-weight:400; opacity:.7; }
.projects-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px 25px; align-items:start; }
.project-item { margin:0; min-width:0; }
.project-item:nth-child(even) { padding-top:95px; }
.project-item .work-card { height:490px; }
.project-item:nth-child(3n+1) .work-card { height:620px; }
.project-item figcaption { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-top:20px; border-bottom:1px solid #34454b; padding-bottom:20px; }
.project-item figcaption>span:first-child { font-size:18px; letter-spacing:-.02em; }
.project-item figcaption>span:last-child { flex:none; font-size:9px; letter-spacing:.13em; text-transform:uppercase; color:#9dafb6; }
.gallery-end { display:flex; justify-content:space-between; gap:20px; color:#91a4ad; text-transform:uppercase; font-size:10px; letter-spacing:.12em; padding-block:75px; }
.about-statement { display:grid; grid-template-columns:1fr 1fr; gap:7%; align-items:center; padding-bottom:100px; }
.about-photo { position:relative; height:790px; }
.about-photo img { width:100%; height:100%; object-fit:cover; }
.about-statement-copy>p:not(.eyebrow) { font-size:17px; line-height:1.75; color:#bac7cd; max-width:550px; }
.about-statement-copy .text-link { margin-top:25px; }
.process { background:#e6e8e4; color:var(--ink); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:35px; }
.process-grid article { border-top:1px solid #8e9e9f; padding-top:20px; }
.process-grid article>span { font-size:12px; letter-spacing:.1em; color:#4b5d62; }
.process-grid h3 { font-family:var(--display); font-size:38px; font-weight:700; text-transform:uppercase; line-height:.95; margin:35px 0 20px; }
.process-grid p { font-size:15px; line-height:1.7; color:#46575e; }
.brand-statement { display:grid; grid-template-columns:.8fr 1.2fr; gap:0; align-items:center; padding-block:80px; }
.brand-statement p:not(.eyebrow) { font-size:17px; max-width:370px; color:#b5c3ca; line-height:1.7; }
.brand-statement .text-link { margin-top:24px; }
.brand-statement img { width:100%; max-width:100%; margin-left:0; }
.contact-page { display:grid; grid-template-columns:1fr 1fr; gap:8%; padding-block:65px 110px; }
.contact-page h1 { font-size:clamp(85px,8vw,145px); }
.contact-page-copy>p:not(.eyebrow) { font-size:17px; max-width:390px; line-height:1.7; color:#bcc9ce; }
.contact-phone { display:flex; justify-content:space-between; font-size:clamp(25px,2.7vw,42px); line-height:1.3; letter-spacing:-.04em; max-width:440px; padding-block:32px 20px; border-bottom:1px solid #4e5e63; }
.contact-email { display:flex; align-items:center; justify-content:space-between; gap:10px; max-width:440px; padding-block:22px; font-size:14px; color:#d2dddf; border-bottom:1px solid #4e5e63; }
.contact-location { margin-top:32px; color:#a3b4bd; font-size:12px; line-height:1.7; }
.contact-location>span:first-child { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#d3dedd; }
.inquiry-panel { align-self:start; background:#e6e9e4; color:#111b20; padding:clamp(28px,3.7vw,62px); }
.inquiry-panel h2 { font-family:var(--display); font-size:clamp(52px,4.8vw,85px); text-transform:uppercase; line-height:.9; letter-spacing:-.02em; margin:30px 0 20px; }
.inquiry-panel>p:not(.eyebrow) { color:#495b61; font-size:14px; line-height:1.6; margin-bottom:35px; }
.inquiry-panel label { display:flex; flex-direction:column; gap:11px; font-size:11px; font-weight:600; margin-bottom:22px; line-height:1.4; }
.inquiry-panel label>span { display:contents; font-weight:400; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.inquiry-panel input,.inquiry-panel textarea,.inquiry-panel select { min-width:0; width:100%; border:0; border-bottom:1px solid #9caba9; border-radius:0; background:transparent; color:#14252c; padding:11px 0; font:14px var(--body); line-height:1.4; }
.inquiry-panel input::placeholder,.inquiry-panel textarea::placeholder { color:#627476; }
.inquiry-panel textarea { resize:vertical; min-height:100px; }
.inquiry-panel .button { margin-top:6px; width:100%; }
.form-note { font-size:11px; color:#52676c; line-height:1.65; margin:18px 0 0; }
#form-status { background:#d2dcd4; color:#18352a; padding:14px; font-size:13px; line-height:1.5; }
.not-found { padding-block:100px 150px; }
.not-found h1 { margin-bottom:55px; }
@media(min-width:1800px) { .material-stage { margin-right:0; } }
@media(max-width:1180px) {
  .brand { width:230px; }.desktop-nav { gap:22px; }
  .craft-copy h2 { font-size:8.8vw; }.material-stage { margin-right:0; }
  .craft-principles>div { padding-inline:20px; grid-template-columns:30px 1fr; }
  .footer-top { grid-template-columns:1.1fr .65fr 1.2fr; }.footer-contact { grid-column:1/-1; flex-direction:row; justify-content:space-between; align-items:start; gap:30px; }.footer-contact>p:last-child { margin:0; }
  .service-hero { gap:40px; }.service-hero h1 { font-size:8vw; }.service-hero-image { height:590px; }
  .about-statement h2 { font-size:7.5vw; }.about-photo { height:710px; }
  .project-item .work-card { height:400px; }.project-item:nth-child(3n+1) .work-card { height:530px; }
  .contact-page { gap:5%; }.inquiry-panel { padding:30px; }.form-row { grid-template-columns:1fr; gap:0; }
}
@media(max-width:900px) {
  .brand { width:225px; }.site-header { min-height:88px; }
  .craft-layout { gap:10px; padding-block:55px; }.craft-copy h2 { font-size:9.3vw; }.craft-copy>p { font-size:15px; max-width:270px; }.material-stage { aspect-ratio:1/1.45; margin-right:-20px; }.material-stage img { width:150%; left:-25%; top:15%; }.material-callout { right:20px; bottom:18%; }.material-stage figcaption { left:20px; right:20px; font-size:8px; }
  .craft-principles h3 { font-size:15px; }.craft-principles p { font-size:12px; }.craft-principles>div { display:block; }.craft-principles span { display:block; padding:0 0 12px; }
  .work-grid { grid-template-rows:repeat(2,280px); }.owner { min-height:0; }.owner-image { min-height:550px; }
  .footer-top { grid-template-columns:1.1fr 1fr; }.footer-identity { grid-column:1/-1; display:flex; align-items:center; gap:50px; }.footer-identity>p { margin:0; }.footer-contact { display:flex; grid-column:auto; flex-direction:column; gap:13px; }
  .footer-bottom>span:nth-child(2) { display:none; }
  .dark-page main { padding-top:88px; }.page-intro { padding-block:50px 60px; }.page-intro h1 { font-size:14vw; }
  .service-hero { grid-template-columns:1fr 1fr; gap:28px; }.service-hero h1 { font-size:9vw; }.service-hero-copy>p:not(.eyebrow) { font-size:15px; }.service-hero .button { padding-inline:18px; gap:10px; font-size:10px; }.service-hero-image { height:560px; }
  .editorial-layout { gap:8%; }.editorial-aside>p:not(.eyebrow) { font-size:19px; }.editorial-section p { font-size:16px; }
  .consideration-grid { gap:25px; }.consideration-grid h3 { font-size:20px; }.consideration-grid p { font-size:14px; }
  .faq-layout { gap:6%; }.faq h2 { font-size:9vw; }.faq summary { font-size:17px; }
  .roof-study-grid { grid-template-columns:1fr 1fr; }.roof-study h2 { font-size:9vw; }.roof-study img { width:135%; margin-left:-10%; }
  .about-statement { grid-template-columns:1fr; gap:50px; }.about-photo { height:560px; }.about-statement h2 { font-size:12vw; }.about-statement-copy { max-width:650px; }.process-grid { grid-template-columns:1fr 1fr; gap:30px; }.brand-statement h2 { font-size:11vw; }
  .contact-page { grid-template-columns:1fr; gap:55px; }.contact-page h1 { font-size:14vw; }.contact-page-copy>p:not(.eyebrow) { max-width:560px; }.contact-location { display:flex; gap:30px; justify-content:space-between; align-items:start; }.contact-location p { margin:0; }.inquiry-panel { padding:50px; }.inquiry-panel h2 { font-size:70px; }.form-row { grid-template-columns:1fr 1fr; gap:20px; }
}
@media(max-width:700px) {
  .brand { width:205px; }.site-header { min-height:76px; }.site-header.is-scrolled { min-height:72px; }
  .craft-section { padding-top:38px; }.craft-top { padding-bottom:25px; }.technical-tag { font-size:8px; max-width:75px; text-align:right; }.craft-top .eyebrow { font-size:9px; }
  .craft-layout { grid-template-columns:1fr; padding-block:38px 35px; gap:35px; }.craft-copy { padding:0; }.craft-copy h2 { font-size:clamp(75px,19vw,130px); }.craft-copy h2 br:first-child { display:none; }.craft-copy>p { max-width:410px; font-size:16px; margin:27px 0; }.material-stage { margin:0; aspect-ratio:1/1.04; }.material-stage img { width:117%; left:-8.5%; top:5%; }.material-callout { bottom:18%; font-size:9px; right:25px; }.material-stage figcaption { bottom:24px; left:25px; right:25px; }.callout-dot::before { width:35px; }
  .craft-principles { display:block; padding-block:0 30px; }.craft-principles>div,.craft-principles>div:first-child { display:grid; grid-template-columns:35px 1fr; padding:24px 0; border-left:0; border-bottom:1px solid #bfc4c2; }.craft-principles>div:last-child { border-bottom:0; padding-bottom:0; }.craft-principles span { padding-top:4px; }.craft-principles h3 { font-size:18px; }.craft-principles p { max-width:330px; font-size:13px; }
  .section-head { gap:25px; }.section-aside { max-width:none; }.section-aside p { margin-bottom:15px; }.work-grid { grid-template-columns:1fr; grid-template-rows:none; }.work-card-large { height:510px; }.work-card { height:340px; }.work-card-large img { object-position:center 42%; }.service-image { height:440px; }
  .owner-image { min-height:440px; }.owner-copy { padding-inline:18px; }
  .footer-top { grid-template-columns:1fr; padding-block:55px 45px; gap:32px; }.footer-identity { display:block; grid-column:auto; }.footer-identity>p { margin:20px 0 0; }.footer-brand { width:245px; }.footer-column { gap:11px; font-size:13px; }.footer-label { margin-bottom:8px; }.footer-bottom { font-size:9px; gap:15px; min-height:70px; }
  .dark-page main { padding-top:76px; }.breadcrumbs { padding-top:24px; }.breadcrumbs ol { font-size:9px; gap:7px; }.breadcrumbs li+li::before { padding-right:7px; }
  .page-intro { padding-block:42px 50px; }.page-intro h1 { font-size:clamp(77px,19vw,135px); margin-block:30px; }.page-intro>p:last-child { font-size:16px; }
  .service-feature,.service-feature:nth-of-type(even) { grid-template-columns:1fr; gap:25px; padding-block:30px 45px; }.service-feature:nth-of-type(even) .service-feature-image { order:0; }.service-feature-image { height:380px; min-height:0; }.service-feature-copy { padding:0; }.service-feature h2 { font-size:60px; margin:24px 0 20px; }.service-feature-copy>p { font-size:15px; }.region-note { display:block; padding-block:50px; }.region-note>p:last-child { font-size:18px; margin:25px 0 0; }
  .service-hero { grid-template-columns:1fr; gap:40px; padding-block:42px 55px; }.service-hero h1 { font-size:clamp(74px,18vw,120px); margin-block:26px; }.service-hero-copy>p:not(.eyebrow) { font-size:16px; }.service-hero .button { font-size:11px; padding-inline:23px; min-height:58px; }.service-hero-image { height:470px; }.service-hero-note { margin-top:20px; }
  .editorial-layout { grid-template-columns:1fr; gap:40px; }.editorial-aside { position:static; border-bottom:1px solid #b6c3c3; padding-bottom:30px; }.editorial-aside>p:not(.eyebrow) { margin-block:20px; }.editorial-aside br { display:none; }.editorial-section h2 { font-size:47px; }.editorial-section p { font-size:16px; }.editorial-section+.editorial-section { margin-top:35px; padding-top:35px; }
  .display-heading { font-size:60px; margin:30px 0 40px; }.consideration-grid { grid-template-columns:1fr; gap:32px; }.consideration-grid h3 { margin-block:20px 12px; font-size:22px; }.consideration-grid p { font-size:15px; }.roof-study-grid { grid-template-columns:1fr; }.roof-study-grid>div { padding-block:65px 0; }.roof-study h2 { font-size:77px; }.roof-study-grid p:not(.eyebrow) { font-size:16px; }.roof-study img { width:112%; margin-left:-6%; margin-block:0 20px; }
  .faq-layout { grid-template-columns:1fr; gap:30px; }.faq h2 { font-size:77px; margin-block:26px 0; }.faq summary { font-size:17px; padding-block:24px; }.faq details>p { font-size:15px; margin-right:20px; }.related-section { padding-block:50px; }.related-grid { grid-template-columns:1fr; gap:0; }.related-grid>a { font-size:39px; padding-block:24px; }
  .project-filter { gap:7px; flex-wrap:wrap; padding-bottom:24px; }.project-filter button { padding:12px; font-size:9px; }.project-filter button>span { margin-left:6px; }.projects-grid { grid-template-columns:1fr; gap:35px; }.project-item:nth-child(even) { padding-top:0; }.project-item .work-card { height:350px; }.project-item:nth-child(3n+1) .work-card { height:450px; }.project-item figcaption { padding-top:17px; gap:12px; }.project-item figcaption>span:first-child { font-size:16px; }.project-item figcaption>span:last-child { font-size:8px; }.gallery-end { padding-block:50px; font-size:8px; }
  .about-statement { padding-bottom:65px; gap:40px; }.about-photo { height:470px; }.about-statement h2 { font-size:clamp(76px,18vw,125px); }.about-statement-copy>p:not(.eyebrow) { font-size:16px; }.process-grid { grid-template-columns:1fr; gap:27px; }.process-grid h3 { margin:25px 0 14px; font-size:40px; }.process-grid p { margin-bottom:0; }.brand-statement { grid-template-columns:1fr; padding-block:65px 35px; }.brand-statement h2 { font-size:90px; }.brand-statement img { width:100%; margin:10px 0 0; }.brand-statement p:not(.eyebrow) { font-size:16px; }
  .contact-page { padding-block:42px 70px; gap:45px; }.contact-page h1 { font-size:clamp(82px,20vw,130px); margin-block:30px; }.contact-page-copy>p:not(.eyebrow) { font-size:16px; }.contact-phone { font-size:32px; }.contact-email { font-size:13px; }.contact-location { flex-direction:column; gap:15px; }.inquiry-panel { padding:30px 22px; }.inquiry-panel h2 { font-size:59px; }.form-row { grid-template-columns:1fr; gap:0; }.inquiry-panel input,.inquiry-panel textarea,.inquiry-panel select { font-size:16px; }.inquiry-panel .button { padding-inline:20px; font-size:11px; }
  .not-found { padding-block:80px; }.not-found h1 { font-size:20vw; }
}
@media(prefers-reduced-motion:reduce) { .material-stage img { transform:none; } }

/* Interior pages: clearer hierarchy, proportionate photography, purposeful space. */
img { height:auto; }
/* Photographs that intentionally fill a fixed stage retain their crop. */
.hero-media img,.work-card img,.service-image img,.owner-image img,
.service-feature-image img,.service-hero-image img,.about-photo img { height:100%; }

.interior .section-pad { padding-block:clamp(64px,6vw,96px); }
.interior .breadcrumbs { padding-top:28px; }
.interior .page-intro { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.7fr); column-gap:clamp(40px,5vw,80px); row-gap:25px; align-items:end; padding-block:44px 55px; }
.interior .page-intro>.eyebrow { grid-column:1/-1; }
.interior .page-intro h1 { grid-column:1; margin:0; font-size:clamp(84px,8.5vw,146px); line-height:.88; }
.interior .page-intro>p:last-child { grid-column:2; max-width:410px; margin:0 0 5px; font-size:16px; line-height:1.7; }

/* The service collection reads as a collection instead of six tall repeated rows. */
.service-collection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:52px 32px; padding-bottom:56px; }
.service-collection-grid .service-feature,
.service-collection-grid .service-feature:nth-of-type(even) { display:grid; grid-template-columns:minmax(0,1fr); gap:25px; min-height:0; padding:26px 0 0; border-top:1px solid #3f4a4f; }
.service-collection-grid .service-feature-image,
.service-collection-grid .service-feature:nth-of-type(even) .service-feature-image { order:0; min-height:0; height:auto; aspect-ratio:3/2; }
.service-collection-grid .service-feature-copy { align-self:start; padding:0; }
.service-collection-grid .service-feature h2 { max-width:570px; margin:18px 0 17px; font-size:clamp(44px,4.2vw,69px); line-height:.98; }
.service-collection-grid .service-feature-copy>p { max-width:500px; margin:0 0 22px; font-size:15px; line-height:1.65; }
.service-collection-grid .service-feature:first-child,
.service-collection-grid .service-feature:last-child { grid-column:1/-1; grid-template-columns:1.15fr 1fr; gap:clamp(38px,5vw,80px); align-items:center; }
.service-collection-grid .service-feature:first-child .service-feature-image { aspect-ratio:1.45; }
.service-collection-grid .service-feature:first-child .service-feature-copy,
.service-collection-grid .service-feature:last-child .service-feature-copy { align-self:center; }
.service-collection-grid .service-feature:first-child h2 { font-size:clamp(59px,5.5vw,88px); }
.service-collection-grid .service-feature:last-child { padding-block:30px 0; }
.service-collection-grid .service-feature:last-child .service-feature-image { aspect-ratio:2; }
.interior .region-note { padding-block:35px; gap:36px; }
.interior .region-note>p:last-child { max-width:510px; margin:0; font-size:17px; }

/* Detail pages keep substantive content within an easy reading measure. */
.interior .service-hero { gap:clamp(36px,4.5vw,72px); padding-block:40px 64px; align-items:center; }
.interior .service-hero h1 { font-size:clamp(72px,6.5vw,110px); line-height:.91; margin:0; }
.interior .service-kicker { font-size:10px; margin-bottom:25px; }
.interior .service-hero-copy>p:not(.eyebrow) { margin-block:24px; font-size:16px; line-height:1.7; }
.interior .service-hero-image { height:clamp(480px,39vw,600px); }
.interior .service-hero-note { margin-top:20px; }
.interior .editorial-layout { grid-template-columns:minmax(180px,280px) minmax(0,760px); gap:clamp(55px,8vw,135px); justify-content:space-between; }
.interior .editorial-aside>p:not(.eyebrow) { font-size:21px; line-height:1.55; margin-block:28px 24px; }
.interior .editorial-section h2 { font-size:clamp(43px,4.1vw,62px); line-height:1.02; margin-bottom:22px; }
.interior .editorial-section p { font-size:16px; line-height:1.8; margin-block:16px; }
.interior .editorial-section p:last-child { margin-bottom:0; }
.interior .editorial-section+.editorial-section { margin-top:36px; padding-top:35px; }
.interior .display-heading { max-width:1050px; font-size:clamp(59px,5.8vw,92px); line-height:.94; margin:26px 0 38px; }
.interior .consideration-grid { gap:clamp(28px,4vw,60px); }
.interior .consideration-grid article { padding-top:18px; }
.interior .consideration-grid h3 { margin:19px 0 14px; font-size:21px; line-height:1.35; }
.interior .consideration-grid p { font-size:15px; line-height:1.7; }
.interior .faq-layout { grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:clamp(45px,7vw,110px); }
.interior .faq h2 { font-size:clamp(65px,6.3vw,100px); line-height:.92; margin:25px 0 0; }
.interior .faq summary { padding-block:22px; font-size:18px; }
.interior .faq details>p { margin-bottom:24px; font-size:15px; }
.interior .related-section { padding-block:45px; }
.interior .related-grid { gap:36px; margin-top:20px; }
.interior .related-grid>a { padding-block:20px; font-size:clamp(32px,2.8vw,44px); }

/* A consistent image rhythm removes the empty cells beneath staggered cards. */
.interior .project-filter { padding-bottom:27px; }
.interior .projects-grid { gap:38px 28px; }
.interior .project-item:nth-child(even) { padding-top:0; }
.interior .project-item .work-card,
.interior .project-item:nth-child(3n+1) .work-card { height:auto; aspect-ratio:4/3; }
.interior .project-item .work-card img { position:absolute; inset:0; width:100%; height:100%; }
.interior .project-item figcaption { padding-block:18px; }
.interior .project-item figcaption>span:first-child { font-size:17px; }
.interior .gallery-end { padding-block:42px; }

/* The owner's story begins beside the work, with one clear opening statement. */
.interior .about-statement { grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,100px); padding-block:42px 72px; align-items:center; }
.interior .about-photo { height:clamp(520px,43vw,680px); }
.interior .about-statement-copy h1 { margin:28px 0; font-family:var(--display); font-weight:700; font-size:clamp(76px,7.1vw,122px); line-height:.91; letter-spacing:-.025em; text-transform:uppercase; }
.interior .about-statement-copy>p:not(.eyebrow) { max-width:530px; font-size:16px; line-height:1.75; }
.interior .about-statement-copy .text-link { margin-top:19px; }
.interior .process-grid { gap:clamp(25px,3.2vw,48px); }
.interior .process-grid article { padding-top:18px; }
.interior .process-grid h3 { margin:26px 0 17px; font-size:35px; line-height:1; }
.interior .process-grid p { font-size:14px; line-height:1.75; margin-bottom:0; }

/* The enquiry remains a straightforward, useful composition at laptop widths. */
.interior .contact-page { gap:clamp(40px,6vw,96px); padding-block:44px 72px; }
.interior .contact-page h1 { font-size:clamp(80px,7.7vw,132px); line-height:.91; margin:27px 0; }
.interior .contact-page-copy>p:not(.eyebrow) { max-width:430px; font-size:16px; }
.interior .contact-phone { padding-block:25px 20px; }
.interior .contact-email { padding-block:20px; }
.interior .contact-location { margin-top:27px; }
.interior .inquiry-panel { padding:clamp(28px,3vw,48px); }
.interior .inquiry-panel h2 { font-size:clamp(48px,4.2vw,70px); line-height:.97; margin:24px 0 18px; }
.interior .inquiry-panel>p:not(.eyebrow) { margin-bottom:26px; }
.interior .form-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; }
.interior .inquiry-panel label { margin-bottom:20px; gap:8px; }
.interior .inquiry-panel textarea { min-height:90px; }
.interior .inquiry-panel .button { min-height:56px; }
.interior .form-note { margin-top:15px; }

/* A shorter invitation closes interior pages; the homepage keeps its grand close. */
.interior .contact.section-pad { padding-block:64px 42px; }
.interior .contact-inner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); column-gap:clamp(40px,6vw,100px); row-gap:0; padding:0; }
.interior .contact-inner>.eyebrow { grid-column:1/-1; }
.interior .contact h2 { grid-column:1; grid-row:2/4; align-self:center; font-size:clamp(76px,8.1vw,128px); line-height:.9; margin:24px 0 0; max-width:760px; }
.interior .contact-lead { grid-column:2; margin:25px 0 0; max-width:480px; font-size:17px; line-height:1.65; }
.interior .contact-actions { grid-column:2; flex-direction:column; align-items:stretch; gap:12px; margin-top:22px; }
.interior .contact-actions .button { min-width:0; min-height:55px; font-size:10px; }
.interior .contact-details { grid-column:1/-1; margin-top:45px; padding-top:20px; font-size:9px; }
.interior .footer-top { padding-block:60px 50px; }

@media (max-width:1100px) {
  .interior .page-intro { grid-template-columns:1.35fr .8fr; gap:25px 35px; }
  .interior .page-intro h1 { font-size:9vw; }
  .interior .service-hero h1 { font-size:7.6vw; }
  .interior .service-hero-image { height:540px; }
  .interior .editorial-layout { grid-template-columns:220px minmax(0,1fr); gap:50px; }
  .interior .about-statement { gap:40px; }
  .interior .about-photo { height:600px; }
  .interior .about-statement-copy h1 { font-size:8vw; }
  .interior .contact-page { gap:35px; }
  .interior .inquiry-panel { padding:28px; }
  .interior .form-row { gap:16px; }
}

@media (max-width:900px) {
  .interior .page-intro { grid-template-columns:1fr; gap:24px; padding-block:36px 44px; }
  .interior .page-intro h1 { font-size:clamp(85px,12vw,120px); }
  .interior .page-intro>p:last-child { grid-column:1; max-width:610px; margin:0; }
  .service-collection-grid { gap:38px 25px; }
  .service-collection-grid .service-feature h2 { font-size:46px; }
  .service-collection-grid .service-feature:first-child h2 { font-size:62px; }
  .service-collection-grid .service-feature:first-child,
  .service-collection-grid .service-feature:last-child { gap:28px; }
  .service-collection-grid .service-feature:first-child .service-feature-image { aspect-ratio:1; }
  .service-collection-grid .service-feature:last-child .service-feature-image { aspect-ratio:1.35; }
  .interior .service-hero { gap:28px; padding-bottom:52px; }
  .interior .service-hero h1 { font-size:8.2vw; }
  .interior .service-hero-copy>p:not(.eyebrow) { font-size:15px; }
  .interior .editorial-layout { grid-template-columns:185px minmax(0,1fr); gap:35px; }
  .interior .editorial-aside>p:not(.eyebrow) { font-size:18px; }
  .interior .consideration-grid { gap:24px; }
  .interior .consideration-grid h3 { font-size:19px; }
  .interior .faq-layout { grid-template-columns:.7fr 1.3fr; gap:35px; }
  .interior .faq h2 { font-size:70px; }
  .interior .about-statement { grid-template-columns:1fr 1fr; gap:32px; padding-block:36px 60px; align-items:start; }
  .interior .about-photo { height:610px; }
  .interior .about-statement-copy h1 { font-size:8.7vw; }
  .interior .process-grid { grid-template-columns:1fr 1fr; gap:35px; }
  .interior .contact-page { grid-template-columns:1fr; gap:38px; }
  .interior .contact-page h1 { font-size:clamp(85px,12vw,115px); }
  .interior .contact-page-copy { max-width:650px; }
  .interior .contact-page-copy>p:not(.eyebrow) { max-width:560px; }
  .interior .contact-location { gap:25px; }
  .interior .inquiry-panel { padding:38px; }
  .interior .inquiry-panel h2 { font-size:62px; }
  .interior .contact h2 { font-size:10vw; }
  .interior .contact-inner { column-gap:35px; }
}

@media (max-width:700px) {
  .interior .section-pad { padding-block:56px; }
  .interior .breadcrumbs { padding-top:22px; }
  .interior .page-intro { padding-block:32px 38px; gap:22px; }
  .interior .page-intro h1 { font-size:clamp(73px,18.4vw,118px); line-height:.91; }
  .interior .page-intro>p:last-child { font-size:15px; line-height:1.7; }
  .service-collection-grid { grid-template-columns:1fr; gap:34px; padding-bottom:37px; }
  .service-collection-grid .service-feature,
  .service-collection-grid .service-feature:nth-of-type(even),
  .service-collection-grid .service-feature:first-child,
  .service-collection-grid .service-feature:last-child { grid-column:1; grid-template-columns:1fr; gap:22px; padding-top:25px; }
  .service-collection-grid .service-feature-image,
  .service-collection-grid .service-feature:first-child .service-feature-image,
  .service-collection-grid .service-feature:last-child .service-feature-image { height:auto; aspect-ratio:4/3; }
  .service-collection-grid .service-feature h2,
  .service-collection-grid .service-feature:first-child h2 { font-size:clamp(47px,11.5vw,68px); margin:16px 0; }
  .service-collection-grid .service-feature-copy>p { margin-bottom:19px; }
  .interior .region-note { padding-block:30px; }
  .interior .region-note>p:last-child { margin-top:20px; font-size:16px; }
  .interior .service-hero { grid-template-columns:1fr; gap:30px; padding-block:31px 42px; }
  .interior .service-hero h1 { font-size:clamp(66px,16.7vw,106px); line-height:.93; }
  .interior .service-kicker { font-size:9px; margin-bottom:24px; }
  .interior .service-hero-copy>p:not(.eyebrow) { margin-block:22px; font-size:15px; }
  .interior .service-hero-image { height:auto; aspect-ratio:4/3; }
  .interior .service-hero-note { margin-top:16px; }
  .interior .editorial-layout { grid-template-columns:1fr; gap:28px; }
  .interior .editorial-aside { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 20px; padding-bottom:24px; }
  .interior .editorial-aside>.eyebrow { font-size:9px; }
  .interior .editorial-aside>p:not(.eyebrow) { display:none; }
  .interior .editorial-aside>.small-link { font-size:9px; }
  .interior .editorial-section h2 { font-size:44px; margin-bottom:20px; }
  .interior .editorial-section p { font-size:15px; line-height:1.8; }
  .interior .editorial-section+.editorial-section { margin-top:28px; padding-top:28px; }
  .interior .display-heading { font-size:clamp(50px,12vw,73px); margin:23px 0 30px; }
  .interior .consideration-grid { grid-template-columns:1fr; gap:26px; }
  .interior .consideration-grid article { display:grid; grid-template-columns:28px minmax(0,1fr); gap:0 12px; padding-top:18px; }
  .interior .consideration-grid article>.feature-number { padding-top:5px; }
  .interior .consideration-grid h3 { margin:0 0 10px; font-size:20px; }
  .interior .consideration-grid p { grid-column:2; font-size:14px; }
  .interior .faq-layout { grid-template-columns:1fr; gap:27px; }
  .interior .faq h2 { font-size:clamp(61px,15vw,85px); margin-top:22px; }
  .interior .faq summary { font-size:16px; padding-block:21px; }
  .interior .faq details>p { font-size:15px; }
  .interior .related-section { padding-block:34px; }
  .interior .related-grid { grid-template-columns:1fr; gap:0; margin-top:20px; }
  .interior .related-grid>a { font-size:35px; }
  .interior .project-filter { gap:7px; padding-bottom:24px; }
  .interior .projects-grid { gap:26px; }
  .interior .project-item figcaption { padding-block:16px; }
  .interior .project-item figcaption>span:first-child { font-size:15px; }
  .interior .project-item figcaption>span:last-child { font-size:8px; }
  .interior .gallery-end { padding-block:32px; line-height:1.7; }
  .interior .about-statement { grid-template-columns:1fr; gap:32px; padding-block:31px 50px; }
  .interior .about-statement-copy { order:-1; }
  .interior .about-statement-copy h1 { font-size:clamp(70px,17.5vw,110px); line-height:.93; margin-block:25px; }
  .interior .about-statement-copy>p:not(.eyebrow) { font-size:15px; }
  .interior .about-statement-copy .text-link { margin-top:16px; }
  .interior .about-photo { height:auto; aspect-ratio:1.1; }
  .interior .process-grid { grid-template-columns:1fr; gap:26px; }
  .interior .process-grid article { display:grid; grid-template-columns:30px minmax(0,1fr); gap:0 12px; }
  .interior .process-grid article>span { padding-top:7px; }
  .interior .process-grid h3 { margin:0 0 13px; font-size:34px; }
  .interior .process-grid p { grid-column:2; margin:0; }
  .interior .contact-page { padding-block:31px 50px; gap:34px; }
  .interior .contact-page h1 { font-size:clamp(73px,18vw,116px); margin-block:25px; }
  .interior .contact-page-copy>p:not(.eyebrow) { font-size:15px; }
  .interior .contact-location { gap:14px; font-size:12px; }
  .interior .inquiry-panel { padding:28px 22px; }
  .interior .inquiry-panel h2 { font-size:55px; }
  .interior .inquiry-panel input,.interior .inquiry-panel textarea,.interior .inquiry-panel select { font-size:16px; }
  .interior .contact.section-pad { padding-block:46px 32px; }
  .interior .contact-inner { grid-template-columns:1fr; }
  .interior .contact-inner>.eyebrow,
  .interior .contact h2,
  .interior .contact-lead,
  .interior .contact-actions { grid-column:1; grid-row:auto; }
  .interior .contact h2 { font-size:clamp(74px,17.5vw,115px); line-height:.92; margin-top:25px; }
  .interior .contact-lead { margin-top:22px; font-size:16px; }
  .interior .contact-actions { margin-top:25px; }
  .interior .contact-actions .button { font-size:10px; }
  .interior .contact-details { margin-top:32px; font-size:8px; gap:11px; }
  .interior .footer-top { padding-block:44px 35px; gap:29px; }
}

@media (max-width:600px) {
  .interior .form-row { grid-template-columns:1fr; gap:0; }
}

/* Each live view scrolls with its own element, with no frame or background. */
.live-model-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; pointer-events:none; background:transparent; }
.ui-icon { display:inline-block; width:20px; height:20px; flex:none; vertical-align:middle; }
.button .ui-icon { width:23px; height:23px; }
.hero-foot .ui-icon,.footer-bottom .ui-icon { width:17px; height:17px; }
.footer-bottom>a { display:inline-flex; align-items:center; gap:10px; }
.hero-media img { transform:none; transition:none; animation:none; }
.logo-identity { display:flex; align-items:center; gap:17px; width:100%; }
.brand { width:220px; }
.logo-object { position:relative; display:block; flex:none; width:135px; height:70px; }
.logo-object img { width:100%; height:100%; object-fit:contain; }
.logo-descriptor { font-size:9px; line-height:1.9; letter-spacing:.22em; font-weight:600; text-transform:uppercase; color:#edf0eb; }
.site-header { min-height:106px; padding-block:17px; }
.site-header.is-scrolled { min-height:82px; padding-block:7px; }
.site-header.is-scrolled .logo-object { width:117px; height:62px; }
.footer-brand { width:240px; }
.footer-brand .logo-object { width:145px; height:78px; }
.footer-brand .logo-descriptor { font-size:10px; }
.model-ready>img { visibility:hidden; }
.form-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#inquiry-form button:disabled { opacity:.65; cursor:wait; }
#form-status { padding:16px 18px; margin:22px 0 0; border-left:2px solid currentColor; font-size:14px; line-height:1.6; outline-offset:5px; }
#form-status[data-state=success] { background:#dfe8dc; color:#274737; }
#form-status[data-state=error] { background:#eee1d9; color:#6c3525; }
.footer-motion { display:none; padding:0 0 5px; margin-top:18px; border:0; border-bottom:1px solid #657274; background:transparent; color:#bdc8c7; font:500 10px/1.6 var(--body); letter-spacing:.08em; cursor:pointer; }
.has-live-3d .footer-motion { display:inline-block; }
.live-showcase { position:relative; margin:0; width:100%; min-width:0; align-self:center; }
.model-stage { width:100%; position:relative; height:480px; touch-action:pan-y; cursor:grab; outline-offset:-8px; }
.model-stage.is-dragging { cursor:grabbing; }
.model-stage>img { width:100%; height:100%; object-fit:contain; }
.live-showcase figcaption { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 20px; padding:13px 0 0; color:#596262; font-size:10px; font-weight:500; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.model-instruction { color:#566260; font-size:9px; letter-spacing:.08em; display:none; }
.model-figure-ready .model-instruction { display:inline; }
.model-controls { display:none; align-items:center; justify-content:flex-end; gap:24px; margin:17px 20px 0; }
.model-figure-ready .model-controls { display:flex; }
.model-controls button { display:inline-flex; align-items:center; gap:7px; border:0; padding:4px 0 6px; border-bottom:1px solid #b3bbb6; background:transparent; color:#4d5b59; font:500 10px/1.5 var(--body); letter-spacing:.06em; cursor:pointer; }
.model-controls .ui-icon { width:15px; height:15px; }
.model-controls button:hover { color:#0e1716; border-bottom-color:#36413e; }
.model-controls button span { padding-left:7px; font-size:15px; }
.craft-section { background:#e9ebe5; padding-top:46px; }
.craft-top { padding-bottom:22px; border-bottom:1px solid #cbd0c6; }
.craft-top .technical-tag { color:#5c6662; font-size:9px; letter-spacing:.13em; }
.craft-layout { grid-template-columns:.86fr 1.14fr; gap:0; padding-block:52px 48px; min-height:650px; }
.craft-copy { padding:0; }
.craft-copy h2 { font-size:clamp(78px,7.6vw,128px); max-width:680px; }
.craft-copy>p { max-width:355px; margin:26px 0 0; font-size:16px; line-height:1.7; }
.craft-copy>p+p { margin-top:14px; }
.craft-copy .text-link { margin-top:28px; }
.craft-layout .live-showcase { margin-left:-10px; width:calc(100% + 28px); }
.craft-layout .model-stage { height:500px; }
.craft-principles { border-top:1px solid #cbd0c6; padding-block:28px 35px; }
.craft-principles>div { border-color:#cbd0c6; }
.craft-principles h3 { font-weight:500; }
.roof-study { background:#e9ebe5; color:#15221e; }
.roof-study-grid { grid-template-columns:.8fr 1.2fr; gap:35px; padding-block:50px 42px; }
.roof-study-grid>div { padding-block:0; }
.roof-study .eyebrow { color:#576961; }
.roof-study h2 { font-size:clamp(62px,5.8vw,96px); margin:27px 0; }
.roof-study h2 em { color:#66766d; }
.roof-study-grid p:not(.eyebrow) { max-width:355px; color:#4e5d56; font-size:16px; line-height:1.7; margin-bottom:0; }
.roof-study .model-stage { height:440px; }
.roof-study .model-stage>img { width:100%; max-width:100%; height:100%; margin:0; }
.brand-statement { grid-template-columns:.8fr 1.2fr; align-items:center; gap:40px; padding-block:65px; }
.brand-statement h2 { font-size:clamp(70px,6.5vw,100px); margin:27px 0; }
.brand-statement .model-stage { height:400px; }
.brand-statement .model-stage>img { width:100%; height:100%; max-width:100%; margin:0; }
.brand-statement .live-showcase figcaption { color:#b3bfbb; }
.brand-statement .model-instruction { color:#a9b8b3; }
.brand-statement .model-controls button { color:#c0cbc6; border-color:#53695e; }
.brand-statement .model-controls button:hover { color:#fff; }
@media(min-width:1700px) { .craft-layout .model-stage { height:560px; } }
@media(max-width:1180px) {
 .brand { width:205px; }.logo-object { width:122px; height:65px; }.logo-descriptor { font-size:8px; }
 .craft-copy h2 { font-size:8.5vw; }.craft-layout { min-height:570px; }.craft-layout .model-stage { height:445px; }
 .roof-study-grid { gap:25px; }.roof-study .model-stage { height:380px; }.brand-statement { gap:25px; }
}
@media(max-width:900px) {
 .site-header,.site-header.is-scrolled { min-height:88px; padding-block:10px; }
 .site-header.is-scrolled .logo-object { width:122px; height:65px; }
 .craft-copy h2 { font-size:9.3vw; }.craft-copy>p { font-size:15px; max-width:300px; }
 .craft-layout { grid-template-columns:1fr 1fr; min-height:0; padding-block:42px; }.craft-layout .live-showcase { margin-left:0; width:100%; }.craft-layout .model-stage { height:380px; }
 .live-showcase figcaption { flex-direction:column; align-items:flex-start; gap:7px; margin-inline:10px; }.model-controls { justify-content:flex-start; margin-inline:10px; gap:20px; }
 .roof-study h2 { font-size:8vw; }.roof-study .model-stage { height:340px; }
 .brand-statement .model-stage { height:330px; }.brand-statement h2 { font-size:9vw; }
}
@media(max-width:700px) {
 .brand { width:192px; }.logo-identity { gap:12px; }.logo-object { width:116px; height:61px; }.logo-descriptor { font-size:8px; letter-spacing:.19em; }
 .site-header,.site-header.is-scrolled { min-height:76px; padding-block:7px; }
 .site-header.is-scrolled .logo-object { width:116px; height:61px; }
 .ui-icon { width:18px; height:18px; }.button .ui-icon { width:20px; height:20px; }
 .footer-brand { width:230px; }.footer-brand .logo-object { width:140px; height:74px; }.footer-brand .logo-descriptor { font-size:9px; }
 .craft-section { padding-top:32px; }.craft-top { padding-bottom:20px; }.craft-top .technical-tag { max-width:95px; font-size:8px; }
 .craft-layout { grid-template-columns:1fr; gap:4px; padding-block:35px 28px; }.craft-copy h2 { font-size:clamp(74px,18.5vw,110px); }
 .craft-copy>p { max-width:410px; font-size:16px; margin-top:23px; }.craft-copy>p+p { margin-top:10px; }.craft-copy .text-link { margin-top:23px; }
 .craft-layout .live-showcase { width:100%; margin:16px 0 0; }.craft-layout .model-stage { height:330px; }
 .live-showcase figcaption { flex-direction:row; align-items:center; font-size:8px; gap:12px; margin:0; }.model-instruction { font-size:8px; }.model-controls { justify-content:flex-end; margin:13px 0 0; gap:23px; }
 .craft-principles { padding-block:0 22px; }.craft-principles>div,.craft-principles>div:first-child { padding-block:21px; border-color:#cbd0c6; }
 .roof-study-grid { grid-template-columns:1fr; padding-block:48px 32px; gap:12px; }.roof-study-grid>div { padding:0; }.roof-study h2 { font-size:68px; margin-block:24px; }.roof-study-grid p:not(.eyebrow) { max-width:440px; font-size:15px; }.roof-study .model-stage { height:320px; }
 .brand-statement { grid-template-columns:1fr; padding-block:48px 40px; gap:20px; }.brand-statement h2 { font-size:74px; margin-block:24px; }.brand-statement p:not(.eyebrow) { max-width:420px; font-size:16px; }.brand-statement .model-stage { height:265px; }.brand-statement .text-link { margin-top:18px; }
}

/* Policy pages use the existing SRS identity with a comfortable reading width. */
.footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; }
.footer-legal a { padding-block:10px; text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { flex-wrap:wrap; padding-block:16px; }
.form-note a { text-decoration:underline; text-underline-offset:3px; }
.inquiry-panel .form-note { margin:0 0 20px; font-size:12px; }
.legal-hero { padding-block:48px 50px; }
.legal-hero h1 { margin:26px 0 22px; max-width:100%; font-family:var(--display); font-size:clamp(64px,8vw,124px); line-height:.95; letter-spacing:-.02em; text-transform:uppercase; }
.legal-hero>p:not(.eyebrow) { max-width:650px; color:#c4ced1; line-height:1.75; font-size:17px; }
.legal-hero .legal-date { margin-top:24px; font-size:12px; color:#aab7bc; }
.legal-surface { background:var(--paper); color:var(--ink); }
.legal-layout { display:grid; grid-template-columns:minmax(180px,260px) minmax(0,760px); justify-content:space-between; align-items:start; gap:clamp(40px,7vw,100px); padding-block:60px 86px; }
.legal-toc { position:sticky; top:110px; }
.legal-toc h2 { font-size:11px; letter-spacing:.14em; text-transform:uppercase; margin:0 0 20px; }
.legal-toc ol { list-style:none; margin:0; padding:0; }
.legal-toc li { border-bottom:1px solid var(--line); }
.legal-toc a { display:block; padding-block:11px; font-size:13px; line-height:1.5; }
.legal-toc a:hover { text-decoration:underline; text-underline-offset:4px; }
.legal-toc .legal-other { margin-top:25px; padding-top:0; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.legal-copy { min-width:0; font-size:16px; line-height:1.8; overflow-wrap:anywhere; }
.legal-summary { padding:24px 28px; border-left:2px solid #56666d; background:#e1e5e3; margin-bottom:40px; }
.legal-summary p { margin:0; }
.legal-section { scroll-margin-top:110px; }
.legal-section+.legal-section { margin-top:34px; padding-top:32px; border-top:1px solid var(--line); }
.legal-section h2 { margin:0 0 16px; font-size:23px; line-height:1.35; letter-spacing:-.015em; font-weight:600; }
.legal-section p { margin:0 0 16px; }
.legal-section p:last-child { margin-bottom:0; }
.legal-section ul { padding-left:23px; margin:0 0 18px; }
.legal-section li+li { margin-top:10px; }
.legal-copy a { text-decoration:underline; text-underline-offset:3px; }
.legal-copy a:hover { text-decoration-thickness:2px; }
.legal-copy address { font-style:normal; margin-bottom:16px; }
@media(max-width:900px) {
  .legal-layout { grid-template-columns:1fr; gap:38px; padding-block:38px 60px; }
  .legal-toc { position:static; }
  .legal-toc ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 25px; }
  .legal-toc .legal-other { margin-top:18px; }
  .legal-hero { padding-block:36px 35px; }
}
@media(max-width:600px) {
  .footer-bottom { align-items:flex-start; gap:10px 20px; }
  .footer-legal { width:100%; order:3; }
  .legal-hero h1 { font-size:clamp(55px,12.5vw,78px); }
  .legal-hero>p:not(.eyebrow) { font-size:16px; }
  .legal-toc ol { grid-template-columns:1fr; }
  .legal-summary { padding:20px; }
  .legal-section h2 { font-size:21px; }
}
@media print {
  .legal-page .site-header,.legal-page .breadcrumbs,.legal-page .legal-toc,.legal-page .site-footer,.legal-page .skip-link { display:none; }
  .legal-page main { padding-top:0; }
  .legal-page .container { width:100%; }
  .legal-page,.legal-page .legal-surface { background:white; color:black; }
  .legal-page .legal-hero { padding:0 0 20px; }
  .legal-page .legal-hero h1 { font-family:Arial,sans-serif; font-size:30px; text-transform:none; }
  .legal-page .legal-hero p { color:black; }
  .legal-page .legal-layout { display:block; padding:0; }
  .legal-section h2 { break-after:avoid; }
  .legal-copy { font-size:11pt; }
}
