@font-face {
  font-family: Canela;
  src: url("assets/fonts/canela-light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Inter;
  src: url("assets/fonts/inter-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --u: min(.052083333vw, .092592593vh);
  --paper: #fff;
  --ink: #b0b0b0;
  --gold: #9b763b;
  --muted: #dadada;
  --yellow: #fff8ae;
  --nav-hover: var(--gold);
  --button-radius: 1.75rem;
  --gutter: calc(44 * var(--u));
  --logo-top: calc(40 * var(--u));
  --logo-width: calc(320 * var(--u));
  --serif: Canela, Georgia, serif;
  --sans: Inter, Arial, sans-serif;
  --body-size: max(1rem, calc(52 * var(--u)));
  --body-line: calc(60 * var(--u));
}
* { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--paper); font-family: var(--serif); font-weight: 300; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
button, h1, h2, p, figure { margin: 0; }
button { border: 0; background: none; padding: 0; cursor: pointer; }
img { display: block; max-width: 100%; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.site-header { position: relative; z-index: 20; }
.logo-link { position: fixed; top: var(--logo-top); left: var(--gutter); width: var(--logo-width); z-index: 21; }
.logo-link img { width: 100%; height: auto; }
.project-cta {
  position: absolute; top: calc(23 * var(--u)); right: calc(20 * var(--u)); width: max(12rem, calc(344 * var(--u))); height: max(2.75rem, calc(67 * var(--u)));
  display: flex; align-items: center; justify-content: center;
  border: max(1px, calc(2 * var(--u))) solid var(--ink); border-radius: var(--button-radius);
  font-family: var(--sans); font-size: max(.875rem, calc(23 * var(--u))); font-weight: 400; line-height: 1;
  z-index: 22; isolation: isolate; overflow: hidden; white-space: nowrap; transition: border-color 220ms ease, color 220ms ease;
}
.project-cta::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--yellow); opacity: 0; z-index: -1; transition: opacity 180ms ease; }
.project-cta:hover, .project-cta:focus-visible, .project-cta:active, .project-cta.is-pressed { color: var(--gold); border-color: var(--yellow); }
.project-cta:hover::before, .project-cta:focus-visible::before, .project-cta:active::before, .project-cta.is-pressed::before { opacity: 1; }
.bottom-menu {
  position: fixed; z-index: 30; bottom: calc(40 * var(--u)); letter-spacing: calc(.75 * var(--u)); left: var(--gutter);
  font-size: max(1rem, calc(64 * var(--u))); line-height: 1.1; white-space: nowrap;
}
.bottom-menu > span { display: none; }
.bottom-menu > a::after, .language-switch::after { content: "/"; }
.bottom-menu a, .mobile-menu-nav a, .language-switch { transition: color 350ms ease; }
.bottom-menu a[aria-current="page"] { color: var(--muted); }
.bottom-menu a:hover, .bottom-menu a:focus-visible,
.bottom-menu .language-switch:hover, .bottom-menu .language-switch:focus-visible { color: var(--nav-hover); }
.language-switch { display: inline; letter-spacing: inherit; }
.page-home {
  --nav-hover: var(--yellow);
  position: relative;
  overflow-x: clip;
  color: #fff;
  background: #8a8580;
}
.page-home::before {
  content: "";
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(164deg, #938e89 0%, #85817d 52%, #787572 100%);
}
.page-home::after {
  content: "";
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: .35;
  background: url("assets/grain.svg") repeat;
  background-size: 180px 180px;
}
.page-home .logo-link img { filter: brightness(0) invert(1); }
.page-home .home-symbol img, .page-home .home-symbol canvas { filter: brightness(0) invert(1); }
.page-home .project-cta { color: #fff; border-color: rgba(255,255,255,.82); }
.page-home .project-cta:hover, .page-home .project-cta:focus-visible, .page-home .project-cta:active, .page-home .project-cta.is-pressed { color: var(--gold); border-color: var(--yellow); }
.page-home .bottom-menu { color: #fff; }
.home-main { position: relative; z-index: 1; min-height: 100svh; padding: calc(143 * var(--u)) var(--gutter) calc(153.6 * var(--u)); }
.home-intro { min-width: 0; }
.home-project-cta { display: none; }
.home-tagline { margin-top: max(1.5rem, calc(36 * var(--u))); font: 400 max(1.125rem, calc(28 * var(--u)))/1.4 var(--sans); text-transform: uppercase; }
.home-headline { font-size: max(2rem, calc(208 * var(--u))); line-height: 1.04; font-weight: 300; letter-spacing: -.012em; }
.headline-line { display: block; white-space: nowrap; }
.point-line { display: flex; align-items: baseline; }
.home-symbol { flex: 0 0 auto; position: relative; display: inline-block; width: .74em; height: .74em; margin: 0 .01em; align-self: center; transform: translateY(.018em); }
.symbol-fallback, .symbol-animation { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.symbol-animation { opacity: 0; }
.home-symbol.is-ready .symbol-animation { opacity: 1; }
.home-symbol.is-ready .symbol-fallback { opacity: 0; }
.about-introduction { position: relative; min-height: 100vh; }
.page-about { --body-size: max(1rem, calc(36 * var(--u))); --body-line: calc(46 * var(--u)); }
.about-copy { padding: calc(164 * var(--u)) calc(60 * var(--u)) calc(153.6 * var(--u)) var(--gutter); width: 62.395833vw; font-size: var(--body-size); line-height: max(1.15em, var(--body-line)); }
.about-title { margin-bottom: calc(32 * var(--u)); }
.about-copy p + p { margin-top: calc(44 * var(--u)); }
.desktop-line { display: block; }
.studio-portrait { position: absolute; inset: 0 0 0 auto; width: 37.604167vw; height: 100%; object-fit: cover; }
.about-partners { min-height: 100vh; padding: calc(143 * var(--u)) var(--gutter) calc(153.6 * var(--u)); }
.partners-introduction { max-width: calc(1200 * var(--u)); font-size: var(--body-size); line-height: max(1.15em, var(--body-line)); }
.partners-introduction + .partners-introduction { margin-top: calc(40 * var(--u)); }
.section-label { font-family: var(--sans); font-weight: 400; font-size: max(.875rem, calc(32 * var(--u))); line-height: 1.25; color: var(--gold); }
.about-partners .section-label { margin-top: calc(76 * var(--u)); }
.partner-list { list-style: none; padding: 0; margin: calc(34 * var(--u)) 0 0; font-family: var(--sans); font-weight: 300; font-size: max(1rem, calc(30 * var(--u))); line-height: 1.2; }
.page-about .section-label { font-size: max(.875rem, calc(24 * var(--u))); }
.page-about .partner-list { font-size: max(1rem, calc(24 * var(--u))); line-height: 1.4; }
.services-main { min-height: 100vh; display: flex; align-items: center; padding: calc(192 * var(--u)) calc(66 * var(--u)); }
.service-list { width: max-content; max-width: 100%; }
.service-item { position: relative; min-height: max(3rem, calc(122 * var(--u))); }
.service-heading { font-size: max(1.5rem, calc(110 * var(--u))); line-height: 1.24; font-weight: 300; }
.service-trigger { display: flex; align-items: center; width: 100%; text-align: left; line-height: inherit; }
.service-trigger > span:last-child { min-width: 0; overflow-wrap: break-word; }
.service-symbol { width: calc(100 * var(--u)); height: calc(122 * var(--u)); margin-right: calc(10 * var(--u)); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transform: translateY(calc(-8 * var(--u))); }
.service-symbol img { object-fit: contain; }
.service-item:nth-child(1) .service-symbol img { width: calc(58 * var(--u)); height: calc(58 * var(--u)); }
.service-item:nth-child(2) .service-symbol img { width: calc(92 * var(--u)); height: calc(43 * var(--u)); }
.service-item:nth-child(3) .service-symbol img { width: calc(43 * var(--u)); height: calc(92 * var(--u)); transform: translateY(calc(-14 * var(--u))); }
.service-item:nth-child(4) .service-symbol img { width: calc(94 * var(--u)); height: calc(81 * var(--u)); transform: translateY(calc(-4 * var(--u))); }
.service-detail-wrap { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 650ms cubic-bezier(.3,0,.2,1); }
.service-detail-inner { min-height: 0; overflow: hidden; }
.service-detail { margin-left: calc(110 * var(--u)); padding-top: max(.5rem, calc(12 * var(--u))); padding-bottom: max(1rem, calc(24 * var(--u))); font-family: var(--sans); font-size: max(.875rem, calc(22 * var(--u))); color: var(--gold); font-weight: 300; line-height: 1.5; text-transform: uppercase; white-space: normal; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity 480ms ease, transform 650ms cubic-bezier(.3,0,.2,1), visibility 0s linear 480ms; pointer-events: none; }
.service-item.is-open .service-detail-wrap { grid-template-rows: 1fr; }
.service-item.is-open .service-detail { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 100ms, 60ms, 0s; }
.page-contact { --gutter: calc(30 * var(--u)); --logo-top: calc(30 * var(--u)); }
.page-contact .project-cta, .page-reference .project-cta { border-width: max(1px, calc(1 * var(--u))); }
.contact-main { min-height: 100vh; padding: calc(158 * var(--u)) var(--gutter) calc(153.6 * var(--u)); position: relative; }
.contact-copy { width: 30vw; }
.contact-introduction { font-size: var(--body-size); font-weight: 300; line-height: var(--body-line); }
.location { margin-top: calc(65 * var(--u)); font-family: var(--sans); font-size: max(1rem, calc(30 * var(--u))); font-weight: 300; line-height: 1.35; }
.location p { margin-top: calc(13 * var(--u)); }
.location .section-label { font-size: max(.875rem, calc(30 * var(--u))); }
.contact-details { display: flex; flex-direction: column; align-items: flex-start; gap: calc(8 * var(--u)); margin-top: calc(50 * var(--u)); font-family: var(--sans); font-size: max(1rem, calc(30 * var(--u))); line-height: 1.35; font-weight: 300; font-style: normal; }
.contact-details a:hover { color: var(--gold); }
.contact-instagram { display: inline-flex; align-items: center; gap: .55em; }
.contact-instagram svg { width: 1em; height: 1em; flex: 0 0 auto; }
.contact-photograph { position: absolute; top: calc(165 * var(--u)); left: 34.6875vw; width: 63.59375vw; height: calc(100vh - 268 * var(--u)); object-fit: cover; }
.page-contact .bottom-menu { bottom: calc(24 * var(--u)); }
.reference-main { min-height: 100vh; padding-top: calc(193 * var(--u)); padding-bottom: calc(170 * var(--u)); }
.gallery { --gallery-height: max(12rem, calc(100svh - 340 * var(--u) - 4rem)); position: relative; height: var(--gallery-height); margin-left: calc(38 * var(--u)); overflow: hidden; }
.gallery-rail { display: flex; align-items: stretch; gap: calc(18 * var(--u)); height: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.gallery-rail::-webkit-scrollbar { display: none; }
.gallery-slide { position: relative; flex: 0 0 auto; height: 100%; overflow: hidden; scroll-snap-align: start; }
.gallery-slide img { max-width: none; width: auto; height: 100%; object-fit: cover; }
.gallery-slide picture { display: block; height: 100%; }
.gallery-slide.source-with-dots { width: calc(var(--gallery-height) * .660183); }
.gallery-slide.source-with-dots img { width: 100%; height: calc(100% + calc(32 * var(--u))); object-fit: cover; object-position: top; }
.gallery-dots { position: absolute; z-index: 4; bottom: calc(5 * var(--u)); left: calc(var(--gallery-height) * .375); display: flex; transform: translateX(-50%); }
.gallery-dot { width: max(14px, calc(14 * var(--u))); height: max(22px, calc(24 * var(--u))); display: flex; align-items: center; justify-content: center; }
.gallery-dot::after { content: ""; display: block; width: max(3px, calc(4 * var(--u))); height: max(3px, calc(4 * var(--u))); border-radius: 50%; background: rgba(255,255,255,.45); transition: background-color 160ms ease; }
.gallery-dot[aria-current="true"]::after, .gallery-dot:hover::after { background: #fff; }
.gallery-dot:focus-visible { outline-color: #fff; outline-offset: -1px; }
.gallery-next, .gallery-previous { position: absolute; top: 50%; transform: translateY(-50%); width: max(44px, calc(48 * var(--u))); height: max(44px, calc(80 * var(--u))); color: var(--gold); z-index: 5; isolation: isolate; display: grid; place-items: center; }
.gallery-next::before, .gallery-previous::before { content: ""; position: absolute; z-index: -1; inset: -1.25rem -2rem; pointer-events: none; background: radial-gradient(ellipse, rgba(255,255,255,.88) 0%, rgba(255,255,255,.64) 24%, rgba(255,255,255,.2) 48%, rgba(255,255,255,0) 72%); opacity: .85; transition: opacity 300ms ease; }
.gallery-next { right: calc(36 * var(--u)); }
.gallery-previous { left: calc(20 * var(--u)); }
.gallery-next:hover::before, .gallery-previous:hover::before, .gallery-next:focus-visible::before, .gallery-previous:focus-visible::before { opacity: 1; }
.gallery-next svg, .gallery-previous svg { width: calc(28 * var(--u)); height: calc(48 * var(--u)); }
.reviews-link { display: flex; align-items: center; justify-content: center; width: 64px; min-height: 44px; margin: max(.75rem, calc(12 * var(--u))) auto 0; scroll-margin-block: 1rem; }
.reviews-link img { width: clamp(1.5rem, 1.75vw, 2rem); height: auto; opacity: .8; transition: opacity 250ms ease; }
.reviews-link:hover img, .reviews-link:focus-visible img { opacity: 1; }
.reviews { padding: calc(92 * var(--u)) var(--gutter) calc(50 * var(--u)); }
.reviews { scroll-margin-top: 2rem; }
.review { max-width: calc(1400 * var(--u)); margin-top: calc(36 * var(--u)); }
.review blockquote { margin: 0; font-size: max(1.35rem, calc(44 * var(--u))); line-height: 1.3; }
.review figcaption { display: flex; gap: .8em; margin-top: calc(32 * var(--u)); font: 300 max(1rem, calc(26 * var(--u)))/1.4 var(--sans); }
.review-company { color: var(--gold); }
body:not(.page-home) .bottom-menu { background: var(--paper); box-shadow: 0 0 18px 10px var(--paper); }
.page-about .logo-link, .page-reference .logo-link { position: absolute; }

.has-reveals .reveal { opacity: 0; transform: translateY(10px); transition: opacity 650ms cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms), transform 650ms cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms); }
.has-reveals .reveal.is-visible { opacity: 1; transform: translateY(0); }
.has-reveals.page-home .reveal { transform: none; transition: opacity 1000ms ease var(--reveal-delay, 0ms); }
.has-reveals.page-home .reveal.is-visible { transform: none; }
.bottom-menu > a.reveal, .bottom-menu > button.reveal, .contact-details > a.reveal { display: inline-block; }
.dialog-is-open { overflow: hidden; }
.project-dialog { width: min(920px, calc(100vw - 64px)); max-height: calc(100dvh - 64px); border: 1px solid var(--muted); margin: auto; padding: 0; color: #909090; background: var(--paper); overflow-y: auto; overscroll-behavior: contain; }
.project-dialog::backdrop { background: rgba(45,45,45,.24); backdrop-filter: blur(3px); }
.project-dialog[open] { animation: dialog-in 350ms cubic-bezier(.22,.61,.36,1) both; }
.project-dialog-header { padding: 30px 36px 24px; border-bottom: 1px solid var(--muted); display: flex; justify-content: space-between; gap: 24px; }
.project-dialog h2 { font: 300 clamp(1.75rem, 3vw, 2.75rem)/1.1 var(--serif); color: var(--ink); }
.project-dialog-header p { font: 300 1rem/1.5 var(--sans); margin-top: 12px; }
.project-close { align-self: flex-start; display: flex; align-items: center; gap: 8px; white-space: nowrap; font: 400 .875rem/1.5 var(--sans); letter-spacing: .06em; }
.project-close > span:last-child { font-size: 1.35rem; line-height: 1; }
.project-close:hover { color: var(--gold); }
.project-form { padding: 28px 36px; display: grid; gap: 24px; font-family: var(--sans); font-weight: 300; }
.project-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 30px; }
.project-field { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.project-field > span, .project-types legend { font-size: .875rem; font-weight: 400; letter-spacing: .11em; line-height: 1.3; }
.project-field small { font-size: .875rem; font-weight: 300; letter-spacing: 0; color: var(--ink); }
.project-field input, .project-field select, .project-field textarea { width: 100%; min-width: 0; padding: 8px 0; border: 0; border-bottom: 1px solid var(--muted); border-radius: 0; color: #777; background: transparent; font: 300 1rem/1.5 var(--sans); }
.project-field input, .project-field select { height: 40px; }
.project-field textarea { min-height: 80px; resize: vertical; }
.project-field input:focus, .project-field select:focus, .project-field textarea:focus { outline: none; border-bottom-color: var(--gold); box-shadow: 0 1px 0 var(--gold); }
.project-field input::placeholder, .project-field textarea::placeholder { color: #aaa; opacity: 1; }
.project-types { border: 0; padding: 0; margin: 0; min-width: 0; }
.project-type-options { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.project-type-options label { position: relative; cursor: pointer; }
.project-type-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.project-type-options span { display: block; padding: 9px 13px; border: 1px solid var(--muted); border-radius: var(--button-radius); font-size: .875rem; letter-spacing: .05em; line-height: 1.2; transition: background-color 400ms ease, border-color 400ms ease; }
.project-type-options input:checked + span, .project-type-options label:hover span { background: var(--yellow); border-color: var(--yellow); }
.project-type-options input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 3px; }
.project-submit { min-height: 46px; border: 1px solid var(--ink); border-radius: var(--button-radius); font: 400 .95rem/1.2 var(--sans); letter-spacing: .08em; transition: background-color 500ms ease, border-color 500ms ease; }
.project-submit:hover, .project-submit:focus-visible { background: var(--yellow); border-color: var(--yellow); }
.project-submit:disabled { cursor: wait; opacity: .65; }
.project-form-hint { margin-top: -14px; font-size: .875rem; line-height: 1.4; text-align: center; }
.project-form-status { font-size: .875rem; line-height: 1.5; }
.project-form-status:empty { display: none; }
.project-form-status a { color: var(--gold); text-decoration: underline; }
.project-dialog[open] .project-dialog-header > *, .project-dialog[open] .project-fields > *, .project-dialog[open] .project-types, .project-dialog[open] .project-description, .project-dialog[open] .project-submit { animation: row-in 550ms cubic-bezier(.22,.61,.36,1) both; }
.project-dialog[open] .project-form > :nth-child(2) { animation-delay: 60ms; }
.project-dialog[open] .project-form > :nth-child(3) > * { animation-delay: 100ms; }
.project-dialog[open] .project-form > :nth-child(4) { animation-delay: 140ms; }
.project-dialog[open] .project-form > :nth-child(5) { animation-delay: 180ms; }
@keyframes row-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dialog-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.mobile-menu-toggle, .mobile-menu { display: none; }

.page-about .project-cta { border-width: max(1px, calc(1 * var(--u))); }
/* One shared layout for phones, tablets and narrow browser windows. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  :root {
    --gutter: max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-left), env(safe-area-inset-right));
    --mobile-header-height: calc(5.5rem + env(safe-area-inset-top));
    --mobile-bottom-space: calc(7rem + env(safe-area-inset-bottom));
  }
  html { scroll-padding-bottom: var(--mobile-bottom-space); }
  body { min-height: 100svh; }
  .page-about { --body-size: clamp(1rem, 1.8vw, 1.25rem); }
  .page-contact { --gutter: max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-left), env(safe-area-inset-right)); }
  .site-header { display: flex; align-items: center; justify-content: flex-start; flex-wrap: nowrap; gap: clamp(.45rem, 2vw, .9rem); min-height: var(--mobile-header-height); padding: calc(1.25rem + env(safe-area-inset-top)) var(--gutter) 1.25rem; }
  .site-header .logo-link { position: static; z-index: 23; width: clamp(7rem, 24vw, 10rem); flex: 0 0 auto; }
  .site-header .project-cta { position: static; z-index: 22; flex: 0 1 auto; margin-left: auto; align-self: center; width: max-content; inline-size: max-content; min-width: 0; max-width: calc(100% - 10rem); height: auto; min-height: 44px; padding: .65rem .75rem; border-radius: var(--button-radius); font-size: clamp(.75rem, 2.6vw, .875rem); line-height: 1.2; text-align: center; white-space: normal; contain: paint; }
  .bottom-menu { display: none; }
  .page-about .bottom-menu, .page-reference .bottom-menu { background: rgba(255,255,255,.94); box-shadow: none; }
  .page-home .bottom-menu { background: transparent; }
  .bottom-menu > a, .bottom-menu > button, .bottom-menu > a.reveal, .bottom-menu > button.reveal { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; white-space: nowrap; }
  .language-switch { min-width: 0; }
  .page-home { --gutter: max(clamp(.75rem, 2.5vw, 1.5rem), env(safe-area-inset-left), env(safe-area-inset-right)); --mobile-header-height: calc(6rem + env(safe-area-inset-top)); }
  .page-home::before { background: #8a8580 url("assets/images/home-grain.png") center / cover no-repeat; }
  .page-home::after { opacity: .06; }
  .page-home .site-header { justify-content: space-between; }
  .page-home .site-header .logo-link { width: clamp(10rem, 46vw, 17rem); }
  .page-home .site-header .project-cta { display: none; }
  .home-main { min-height: calc(100svh - var(--mobile-header-height)); padding: 18svh var(--gutter) calc(1.5rem + env(safe-area-inset-bottom)); display: grid; grid-template-rows: minmax(min-content, 1fr) auto; gap: clamp(2rem, 5svh, 4rem); }
  .home-intro { align-self: center; }
  .home-headline { width: 100%; min-width: 0; font-size: clamp(2rem, 12vw, 6.8rem); line-height: 1.025; letter-spacing: -.018em; }
  .home-project-cta { position: relative; top: auto; right: auto; display: flex; width: max-content; max-width: calc(100% - .375rem); min-width: min(100%, clamp(13rem, 52.5vw, 18rem)); height: auto; min-height: clamp(3.5rem, 14vw, 4.5rem); margin: clamp(1.5rem, 7vw, 2rem) 0 0 .375rem; padding: 1rem 1.5rem; border-width: 1px; font-size: .875rem; line-height: 1.2; white-space: normal; text-align: center; }
  .home-tagline { position: static; margin-top: 0; margin-inline: .5rem; font-size: clamp(.75rem, 2.85vw, .875rem); line-height: 1.45; }
  .headline-line { white-space: normal; }
  .point-line { flex-wrap: nowrap; }
  .point-line > span { min-width: 0; }
  .about-introduction { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 2rem; padding: 2.5rem var(--gutter) 0; }
  .about-copy { width: auto; min-width: 0; padding: 0; font-size: var(--body-size); line-height: 1.55; }
  .about-title { margin-bottom: 1.5rem; }
  .about-copy p + p { margin-top: 1.5rem; }
  .studio-portrait { position: static; width: 100%; height: auto; }
  .about-partners { min-height: 0; padding: 2.5rem var(--gutter) var(--mobile-bottom-space); }
  .partners-introduction { max-width: 42rem; font-size: var(--body-size); line-height: 1.55; }
  .partners-introduction + .partners-introduction { margin-top: 1.5rem; }
  .section-label, .page-about .section-label { font-size: .875rem; line-height: 1.4; }
  .about-partners .section-label { margin-top: 2.5rem; }
  .partner-list, .page-about .partner-list { margin-top: 1rem; font-size: 1rem; line-height: 1.6; }
  .partner-list li + li { margin-top: .4rem; }
  .services-main { min-height: calc(100svh - var(--mobile-header-height)); display: block; padding: clamp(2rem, 8svh, 6rem) var(--gutter) var(--mobile-bottom-space); }
  .service-list { width: 100%; }
  .service-item { height: auto; min-height: 0; padding: 1.125rem 0; }
  .service-heading { font-size: clamp(2rem, 7.2vw, 4.15rem); line-height: 1.24; }
  .service-trigger { align-items: center; gap: 1rem; min-height: 44px; }
  .service-trigger > span:last-child { min-width: 0; }
  .service-symbol { width: 2.75rem; height: 3rem; margin: 0; transform: none; }
  .service-item:nth-child(n) .service-symbol img { width: 100%; height: 100%; transform: none; object-fit: contain; }
  .service-detail { margin-left: 3.75rem; padding-top: .75rem; padding-bottom: .5rem; font-size: .875rem; line-height: 1.6; }
  .service-item.is-open .service-detail { transition-delay: 70ms, 0s, 0s; }
  .contact-main { min-height: calc(100svh - var(--mobile-header-height)); display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 2rem; padding: 2.5rem var(--gutter) var(--mobile-bottom-space); }
  .contact-copy { width: auto; min-width: 0; }
  .contact-introduction { font-size: clamp(1.625rem, 3.8vw, 2.75rem); line-height: 1.3; }
  .location { margin-top: 2rem; font-size: 1rem; line-height: 1.5; }
  .location .section-label { font-size: .875rem; }
  .location p { margin-top: .5rem; }
  .contact-details { gap: .25rem; margin-top: 1.5rem; font-size: 1rem; line-height: 1.5; }
  .contact-details a, .contact-details a.reveal { display: inline-flex; align-items: center; min-height: 44px; }
  .contact-photograph { position: static; width: 100%; height: auto; }
  .reference-main { min-height: 0; padding-top: 2rem; padding-bottom: var(--mobile-bottom-space); }
  .gallery { --gallery-height: clamp(16rem, 58svh, 38rem); height: auto; margin-left: 0; }
  .gallery-rail { height: var(--gallery-height); gap: .75rem; padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .gallery-slide, .gallery-slide.source-with-dots { width: calc(100vw - var(--gutter) * 2); flex: 0 0 calc(100vw - var(--gutter) * 2); }
  .gallery-slide img, .gallery-slide.source-with-dots img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .gallery-slide.source-with-dots img { clip-path: inset(0 0 3% 0); }
  .gallery-dots { position: static; left: auto; bottom: auto; transform: none; justify-content: center; flex-wrap: wrap; padding: .25rem var(--gutter) 0; }
  .gallery-dot { width: clamp(14px, calc((100vw - var(--gutter) * 2) / var(--gallery-count, 14)), 24px); height: 44px; }
  .gallery-dot::after { width: 4px; height: 4px; background: var(--muted); }
  .gallery-dot[aria-current="true"]::after, .gallery-dot:hover::after { background: var(--gold); }
  .gallery-dot:focus-visible { outline-color: var(--gold); }
  .gallery-next, .gallery-previous { top: calc(var(--gallery-height) / 2); width: 44px; height: 44px; }
  .gallery-next { right: calc(var(--gutter) + .25rem); }
  .gallery-previous { left: calc(var(--gutter) + .25rem); }
  .gallery-next svg, .gallery-previous svg { width: 18px; height: 28px; }
  .reviews { padding: 2.5rem var(--gutter) 0; }
  .reviews-link { margin-top: .75rem; }
  .reviews-link img { width: 1.75rem; }
  .review { max-width: 48rem; margin-top: 1.5rem; }
  .review blockquote { font-size: clamp(1.25rem, 2.6vw, 1.75rem); line-height: 1.5; }
  .review figcaption { flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; font-size: 1rem; line-height: 1.5; }
  .project-dialog { width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); }
  .project-dialog-header { position: sticky; top: 0; z-index: 2; gap: 1rem; padding: 1.5rem; background: var(--paper); }
  .project-dialog-header > div { min-width: 0; }
  .project-dialog h2 { font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.15; }
  .project-close { min-height: 44px; font-size: .875rem; padding-left: .5rem; }
  .project-form { padding: 1.5rem; gap: 1.75rem; }
  .project-fields { gap: 1.5rem; }
  .project-field { gap: .5rem; }
  .project-field input, .project-field select { height: 48px; }
  .project-field input, .project-field select, .project-field textarea { font-size: 1rem; scroll-margin-block: 10rem 3rem; }
  .project-type-options { gap: .5rem; }
  .project-type-options span { display: flex; align-items: center; min-height: 44px; padding: .5rem .75rem; }
  .project-submit { min-height: 48px; }
  .project-form-status { overflow-wrap: anywhere; }
  .mobile-menu-toggle { z-index: 23; flex: 0 0 auto; width: clamp(2.75rem, 12vw, 3.625rem); height: 44px; display: flex; flex-direction: column; justify-content: space-between; padding-block: 3px; margin-left: auto; color: var(--gold); }
  .page-home .mobile-menu-toggle { color: #fff; }
  .mobile-menu-toggle span { display: block; width: 100%; height: 1px; background: currentColor; }
  .mobile-menu { position: fixed; z-index: 60; inset: 0; display: flex; flex-direction: column; align-items: flex-start; padding: calc(1.5rem + env(safe-area-inset-top)) var(--gutter) calc(1.75rem + env(safe-area-inset-bottom)); color: var(--ink); background: var(--paper); visibility: hidden; opacity: 0; transform: translateX(-1rem); pointer-events: none; transition: opacity 320ms ease, transform 450ms cubic-bezier(.22,.61,.36,1), visibility 0s linear 450ms; }
  .mobile-menu.is-open { visibility: visible; opacity: 1; transform: translateX(0); pointer-events: auto; transition-delay: 0s; }
  .mobile-menu-close { width: 44px; height: 44px; position: relative; flex: 0 0 auto; margin-left: -.6rem; }
  .mobile-menu-close::before, .mobile-menu-close::after { content: ""; position: absolute; left: 8px; top: 21px; width: 29px; height: 1px; background: currentColor; }
  .mobile-menu-close::before { transform: rotate(45deg); }
  .mobile-menu-close::after { transform: rotate(-45deg); }
  .mobile-menu-nav { position: absolute; top: 50%; left: var(--gutter); transform: translateY(-50%); display: flex; flex-direction: column; align-items: flex-start; margin: 0; font-size: clamp(2rem, min(14vw, 10svh), 6.5rem); line-height: 1.05; letter-spacing: -.025em; }
  .mobile-menu-nav a, .mobile-menu-nav button { text-align: left; }
  .mobile-menu-nav a::after, .mobile-menu-nav .language-switch::after { content: "/"; }
  .mobile-menu-nav a[aria-current="page"] { color: var(--muted); }
  .mobile-menu-nav a:hover, .mobile-menu-nav a:focus-visible, .mobile-menu-nav a:active,
  .mobile-menu-nav .language-switch:hover, .mobile-menu-nav .language-switch:focus-visible, .mobile-menu-nav .language-switch:active { color: var(--gold); }
  .mobile-menu-contact { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; margin-top: auto; font: 300 1rem/1.35 var(--sans); }
  .mobile-menu-contact a { display: inline-flex; align-items: center; gap: .6rem; min-height: 32px; }
  .mobile-menu-contact svg { width: 1.15rem; height: 1.15rem; }
  .mobile-menu-open { overflow: hidden; }
}
@media (max-width: 700px) {
  .site-header { padding-inline: max(.8rem, env(safe-area-inset-left), env(safe-area-inset-right)); gap: .25rem; }
  .site-header .logo-link { width: clamp(6.9rem, 29vw, 8.2rem); }
  .site-header .project-cta { padding-inline: .55rem; max-width: none; }
  .about-introduction { grid-template-columns: minmax(0, 1fr); }
  .contact-main { display: block; }
  .contact-photograph { margin-top: 2rem; }
  .project-dialog { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; }
  .project-dialog-header { padding: calc(1.25rem + env(safe-area-inset-top)) var(--gutter) 1.25rem; }
  .project-form { padding: 1.5rem var(--gutter) calc(2rem + env(safe-area-inset-bottom)); }
  .project-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0s !important; transition-delay: 0s !important; animation: none !important; }
  .has-reveals .reveal { opacity: 1; transform: none; }
  .page-home::before { animation: none; }
}
