@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Tenor Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/tenor-sans-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Tenor Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/tenor-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Tenor Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/tenor-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink: #171717;
  --paper: #f1f1ef;
  --white: #f8f8f6;
  --line: rgba(23, 23, 20, .22);
  --muted: #747474;
  --accent: #74777a;
  --page: clamp(1.25rem, 3.6vw, 4.5rem);
  --sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --serif: "Tenor Sans", "Helvetica Neue", Arial, sans-serif;
  --display: "Tenor Sans", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5.75rem; font-synthesis: none; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.5; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { display: block; width: 100%; }
::selection { color: var(--white); background: var(--ink); }

.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; padding: .75rem 1rem; background: var(--white); color: var(--ink); transform: translateY(-150%); transition: transform .2s; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; z-index: 50; inset: 0 0 auto; height: 5.75rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--page); border-bottom: 1px solid transparent; transition: color .35s, background .35s, border-color .35s; }
.site-header.on-dark { color: var(--white); background: linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.08)); border-color: rgba(255,255,255,.3); }
.site-header.on-light { color: var(--ink); background: rgba(243,241,236,.96); border-color: var(--line); backdrop-filter: blur(14px); }
.brand { justify-self: start; display: block; width: 4.55rem; height: 4.55rem; overflow: hidden; }
.brand-logo { display: block; width: 100%; height: 100%; background: currentColor; -webkit-mask-image: url("assets/logo.png"); mask-image: url("assets/logo.png"); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; mask-mode: luminance; }
.desktop-nav { display: flex; align-items: center; gap: clamp(1.1rem, 2.5vw, 2.8rem); font-size: .77rem; letter-spacing: .08em; text-transform: uppercase; }
.desktop-nav a, .header-contact { position: relative; }
.desktop-nav a::after, .header-contact::after, .text-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.35rem; height: 1px; background: currentColor; transition: right .3s ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after, .header-contact:hover::after, .header-contact:focus-visible::after, .text-link:hover::after, .text-link:focus-visible::after { right: 0; }
.header-contact { justify-self: end; font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 1.1rem; }
.header-actions .header-contact { justify-self: auto; }
.language-switcher { position: relative; }
.language-trigger { display: flex; align-items: center; gap: .35rem; min-width: 3.2rem; border: 0; border-left: 1px solid currentColor; padding: .15rem 0 .15rem .8rem; color: inherit; background: transparent; font-size: .68rem; letter-spacing: .1em; cursor: pointer; }
.language-menu { position: absolute; z-index: 70; top: calc(100% + .8rem); right: 0; width: auto; display: grid; grid-template-columns: repeat(3, 2.7rem); padding: .25rem; border: 1px solid currentColor; border-radius: 99px; backdrop-filter: blur(18px); box-shadow: 0 1rem 3rem rgba(0,0,0,.12); }
.site-header.on-dark .language-menu { color: var(--white); background: rgba(20,20,18,.78); }
.site-header.on-light .language-menu { color: var(--ink); background: rgba(243,241,236,.82); }
.language-menu[hidden] { display: none; }
.language-menu button { min-width: 2.7rem; min-height: 2.35rem; border: 0; border-radius: 99px; padding: .5rem; color: inherit; background: transparent; text-align: center; font-size: .68rem; letter-spacing: .08em; cursor: pointer; }
.language-menu button:hover, .language-menu button:focus-visible, .language-menu button[aria-checked="true"] { background: rgba(127,127,127,.16); }
.language-menu button span { font-size: .7rem; letter-spacing: .1em; }
.language-menu button small { opacity: .65; font-size: .72rem; }
.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; }
.mobile-language-select { display: none; }
.menu-button { display: none; justify-self: end; width: 2.8rem; height: 2.8rem; border: 0; background: transparent; padding: .75rem .35rem; cursor: pointer; }
.menu-button span { display: block; height: 1px; background: currentColor; margin: .35rem 0; transition: transform .3s; }
.menu-open .menu-button span:first-child { transform: translateY(3px) rotate(45deg); }
.menu-open .menu-button span:last-child { transform: translateY(-3px) rotate(-45deg); }

.mobile-menu { position: fixed; z-index: 40; inset: 0; display: grid; align-content: center; gap: 4rem; padding: 7rem var(--page) 3rem; background: var(--ink); color: var(--white); transform: translateY(-100%); visibility: hidden; transition: transform .45s cubic-bezier(.7,0,.2,1), visibility .45s; }
.mobile-menu.is-open { transform: translateY(0); visibility: visible; }
.mobile-menu nav { display: grid; gap: 1.15rem; }
.mobile-menu nav a { font-family: var(--sans); font-size: .88rem; font-weight: 400; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; }
.mobile-menu p { color: rgba(255,255,255,.7); }

.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: #222; }
.hero-image, .hero-shade { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.hero-image { animation: hero-in 1.4s ease both; }
.hero-shade { background: linear-gradient(180deg, rgba(0,0,0,.48) 0%, rgba(0,0,0,.14) 38%, rgba(0,0,0,.76) 100%); }
.hero-kicker { position: absolute; z-index: 2; top: 7.3rem; left: var(--page); margin: 0; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; }
.hero-copy { position: relative; z-index: 2; width: 100%; padding: 0 var(--page) clamp(2rem, 5vw, 4rem); }
.hero-copy h1 { max-width: 14ch; margin: 0; font-size: clamp(2.8rem, 5.3vw, 5.6rem); font-weight: 400; letter-spacing: -.052em; line-height: .9; }
.hero-copy h1 em, .display-copy em, .contact h2 em { font-family: var(--serif); font-style: normal; font-weight: 400; }
.hero-bottom { margin-top: clamp(2rem, 4vw, 4rem); }
.hero-bottom p { margin: 0; max-width: 38ch; color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.35vw, 1.2rem); }

.section-pad { padding: clamp(4.5rem, 8vw, 7.5rem) var(--page); }
.eyebrow { margin: 0 0 2rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .18em; }
.manifesto { background: var(--paper); }
.manifesto-grid { display: grid; grid-template-columns: minmax(0, 2.25fr) minmax(16rem, .75fr); gap: 8vw; align-items: end; }
.display-copy { margin: 0; font-size: clamp(2.5rem, 5vw, 5.2rem); font-weight: 400; letter-spacing: -.058em; line-height: .95; }
.manifesto-note { padding-bottom: .65rem; }
.manifesto-note p { margin: 0 0 2rem; font-size: clamp(1.05rem, 1.4vw, 1.25rem); }
.text-link { position: relative; display: inline-block; padding-bottom: .2rem; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
.text-link.light { color: var(--white); }

.projects { padding-top: 2rem; }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.section-heading .eyebrow { margin-bottom: 1rem; }
.section-heading h2 { margin: 0; font-size: clamp(2.5rem, 4.7vw, 4.8rem); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.project-filters { display: flex; gap: .45rem; flex-wrap: wrap; justify-content: flex-end; }
.project-filters button { border: 1px solid var(--line); border-radius: 99px; background: transparent; padding: .65rem 1rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; transition: color .2s, background .2s; }
.project-filters button:hover, .project-filters button:focus-visible, .project-filters button.is-active { color: var(--paper); background: var(--ink); }
.project-grid { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: clamp(1rem, 2vw, 2.2rem); row-gap: clamp(3.5rem, 8vw, 8rem); }
.project-card { grid-column: span 5; transition: opacity .3s, transform .3s; }
.project-card:nth-child(2), .project-card:nth-child(4) { grid-column: 7 / span 6; }
.project-card.is-hidden { display: none; }
.project-wide figure { aspect-ratio: 1.22; }
.project-tall figure { aspect-ratio: .76; }
.project-card figure { margin: 0; overflow: hidden; background: #ddd; }
.project-card img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.project-card a:hover img { transform: scale(1.025); }
.project-meta { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.15rem; }
.project-meta h3 { margin: 0; font-size: clamp(1.2rem, 2vw, 1.75rem); font-weight: 400; }
.project-meta p { margin: .35rem 0 0; color: var(--muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; text-align: right; }
.all-projects { display: flex; justify-content: space-between; align-items: center; margin-top: clamp(3.5rem, 6vw, 6rem); padding: 1.4rem 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font-size: clamp(1.7rem, 3vw, 3rem); transition: padding .25s; }
.all-projects:hover { padding-inline: 1rem; }
.all-projects span { font-size: .8rem; }

.feature-project { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 48rem; background: var(--ink); color: var(--white); }
.feature-image { min-height: 38rem; overflow: hidden; }
.feature-image img { height: 100%; object-fit: cover; }
.feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 9rem); }
.feature-copy h2 { margin: 0 0 3rem; font-size: clamp(2.8rem, 4.8vw, 5rem); font-weight: 400; letter-spacing: -.058em; line-height: .88; }
.feature-copy > p:not(.eyebrow) { max-width: 35rem; color: rgba(255,255,255,.72); font-size: 1.08rem; }
.feature-copy dl { margin: 3rem 0; border-top: 1px solid rgba(255,255,255,.24); }
.feature-copy dl div { display: flex; justify-content: space-between; padding: .9rem 0; border-bottom: 1px solid rgba(255,255,255,.24); }
.feature-copy dt { color: rgba(255,255,255,.56); }
.feature-copy dd { margin: 0; }

.visual-story { background: var(--white); }
.visual-story-head { display: grid; grid-template-columns: .55fr 1.25fr .7fr; gap: 4vw; align-items: end; margin-bottom: clamp(3rem, 7vw, 7rem); }
.visual-story-head .eyebrow { align-self: start; }
.visual-story-head h2 { margin: 0; font-size: clamp(2.5rem, 4.5vw, 4.7rem); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.visual-story-head > p:last-child { margin: 0; color: #5e5e5e; font-size: 1.05rem; }
.visual-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1rem, 2vw, 2rem); align-items: start; }
.visual-gallery figure { margin: 0; }
.visual-gallery img { height: 100%; object-fit: cover; }
.visual-gallery figcaption { margin-top: .8rem; color: #5e5e5e; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.gallery-landscape { grid-column: 1 / span 7; }
.gallery-landscape img { aspect-ratio: 1.35; }
.gallery-portrait { grid-column: 9 / span 4; margin-top: 12vw !important; }
.gallery-portrait img { aspect-ratio: .72; }
.gallery-square { grid-column: 2 / span 4; margin-top: 5vw !important; }
.gallery-square img { aspect-ratio: 1; }
.gallery-wide { grid-column: 7 / span 6; margin-top: 11vw !important; }
.gallery-wide img { aspect-ratio: 1.25; }

.services-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 9vw; }
.service-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.service-list li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 0 1.5rem; padding: 1.5rem 0 1.8rem; border-bottom: 1px solid var(--line); }
.service-list span { grid-row: 1 / span 2; padding-top: .2rem; font-size: .7rem; }
.service-list h3 { margin: 0; font-size: clamp(1.45rem, 2vw, 2rem); font-weight: 400; }
.service-list p { margin: .55rem 0 0; color: var(--muted); max-width: 36rem; }
.all-services { display: flex; justify-content: space-between; align-items: center; margin-top: clamp(4rem, 8vw, 7rem); padding: 1.4rem 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font-size: clamp(1.35rem, 2.4vw, 2.4rem); transition: padding .25s; }
.all-services:hover { padding-inline: 1rem; }

.process { background: #d7d7d4; }
.process-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 5rem; }
.process-head .eyebrow { margin: 0; }
.process-head h2 { margin: 0; max-width: 14ch; font-size: clamp(2.7rem, 4.3vw, 4.8rem); font-weight: 400; letter-spacing: -.05em; line-height: .98; }
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(23,23,20,.65); }
.process-steps article { min-height: 18rem; padding: 1.5rem 1.5rem 1.5rem 0; border-right: 1px solid rgba(23,23,20,.25); }
.process-steps article + article { padding-left: 1.5rem; }
.process-steps article:last-child { border-right: 0; }
.process-steps h3 { margin: 2.5rem 0 1rem; font-size: 1.75rem; font-weight: 400; }
.process-steps p { margin: 0; color: #5e5e5e; }

.journal-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; }
.journal-lead img { aspect-ratio: 1.35; object-fit: cover; }
.article-type, .journal-list p { margin: 1.25rem 0 .6rem; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }
.journal-lead h3 { margin: 0; max-width: 24ch; font-size: clamp(2rem, 3.3vw, 3.7rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.05; }
.journal-lead h3 + p { max-width: 47rem; color: var(--muted); }
.journal-list { border-top: 1px solid var(--ink); }
.journal-list article { border-bottom: 1px solid var(--line); }
.journal-list a { display: block; padding: .75rem 0 1.5rem; transition: padding .25s; }
.journal-list a:hover { padding-left: 1rem; }
.journal-list h3 { margin: 0 0 2rem; font-size: clamp(1.45rem, 2.3vw, 2.35rem); font-weight: 400; line-height: 1.1; }
.journal-list time { color: var(--muted); font-size: .75rem; }

.contact { position: relative; min-height: 78svh; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--ink); }
.contact::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.48)); }
.contact-image { position: absolute; inset: 0; }
.contact-image img { height: 100%; object-fit: cover; transform: scale(1.02); }
.contact-grid { position: relative; z-index: 2; width: 100%; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2.5rem, 6vw, 7rem); align-items: center; padding: clamp(6rem, 9vw, 8rem) var(--page); }
.contact-inner { position: relative; }
.contact h2 { margin: 0 0 2rem; font-size: clamp(2.8rem, 5vw, 5.5rem); line-height: .88; letter-spacing: -.06em; font-weight: 400; }
.contact-intro { max-width: 35rem; margin: 0; color: rgba(255,255,255,.75); font-size: clamp(1rem, 1.3vw, 1.2rem); }
.contact-details { display: flex; gap: clamp(2rem, 5vw, 5rem); margin-top: 3.5rem; }
.contact-details p { margin: 0; color: rgba(255,255,255,.82); }
.contact-details span { display: block; margin-bottom: .55rem; color: rgba(255,255,255,.46); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }
.project-form { padding: 0; border: 1px solid rgba(255,255,255,.36); background: rgba(255,255,255,.07); backdrop-filter: blur(18px); display: grid; grid-template-columns: 1fr 1fr; gap: 0; box-shadow: 0 1.5rem 5rem rgba(0,0,0,.18); }
.form-field { display: grid; gap: .4rem; }
.form-wide { grid-column: 1 / -1; }
.project-form label { min-height: 6.3rem; padding: 1rem 1.15rem; border-right: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.58); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.project-form label:nth-child(2n), .project-form .form-wide { border-right: 0; }
.project-form input, .project-form select, .project-form textarea { width: 100%; border: 0; border-radius: 0; padding: .7rem 0 0; color: var(--white); background: transparent; font: inherit; outline: 0; }
.project-form textarea { resize: vertical; }
.project-form input::placeholder, .project-form textarea::placeholder { color: rgba(255,255,255,.45); }
.project-form input:focus, .project-form select:focus, .project-form textarea:focus { border-color: var(--white); }
.project-form select option { color: var(--ink); }
.project-form .contact-button { grid-column: 1 / -1; justify-self: stretch; border: 0; border-radius: 0; min-height: 4.4rem; gap: .7rem; cursor: pointer; background: rgba(255,255,255,.06); color: inherit; }
.contact-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.contact-actions a { min-height: 3rem; display: inline-flex; align-items: center; gap: .7rem; padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.4); border-radius: 99px; background: rgba(0,0,0,.12); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(10px); }
.ui-icon { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; }
.contact-button { display: inline-flex; align-items: center; justify-content: center; min-height: 3.6rem; padding: 0 1.7rem; border: 1px solid rgba(255,255,255,.65); border-radius: 99px; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; transition: color .25s, background .25s; }
.contact-button:hover, .contact-button:focus-visible { color: var(--ink); background: var(--white); }

.site-footer { display: grid; grid-template-columns: minmax(12rem, 1.1fr) repeat(3, minmax(10rem, 1fr)); gap: clamp(2rem, 4vw, 5rem); align-items: start; padding: clamp(3.5rem, 6vw, 6rem) var(--page) 2.25rem; color: var(--white); background: var(--ink); border-top: 1px solid rgba(255,255,255,.2); }
.footer-identity { display: flex; min-height: 12rem; flex-direction: column; align-items: flex-start; justify-content: space-between; }
.footer-brand { display: block; width: 8rem; height: 8rem; }
.footer-brand span { display: block; width: 100%; height: 100%; background: var(--white); -webkit-mask-image: url("assets/logo.png"); mask-image: url("assets/logo.png"); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; mask-mode: luminance; }
.site-footer p { margin: 0 0 .75rem; color: rgba(255,255,255,.52); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.site-footer .footer-column > a { display: block; margin: .3rem 0; font-size: .9rem; line-height: 1.65; }
.footer-social-links { display: flex; gap: .55rem; }
.site-footer .footer-social-links a { width: 2.85rem; height: 2.85rem; display: grid; place-items: center; margin: 0; border: 1px solid rgba(255,255,255,.28); color: rgba(255,255,255,.86); background: transparent; transition: color .25s, background .25s, border-color .25s, transform .25s; }
.site-footer .footer-social-links a:hover, .site-footer .footer-social-links a:focus-visible { color: var(--ink); background: var(--white); border-color: var(--white); }
.site-footer .footer-social-links a:hover { transform: translateY(-.18rem); }
.footer-social-links a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.site-footer .footer-email { display: inline-flex; align-items: center; gap: .55rem; }
.site-footer .footer-email .ui-icon { width: 1rem; height: 1rem; }
.site-footer .copyright { margin: 1.5rem 0 0; color: rgba(255,255,255,.68); white-space: nowrap; }

/* Services page */
.subpage-hero { position: relative; min-height: 78svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: #222; }
.subpage-hero img, .subpage-hero::after { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.subpage-hero::after { content: ""; background: linear-gradient(180deg, rgba(0,0,0,.4), rgba(0,0,0,.77)); }
.subpage-hero-copy { position: relative; z-index: 2; width: 100%; padding: 10rem var(--page) clamp(3rem, 6vw, 6rem); }
.subpage-hero h1 { max-width: 12ch; margin: 0; font-size: clamp(2.9rem, 5.8vw, 6.3rem); font-weight: 400; line-height: .88; letter-spacing: -.06em; }
.subpage-hero h1 em { font-family: var(--serif); font-weight: 400; }
.subpage-hero-copy > p:last-child { max-width: 40rem; margin: 2.5rem 0 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 1.4vw, 1.25rem); }
.service-intro { display: grid; grid-template-columns: .55fr 1.45fr; gap: 7vw; align-items: start; }
.service-intro h2 { max-width: 15ch; margin: 0; font-size: clamp(2.4rem, 4vw, 4.5rem); font-weight: 400; line-height: .96; letter-spacing: -.055em; }
.service-intro-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding-top: .7rem; }
.service-intro-copy p { margin: 0; color: #5e5e5e; font-size: 1.08rem; }
.service-detail-list { border-top: 1px solid var(--ink); }
.service-detail { display: grid; grid-template-columns: .3fr .8fr 1.2fr; gap: 3vw; padding: clamp(2rem, 4vw, 4rem) 0; border-bottom: 1px solid var(--line); }
.service-detail > span { font-size: .7rem; letter-spacing: .12em; }
.service-detail h3 { margin: 0; font-size: clamp(1.8rem, 3vw, 3.3rem); font-weight: 400; line-height: 1; letter-spacing: -.045em; }
.service-detail p { margin: 0; color: #5e5e5e; }
.deliverables { background: var(--ink); color: var(--white); }
.deliverables-head { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; margin-bottom: 5rem; align-items: end; }
.deliverables h2 { margin: 0; font-size: clamp(2.9rem, 5.5vw, 6rem); font-weight: 400; line-height: .88; letter-spacing: -.065em; }
.deliverables-head p { max-width: 38rem; margin: 0; color: rgba(255,255,255,.65); }
.deliverables-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.3); }
.deliverables-grid article { min-height: 13rem; padding: 1.5rem 1.5rem 2rem 0; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.deliverables-grid article:nth-child(3n+2), .deliverables-grid article:nth-child(3n+3) { padding-left: 1.5rem; }
.deliverables-grid article:nth-child(3n) { border-right: 0; }
.deliverables-grid h3 { margin: 1.5rem 0 .7rem; font-size: 1.45rem; font-weight: 400; }
.deliverables-grid p { margin: 0; color: rgba(255,255,255,.58); }
.faq { background: #d7d7d4; }
.faq-layout { display: grid; grid-template-columns: .65fr 1fr; gap: 8vw; }
.faq h2 { margin: 0; font-size: clamp(2.8rem, 5vw, 5.2rem); font-weight: 400; line-height: .9; letter-spacing: -.06em; }
.faq-list { border-top: 1px solid var(--ink); }
.faq-list details { border-bottom: 1px solid rgba(23,23,20,.35); }
.faq-list summary { display: flex; justify-content: space-between; gap: 2rem; padding: 1.4rem 0; cursor: pointer; list-style: none; font-size: clamp(1.15rem, 1.7vw, 1.55rem); }
.faq-list summary::after { content: "+"; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 45rem; margin: 0 0 1.6rem; color: #5e5e5e; }
.simple-cta { padding: clamp(6rem, 11vw, 10rem) var(--page); text-align: center; background: var(--paper); }
.simple-cta h2 { max-width: 14ch; margin: 0 auto 2.5rem; font-size: clamp(2.9rem, 5.5vw, 6rem); font-weight: 400; line-height: .88; letter-spacing: -.065em; }
.simple-cta h2 em { font-family: var(--serif); font-weight: 400; }
.simple-cta .contact-button { color: var(--ink); border-color: var(--ink); }
.simple-cta .contact-button:hover { color: var(--white); background: var(--ink); }

/* About */
.about-hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: #222; }
.about-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 28%; }
.about-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.16) 70%), linear-gradient(0deg, rgba(0,0,0,.65), transparent 55%); }
.about-hero-copy { position: relative; z-index: 2; width: 100%; padding: 10rem var(--page) clamp(3rem, 7vw, 6rem); }
.about-hero h1 { max-width: 11ch; margin: 0; font-size: clamp(2.9rem, 5.8vw, 6.3rem); font-weight: 400; line-height: .88; letter-spacing: -.06em; }
.about-hero h1 em, .purpose h2 em { font-family: var(--serif); font-weight: 400; }
.about-hero-copy > p:last-child { max-width: 35rem; margin: 2.5rem 0 0; color: rgba(255,255,255,.78); font-size: 1.15rem; }
.founder { display: grid; grid-template-columns: .42fr 1.58fr; gap: 7vw; }
.founder-year { margin: 1rem 0 0; font-family: var(--serif); font-size: 2rem; font-style: italic; }
.founder-copy h2 { margin: 0; font-size: clamp(2.7rem, 5vw, 5.4rem); font-weight: 400; line-height: .9; letter-spacing: -.06em; }
.founder-lead { max-width: 22ch; margin: 2.5rem 0 4rem; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 3.2rem); line-height: 1.15; }
.prose-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; max-width: 65rem; }
.prose-columns p { margin: 0; color: #5e5e5e; font-size: 1.08rem; }
.purpose { color: var(--white); background: var(--ink); }
.purpose h2 { max-width: 14ch; margin: 0 0 6rem; font-size: clamp(2.9rem, 5.5vw, 6rem); font-weight: 400; line-height: .9; letter-spacing: -.065em; }
.purpose-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.28); }
.purpose-grid article { min-height: 15rem; padding: 1.5rem 2rem 2rem 0; border-right: 1px solid rgba(255,255,255,.2); }
.purpose-grid article + article { padding-left: 2rem; }
.purpose-grid article:last-child { border-right: 0; }
.purpose-grid h3 { margin: 2.4rem 0 1rem; font-size: 1.55rem; font-weight: 400; }
.purpose-grid p { max-width: 28rem; margin: 0; color: rgba(255,255,255,.58); }
.section-sidecopy { max-width: 31rem; margin: 0; color: var(--muted); }
.team-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(2rem, 4vw, 5rem) clamp(1rem, 2vw, 2rem); }
.team-card { grid-column: span 4; }
.team-card:nth-child(4), .team-card:nth-child(5) { grid-column: span 4; transform: translateX(8.33%); }
.team-card img { aspect-ratio: .72; object-fit: cover; object-position: top; }
.team-card h3 { margin: 1.2rem 0 .2rem; font-size: clamp(1.5rem, 2.2vw, 2.2rem); font-weight: 400; }
.team-card p { margin: 0; color: var(--muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.team-card span { display: block; max-width: 25rem; margin-top: .75rem; color: #5e5e5e; }

/* Portfolio */
.collection-hero { position: relative; min-height: 88svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: #222; }
.collection-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.collection-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.76), rgba(0,0,0,.15) 70%); }
.collection-hero > div { position: relative; z-index: 2; width: 100%; padding: 10rem var(--page) clamp(3rem, 7vw, 6rem); }
.collection-hero h1 { margin: 0; font-size: clamp(2.9rem, 5.5vw, 6.1rem); font-weight: 400; line-height: .88; letter-spacing: -.055em; }
.collection-hero h1 em { font-family: var(--serif); font-weight: 400; }
.collection-hero div > p:last-child { max-width: 38rem; margin: 2.5rem 0 0; color: rgba(255,255,255,.75); font-size: 1.1rem; }
.page-back { position: absolute; z-index: 4; top: 7.25rem; left: var(--page); padding-bottom: .25rem; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.5); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.journal-back { display: inline-block; margin-bottom: clamp(4rem, 8vw, 7rem); }
.portfolio-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: clamp(2.5rem, 4vw, 4rem); }
.portfolio-toolbar p { margin: 0; }
.portfolio-masonry { border-top: 1px solid var(--ink); }
.portfolio-item { padding: clamp(2.5rem, 3.5vw, 3.5rem) 0; border-bottom: 1px solid var(--line); }
.portfolio-item.is-hidden { display: none; }
.portfolio-item a { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(18rem, .82fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.portfolio-item:nth-child(even) a { grid-template-columns: minmax(18rem, .82fr) minmax(0, 1.18fr); }
.portfolio-item:nth-child(even) figure { grid-column: 2; }
.portfolio-item:nth-child(even) .portfolio-copy { grid-column: 1; grid-row: 1; }
.portfolio-item figure { margin: 0; overflow: hidden; background: #ddd; }
.portfolio-item figure img { aspect-ratio: 1.35; height: 100%; object-fit: cover; transition: transform .75s; }
.portfolio-item a:hover figure img { transform: scale(1.025); }
.portfolio-copy { max-width: 34rem; }
.portfolio-number { display: block; margin-bottom: clamp(1.4rem, 3vw, 3rem); color: var(--muted); font-family: var(--serif); font-size: 1.25rem; font-style: italic; }
.portfolio-item h2 { margin: 1rem 0 1.5rem; font-size: clamp(2rem, 3.3vw, 3.7rem); font-weight: 400; line-height: .98; letter-spacing: -.05em; }
.portfolio-item p { margin: 0; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }
.portfolio-item .portfolio-description { max-width: 31rem; color: #5e5e5e; font-size: 1rem; line-height: 1.6; letter-spacing: 0; text-transform: none; }
.portfolio-open { display: inline-block; margin-top: 2.5rem; padding-bottom: .25rem; border-bottom: 1px solid var(--ink); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }

/* Project case */
.project-case-hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: #222; }
.project-case-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.project-case-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.75), transparent 70%); }
.project-case-title { position: relative; z-index: 2; width: 100%; padding: 10rem var(--page) clamp(3rem, 6vw, 5rem); }
.project-case-title h1 { max-width: 12ch; margin: 0; font-size: clamp(2.7rem, 5.2vw, 5.6rem); font-weight: 400; line-height: .9; letter-spacing: -.055em; }
.project-overview { display: grid; grid-template-columns: 1.2fr .8fr; gap: 9vw; }
.project-overview h2 { max-width: 15ch; margin: 0; font-size: clamp(2.4rem, 4vw, 4.3rem); font-weight: 400; line-height: .96; letter-spacing: -.05em; }
.project-overview > div:last-child > p { margin: 0 0 3rem; color: #5e5e5e; font-size: 1.12rem; }
.project-overview dl { border-top: 1px solid var(--ink); }
.project-overview dl div { display: flex; justify-content: space-between; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.project-overview dd { margin: 0; }
.project-overview dt { color: var(--muted); }
.case-gallery { padding-top: 0; display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1rem, 2vw, 2rem); }
.case-image { grid-column: span 6; margin: 0; overflow: hidden; }
.case-image.case-wide { grid-column: 1 / -1; }
.case-image img { height: 100%; max-height: 85svh; object-fit: cover; }
.case-image:not(.case-wide) img { aspect-ratio: .88; }
.case-image.case-wide img { aspect-ratio: 1.65; }
.case-image { padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.reading-progress { position: fixed; z-index: 80; top: 0; left: 0; width: 100%; height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; }
.project-story { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2.5rem, 5vw, 6rem); padding-top: 0; }
.project-story article { padding-top: 1.5rem; border-top: 1px solid var(--ink); }
.project-story h2 { margin: 0 0 1.25rem; font-size: clamp(1.7rem, 2.7vw, 3rem); font-weight: 400; line-height: 1; letter-spacing: -.04em; }
.project-story article > p:last-child { margin: 0; color: #5e5e5e; line-height: 1.75; }
.project-pagination { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.project-pagination a { min-height: 7rem; display: flex; align-items: center; padding: 1.5rem var(--page); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; transition: background .2s, color .2s; }
.project-pagination a:last-child { justify-content: flex-end; border-left: 1px solid var(--line); }
.project-pagination a:hover { color: var(--paper); background: var(--ink); }
.lightbox { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: clamp(1rem, 3vw, 3rem); border: 0; color: var(--white); background: rgba(12,12,11,.96); }
.lightbox::backdrop { background: rgba(12,12,11,.96); }
.lightbox[open] { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 3.5rem; place-items: center; }
.lightbox figure { width: 100%; height: 100%; margin: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; place-items: center; }
.lightbox img { width: auto; max-width: 100%; height: auto; max-height: calc(100svh - 7rem); object-fit: contain; }
.lightbox figcaption { padding-top: 1rem; color: rgba(255,255,255,.65); font-size: .7rem; letter-spacing: .12em; }
.lightbox button { width: 3rem; height: 3rem; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: inherit; background: rgba(0,0,0,.18); cursor: pointer; }
.lightbox-close { position: fixed; z-index: 2; top: 1rem; right: 1rem; font-size: 1.5rem; }
.mobile-whatsapp-float { display: none; }

/* Journal index */
.journal-page-head { padding-top: clamp(8rem, 11vw, 10rem); padding-bottom: 3rem; border-bottom: 1px solid var(--line); }
.journal-page-head h1 { margin: 0; font-size: clamp(3rem, 6.5vw, 6.5rem); font-weight: 400; line-height: .88; letter-spacing: -.058em; }
.journal-page-head > p:last-child { max-width: 42rem; margin: 2rem 0 0 auto; color: var(--muted); font-size: 1.15rem; }
.article-index { padding-top: 2.5rem; }
.article-feature a { display: grid; grid-template-columns: 1.25fr .75fr; gap: 5vw; align-items: center; padding-bottom: 5rem; border-bottom: 1px solid var(--ink); }
.article-feature img { aspect-ratio: 1.35; object-fit: cover; }
.article-feature p, .article-list p { color: var(--muted); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.article-feature h2 { margin: 1rem 0 1.5rem; font-size: clamp(2.5rem, 4.5vw, 5rem); font-weight: 400; line-height: 1; letter-spacing: -.05em; }
.article-feature span, .article-list span { color: #5e5e5e; }
.article-list article { border-bottom: 1px solid var(--line); }
.article-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center; padding: 2.15rem 0; }
.article-list h2 { margin: .5rem 0 1rem; font-size: clamp(1.65rem, 3vw, 3rem); font-weight: 400; line-height: 1.04; letter-spacing: -.035em; }
.article-arrow { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink) !important; font-size: 1rem; transition: transform .25s, color .25s, background .25s; }
.article-list a:hover .article-arrow { color: var(--white) !important; background: var(--ink); transform: translate(.2rem,-.2rem); }
.article-page { max-width: 92rem; margin: 0 auto; padding-top: clamp(8rem, 11vw, 10rem); }
.article-page > .text-link { margin-bottom: 3.5rem; }
.article-page > .eyebrow { margin-top: 0; }
.article-page h1 { max-width: 15ch; margin: 0; font-size: clamp(2.7rem, 5vw, 5.3rem); font-weight: 400; line-height: .95; letter-spacing: -.055em; }
.article-deck { max-width: 45rem; margin: 3rem 0 5rem auto; color: #5e5e5e; font-family: var(--serif); font-size: clamp(1.5rem, 2.5vw, 2.5rem); line-height: 1.25; }
.article-hero-image { width: 100%; max-height: 82svh; aspect-ratio: 1.55; object-fit: cover; }
.article-body { max-width: 48rem; margin: 6rem auto 0; }
.article-body h2 { margin: 3.5rem 0 1rem; font-size: clamp(2rem, 3.5vw, 3.5rem); font-weight: 400; letter-spacing: -.04em; }
.article-body p { color: #4f4f4f; font-size: 1.1rem; line-height: 1.8; }

/* Partners */
.partners-hero { min-height: 72svh; display: grid; align-content: center; padding-top: clamp(8rem, 11vw, 10rem); padding-bottom: clamp(4rem, 6vw, 6rem); background: var(--paper); }
.partners-hero h1 { max-width: 14ch; margin: 0; font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 400; line-height: .92; letter-spacing: -.052em; }
.partners-hero h1 em { font-family: var(--serif); font-weight: 400; }
.partners-hero-copy { display: grid; grid-template-columns: 1fr .75fr; gap: 8vw; align-items: end; }
.partners-hero-copy > p { max-width: 35rem; margin: 0; color: var(--muted); font-size: 1.12rem; }
.partner-directory { background: var(--white); }
.partners-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.partner-card { min-height: clamp(8rem, 13vw, 12rem); display: grid; place-items: center; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #a7a7a4; font-size: .67rem; letter-spacing: .14em; text-transform: uppercase; }

/* Services — layered editorial composition */
.service-v2-hero { min-height: 86svh; display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; padding-top: clamp(8rem, 12vw, 11rem); overflow: hidden; }
.service-v2-copy h1 { max-width: 12ch; margin: 0; font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 400; line-height: .94; letter-spacing: -.052em; }
.service-v2-copy > p:last-child { max-width: 38rem; margin: 2.2rem 0 0; color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.material-study { --depth-x: 0; --depth-y: 0; position: relative; min-height: clamp(30rem, 52vw, 47rem); perspective: 1100px; }
.material-study::before { content: ""; position: absolute; inset: 5% 4% 9% 13%; border: 1px solid var(--line); transform: rotateX(calc(var(--depth-y) * -2deg)) rotateY(calc(var(--depth-x) * 2deg)); transition: transform .35s ease-out; }
.material-study figure { position: absolute; margin: 0; overflow: hidden; box-shadow: 0 2rem 5rem rgba(23,23,20,.16); transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.material-study figure img { height: 100%; object-fit: cover; }
.material-study figure:nth-child(1) { width: 68%; height: 69%; top: 4%; right: 3%; transform: translate3d(calc(var(--depth-x) * 7px),calc(var(--depth-y) * 7px),35px) rotate(1.5deg); }
.material-study figure:nth-child(2) { width: 48%; height: 43%; left: 1%; bottom: 3%; transform: translate3d(calc(var(--depth-x) * -11px),calc(var(--depth-y) * -11px),70px) rotate(-3deg); }
.material-study figure:nth-child(3) { width: 31%; height: 38%; right: 5%; bottom: 0; transform: translate3d(calc(var(--depth-x) * 15px),calc(var(--depth-y) * 15px),105px) rotate(4deg); }
.material-orbit { position: absolute; z-index: -1; width: 11rem; height: 11rem; top: 18%; left: 7%; border: 1px solid var(--accent); border-radius: 50%; opacity: .7; transform: rotateX(68deg) rotateZ(calc(var(--depth-x) * 8deg)); }
.service-v2-list { background: var(--white); }
.service-v2-list > header { display: grid; grid-template-columns: 1fr .65fr; gap: 7vw; align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.service-v2-list > header h2 { max-width: 12ch; margin: 0; font-size: clamp(2.5rem, 4.4vw, 4.5rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.service-v2-list > header p { max-width: 34rem; margin: 0; color: var(--muted); }
.service-v2-grid { display: grid; grid-template-columns: repeat(12, 1fr); border-top: 1px solid var(--ink); }
.service-v2-grid article { grid-column: span 4; min-height: 23rem; padding: 2rem 2rem 2.5rem 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-v2-grid article:nth-child(3n+2), .service-v2-grid article:nth-child(3n+3) { padding-left: 2rem; }
.service-v2-grid article:nth-child(3n) { border-right: 0; }
.service-v2-grid article:nth-child(4), .service-v2-grid article:nth-child(5) { grid-column: span 6; min-height: 20rem; }
.service-v2-grid article:nth-child(4) { padding-left: 0; }
.service-v2-grid article:nth-child(5) { padding-left: 2rem; border-right: 0; }
.service-v2-grid h3 { max-width: 15ch; margin: 0 0 1.5rem; font-size: clamp(1.65rem, 2.4vw, 2.5rem); font-weight: 400; line-height: 1.05; letter-spacing: -.035em; }
.service-v2-grid p { max-width: 34rem; margin: 0; color: #5e5e5e; line-height: 1.7; }
.service-v2-grid ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.service-v2-grid li { padding: .45rem .7rem; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }

@media (hover:hover) {
  .portfolio-item figure { transform: perspective(900px) rotateX(0) rotateY(0); transition: transform .55s ease, box-shadow .55s ease; }
  .portfolio-item a:hover figure { transform: perspective(900px) rotateX(.8deg) rotateY(-1.2deg) translateY(-.35rem); box-shadow: 0 2rem 5rem rgba(23,23,20,.13); }
}

@media (max-width: 1150px) and (min-width: 901px) {
  .desktop-nav { gap: .85rem; font-size: .68rem; }
  .header-actions { gap: .65rem; }
  .header-contact { font-size: .66rem; }
}

.reveal { opacity: 0; transform: translateY(1.4rem); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
@keyframes hero-in { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }

@media (max-width: 900px) {
  html { scroll-padding-top: 4.9rem; }
  .site-header { grid-template-columns: 1fr auto; height: 4.9rem; }
  .brand { width: 3.9rem; height: 3.9rem; }
  .desktop-nav, .header-actions { display: none; }
  .menu-button { display: block; }
  .mobile-menu { align-content: start; justify-items: end; gap: 3rem; padding-top: 7.7rem; text-align: right; }
  .mobile-menu nav { justify-items: end; }
  .mobile-menu p { margin: 0; text-align: right; }
  .hero-kicker, .hero-index { top: 6.4rem; }
  .hero-copy h1 { font-size: clamp(2.65rem, 10vw, 4.6rem); }
  .manifesto-grid, .services-layout, .journal-grid, .contact-grid, .service-intro, .faq-layout { grid-template-columns: 1fr; }
  .manifesto-note { max-width: 34rem; }
  .project-grid { grid-template-columns: 1fr; row-gap: 4rem; }
  .project-card, .project-card:nth-child(2), .project-card:nth-child(4) { grid-column: 1; }
  .project-card:nth-child(even) { margin-left: 14vw; }
  .project-card:nth-child(odd) { margin-right: 8vw; }
  .feature-project { grid-template-columns: 1fr; }
  .feature-image { min-height: 60svh; }
  .feature-copy { padding: 5rem var(--page); }
  .visual-story-head { grid-template-columns: 1fr; }
  .visual-story-head > p:last-child { max-width: 38rem; }
  .process-head { align-items: start; flex-direction: column; }
  .process-steps { grid-template-columns: repeat(2, 1fr); }
  .process-steps article:nth-child(2) { border-right: 0; }
  .process-steps article:nth-child(3), .process-steps article:nth-child(4) { border-top: 1px solid rgba(23,23,20,.25); }
  .contact-grid { gap: 4rem; }
  .deliverables-grid { grid-template-columns: repeat(2, 1fr); }
  .deliverables-grid article:nth-child(n) { padding-inline: 1.5rem; border-right: 1px solid rgba(255,255,255,.2); }
  .deliverables-grid article:nth-child(2n) { border-right: 0; }
  .partners-hero-copy { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: repeat(3, 1fr); }
  .service-v2-hero { grid-template-columns: 1fr; min-height: auto; }
  .material-study { width: min(100%, 44rem); min-height: 34rem; }
  .service-v2-list > header { grid-template-columns: 1fr; }
  .service-v2-grid article { grid-column: span 6; border-right: 1px solid var(--line); }
  .service-v2-grid article:nth-child(n) { padding: 2rem; }
  .service-v2-grid article:nth-child(2n) { border-right: 0; }
  .service-v2-grid article:nth-child(5) { grid-column: 1 / -1; }
  .mobile-language-select { display: flex; width: 12rem; align-items: center; justify-content: space-between; color: rgba(255,255,255,.72); text-transform: uppercase; letter-spacing: .1em; }
  .mobile-language-select .language-menu { top: calc(100% + .75rem); bottom: auto; left: auto; right: 0; color: var(--white); background: rgba(20,20,18,.82); text-align: left; }
  .founder, .project-overview { grid-template-columns: 1fr; }
  .team-card { grid-column: span 6; }
  .team-card:nth-child(4), .team-card:nth-child(5) { grid-column: span 6; transform: none; }
  .article-feature a { grid-template-columns: 1fr; }
  .project-story { grid-template-columns: 1fr; }
  .mobile-whatsapp-float { position: fixed; z-index: 35; right: 1rem; bottom: 1rem; min-height: 2.9rem; display: flex; align-items: center; padding: .75rem 1rem; border: 1px solid rgba(255,255,255,.35); color: var(--white); background: rgba(23,23,20,.9); backdrop-filter: blur(12px); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; opacity: 0; transform: translateY(1rem); pointer-events: none; transition: opacity .25s, transform .25s; }
  .mobile-whatsapp-float.is-visible { opacity: 1; transform: none; pointer-events: auto; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-brand, .copyright { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .hero-kicker { max-width: 15rem; }
  .hero-image { object-position: 56% center; }
  .display-copy { font-size: clamp(2.3rem, 9.5vw, 3.5rem); }
  .section-heading { align-items: start; flex-direction: column; gap: 2rem; }
  .project-filters { justify-content: start; }
  .project-card:nth-child(even) { margin-left: 10vw; }
  .project-card:nth-child(odd) { margin-right: 3vw; }
  .project-meta { display: block; }
  .project-meta p { text-align: left; }
  .feature-image { min-height: 52svh; }
  .visual-gallery { grid-template-columns: 1fr; gap: 3.5rem; }
  .gallery-landscape, .gallery-portrait, .gallery-square, .gallery-wide { grid-column: 1; margin: 0 !important; }
  .gallery-portrait { margin-left: 18vw !important; }
  .gallery-square { margin-right: 18vw !important; }
  .process-steps { grid-template-columns: 1fr; }
  .process-steps article, .process-steps article + article { min-height: 14rem; padding: 1.3rem 0 2rem; border-right: 0; border-top: 1px solid rgba(23,23,20,.25); }
  .process-steps article:first-child { border-top: 0; }
  .process-steps h3 { margin-top: 2.5rem; }
  .contact-details, .service-intro-copy, .deliverables-head { display: grid; grid-template-columns: 1fr; }
  .project-form { grid-template-columns: 1fr; }
  .form-wide, .project-form .contact-button { grid-column: 1; }
  .project-form label { border-right: 0; }
  .contact-actions { display: grid; }
  .contact-actions a { justify-content: center; }
  .service-v2-hero { padding-top: 7rem; }
  .material-study { min-height: 25rem; }
  .service-v2-grid { grid-template-columns: 1fr; }
  .service-v2-grid article, .service-v2-grid article:nth-child(4), .service-v2-grid article:nth-child(5) { grid-column: 1; min-height: auto; padding: 2rem 0; border-right: 0; }
  .service-detail { grid-template-columns: 1fr; gap: 1rem; }
  .deliverables-grid { grid-template-columns: 1fr; }
  .deliverables-grid article:nth-child(n) { border-right: 0; }
  .about-hero > img { object-position: 58% top; }
  .prose-columns, .purpose-grid { grid-template-columns: 1fr; }
  .purpose-grid article, .purpose-grid article + article { min-height: 12rem; padding: 1.5rem 0 2rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .team-grid { grid-template-columns: 1fr; }
  .team-card, .team-card:nth-child(4), .team-card:nth-child(5) { grid-column: 1; }
  .portfolio-toolbar { align-items: start; flex-direction: column; }
  .portfolio-item a, .portfolio-item:nth-child(even) a { grid-template-columns: 1fr; gap: 2rem; }
  .portfolio-item:nth-child(even) figure, .portfolio-item:nth-child(even) .portfolio-copy { grid-column: 1; grid-row: auto; }
  .portfolio-number { margin-bottom: 1.5rem; }
  .case-gallery { grid-template-columns: 1fr; }
  .case-image, .case-image.case-wide { grid-column: 1; }
  .case-image img, .case-image.case-wide img, .case-image:not(.case-wide) img { aspect-ratio: .82; }
  .article-list a { grid-template-columns: 1fr auto; gap: 1.2rem; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer { grid-template-columns: 1fr; padding-bottom: 7rem; }
  .footer-brand, .copyright { grid-column: 1; }
}

/* Interior diorama, editorial journal and cursor atmosphere */
.interior-study { --depth-x: 0; --depth-y: 0; position: relative; min-height: clamp(32rem, 51vw, 47rem); perspective: 1200px; transform-style: preserve-3d; isolation: isolate; }
.interior-study::before { content: ""; position: absolute; inset: 9% 3% 7% 5%; border: 1px solid rgba(23,23,20,.16); border-radius: 2.5rem; background: linear-gradient(145deg,rgba(255,255,255,.88),rgba(210,210,207,.34)); box-shadow: 0 3rem 7rem rgba(28,25,20,.13); transform: rotateX(calc(var(--depth-y) * -1.5deg)) rotateY(calc(var(--depth-x) * 1.5deg)); transition: transform .35s ease-out; }
.room-shell { position: absolute; z-index: 1; inset: 16% 7% 11% 10%; transform-style: preserve-3d; transform: translate3d(calc(var(--depth-x) * 5px),calc(var(--depth-y) * 4px),20px); transition: transform .38s ease-out; }
.room-back { position: absolute; inset: 0 6% 35% 16%; overflow: hidden; border-radius: 1.7rem 1.7rem .6rem .6rem; background: linear-gradient(120deg,#d5d5d2,#eeeeec 65%,#c4c4c0); box-shadow: inset 0 0 0 1px rgba(23,23,20,.08); }
.room-back::before { content: ""; position: absolute; width: 34%; height: 74%; right: 10%; bottom: 0; border-radius: 7rem 7rem 0 0; background: #282828; box-shadow: inset 1.2rem 0 2.5rem rgba(0,0,0,.28); }
.room-back::after { content: ""; position: absolute; width: 19%; aspect-ratio: 1; left: 14%; top: 17%; border: 1px solid rgba(23,23,20,.28); border-radius: 50%; box-shadow: 0 0 0 .8rem rgba(255,255,255,.12); }
.room-back i { position: absolute; width: 1px; height: 78%; left: 54%; top: 11%; background: rgba(23,23,20,.16); }
.room-side { position: absolute; width: 20%; height: 58%; left: 0; top: 5%; border-radius: 1rem 0 0 1rem; background: #b4b4b0; clip-path: polygon(22% 0,100% 0,100% 100%,0 80%); }
.room-floor { position: absolute; inset: 52% 0 0 4%; border-radius: .6rem 1.5rem 2.2rem 2rem; background-color: #999a98; background-image: repeating-linear-gradient(94deg,transparent 0,transparent 2.2rem,rgba(45,45,45,.12) 2.25rem,rgba(45,45,45,.12) 2.32rem); clip-path: polygon(12% 0,93% 0,100% 100%,0 88%); box-shadow: 0 2.5rem 3.5rem rgba(48,48,48,.2); }
.mini-rug { position: absolute; z-index: 2; width: 48%; height: 23%; left: 28%; bottom: 17%; border-radius: 50%; background: repeating-radial-gradient(ellipse at center,#b8b8b5 0,#b8b8b5 7px,#a6a6a3 8px,#a6a6a3 9px); transform: translate3d(calc(var(--depth-x) * 7px),calc(var(--depth-y) * 7px),60px) rotate(-5deg); filter: drop-shadow(0 1rem 1rem rgba(32,32,32,.12)); transition: transform .35s ease-out; }
.mini-sofa { position: absolute; z-index: 4; width: 45%; height: 20%; left: 18%; bottom: 20%; border-radius: 1.3rem; background: linear-gradient(155deg,#858585,#606060); box-shadow: 0 1.7rem 2rem rgba(23,23,20,.25); transform: translate3d(calc(var(--depth-x) * -11px),calc(var(--depth-y) * -8px),95px) rotate(-2deg); transition: transform .35s ease-out; }
.mini-sofa::before { content: ""; position: absolute; inset: -46% 3% 42%; border-radius: 1.4rem 1.4rem .45rem .45rem; background: linear-gradient(145deg,#999996,#707070); }
.mini-sofa i { position: absolute; z-index: 2; width: 43%; height: 64%; top: -30%; border-radius: 1rem; border: 1px solid rgba(255,255,255,.16); }
.mini-sofa i:first-child { left: 5%; }.mini-sofa i:nth-child(2) { right: 5%; }.mini-sofa b { position: absolute; inset: auto 8% -9% 8%; height: 15%; border-radius: 99px; background: #313131; }
.mini-table { position: absolute; z-index: 6; width: 22%; aspect-ratio: 1; right: 19%; bottom: 19%; border-radius: 50%; background: radial-gradient(circle at 35% 25%,#e6e6e3,#a5a5a2 62%,#656565); box-shadow: 0 1.5rem 1.8rem rgba(38,38,38,.25); transform: translate3d(calc(var(--depth-x) * 14px),calc(var(--depth-y) * 12px),130px); transition: transform .35s ease-out; }
.mini-table i { position: absolute; width: 12%; height: 80%; left: 44%; top: 55%; border-radius: 99px; background: #393939; transform: rotate(-4deg); }
.mini-lamp { position: absolute; z-index: 5; width: 4px; height: 38%; right: 12%; top: 29%; border-radius: 99px; background: #373737; transform: translate3d(calc(var(--depth-x) * 16px),calc(var(--depth-y) * 9px),105px); transition: transform .35s ease-out; }
.mini-lamp::before { content: ""; position: absolute; width: 6rem; height: 3rem; left: -3rem; top: -1.4rem; border-radius: 50% 50% 1rem 1rem; background: linear-gradient(#858789,#5f6163); box-shadow: 0 .9rem 2.3rem rgba(170,172,174,.42); }
.mini-lamp i { position: absolute; width: 4rem; height: .35rem; left: -2rem; bottom: 0; border-radius: 50%; background: #373737; }
.material-console { position: absolute; z-index: 7; width: 31%; right: 3%; top: 10%; display: grid; grid-template-columns: repeat(3,1fr); gap: .45rem; padding: 1rem; border: 1px solid rgba(255,255,255,.3); border-radius: 1.2rem; color: rgba(255,255,255,.72); background: rgba(35,33,29,.86); box-shadow: 0 1.5rem 4rem rgba(23,23,20,.2); backdrop-filter: blur(12px); transform: translate3d(calc(var(--depth-x) * 18px),calc(var(--depth-y) * 15px),150px) rotate(3deg); transition: transform .35s ease-out; }
.material-console span { grid-column: 1/-1; font-size: .5rem; letter-spacing: .15em; }.material-console i { aspect-ratio: 1; border-radius: .5rem; background: #74777a; }.material-console i:nth-of-type(2) { background: #cacac6; }.material-console i:nth-of-type(3) { background: repeating-linear-gradient(95deg,#454545 0,#454545 6px,#626262 7px,#626262 12px); }
.study-measure { position: absolute; z-index: 8; left: 11%; top: 12%; width: 34%; border-top: 1px solid var(--accent); color: var(--accent); transform: translate3d(calc(var(--depth-x) * -8px),calc(var(--depth-y) * -8px),80px); }.study-measure::before,.study-measure::after { content:""; position:absolute; top:-.3rem; height:.6rem; border-left:1px solid currentColor; }.study-measure::after { right:0; }.study-measure span { display:block; padding-top:.45rem; font-size:.58rem; letter-spacing:.12em; }

.service-scope { color: var(--white); background: #1c1c1c; }
.service-scope-head { display: grid; grid-template-columns: 1fr .62fr; gap: 8vw; align-items: end; margin-bottom: clamp(3.5rem,7vw,6.5rem); }
.service-scope-head h2 { max-width: 13ch; margin: 0; font-size: var(--display-section); font-weight: 400; line-height: .96; letter-spacing: -.05em; }
.service-scope-head > p { max-width: 35rem; margin: 0; color: rgba(255,255,255,.62); font-size: 1.06rem; line-height: 1.75; }
.service-scope-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.55); }
.service-scope-grid article { min-height: 33rem; padding: 2.2rem clamp(1.4rem,2.5vw,2.8rem) 2.5rem; border-right: 1px solid rgba(255,255,255,.2); }.service-scope-grid article:first-child { padding-left: 0; }.service-scope-grid article:last-child { border-right: 0; padding-right: 0; }
.service-scope-grid article > span { color: var(--accent); font-size: .68rem; letter-spacing: .15em; }.service-scope-grid h3 { max-width: 13ch; margin: 4.2rem 0 1.4rem; font-family: var(--serif); font-size: clamp(1.8rem,2.5vw,2.7rem); font-weight: 400; line-height: 1.08; }.service-scope-grid p { color: rgba(255,255,255,.66); line-height: 1.72; }.service-scope-grid ul { margin: 2.2rem 0 0; padding: 0; list-style: none; }.service-scope-grid li { padding: .7rem 0; border-top: 1px solid rgba(255,255,255,.15); font-size: .78rem; letter-spacing: .03em; }.service-scope-note { max-width: 52rem; margin: 4rem 0 0 auto; padding-top: 1.5rem; border-top: 1px solid var(--accent); color: rgba(255,255,255,.78); font-family: var(--serif); font-size: clamp(1.35rem,2.2vw,2.2rem); line-height: 1.35; }

.article-premium-hero { min-height: 94svh; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(22rem,.62fr); gap: 7vw; align-items: center; padding-top: clamp(9rem,12vw,11rem); overflow: hidden; }
.article-hero-copy > .text-link { margin-bottom: clamp(3rem,7vw,6rem); }.article-hero-copy > .eyebrow { margin-bottom: 1.5rem; }.article-hero-copy h1 { max-width: 15ch; margin: 0; font-size: clamp(2.8rem,5vw,5.3rem); font-weight: 400; line-height: .94; letter-spacing: -.055em; text-wrap: balance; }.article-premium-hero .article-deck { max-width: 43rem; margin: 2.5rem 0 0; font-size: clamp(1.25rem,2vw,2rem); }
.article-sculpture { --depth-x:0; --depth-y:0; position: relative; min-height: 34rem; perspective: 1000px; transform-style: preserve-3d; }.article-sculpture::before { content:""; position:absolute; width:82%; aspect-ratio:1; right:-18%; top:5%; border:1px solid rgba(23,23,20,.18); border-radius:50%; transform:rotateX(68deg) rotateZ(15deg); }.editorial-plane { position:absolute; inset:16% 2% 17% 10%; border:1px solid rgba(23,23,20,.15); border-radius:2rem; background-color:#dfdfdc; background-image:linear-gradient(rgba(23,23,20,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(23,23,20,.06) 1px,transparent 1px); background-size:1.25rem 1.25rem; box-shadow:0 2.5rem 5rem rgba(23,23,20,.13); transform:translate3d(calc(var(--depth-x) * 8px),calc(var(--depth-y) * 8px),40px) rotate(5deg); transition:transform .35s ease-out; }.editorial-plane i { position:absolute; display:block; border:2px solid rgba(23,23,20,.45); }.editorial-plane i:first-child { inset:11% 45% 51% 10%; border-right:0; }.editorial-plane i:nth-child(2) { inset:48% 12% 10% 32%; }.editorial-plane i:last-child { width:19%; aspect-ratio:1; right:10%; top:11%; border-radius:50%; }
.editorial-arch { position:absolute; z-index:3; width:39%; height:49%; left:1%; bottom:7%; border-radius:8rem 8rem 1.5rem 1.5rem; background:linear-gradient(145deg,#8d8f91,#626466); box-shadow:0 2rem 4rem rgba(23,23,20,.25); transform:translate3d(calc(var(--depth-x) * -14px),calc(var(--depth-y) * -12px),100px) rotate(-5deg); transition:transform .35s ease-out; }.editorial-arch::after { content:""; position:absolute; inset:22% 20% 0; border-radius:6rem 6rem 0 0; background:#252525; box-shadow:inset 1rem 0 2rem rgba(0,0,0,.28); }.editorial-orb { position:absolute; z-index:5; width:7.5rem; aspect-ratio:1; right:1%; top:15%; border-radius:50%; background:radial-gradient(circle at 33% 28%,#eeeeeb,#b8b9b9 31%,#77797b 67%,#4b4c4d); box-shadow:0 1.6rem 3rem rgba(80,82,84,.28); transform:translate3d(calc(var(--depth-x) * 17px),calc(var(--depth-y) * 15px),135px); transition:transform .35s ease-out; }.editorial-axis { position:absolute; z-index:4; width:52%; height:1px; top:29%; right:3%; background:var(--accent); transform:rotate(-32deg); transform-origin:right; }.article-sculpture small { position:absolute; z-index:6; right:4%; bottom:8%; padding:.7rem 1rem; border:1px solid var(--line); border-radius:99px; background:rgba(243,241,236,.72); backdrop-filter:blur(12px); font-size:.58rem; letter-spacing:.13em; }
.article-reading-layout { display:grid; grid-template-columns:minmax(12rem,.42fr) minmax(0,1fr); gap:clamp(4rem,10vw,11rem); max-width:86rem; margin:auto; padding-top:2rem; }.article-toc { position:relative; }.article-toc > p { margin:0 0 1.4rem; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }.article-toc ol { position:sticky; top:8rem; margin:0; padding:0; list-style:none; border-top:1px solid var(--ink); }.article-toc a { display:grid; grid-template-columns:2rem 1fr; gap:.8rem; padding:1rem 0; border-bottom:1px solid var(--line); color:var(--muted); font-size:.78rem; line-height:1.45; transition:color .2s,padding .2s; }.article-toc a:hover { color:var(--ink); padding-left:.35rem; }.article-toc a span { color:var(--accent); font-size:.6rem; letter-spacing:.1em; }
.article-sections { max-width:50rem; }.article-intro-label { margin:0 0 4rem; color:var(--accent); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; }.article-section { position:relative; padding:0 0 clamp(4.5rem,8vw,7.5rem) 4.7rem; }.article-section::before { content:""; position:absolute; left:.72rem; top:1.55rem; bottom:1.8rem; width:1px; background:linear-gradient(var(--accent),var(--line)); }.article-section > span { position:absolute; left:0; top:.25rem; display:grid; place-items:center; width:1.5rem; aspect-ratio:1; border:1px solid var(--accent); border-radius:50%; color:var(--accent); background:var(--paper); font-size:.52rem; }.article-section h2 { max-width:15ch; margin:0 0 2rem; font-size:clamp(2rem,3.7vw,3.7rem); font-weight:400; line-height:1; letter-spacing:-.045em; }.article-section p { margin:0 0 1.45rem; color:#515151; font-size:clamp(1rem,1.2vw,1.12rem); line-height:1.85; text-wrap:pretty; }.article-keypoints { margin-top:1rem; padding:clamp(2.3rem,5vw,4.5rem); border-radius:2rem; color:var(--white); background:linear-gradient(145deg,#262626,#151515); box-shadow:0 2.5rem 6rem rgba(23,23,20,.18); }.article-keypoints h2 { max-width:15ch; margin:0 0 2.5rem; font-family:var(--serif); font-size:clamp(2rem,3.4vw,3.5rem); font-weight:400; line-height:1.05; }.article-keypoints ul { margin:0; padding:0; list-style:none; counter-reset:point; }.article-keypoints li { counter-increment:point; display:grid; grid-template-columns:2.2rem 1fr; gap:1rem; padding:1.2rem 0; border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.72); }.article-keypoints li::before { content:"0" counter(point); color:var(--accent); font-size:.64rem; letter-spacing:.1em; }
.related-articles { background:#e0e0dd; }.related-articles > header { display:grid; grid-template-columns:1fr .55fr; gap:7vw; align-items:end; margin-bottom:4rem; }.related-articles h2 { margin:0; font-size:var(--display-section); font-weight:400; line-height:.95; letter-spacing:-.05em; }.related-articles > header > p { max-width:32rem; margin:0; color:var(--muted); }.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }.related-grid article { --tilt-x:0deg; --tilt-y:0deg; min-height:24rem; transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)); transform-style:preserve-3d; transition:transform .25s ease,box-shadow .3s; }.related-grid article:hover { box-shadow:0 2rem 5rem rgba(23,23,20,.14); }.related-grid a { height:100%; display:flex; flex-direction:column; padding:1.7rem; border:1px solid rgba(23,23,20,.16); border-radius:1.5rem; background:rgba(251,251,248,.62); backdrop-filter:blur(10px); overflow:hidden; }.related-grid a::before { content:""; position:absolute; width:10rem; aspect-ratio:1; right:-3rem; top:-3rem; border:1px solid rgba(116,119,122,.5); border-radius:50%; transform:rotateX(65deg); }.related-grid a > span { color:var(--accent); font-size:.64rem; letter-spacing:.12em; }.related-grid p { margin:4rem 0 .8rem; color:var(--muted); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }.related-grid h3 { max-width:15ch; margin:0; font-family:var(--serif); font-size:clamp(1.55rem,2.4vw,2.45rem); font-weight:400; line-height:1.08; }.related-grid small { margin-top:auto; padding-top:2rem; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; }

.cursor-atmosphere { position:fixed; z-index:35; left:0; top:0; width:22rem; height:22rem; margin:-11rem 0 0 -11rem; border-radius:50%; pointer-events:none; opacity:0; background:radial-gradient(circle,rgba(116,119,122,.14) 0,rgba(116,119,122,.055) 34%,transparent 70%); filter:blur(4px); mix-blend-mode:multiply; transform:translate3d(var(--cursor-x,-30rem),var(--cursor-y,-30rem),0) scale(.82); transition:opacity .35s,transform .12s linear; will-change:transform; }.cursor-atmosphere.is-visible { opacity:1; transform:translate3d(var(--cursor-x,-30rem),var(--cursor-y,-30rem),0) scale(1); }.cursor-atmosphere::after { content:""; position:absolute; inset:34%; border:1px solid rgba(116,119,122,.32); border-radius:50%; box-shadow:0 0 2rem rgba(116,119,122,.14); }
.cursor-atmosphere.on-dark { background:radial-gradient(circle,rgba(225,225,222,.16) 0,rgba(116,119,122,.08) 35%,transparent 70%); mix-blend-mode:screen; }.cursor-atmosphere.on-interactive::after { inset:30%; border-color:rgba(116,119,122,.58); box-shadow:0 0 2.8rem rgba(116,119,122,.2); }

@media (max-width:900px) {
  .service-scope-head,.related-articles > header { grid-template-columns:1fr; }.service-scope-grid { grid-template-columns:1fr; }.service-scope-grid article { min-height:0; padding:2.5rem 0 3.5rem; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }.service-scope-grid h3 { margin-top:2rem; }
  .article-premium-hero { min-height:auto; grid-template-columns:1fr; padding-bottom:3rem; }.article-sculpture { width:min(100%,35rem); min-height:30rem; margin-inline:auto; }.article-reading-layout { grid-template-columns:1fr; gap:3.5rem; }.article-toc ol { position:static; }.related-grid { grid-template-columns:1fr 1fr; }.related-grid article:last-child { grid-column:1/-1; }.cursor-atmosphere { display:none; }
}
@media (max-width:600px) {
  .interior-study { min-height:29rem; }.material-console { width:38%; right:1%; }.mini-lamp { right:8%; }.service-scope-note { margin-top:3rem; }.article-sculpture { min-height:25rem; }.editorial-orb { width:5.2rem; }.article-section { padding-left:3rem; }.article-keypoints { border-radius:1.4rem; }.related-grid { grid-template-columns:1fr; }.related-grid article:last-child { grid-column:auto; }.related-grid article { min-height:20rem; }
}
@media (prefers-reduced-motion:reduce),(pointer:coarse) { .cursor-atmosphere { display:none; } }

/* Restrained editorial revision */
:root { --paper:#e7e7e4; --white:#f0f0ed; --line:rgba(23,23,20,.19); --muted:#676762; }
body { background:var(--paper); }
.site-header.on-light { background:rgba(231,231,228,.94); }
.service-v2-hero,.article-premium-hero { background:#e4e4e1; }

/* Architectural ambient backgrounds */
.ambient-host{position:relative;overflow:hidden;isolation:isolate;--ambient-x:0;--ambient-y:0}
.ambient-host>.ambient-scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ambient-host>.ambient-scene:after{content:"";position:absolute;inset:0;opacity:.14;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E")}
.ambient-host>*:not(.ambient-scene){position:relative;z-index:1}

.ambient-material{perspective:1100px;background:radial-gradient(circle at 77% 27%,#f7f6f2 0,#e1dfda 43%,#cac8c2 100%)}
.ambient-material-stage{position:absolute;inset:4% -2% -5% 38%;transform-style:preserve-3d;transform:rotateX(calc(6deg + var(--ambient-y)*-3deg)) rotateY(calc(-7deg + var(--ambient-x)*4deg));transition:transform .16s linear}
.ambient-material-stage i{position:absolute;display:block;box-shadow:0 45px 85px rgba(37,37,35,.14),inset 0 1px rgba(255,255,255,.82)}
.ambient-material .mat-arch{width:47%;height:62%;right:12%;top:10%;border:clamp(24px,3vw,48px) solid rgba(70,70,67,.34);border-bottom:0;border-radius:48% 48% 0 0;transform:translateZ(-60px) rotate(-4deg);box-shadow:none}
.ambient-material .mat-stone{width:42%;aspect-ratio:1.25;right:34%;top:22%;border-radius:32px;background:linear-gradient(145deg,#c5c3bd,#eceae5 45%,#b2b0aa);transform:translateZ(20px) rotate(-8deg);animation:ambientStone 9s ease-in-out infinite}
.ambient-material .mat-stone:after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.3;background:radial-gradient(circle at 30% 40%,rgba(65,63,59,.28) 0 1px,transparent 1.7px);background-size:18px 18px}
.ambient-material .mat-glass{width:39%;aspect-ratio:1.45;right:5%;top:47%;border:1px solid rgba(255,255,255,.8);border-radius:34px;background:linear-gradient(135deg,rgba(255,255,255,.64),rgba(170,177,180,.12));backdrop-filter:blur(8px);transform:translateZ(90px) rotate(12deg);animation:ambientGlass 11s ease-in-out infinite}
.ambient-material .mat-metal{width:16%;aspect-ratio:1;right:58%;top:51%;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff,#b6b8b7 32%,#55595a 72%,#dadbd9);transform:translateZ(150px);animation:ambientMetal 8s ease-in-out infinite}
@keyframes ambientStone{50%{transform:translate3d(7px,-13px,38px) rotate(-5deg)}}
@keyframes ambientGlass{50%{transform:translate3d(-10px,11px,112px) rotate(9deg)}}
@keyframes ambientMetal{50%{transform:translate3d(3px,-17px,175px)}}

.ambient-light{background:linear-gradient(138deg,#efeeea 0%,#d7d8d8 58%,#eeede9 100%)}
.ambient-light-orb{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:ambientBreathe 9s ease-in-out infinite}
.ambient-light .orb-one{width:min(42vw,620px);aspect-ratio:1;right:-3%;top:-14%;background:radial-gradient(circle at 42% 40%,rgba(255,255,255,.96),rgba(169,190,201,.2) 43%,transparent 70%)}
.ambient-light .orb-two{width:min(29vw,430px);aspect-ratio:1;right:26%;bottom:-30%;background:radial-gradient(circle,rgba(255,255,255,.82),rgba(184,175,201,.18) 50%,transparent 72%);animation-delay:-4s}
.ambient-light svg{position:absolute;inset:-5%;width:110%;height:110%;transform:translate3d(calc(var(--ambient-x)*11px),calc(var(--ambient-y)*8px),0);transition:transform .16s linear}
.ambient-light path{fill:none;stroke-linecap:round;stroke-dasharray:12 24;animation:ambientTravel 13s linear infinite}
@keyframes ambientTravel{to{stroke-dashoffset:-144}}
@keyframes ambientBreathe{50%{transform:scale(1.07) translateY(-8px);opacity:.82}}

.ambient-textile{background:linear-gradient(136deg,#efede8,#d2cfc9 58%,#e9e6e0)}
.ambient-textile svg{position:absolute;inset:-18% -19% -17% 23%;width:106%;height:135%;filter:drop-shadow(0 34px 36px rgba(48,46,43,.12));transform:translate3d(calc(var(--ambient-x)*12px),calc(var(--ambient-y)*8px),0);transition:transform .18s linear}
.ambient-textile .fabric-one{transform-origin:center;animation:ambientFabric 14s ease-in-out infinite alternate}
.ambient-textile .fabric-two{transform-origin:center;animation:ambientFabric 17s -6s ease-in-out infinite alternate}
@keyframes ambientFabric{from{transform:translate(-7px,7px) rotate(-.7deg)}to{transform:translate(14px,-9px) rotate(1deg)}}
.founder.ambient-host{background:#e5e3de}
.founder.ambient-host>.ambient-textile{opacity:.58}
.founder.ambient-host:before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(235,233,228,.98) 0%,rgba(235,233,228,.9) 43%,rgba(235,233,228,.23) 72%,transparent)}

.ambient-shadow{background:linear-gradient(120deg,#f2f0eb,#d9d7d1 54%,#c7c5bf)}
.ambient-shadow .shadow-disc{position:absolute;width:min(30vw,430px);aspect-ratio:1;right:11%;top:12%;border-radius:50%;background:radial-gradient(circle at 39% 35%,#fff,#e1ded6 56%,#b9b6af);box-shadow:0 42px 80px rgba(52,49,44,.15);animation:ambientDisc 12s ease-in-out infinite}
.ambient-shadow .shadow-louvers{position:absolute;inset:-20% -4% -18% 50%;display:flex;gap:clamp(14px,1.8vw,30px);transform:rotate(17deg) skewY(-5deg) translate3d(calc(var(--ambient-x)*9px),calc(var(--ambient-y)*7px),0);transition:transform .15s linear}
.ambient-shadow .shadow-louvers i{flex:1;border-radius:999px;background:linear-gradient(90deg,rgba(65,66,65,.63),rgba(178,176,170,.48));box-shadow:-34px 42px 32px rgba(31,32,32,.16);animation:ambientLouver 11s ease-in-out infinite alternate}
.ambient-shadow .shadow-louvers i:nth-child(2n){animation-delay:-4s}.ambient-shadow .shadow-louvers i:nth-child(3n){animation-delay:-7s}
@keyframes ambientDisc{50%{transform:translate(-11px,17px) scale(1.035)}}
@keyframes ambientLouver{to{transform:translateY(20px)}}

.journal-page-head.ambient-host{min-height:62svh;display:grid;align-content:end;background:#e4e5e4}
.journal-page-head.ambient-host>p:last-child{margin-right:8%;max-width:38rem}
.partners-hero.ambient-host{background:#e4e2dd}

@media(max-width:760px){
  .ambient-material-stage{inset:7% -38% 28% 4%;opacity:.58}
  .ambient-light svg{inset:-8% -65% 16% 6%;width:165%;height:92%;opacity:.58}
  .ambient-light .orb-one{width:86vw;right:-32%;top:-10%}
  .ambient-textile svg{inset:-4% -72% 28% -10%;width:175%;height:92%;opacity:.48}
  .founder.ambient-host:before{background:linear-gradient(180deg,rgba(235,233,228,.98),rgba(235,233,228,.82) 72%,rgba(235,233,228,.52))}
  .ambient-shadow .shadow-louvers{inset:-7% -30% 36% 33%;opacity:.46}
  .ambient-shadow .shadow-disc{width:58vw;right:-8%;top:11%;opacity:.58}
}
@media(prefers-reduced-motion:reduce){
  .ambient-scene *{animation:none!important;transition:none!important}
  .ambient-material-stage,.ambient-light svg,.ambient-textile svg,.ambient-shadow .shadow-louvers{transform:none!important}
}

/* Softer global chrome */
.site-header.on-light{
  background:rgba(226,226,222,.84);
  border-color:rgba(25,25,24,.14);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);
  backdrop-filter:blur(18px) saturate(1.08)
}
.site-header.on-dark{
  background:rgba(25,25,23,.52);
  border-color:rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(18px) saturate(.92);
  backdrop-filter:blur(18px) saturate(.92)
}
.site-footer{
  background:#484a48;
  border-top-color:rgba(255,255,255,.18)
}
.site-footer p,.footer-credit{color:rgba(255,255,255,.62)}
.site-footer .copyright{color:rgba(255,255,255,.76)}
.site-footer .footer-social-links a{border-color:rgba(255,255,255,.34);color:rgba(255,255,255,.92)}
.service-v2-list { background:#ecece9; }
.faq { background:#e2e2df; }

.service-editorial-index { align-self:stretch; min-height:30rem; display:flex; flex-direction:column; justify-content:space-between; padding:2rem; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); background:rgba(23,23,20,.025); }
.service-editorial-index > p,.service-editorial-index > small { margin:0; color:var(--muted); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; }
.service-editorial-index ol { margin:0; padding:0; list-style:none; }
.service-editorial-index li { display:grid; grid-template-columns:2.5rem 1fr; gap:1rem; padding:1rem 0; border-top:1px solid var(--line); font-family:var(--serif); font-size:clamp(1.05rem,1.6vw,1.45rem); }
.service-editorial-index li:last-child { border-bottom:1px solid var(--line); }
.service-editorial-index li span { padding-top:.25rem; color:var(--accent); font-family:var(--sans); font-size:.58rem; letter-spacing:.1em; }
.service-v2-grid article { min-height:18.5rem; padding-top:1.6rem; padding-bottom:2rem; }
.service-v2-grid article:nth-child(4),.service-v2-grid article:nth-child(5) { min-height:17rem; }
.service-v2-grid h3 { font-size:clamp(1.4rem,2vw,2rem); }
.service-v2-grid p { font-size:.92rem; line-height:1.65; }
.service-v2-grid li { font-size:.58rem; }
.service-scope-grid article { min-height:26rem; }
.service-scope-grid h3 { margin-top:2.7rem; font-size:clamp(1.55rem,2.1vw,2.15rem); }
.service-scope-grid p { font-size:.9rem; line-height:1.65; }
.service-scope-grid li { padding:.58rem 0; font-size:.7rem; }
.service-scope-note { max-width:46rem; font-size:clamp(1.2rem,1.8vw,1.75rem); }

.article-premium-hero { min-height:74svh; grid-template-columns:minmax(0,1fr); align-items:end; }
.article-hero-copy { width:min(100%,72rem); }
.article-edition-panel { min-height:32rem; display:flex; flex-direction:column; justify-content:space-between; padding:1.7rem; border:1px solid rgba(23,23,20,.34); background:#d8d8d4; }
.article-edition-panel > span,.article-edition-panel > small { color:#575752; font-size:.59rem; letter-spacing:.15em; text-transform:uppercase; }
.article-edition-panel > strong { display:block; font-family:var(--serif); font-size:clamp(8rem,15vw,14rem); font-weight:400; line-height:.72; letter-spacing:-.08em; }
.article-edition-panel > div { border-top:1px solid var(--ink); }
.article-edition-panel p { display:flex; justify-content:space-between; margin:0; padding:.7rem 0; border-bottom:1px solid var(--line); color:#4f4f4b; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.article-hero-copy h1 { font-size:clamp(2.65rem,4.35vw,4.65rem); }
.article-premium-hero .article-deck { font-size:clamp(1.12rem,1.65vw,1.62rem); }
.article-section h2 { font-size:clamp(1.85rem,3.1vw,3.1rem); }
.article-section p { font-size:1rem; }
.article-keypoints h2 { font-size:clamp(1.8rem,2.8vw,2.8rem); }

.related-articles { background:#d5d5d1; }
.related-articles > header { margin-bottom:2.7rem; }
.related-articles h2 { font-size:clamp(2.1rem,3.5vw,3.5rem); }
.related-grid { grid-template-columns:1fr; gap:0; border-top:1px solid var(--ink); }
.related-grid article,.related-grid article:hover { min-height:0; box-shadow:none; transform:none!important; }
.related-grid a { min-height:7.8rem; display:grid; grid-template-columns:3rem 9rem minmax(0,1fr) auto; gap:1.25rem; align-items:center; padding:1.3rem 0; border:0; border-bottom:1px solid rgba(23,23,20,.32); border-radius:0; background:transparent; backdrop-filter:none; }
.related-grid a::before { display:none; }
.related-grid a > span { font-size:.58rem; }
.related-grid p { margin:0; font-size:.59rem; }
.related-grid h3 { max-width:31ch; font-family:var(--sans); font-size:clamp(1.05rem,1.7vw,1.45rem); line-height:1.16; }
.related-grid small { margin:0; padding:0; white-space:nowrap; font-size:.59rem; }

.cursor-atmosphere { z-index:34; width:42rem; height:32rem; margin:-16rem 0 0 -21rem; opacity:0; border-radius:48%; background:radial-gradient(ellipse at center,rgba(43,43,40,.15) 0,rgba(43,43,40,.075) 32%,rgba(43,43,40,.025) 51%,transparent 72%); filter:blur(18px); mix-blend-mode:multiply; transform:translate3d(var(--cursor-x,-50rem),var(--cursor-y,-50rem),0); transition:opacity .14s linear; }
.cursor-atmosphere.is-visible { opacity:.82; transform:translate3d(var(--cursor-x,-50rem),var(--cursor-y,-50rem),0); }
.cursor-atmosphere::after { display:none; }
.cursor-atmosphere.on-dark { background:radial-gradient(ellipse at center,rgba(255,255,255,.1),rgba(205,205,198,.045) 40%,transparent 72%); mix-blend-mode:screen; }

@media (max-width:900px) {
  .service-editorial-index { min-height:22rem; }
  .article-edition-panel { min-height:22rem; }
  .article-premium-hero { grid-template-columns:1fr; }
  .related-grid article:last-child { grid-column:auto; }
  .related-grid a { grid-template-columns:2rem 1fr auto; }
  .related-grid p { display:none; }
}
@media (max-width:600px) {
  .service-v2-grid article,.service-v2-grid article:nth-child(4),.service-v2-grid article:nth-child(5) { min-height:0; }
  .article-edition-panel { min-height:18rem; }
  .article-edition-panel > strong { font-size:8rem; }
  .related-grid a { grid-template-columns:1.7rem minmax(0,1fr); gap:.8rem; }
  .related-grid small { grid-column:2; }
}

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

/* Cloudflare content administration */
.admin-page { background: #e7e7e4; }
.admin-shell { width: min(76rem, calc(100% - 2rem)); margin: 0 auto; padding: 4rem 0 8rem; }
.admin-shell > header { display: grid; grid-template-columns: 1fr auto; align-items: end; padding-bottom: 2rem; border-bottom: 1px solid var(--ink); }
.admin-shell > header .eyebrow { grid-column: 1 / -1; }
.admin-shell h1 { margin: 0; font-size: clamp(2.5rem, 6vw, 5.5rem); font-weight: 400; letter-spacing: -.055em; }
.admin-shell h2 { margin-top: 5rem; font-size: 2rem; font-weight: 400; }
.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: 3rem; padding: clamp(1.25rem, 3vw, 3rem); background: var(--white); }
.admin-form label { display: grid; gap: .5rem; color: var(--muted); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.admin-form input, .admin-form select, .admin-form textarea { width: 100%; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: .85rem 0; color: var(--ink); background: transparent; font: 1rem/1.5 var(--sans); }
.admin-wide { grid-column: 1 / -1; }
.admin-form button { justify-self: start; min-height: 3rem; border: 0; padding: .8rem 1.2rem; color: var(--white); background: var(--ink); cursor: pointer; }
.admin-list { border-top: 1px solid var(--ink); }
.admin-list article { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
.admin-list h3, .admin-list p { margin: .2rem 0; }
.admin-list small { color: var(--muted); text-transform: uppercase; }
.admin-list button { min-width: 4.5rem; min-height: 2.75rem; border: 1px solid var(--line); background: transparent; cursor: pointer; }

@media (max-width: 600px) {
  .admin-shell > header, .admin-form { grid-template-columns: 1fr; }
  .admin-wide { grid-column: 1; }
}

/* Rounded interaction language, 3D home carousel and studio credit */
:root {
  --radius-sm: .8rem;
  --radius-md: 1.25rem;
  --radius-lg: 1.85rem;
  --radius-pill: 999px;
}

.project-form {
  gap: .7rem;
  padding: .7rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.project-form label,
.project-form label:nth-child(2n),
.project-form .form-wide {
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,.035);
}
.project-form input,
.project-form select,
.project-form textarea { border-radius: var(--radius-sm); }
.project-form .contact-button {
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius-sm);
}
.portfolio-item figure,
.team-card img,
.article-feature img,
.journal-lead img,
.material-study figure,
.case-image,
.partner-card,
.admin-form { border-radius: var(--radius-md); }
.case-image,
.material-study figure { overflow: hidden; }
.project-filters button,
.contact-actions a,
.contact-button,
.site-footer .footer-social-links a,
.mobile-whatsapp-float,
.admin-form button,
.admin-list button { border-radius: var(--radius-pill); }

.home-projects,
.services { position: relative; overflow: hidden; }
.home-projects { padding-top: clamp(4rem, 7vw, 7rem); }
.carousel-hint { margin: 0 0 .55rem; color: var(--muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.project-carousel { position: relative; outline: 0; touch-action: pan-y; user-select: none; }
.project-carousel-stage { position: relative; height: clamp(36rem, 50vw, 49rem); perspective: 1500px; transform-style: preserve-3d; }
.project-slide {
  --slide-x: 0%;
  --slide-z: 0px;
  --slide-rotate: 0deg;
  --slide-scale: 1;
  --slide-opacity: 1;
  position: absolute;
  top: 0;
  left: 50%;
  width: min(68vw, 64rem);
  opacity: var(--slide-opacity);
  transform: translateX(calc(-50% + var(--slide-x))) translateZ(var(--slide-z)) rotateY(var(--slide-rotate)) scale(var(--slide-scale));
  transform-origin: center;
  transition: transform .68s cubic-bezier(.2,.75,.2,1), opacity .5s ease;
  will-change: transform;
}
.project-slide a { display: block; overflow: hidden; border: 1px solid rgba(23,23,20,.12); border-radius: var(--radius-lg); background: var(--white); box-shadow: 0 2rem 6rem rgba(23,23,20,.14); }
.project-slide figure { margin: 0; overflow: hidden; }
.project-slide figure img { height: clamp(21rem, 34vw, 34rem); object-fit: cover; pointer-events: none; }
.project-slide-copy { display: grid; grid-template-columns: minmax(0,1fr) minmax(15rem,.7fr); gap: .6rem 2.5rem; align-items: end; padding: clamp(1.25rem, 2.4vw, 2rem); }
.project-slide-copy > p:first-child { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.project-slide-copy h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 3.25rem); font-weight: 400; line-height: .95; letter-spacing: -.045em; }
.project-slide-description { margin: 0; color: var(--muted); line-height: 1.55; }
.project-slide-copy > span { grid-column: 1 / -1; margin-top: .8rem; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.project-carousel-controls { position:absolute; z-index:30; inset:0 0 auto; height:clamp(36rem,50vw,49rem); pointer-events:none; }
.project-carousel-controls button { position:absolute; top:43%; display:grid; place-items:center; width:clamp(3.9rem,4.6vw,4.6rem); height:clamp(3.9rem,4.6vw,4.6rem); padding:0; border:1px solid rgba(23,23,20,.28); border-radius:50%; color:var(--ink); background:rgba(231,231,228,.78); box-shadow:0 1rem 2.6rem rgba(23,23,20,.12); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); cursor:pointer; pointer-events:auto; transition:color .22s,background .22s,transform .22s,box-shadow .22s; }
.project-carousel-controls [data-carousel-prev] { left:max(.75rem,calc(50% - min(34vw,32rem) - 5.5rem)); }
.project-carousel-controls [data-carousel-next] { right:max(.75rem,calc(50% - min(34vw,32rem) - 5.5rem)); }
.project-carousel-controls svg { width:1.65rem; height:1.65rem; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
.project-carousel-controls button:hover,
.project-carousel-controls button:focus-visible { color:var(--white); background:var(--ink); transform:scale(1.06); box-shadow:0 1.4rem 3.2rem rgba(23,23,20,.2); }
.project-carousel-controls button:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.project-carousel.is-dragging { cursor: grabbing; }
.project-carousel.is-dragging .project-slide { transition-duration: .12s; }

.section-index-link,
.all-projects,
.all-services {
  min-height: 3.7rem;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  padding: .9rem 0;
  font-size: .72rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.section-index-link span { font-size: .68rem; }
.services-layout { grid-template-columns: minmax(0,.78fr) minmax(28rem,1.22fr); gap: clamp(3rem, 7vw, 8rem); align-items: start; }
.services .display-copy { max-width: 10ch; }
.service-list li { display: block; padding: 1.55rem 0 1.8rem; }
.service-list h3 { max-width: 22ch; line-height: 1.06; }
.service-list p { line-height: 1.65; }

.design-object { position: absolute; z-index: 0; pointer-events: none; }
.home-projects > :not(.design-object),
.services > :not(.design-object) { position: relative; z-index: 1; }
.design-ring { width: clamp(8rem, 13vw, 13rem); aspect-ratio: 1; top: 5rem; right: -3rem; perspective: 800px; opacity: .72; }
.design-ring span { display: block; width: 100%; height: 100%; border: clamp(.8rem, 1.4vw, 1.35rem) solid rgba(116,119,122,.42); border-radius: 50%; background: linear-gradient(145deg, rgba(255,255,255,.7), rgba(116,119,122,.06)); box-shadow: inset .5rem .5rem 1.5rem rgba(255,255,255,.7), 0 2rem 4rem rgba(23,23,20,.12); transform: rotateX(68deg) rotateZ(-18deg); animation: float-ring 8s ease-in-out infinite; }
.design-cube { width: clamp(5rem, 8vw, 8rem); height: clamp(5rem, 8vw, 8rem); top: 7rem; right: 2vw; opacity: .38; transform-style: preserve-3d; animation: float-cube 10s ease-in-out infinite; }
.design-cube i { position: absolute; inset: 0; display: block; border: 1px solid rgba(116,119,122,.55); border-radius: 1.25rem; background: linear-gradient(145deg, rgba(255,255,255,.8), rgba(116,119,122,.14)); box-shadow: 0 1.5rem 3rem rgba(23,23,20,.08); }
.design-cube i:nth-child(2) { transform: translate3d(-1.2rem,1.2rem,-2rem) scale(.82); opacity: .65; }
.design-cube i:nth-child(3) { transform: translate3d(-2.2rem,2.2rem,-4rem) scale(.66); opacity: .42; }
@keyframes float-ring { 0%,100% { transform: translateY(0) rotateX(68deg) rotateZ(-18deg); } 50% { transform: translateY(-1.2rem) rotateX(64deg) rotateZ(-8deg); } }
@keyframes float-cube { 0%,100% { transform: translateY(0) rotate(8deg); } 50% { transform: translateY(-1.4rem) rotate(-3deg); } }

.footer-credit { grid-column: 1 / -1; width: 100%; display: flex; align-items: center; justify-content: flex-end; gap: .8rem; margin-top: clamp(1rem, 2vw, 2rem); padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.5); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; }
.site-footer .footer-credit a { display: block; margin: 0; }
.footer-credit img { width: 7.6rem; height: auto; object-fit: contain; }

/* Project films */
.project-films { color: var(--white); background: var(--ink); }
.project-films-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); gap: clamp(3rem, 9vw, 10rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.project-films-head h2 { max-width: 12ch; margin: .7rem 0 0; font-size: clamp(2.5rem, 5vw, 5.4rem); font-weight: 400; line-height: .92; letter-spacing: -.06em; }
.project-films-head > div:last-child > p { max-width: 34rem; margin: 0 0 1.5rem; color: rgba(255,255,255,.67); line-height: 1.7; }
.project-films-head a { display: inline-flex; align-items: center; gap: .7rem; padding: .75rem 1rem; border: 1px solid rgba(255,255,255,.28); border-radius: var(--radius-pill); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; transition: color .25s, background .25s; }
.project-films-head a:hover, .project-films-head a:focus-visible { color: var(--ink); background: var(--white); }
.video-showcase { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(17rem, .45fr); gap: clamp(1.25rem, 3vw, 3rem); align-items: stretch; }
.video-stage { position: relative; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-lg); background: #090909; }
.video-stage-poster { position: relative; width: 100%; height: 100%; display: block; overflow: hidden; padding: 0; border: 0; border-radius: inherit; color: var(--white); background: #090909; cursor: pointer; text-align: left; }
.video-stage-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.68)); }
.video-stage-poster > img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.video-stage-poster:hover > img { transform: scale(1.025); }
.video-play-mark { position: absolute; z-index: 2; inset: 50% auto auto 50%; width: 5.2rem; height: 5.2rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(20,20,18,.25); backdrop-filter: blur(12px); transform: translate(-50%,-50%); transition: color .25s, background .25s, transform .25s; }
.video-play-mark .ui-icon { width: 1.7rem; height: 1.7rem; }
.video-stage-poster:hover .video-play-mark { color: var(--ink); background: var(--white); transform: translate(-50%,-50%) scale(1.05); }
.video-stage-label { position: absolute; z-index: 2; right: clamp(1.25rem, 3vw, 2.5rem); bottom: clamp(1.25rem, 3vw, 2.5rem); left: clamp(1.25rem, 3vw, 2.5rem); display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.video-stage-label small { font-size: .66rem; letter-spacing: .13em; text-transform: uppercase; }
.video-stage-label strong { max-width: 28rem; font-size: clamp(1.25rem, 2vw, 2rem); font-weight: 400; line-height: 1.1; text-align: right; }
.video-stage iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-external-link { position: absolute; z-index: 3; right: 1rem; bottom: 1rem; display: inline-flex; align-items: center; min-height: 2.6rem; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.4); border-radius: var(--radius-pill); color: var(--white); background: rgba(17,17,15,.72); backdrop-filter: blur(10px); font-size: .64rem; letter-spacing: .11em; text-transform: uppercase; transition: color .25s, background .25s; }
.video-external-link:hover, .video-external-link:focus-visible { color: var(--ink); background: var(--white); }
.video-playlist { display: grid; align-content: stretch; border-top: 1px solid rgba(255,255,255,.22); }
.video-choice { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.25rem 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.55); background: transparent; cursor: pointer; text-align: left; transition: color .25s, padding .25s; }
.video-choice > span { font-size: .65rem; letter-spacing: .1em; }
.video-choice strong { font-size: .86rem; font-weight: 400; line-height: 1.35; }
.video-choice:hover, .video-choice:focus-visible, .video-choice.is-active { color: var(--white); padding-left: .65rem; }
.video-choice.is-active strong { font-family: var(--serif); font-size: 1rem; }

/* Final visual audit: compact rhythm, unified display scale and premium motion */
:root {
  --display-title: clamp(2.8rem, 5.3vw, 5.6rem);
  --display-section: clamp(2.4rem, 4.6vw, 4.8rem);
}

.hero-copy h1,
.subpage-hero h1,
.about-hero h1,
.collection-hero h1,
.project-case-title h1,
.journal-page-head h1,
.article-page h1,
.partners-hero h1,
.service-v2-copy h1 { font-size: var(--display-title); }

.display-copy,
.founder-copy h2,
.purpose h2,
.deliverables h2,
.faq h2,
.simple-cta h2,
.project-films-head h2 { font-size: var(--display-section); }

.hero-architecture-lines { position: absolute; z-index: 1; inset: 0; pointer-events: none; perspective: 1200px; overflow: hidden; }
.hero-architecture-lines i { position: absolute; display: block; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; box-shadow: inset 0 0 3rem rgba(255,255,255,.04); transform-style: preserve-3d; }
.hero-architecture-lines i:first-child { width: clamp(17rem, 31vw, 34rem); aspect-ratio: 1; right: -8%; top: 14%; transform: rotateX(67deg) rotateZ(-17deg); animation: hero-orbit-a 12s ease-in-out infinite; }
.hero-architecture-lines i:last-child { width: clamp(8rem, 15vw, 16rem); aspect-ratio: 1; right: 28%; bottom: -4%; border-color: rgba(116,119,122,.42); transform: rotateX(71deg) rotateZ(18deg); animation: hero-orbit-b 10s ease-in-out infinite; }
@keyframes hero-orbit-a { 0%,100% { transform: translateY(0) rotateX(67deg) rotateZ(-17deg); } 50% { transform: translateY(-1.1rem) rotateX(63deg) rotateZ(-9deg); } }
@keyframes hero-orbit-b { 0%,100% { transform: translateY(0) rotateX(71deg) rotateZ(18deg); } 50% { transform: translateY(-.8rem) rotateX(67deg) rotateZ(27deg); } }

.project-slide > a { position: relative; transform: perspective(1300px) rotateX(var(--card-rx, 0deg)) rotateY(var(--card-ry, 0deg)) translateZ(var(--card-z, 0)); transform-style: preserve-3d; transition: transform .28s cubic-bezier(.2,.75,.2,1), box-shadow .35s ease; }
.project-slide > a::after { content: ""; position: absolute; z-index: 3; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; background: radial-gradient(circle at var(--glare-x, 50%) var(--glare-y, 50%), rgba(255,255,255,.25), transparent 34%); transition: opacity .3s; }
.project-slide.is-active > a:hover { --card-z: 20px; box-shadow: 0 3rem 7rem rgba(23,23,20,.2); }
.project-slide.is-active > a:hover::after { opacity: .42; }
.project-slide.is-active figure { transform: translateZ(18px); transition: transform .35s ease; }
.project-slide.is-active .project-slide-copy { position: relative; z-index: 4; transform: translateZ(28px); transition: transform .35s ease; }

/* CSS-built architectural material study: no repeated project photography */
.architectural-study { --depth-x: 0; --depth-y: 0; position: relative; min-height: clamp(31rem, 52vw, 47rem); perspective: 1200px; transform-style: preserve-3d; }
.architectural-study::before { content: ""; position: absolute; inset: 9% 4% 8% 8%; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.55), rgba(210,210,207,.16)); box-shadow: 0 2.5rem 6rem rgba(23,23,20,.1); transform: rotateX(calc(var(--depth-y) * -2deg)) rotateY(calc(var(--depth-x) * 2deg)); transition: transform .35s ease-out; }
.study-plan { position: absolute; z-index: 1; width: 66%; height: 54%; top: 12%; right: 5%; border: 1px solid rgba(23,23,20,.2); border-radius: var(--radius-md); background-color: #e2e2df; background-image: linear-gradient(rgba(23,23,20,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(23,23,20,.08) 1px, transparent 1px); background-size: 1.25rem 1.25rem; box-shadow: 0 2rem 4rem rgba(23,23,20,.14); transform: translate3d(calc(var(--depth-x) * 8px),calc(var(--depth-y) * 8px),35px) rotate(3deg); transition: transform .4s ease-out; }
.study-plan i { position: absolute; display: block; border: solid #696969; opacity: .72; }
.study-plan i:nth-child(1) { inset: 13% 15% 52% 12%; border-width: 2px 2px 0; }
.study-plan i:nth-child(2) { inset: 48% 42% 12% 12%; border-width: 2px 0 2px 2px; }
.study-plan i:nth-child(3) { width: 24%; height: 38%; right: 15%; bottom: 12%; border-width: 2px; }
.study-plan i:nth-child(4) { width: 18%; height: 18%; left: 38%; top: 28%; border-width: 2px; border-radius: 50%; }
.study-arch { position: absolute; z-index: 3; width: 39%; height: 48%; left: 5%; bottom: 6%; overflow: hidden; border-radius: 8rem 8rem var(--radius-lg) var(--radius-lg); background: linear-gradient(145deg,#929496,#717375); box-shadow: 0 2rem 4rem rgba(23,23,20,.22); transform: translate3d(calc(var(--depth-x) * -13px),calc(var(--depth-y) * -13px),95px) rotate(-4deg); transition: transform .4s ease-out; }
.study-arch i { position: absolute; width: 58%; height: 70%; left: 21%; bottom: 0; border-radius: 6rem 6rem 0 0; background: #292929; box-shadow: inset 1.2rem 0 2rem rgba(0,0,0,.22); }
.study-swatch { position: absolute; z-index: 5; width: 26%; aspect-ratio: 1.22; display: flex; flex-direction: column; justify-content: space-between; padding: 1rem; border: 1px solid rgba(255,255,255,.35); border-radius: var(--radius-md); box-shadow: 0 1.5rem 3rem rgba(23,23,20,.2); color: rgba(255,255,255,.76); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; transition: transform .4s ease-out; }
.study-swatch small { font-size: .58rem; }
.study-stone { right: 4%; bottom: 5%; background: linear-gradient(135deg,#bebebb,#8b8b89); transform: translate3d(calc(var(--depth-x) * 16px),calc(var(--depth-y) * 16px),125px) rotate(6deg); }
.study-wood { width: 22%; right: 25%; bottom: 1%; background: repeating-linear-gradient(95deg,#454545 0,#454545 9px,#565656 10px,#383838 18px); transform: translate3d(calc(var(--depth-x) * 11px),calc(var(--depth-y) * 11px),105px) rotate(-8deg); }
.study-light { position: absolute; z-index: 4; width: 7.5rem; aspect-ratio: 1; left: 10%; top: 7%; border-radius: 50%; background: radial-gradient(circle at 35% 30%,#f1f1ef 0,#bfc0c1 24%,#74777a 55%,rgba(116,119,122,.08) 72%); filter: drop-shadow(0 0 2rem rgba(191,192,193,.36)); transform: translate3d(calc(var(--depth-x) * -8px),calc(var(--depth-y) * -8px),115px); }
.study-light i { position: absolute; width: 1px; height: 7rem; left: 50%; bottom: 100%; background: var(--ink); }
.study-axis { position: absolute; z-index: 2; width: 46%; height: 1px; right: 4%; top: 18%; background: var(--accent); transform-origin: right; transform: rotate(-28deg); opacity: .55; }

.about-hero { --depth-x: 0; --depth-y: 0; perspective: 1200px; }
.about-hero > img { transform: scale(1.055) translate3d(calc(var(--depth-x) * -7px),calc(var(--depth-y) * -7px),0); transition: transform .45s ease-out, filter .4s; }
.about-hero-copy { transform: translate3d(calc(var(--depth-x) * 8px),calc(var(--depth-y) * 5px),35px); transition: transform .4s ease-out; }
.about-orbit { position: absolute; z-index: 2; width: clamp(9rem,18vw,18rem); aspect-ratio: 1; right: 9%; bottom: 11%; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; transform: translate3d(calc(var(--depth-x) * -15px),calc(var(--depth-y) * -10px),60px) rotateX(68deg); box-shadow: inset 0 0 2rem rgba(255,255,255,.06); transition: transform .4s ease-out; pointer-events: none; }
.about-hero h1 { font-size: clamp(2.7rem, 4.45vw, 4.75rem); }
.founder-copy h2 { font-size: clamp(2.45rem, 4vw, 4.35rem); }
.founder-lead { max-width: 28ch; font-size: clamp(1.45rem, 2.3vw, 2.45rem); }
.team .section-heading h2 { font-size: clamp(2.45rem, 4vw, 4.35rem); }
.team-card { --tilt-x: 0deg; --tilt-y: 0deg; transform: perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(0); transform-style: preserve-3d; transition: transform .28s cubic-bezier(.2,.75,.2,1); }
.team-card img { box-shadow: 0 1.5rem 3.5rem rgba(23,23,20,.08); transition: filter .4s, box-shadow .35s; }
.team-card:hover img { box-shadow: 0 2.25rem 5rem rgba(23,23,20,.16); }

.motion-entry { width: fit-content; min-height: 3.8rem; display: inline-grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center; margin-top: 2.25rem; padding: .75rem .85rem; border: 1px solid rgba(255,255,255,.44); border-radius: var(--radius-pill); background: rgba(15,15,13,.28); backdrop-filter: blur(14px); transition: color .25s, background .25s, transform .25s; }
.motion-entry .ui-icon { width: 1.3rem; height: 1.3rem; }
.motion-entry span { display: grid; line-height: 1.2; }
.motion-entry small { margin-bottom: .22rem; color: rgba(255,255,255,.58); font-size: .58rem; letter-spacing: .13em; text-transform: uppercase; }
.motion-entry i { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.12); font-style: normal; transition: transform .25s; }
.motion-entry:hover, .motion-entry:focus-visible { color: var(--ink); background: var(--white); transform: translateY(-2px); }
.motion-entry:hover small, .motion-entry:focus-visible small { color: var(--muted); }
.motion-entry:hover i, .motion-entry:focus-visible i { transform: translateY(.2rem); }

.article-page { max-width: 82rem; }
.article-deck { margin-bottom: clamp(3.5rem, 6vw, 5.5rem); }
.article-body { margin-top: 0; }
.article-body p { text-wrap: pretty; }

.site-footer {
  grid-template-columns: minmax(10rem, 1.15fr) repeat(3, minmax(9rem, 1fr)) minmax(12rem, .9fr);
  gap: clamp(1.5rem, 3vw, 3.5rem);
  padding: clamp(2.25rem, 3.5vw, 3.5rem) var(--page) 2rem;
}
.footer-identity { min-height: 8.25rem; }
.footer-brand { width: 6.4rem; height: 6.4rem; }
.site-footer .copyright { margin-top: .75rem; }
.footer-credit { grid-column: auto; width: auto; align-self: start; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .55rem; margin: 0; padding: 0; border-top: 0; line-height: 1.45; }
.footer-credit img { width: 6.7rem; }

@media (max-width: 1100px) and (min-width: 901px) {
  .site-footer { grid-template-columns: 1.15fr repeat(3, 1fr); }
  .footer-credit { grid-column: 2 / -1; flex-direction: row; align-items: center; justify-content: flex-end; }
}

@media (max-width: 900px) {
  .services-layout { grid-template-columns: 1fr; }
  .services .display-copy { max-width: 12ch; }
  .project-carousel-stage { height: clamp(33rem, 78vw, 43rem); }
  .project-slide { width: min(79vw, 48rem); }
  .project-slide figure img { height: clamp(20rem, 48vw, 29rem); }
  .project-carousel-controls { height:clamp(33rem,78vw,43rem); }
  .project-carousel-controls [data-carousel-prev] { left:max(.7rem,calc(50% - min(39.5vw,24rem) - 4.5rem)); }
  .project-carousel-controls [data-carousel-next] { right:max(.7rem,calc(50% - min(39.5vw,24rem) - 4.5rem)); }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-identity { min-height: 10rem; }
  .footer-credit { grid-column: 1 / -1; }
  .project-films-head, .video-showcase { grid-template-columns: 1fr; }
  .video-playlist { grid-template-columns: repeat(2, 1fr); }
  .video-choice:nth-child(odd) { padding-right: 1rem; border-right: 1px solid rgba(255,255,255,.22); }
  .video-choice:nth-child(even) { padding-left: 1rem; }
  .video-choice:nth-child(even):hover, .video-choice:nth-child(even):focus-visible, .video-choice:nth-child(even).is-active { padding-left: 1.65rem; }
  .hero-copy h1,
  .subpage-hero h1,
  .about-hero h1,
  .collection-hero h1,
  .project-case-title h1,
  .journal-page-head h1,
  .article-page h1,
  .partners-hero h1,
  .service-v2-copy h1 { font-size: clamp(2.65rem, 10vw, 4.6rem); }
  .footer-identity { min-height: auto; }
  .footer-credit { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: flex-start; }
  .architectural-study { width: min(100%, 44rem); min-height: 35rem; margin-inline: auto; }
  .about-hero h1 { font-size: clamp(2.55rem, 8.5vw, 4rem); }
}

@media (max-width: 600px) {
  .carousel-hint { display: none; }
  .project-carousel-stage { height: 35rem; }
  .project-slide { width: 84vw; }
  .project-slide figure img { height: 22rem; }
  .project-slide-copy { grid-template-columns: 1fr; gap: .55rem; }
  .project-slide-description { font-size: .88rem; }
  .project-slide-copy > span { grid-column: 1; }
  .project-carousel-controls { height:35rem; }
  .project-carousel-controls button { top:32%; width:3.45rem; height:3.45rem; background:rgba(231,231,228,.86); }
  .project-carousel-controls [data-carousel-prev] { left:.45rem; }
  .project-carousel-controls [data-carousel-next] { right:.45rem; }
  .design-ring { top: 4rem; width: 7rem; opacity: .42; }
  .design-cube { top: 5rem; right: -1rem; opacity: .26; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-identity { min-height: auto; gap: .75rem; }
  .footer-credit { grid-column: 1; justify-content: flex-start; flex-wrap: wrap; }
  .site-footer { gap: 1.75rem; padding-top: 2.5rem; padding-bottom: 6rem; }
  .footer-brand { width: 5.7rem; height: 5.7rem; }
  .footer-credit { flex-direction: column; align-items: flex-start; gap: .4rem; }
  .motion-entry { width: 100%; max-width: 22rem; }
  .hero-architecture-lines i:first-child { right: -28%; top: 18%; }
  .hero-architecture-lines i:last-child { right: 12%; }
  .architectural-study { min-height: 27rem; }
  .study-light { width: 5rem; }
  .study-swatch { padding: .7rem; }
  .about-orbit { right: -8%; bottom: 18%; opacity: .65; }
  .video-stage { aspect-ratio: 4 / 5; }
  .video-stage-poster > img { object-position: center; }
  .video-play-mark { width: 4.4rem; height: 4.4rem; }
  .video-stage-label { display: grid; gap: .5rem; }
  .video-stage-label strong { text-align: left; }
  .video-playlist { grid-template-columns: 1fr; }
  .video-choice:nth-child(n) { padding-inline: 0; border-right: 0; }
  .video-choice:nth-child(n):hover, .video-choice:nth-child(n):focus-visible, .video-choice:nth-child(n).is-active { padding-left: .65rem; }
}

/* Monochrome brand palette */
:root{--ink:#171717;--paper:#e7e7e5;--white:#f7f7f5;--muted:#6f6f6c;--accent:#74777a;--line:rgba(23,23,23,.2)}
/* Decorative 3D concepts are paused until the replacement direction is approved. */
.hero-architecture-lines,
.design-object { display:none; }

/* Journal article: architectural cover without editorial numbering */
.article-edition-panel {
  gap: 1.2rem;
  justify-content: flex-start;
}
.article-panel-statement {
  flex: 1 1 auto;
  min-height: 17rem;
  display: grid;
  align-content: center;
  gap: 2rem;
  padding: 2rem 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.article-panel-statement p {
  display: block;
  max-width: 16ch;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.55rem,2.5vw,2.4rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-transform: none;
}
.article-panel-statement span {
  width: 4.5rem;
  height: 1px;
  background: var(--ink);
}
.article-edition-panel > .article-panel-meta { border-top: 1px solid var(--ink); }
.article-panel-meta p { justify-content: flex-start; }
.article-edition-panel > small { margin-top: auto; }

.article-toc a {
  display: block;
  padding: 1rem 0;
}
.article-section {
  padding-left: 0;
  border-top: 1px solid var(--line);
  padding-top: 2rem;
}
.article-section::before,
.article-section > span { display: none; }
.article-keypoints ul { counter-reset: none; }
.article-keypoints li {
  counter-increment: none;
  grid-template-columns: .8rem 1fr;
}
.article-keypoints li::before {
  content: "";
  width: .32rem;
  height: .32rem;
  margin-top: .58rem;
  border-radius: 50%;
  background: #9a9a96;
}
.related-grid a { grid-template-columns: 9rem minmax(0,1fr) auto; }

@media (max-width: 900px) {
  .article-edition-panel { min-height: 28rem; }
  .related-grid a { grid-template-columns: minmax(0,1fr) auto; }
  .related-grid p { display: none; }
}

@media (max-width: 600px) {
  .article-edition-panel { min-height: 24rem; }
  .article-panel-statement { min-height: 13rem; }
  .article-section { padding-left: 0; }
  .related-grid a { grid-template-columns: minmax(0,1fr); }
  .related-grid small { grid-column: 1; }
}

/* Public typography scale: five intentional sizes across the entire site. */
:root {
  --type-label: clamp(.68rem, .628rem + .213vw, .82rem);
  --type-body: clamp(.95rem, .91rem + .14vw, 1rem);
  --type-lead: clamp(1.2rem, 1.08rem + .5vw, 1.75rem);
  --type-subtitle: clamp(1.65rem, 1.46rem + .78vw, 2.16rem);
  --type-display: clamp(3.315rem, 2.99rem + 1.333vw, 4.185rem);
}

body,
input,
select,
textarea,
button { font-size: var(--type-body); }

small,
.desktop-nav,
.header-contact,
.language-trigger,
.language-menu button,
.language-menu button span,
.language-menu button small,
.mobile-menu nav a,
.hero-kicker,
.eyebrow,
.text-link,
.project-filters button,
.project-meta p,
.all-projects span,
.visual-gallery figcaption,
.service-list span,
.article-type,
.journal-list p,
.journal-list time,
.contact-details span,
.project-form label,
.contact-actions a,
.contact-button,
.site-footer p,
.team-card p,
.footer-credit,
.page-back,
.portfolio-item p,
.portfolio-open,
.project-pagination a,
.lightbox figcaption,
.article-feature p,
.article-list p,
.partner-card,
.service-v2-grid li,
.service-scope-grid article > span,
.service-scope-grid li,
.article-toc > p,
.article-toc a,
.article-toc a span,
.article-intro-label,
.article-keypoints li::before,
.related-grid a > span,
.related-grid p,
.related-grid small,
.service-editorial-index > p,
.service-editorial-index > small,
.service-editorial-index li span,
.article-edition-panel > span,
.article-edition-panel > small,
.article-edition-panel p,
.carousel-hint,
.project-slide-copy > p:first-child,
.project-slide-copy > span,
.project-carousel-controls p,
.section-index-link,
.section-index-link span,
.project-films-head a,
.video-stage-label small,
.video-external-link,
.video-choice > span,
.study-swatch,
.study-swatch small,
.motion-entry small { font-size: var(--type-label); }

.hero-bottom p,
.contact-intro,
.manifesto-note p,
.feature-copy > p:not(.eyebrow),
.visual-story-head > p:last-child,
.service-intro-copy p,
.prose-columns p,
.about-hero-copy > p:last-child,
.collection-hero div > p:last-child,
.portfolio-item .portfolio-description,
.project-overview > div:last-child > p,
.project-story p,
.journal-page-head > p:last-child,
.article-body p,
.partners-hero-copy > p,
.service-v2-copy > p:last-child,
.service-v2-grid p,
.service-scope-head > p,
.service-scope-grid p,
.article-section p,
.related-articles > header > p,
.project-slide-description,
.video-choice strong { font-size: var(--type-body); }

.site-footer .footer-column > a,
.video-choice.is-active strong { font-size: var(--type-body); }

.founder-year,
.founder-lead,
.article-deck,
.article-premium-hero .article-deck,
.service-scope-note,
.video-stage-label strong { font-size: var(--type-lead); }

.portfolio-number { font-size: var(--type-lead); }

h1,
h2,
h3,
.display-copy,
.article-panel-statement p {
  font-family: var(--display);
  font-weight: 400;
}

h1 em,
h2 em,
h3 em,
.founder-year,
.portfolio-number { font-style: normal; }

h3,
.all-projects,
.all-services,
.process-steps h3,
.journal-lead h3,
.journal-list h3,
.service-detail h3,
.faq-list summary,
.portfolio-item h2,
.project-story h2,
.article-list h2,
.article-body h2,
.article-section h2,
.article-keypoints h2,
.related-grid h3,
.service-editorial-index li,
.article-panel-statement p,
.project-slide-copy h2 { font-size: var(--type-subtitle); }

.project-meta h3,
.service-list h3,
.deliverables-grid h3,
.purpose-grid h3,
.team-card h3,
.service-v2-grid h3,
.service-scope-grid h3 { font-size: var(--type-subtitle); }

h1,
.hero-copy h1,
.display-copy,
.section-heading h2,
.feature-copy h2,
.visual-story-head h2,
.process-head h2,
.contact h2,
.subpage-hero h1,
.service-intro h2,
.deliverables h2,
.faq h2,
.simple-cta h2,
.about-hero h1,
.founder-copy h2,
.purpose h2,
.collection-hero h1,
.project-case-title h1,
.project-overview h2,
.journal-page-head h1,
.article-feature h2,
.article-page h1,
.partners-hero h1,
.service-v2-copy h1,
.service-v2-list > header h2,
.service-scope-head h2,
.article-hero-copy h1,
.related-articles h2,
.team .section-heading h2,
.project-films-head h2 { font-size: var(--type-display); }

/* Contact fields keep their values readable inside the translucent form. */
.project-form input,
.project-form select,
.project-form textarea {
  color: var(--white);
  background-color: transparent;
  font-family: var(--sans);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}

.project-form select {
  color-scheme: dark;
  cursor: pointer;
}

.project-form select option {
  color: var(--white);
  background: #323232;
  font: 400 1rem/1.5 var(--sans);
}

.project-form input:focus-visible,
.project-form select:focus-visible,
.project-form textarea:focus-visible {
  outline: 2px solid rgba(255,255,255,.8);
  outline-offset: 3px;
}

/* Article concept test: a topic-specific object replaces the editorial card. */
.article-premium-hero.has-topic-object {
  grid-template-columns: minmax(0, 1fr) minmax(28rem, .82fr);
  gap: clamp(1.5rem, 3vw, 3.5rem);
}

.article-topic-object {
  --depth-x: 0;
  --depth-y: 0;
  position: relative;
  min-height: 41rem;
  display: grid;
  place-items: center;
  margin: -2rem -2vw -2rem 0;
  isolation: isolate;
}

.article-topic-object::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 74%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(102,30,34,.13), rgba(102,30,34,.035) 48%, transparent 72%);
  filter: blur(30px);
  transform: translate(8%, 9%);
}

.article-topic-object > span {
  display: block;
  width: min(100%, 38rem);
  animation: article-object-float 7s ease-in-out infinite;
}

.article-topic-object img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 2.4rem 2.8rem rgba(36,22,20,.18));
  transform: perspective(1100px)
    translate3d(calc(var(--depth-x) * 12px), calc(var(--depth-y) * 10px), 0)
    rotateX(calc(var(--depth-y) * -1.5deg))
    rotateY(calc(var(--depth-x) * 1.8deg));
  transition: transform .16s ease-out, filter .3s ease;
  will-change: transform;
}

.article-topic-object:hover img {
  filter: drop-shadow(0 3rem 3.5rem rgba(36,22,20,.24));
}

@keyframes article-object-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@media (max-width: 900px) {
  .article-premium-hero.has-topic-object { grid-template-columns: 1fr; }
  .article-topic-object {
    width: min(100%, 38rem);
    min-height: 34rem;
    margin: 0 auto -2rem;
  }
  .article-topic-object > span { width: min(100%, 32rem); }
}

@media (max-width: 600px) {
  .article-topic-object {
    width: calc(100% + 1rem);
    min-height: 28rem;
    margin: .5rem -.5rem -2rem;
  }
}

/* Stable keystudio credit */
.footer-credit {
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:.55rem;
  text-align:center;
  white-space:nowrap
}
.footer-credit img {
  display:block;
  width:7rem;
  height:auto;
  max-width:none;
  opacity:1;
  filter:none;
  mix-blend-mode:normal
}

/* Homepage light field and Projects ribbon */
.services.ambient-host{background:linear-gradient(136deg,#efeeea,#dbdcd9 58%,#ecebe7)}
.services.ambient-host>.ambient-scene{position:absolute;inset:0;z-index:0}
.services.ambient-host>.ambient-home-light{opacity:.44}
.services.ambient-host>.design-object{display:none}
.ambient-home-light .home-light-disc{position:absolute;width:min(36vw,540px);aspect-ratio:1;right:8%;top:8%;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fff,#e3e0d8 57%,#aaa8a3);box-shadow:0 44px 82px rgba(48,46,42,.14);animation:homeLightDisc 12s ease-in-out infinite}
.ambient-home-light .home-light-fins{position:absolute;inset:-22% -5% -20% 50%;display:flex;gap:clamp(14px,1.8vw,30px);transform:rotate(17deg) skewY(-5deg) translate3d(calc(var(--ambient-x)*9px),calc(var(--ambient-y)*7px),0);transition:transform .15s linear}
.ambient-home-light .home-light-fins i{flex:1;border-radius:999px;background:linear-gradient(90deg,rgba(65,66,65,.58),rgba(185,183,177,.42));box-shadow:-34px 42px 32px rgba(31,32,32,.14);animation:homeLightFin 11s ease-in-out infinite alternate}
.ambient-home-light .home-light-fins i:nth-child(2n){animation-delay:-4s}.ambient-home-light .home-light-fins i:nth-child(3n){animation-delay:-7s}
.services.ambient-host:after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(239,238,234,.96) 0%,rgba(239,238,234,.82) 34%,rgba(239,238,234,.16) 50%,transparent 62%);pointer-events:none}
@keyframes homeLightDisc{50%{transform:translate(-11px,17px) scale(1.035)}}
@keyframes homeLightFin{to{transform:translateY(20px)}}

.portfolio-page.ambient-host{background:#e7e5e0}
.portfolio-page.ambient-host>.ambient-project-ribbon{inset:0;min-height:100%;overflow:hidden;opacity:.58}
.ambient-project-ribbon:before{content:"";position:absolute;inset:0;background:radial-gradient(72% 30rem at 112% 22rem,rgba(99,102,102,.34) 0 31%,rgba(210,207,200,.46) 32% 49%,transparent 50%),radial-gradient(70% 31rem at -12% 48rem,rgba(250,248,243,.66) 0 30%,rgba(132,133,130,.28) 31% 48%,transparent 49%),linear-gradient(118deg,transparent 34%,rgba(117,119,118,.16) 35% 46%,rgba(245,243,238,.25) 47% 57%,transparent 58%);background-size:100% 78rem,100% 78rem,100% 156rem;background-position:0 0,0 39rem,0 0;background-repeat:repeat-y;transform:translate3d(calc(var(--ambient-x)*5px),calc(var(--ambient-y)*4px),0);transition:transform .2s linear}
.ambient-project-ribbon svg{position:absolute;inset:-8rem -24% auto 24%;width:108%;height:min(64rem,16%);min-height:48rem;filter:drop-shadow(0 38px 42px rgba(44,42,39,.14));transform:translate3d(calc(var(--ambient-x)*12px),calc(var(--ambient-y)*8px),0);transition:transform .18s linear}
.ambient-project-ribbon .project-ribbon-one{transform-origin:center;animation:projectRibbon 14s ease-in-out infinite alternate}
.ambient-project-ribbon .project-ribbon-two{transform-origin:center;animation:projectRibbon 18s -7s ease-in-out infinite alternate}
.portfolio-page.ambient-host:before{content:"";position:absolute;z-index:1;inset:0;background:rgba(231,229,224,.48);pointer-events:none}
@keyframes projectRibbon{from{transform:translate(-7px,7px) rotate(-.7deg)}to{transform:translate(14px,-10px) rotate(1deg)}}

@media(max-width:760px){
  .ambient-home-light .home-light-disc{width:67vw;right:-10%;top:4%;opacity:.55}
  .ambient-home-light .home-light-fins{inset:-8% -38% 42% 34%;opacity:.42}
  .services.ambient-host:after{background:linear-gradient(180deg,rgba(239,238,234,.82),rgba(239,238,234,.95) 58%,rgba(239,238,234,.72))}
  .ambient-project-ribbon:before{background-size:165% 62rem,165% 62rem,165% 124rem;background-position:30% 0,-58% 31rem,center 0;opacity:.74}
  .ambient-project-ribbon svg{inset:-3rem -76% auto -16%;width:180%;height:42rem;min-height:0;opacity:.46}
  .portfolio-page.ambient-host:before{background:rgba(231,229,224,.56)}
}
@media(prefers-reduced-motion:reduce){.ambient-home-light *,.ambient-project-ribbon *{animation:none!important;transition:none!important}.ambient-home-light .home-light-fins,.ambient-project-ribbon svg{transform:none!important}}

/* Full-page architectural backdrops for selected journal articles */
.article-page-backdrop{position:fixed;z-index:0;inset:0;pointer-events:none;background-position:center;background-size:cover;background-repeat:no-repeat}
.article-backdrop-warm .article-page-backdrop{background-image:linear-gradient(90deg,rgba(238,235,229,.9) 0%,rgba(238,235,229,.76) 45%,rgba(238,235,229,.52) 100%),url('/assets/images/journal/article-bg-warm.webp')}
.article-backdrop-monochrome .article-page-backdrop{background-image:linear-gradient(90deg,rgba(235,235,232,.9) 0%,rgba(235,235,232,.73) 48%,rgba(235,235,232,.5) 100%),url('/assets/images/journal/article-bg-monochrome.webp')}
.has-article-backdrop main,.has-article-backdrop .site-footer{position:relative;z-index:1}
.has-article-backdrop .article-premium-hero{background:transparent}
.has-article-backdrop .article-reading-layout{background:linear-gradient(90deg,rgba(231,231,228,.8),rgba(231,231,228,.58));backdrop-filter:blur(2px)}
.has-article-backdrop .related-articles{background:rgba(213,213,209,.84);backdrop-filter:blur(10px)}

@media(max-width:760px){
  .article-page-backdrop{background-position:58% center}
  .article-backdrop-monochrome .article-page-backdrop{background-position:center}
  .article-backdrop-warm .article-page-backdrop{background-image:linear-gradient(rgba(238,235,229,.78),rgba(238,235,229,.62)),url('/assets/images/journal/article-bg-warm.webp')}
  .article-backdrop-monochrome .article-page-backdrop{background-image:linear-gradient(rgba(235,235,232,.78),rgba(235,235,232,.62)),url('/assets/images/journal/article-bg-monochrome.webp')}
  .has-article-backdrop .article-reading-layout{background:rgba(231,231,228,.68)}
}

/* Lighter translucent key-points banner shared by every journal article */
.article-keypoints{
  color:#20201e;
  border:1px solid rgba(23,23,20,.16);
  background:linear-gradient(145deg,rgba(211,212,209,.8),rgba(181,183,180,.68));
  box-shadow:0 2rem 5rem rgba(23,23,20,.11);
  backdrop-filter:blur(14px) saturate(.82);
  -webkit-backdrop-filter:blur(14px) saturate(.82)
}
.article-keypoints li{color:rgba(32,32,30,.76);border-top-color:rgba(23,23,20,.17)}
.article-keypoints li::before{background:#70716e}
