/* Editorial hierarchy. All text remains uppercase JetBrains Mono. */
:root {
  --type-label: .875rem;
  --type-meta: .8125rem;
  --type-body: clamp(1rem, .95rem + .22vw, 1.125rem);
  --type-lead: clamp(1.375rem, 1rem + 1.3vw, 2.125rem);
  --space-section: clamp(4.5rem, 8vw, 9rem);
}
body {font-weight:400;line-height:1.325;letter-spacing:0;font-synthesis:none}
header {align-items:start;line-height:1.25}
nav {font-size:var(--type-label);font-weight:500;letter-spacing:.035em;gap:1.5rem}
.header-note {font-size:var(--type-label);font-weight:500;line-height:1.25;letter-spacing:.045em}
.local {font-size:var(--type-meta);line-height:1.3;letter-spacing:.025em}
sup {font-size:.75rem;letter-spacing:0}
.work-top,.eyebrow,.section-tag,.page-eyebrow,.case-info h2,.contact-top {
  font-size:var(--type-label);font-weight:500;line-height:1.3;letter-spacing:.085em;
}
.work-top {gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}
.project-label {align-items:baseline;margin-bottom:1rem;gap:1rem}
.project-label h2 {font-size:var(--type-meta);font-weight:700;line-height:1.15;letter-spacing:-.02em}
.project-label>span {font-size:var(--type-meta);letter-spacing:.05em}
.project-meta {font-size:var(--type-meta);font-weight:400;letter-spacing:.025em;line-height:1.325;gap:.5rem 1.5rem;margin-top:1rem}
.view,.rail-controls>a,.work-foot a,.back-work,.filters button {font-size:var(--type-label);font-weight:500;letter-spacing:.025em;line-height:1.25}
.rail-controls>span,.work-foot>span,#filter-count {font-size:var(--type-meta);letter-spacing:.04em;line-height:1.35}
.work-foot>span {max-width:48ch}
.intro {padding-top:var(--space-section);padding-bottom:var(--space-section)}
.eyebrow {margin-bottom:clamp(2rem,4vw,4rem);max-width:48ch}
.intro>h1 {font-size:clamp(1.75rem,5.55vw,6.5rem);font-weight:400;letter-spacing:-.045em;line-height:1.1;margin:0 0 var(--space-section);overflow-wrap:normal}
.statement-line {display:block;text-wrap:balance;overflow-wrap:break-word}
.statement-line+.statement-line {margin-top:.06em}
.statement-line:last-child {font-weight:700}
.studio-body,.services {gap:clamp(2rem,5vw,5rem)}
.section-tag {padding-top:.4rem}
.studio-body p {font-size:var(--type-lead);font-weight:500;line-height:1.25;letter-spacing:-.025em;max-width:36ch;text-wrap:pretty;margin:0}
.studio-body .secondary {font-size:var(--type-body);font-weight:400;line-height:1.425;letter-spacing:0;max-width:52ch;margin:2rem 0 0}
.services {margin-top:var(--space-section)}
summary {font-size:clamp(1.25rem,1rem + 1.4vw,2.25rem);font-weight:500;letter-spacing:-.025em;line-height:1.2;padding:1.6rem 0;align-items:baseline}
summary span {font-size:var(--type-meta);font-weight:400;letter-spacing:.06em;width:3.5rem}
summary i {font-size:1.5rem}
details p {font-size:var(--type-body);line-height:1.425;letter-spacing:0;max-width:48ch;margin:.25rem 0 2rem 3.5rem;text-wrap:pretty}
.archive-heading {gap:3rem;margin-top:2rem;margin-bottom:4rem;align-items:end}
.archive-heading h1 {font-size:clamp(3rem,9vw,9rem);font-weight:700;letter-spacing:-.055em;line-height:1.025;margin:0}
.archive-heading h1 span {font-size:var(--type-label);font-weight:400;letter-spacing:.04em;vertical-align:top;display:inline-block;margin:.65em 0 0 1rem}
.archive-heading p {font-size:clamp(1rem,.85rem + .5vw,1.25rem);font-weight:400;letter-spacing:0;line-height:1.325;max-width:30ch;margin:0;text-wrap:pretty}
.filters {gap:.625rem;flex-wrap:wrap}
.case-heading {padding-top:1rem}
.case-heading .page-eyebrow {margin-bottom:1.75rem}
.case-heading h1 {font-size:clamp(2.375rem,7.5vw,8rem);font-weight:700;letter-spacing:-.05em;line-height:1.04;max-width:18ch;margin:0 0 2rem;overflow-wrap:break-word;text-wrap:balance}
.case-heading>p {font-size:clamp(1.25rem,1rem + 1vw,2rem);font-weight:400;letter-spacing:-.015em;line-height:1.275;max-width:40ch;margin:0 0 2.5rem;text-wrap:pretty}
.case-tags {margin-bottom:3.5rem;gap:.625rem}
.case-tags span {font-size:var(--type-meta);line-height:1.25;letter-spacing:.03em;padding:.6rem 1rem}
.case-info {gap:clamp(2rem,4vw,4.5rem);padding:var(--space-section) 0;grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,.8fr)}
.case-info h2 {margin:0 0 1.75rem;font-weight:700}
.case-info p {font-size:var(--type-body);font-weight:400;letter-spacing:0;line-height:1.425;max-width:44ch;text-wrap:pretty}
.case-info p+p {margin-top:1.25em}
.case-info li {font-size:1rem;line-height:1.325;letter-spacing:0;padding:.85rem 0}
.case-info ul+h2 {margin-top:2.5rem}
.case-study figcaption {font-size:var(--type-meta);line-height:1.325;letter-spacing:.025em;margin-top:1rem;max-width:70ch}
.next-case {margin-top:var(--space-section);padding-top:2.5rem;gap:2rem}
.next-case>span:first-child {font-size:var(--type-label);letter-spacing:.07em}
.next-case strong {font-size:clamp(2rem,4.5vw,4.75rem);font-weight:500;letter-spacing:-.04em;line-height:1.1}
.contact-top {gap:1.5rem;flex-wrap:wrap}
.contact-title {font-size:clamp(1.75rem,5.5vw,6rem);font-weight:500;letter-spacing:-.045em;line-height:1.125;margin:clamp(3rem,7vw,7rem) 0;padding-right:1em;overflow-wrap:break-word}
.contact-links {font-size:1rem;line-height:1.35;letter-spacing:.015em}
footer {font-size:var(--type-meta);line-height:1.35;letter-spacing:.025em;gap:1.5rem}
@media(max-width:1100px) and (min-width:801px) {
  .case-info {grid-template-columns:1fr 1fr}
  .case-info>section:last-child {grid-column:1/-1;max-width:44ch}
}
@media(max-width:800px) {
  .intro>h1 {font-size:clamp(1.75rem,5.55vw,3rem);letter-spacing:-.04em;line-height:1.125}
  .studio-body,.services {grid-template-columns:1fr;gap:1.5rem}
  .studio-body p {font-size:clamp(1.375rem,4vw,1.875rem);max-width:36ch}
  .studio-body .secondary {font-size:1rem;line-height:1.425;margin-top:1.75rem}
  .section-tag {padding-top:0}
  .archive-heading {display:block;margin-bottom:3rem}
  .archive-heading p {margin-top:1.75rem}
  .case-info {grid-template-columns:1fr;gap:3rem}
  .case-info h2 {margin-bottom:1.25rem}
  .case-info p {max-width:48ch}
  .case-heading h1 {font-size:clamp(2.375rem,8vw,4rem);letter-spacing:-.04em}
  .case-heading>p {font-size:1.25rem;line-height:1.325}
  .case-tags {margin-bottom:2.5rem}
  .contact-title {font-size:clamp(1.75rem,5.5vw,3rem);line-height:1.15;padding-right:.9em}
  .contact-top {font-size:var(--type-label)}
  .work-foot>span {max-width:38ch}
  .next-case>span:first-child {width:100%}
}
@media(max-width:420px) {
  summary {gap:.5rem;font-size:1.25rem}
  summary span {width:2.25rem}
  details p {margin-left:0}
}

/* Shared navigation: centred studio descriptor and a compact disclosure. */
.site-header {grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;align-content:start;position:relative;z-index:20;gap:24px}
.site-header .header-note {display:block;white-space:nowrap;text-align:center}
.site-menu {position:relative;justify-self:end}
.menu-toggle {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:44px;height:44px;padding:10px;border:0;background:transparent;color:#fff;cursor:pointer}
.menu-toggle span {display:block;width:24px;height:1px;background:currentColor;transition:transform .18s ease,opacity .18s ease}
.menu-toggle[aria-expanded="true"] span:nth-child(1) {transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2) {opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3) {transform:translateY(-8px) rotate(-45deg)}
.menu-toggle:focus-visible,.site-menu nav a:focus-visible {outline:2px solid #fff;outline-offset:5px}
.site-menu nav {position:absolute;right:0;top:calc(100% + 16px);display:flex;flex-direction:column;align-items:stretch;gap:0;width:min(288px,calc(100vw - 40px));padding:8px 28px;border:0;background:#000;box-shadow:none;font-size:1rem;font-weight:400;line-height:1.25;letter-spacing:.015em;animation:menu-reveal .2s ease-out both}
.site-menu nav[hidden] {display:none}
.site-menu nav a {display:block;padding:23px 0;border:0;color:#fff;transition:opacity .18s ease}
.site-menu nav a+a {border-top:1px solid #ffffff24}
.site-menu nav a:hover {opacity:.65}
@keyframes menu-reveal {from {opacity:0;transform:translateY(-6px)} to {opacity:1;transform:translateY(0)}}
@media(max-width:800px) {
  .site-header {grid-template-columns:minmax(0,1fr) 44px;gap:20px;padding:20px;min-height:154px}
  .site-header .wordmark {width:220px}
  .site-header .header-note {grid-row:2;grid-column:1/-1;font-size:.75rem}
  .site-menu {grid-row:1;grid-column:2}
}
@media(prefers-reduced-motion:reduce) {.menu-toggle span,.site-menu nav a {transition:none}.site-menu nav {animation:none}}
