/* Mesa abierta: DotCraft neutrals and the original restrained orange accent. */
:root {
	--dc-studio-accent: var(--dc-tertiary);
	--dc-studio-accent-hover: #E85F00;
	--mesa-ink: #fafafa;
	--mesa-paper: #1a1a1a;
	--mesa-white: #222;
	--mesa-muted: #b8b8b8;
	--mesa-line: #444;
	--mesa-soft: #292929;
	--mesa-gutter: clamp(1.25rem, 5vw, 5rem);
	--mesa-max: 1240px;
	--mesa-ease: cubic-bezier(.2, .7, .2, 1);
}
html { scroll-behavior: smooth; }
body.mesa-abierta { background: var(--mesa-paper); color: var(--mesa-ink); font-family: var(--dc-font-base, system-ui, sans-serif); }
body.mesa-abierta h1, body.mesa-abierta h2, body.mesa-abierta h3, body.mesa-abierta h4 { color: var(--mesa-ink); }
.mesa-container { width: min(calc(100% - var(--mesa-gutter) * 2), var(--mesa-max)); margin-inline: auto; }
.mesa-main { min-height: 65vh; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.dc-skip-link { position: fixed; z-index: 1000; top: .75rem; left: .75rem; padding: .75rem 1rem; transform: translateY(-180%); background: var(--mesa-ink); color: var(--mesa-paper); }
.dc-skip-link:focus { transform: translateY(0); }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--mesa-ink); outline-offset: 4px; }
::selection { color: #1a1a1a; background: var(--dc-studio-accent); }

.mesa-header { position: relative; z-index: 20; border-bottom: 1px solid var(--mesa-line); background: var(--mesa-paper); }
.mesa-header__inner { min-height: 76px; width: min(calc(100% - var(--mesa-gutter) * 2), 1440px); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.mesa-brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; font-size: .95rem; font-weight: 650; letter-spacing: -.035em; white-space: nowrap; }
.mesa-brand:hover, .mesa-brand:focus-visible { color: var(--mesa-ink); text-decoration: underline; text-decoration-color: var(--dc-studio-accent); text-underline-offset: .35em; }
.mesa-brand__symbol { display: block; width: .8rem; height: .8rem; flex: 0 0 auto; overflow: visible; }
.mesa-brand__core { fill: var(--dc-studio-accent); transform-origin: 50% 50%; animation: mesa-brand-beat 2.4s ease-in-out infinite; }
.mesa-brand__pulse { fill: none; stroke: var(--dc-studio-accent); stroke-width: 2; transform-origin: 50% 50%; animation: mesa-brand-pulse 2.4s ease-out infinite; }
.mesa-brand:hover .mesa-brand__symbol, .mesa-brand:focus-visible .mesa-brand__symbol { filter: drop-shadow(0 0 5px rgba(255, 102, 0, .65)); }
@keyframes mesa-brand-beat { 0%, 100% { transform: scale(1); } 48% { transform: scale(1.14); } }
@keyframes mesa-brand-pulse { 0% { transform: scale(1); opacity: .8; } 75%, 100% { transform: scale(2.25); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mesa-brand__core, .mesa-brand__pulse { animation: none; } .mesa-brand__pulse { opacity: .2; } }
.mesa-brand__dot { display: inline-block; width: .68rem; height: .68rem; border-radius: 50%; background: var(--dc-studio-accent); box-shadow: 0 0 0 4px rgba(255, 102, 0, .12); }
.mesa-nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); font-size: .86rem; }
.mesa-nav > a, .mesa-mobile-nav > a { text-decoration: none; text-underline-offset: .3em; }
.mesa-nav > a:not(.mesa-nav__contact):hover, .mesa-mobile-nav > a:hover, .mesa-footer a:hover { color: var(--mesa-ink); text-decoration: underline; text-decoration-color: var(--dc-studio-accent); text-decoration-thickness: 2px; }
.mesa-nav__contact { display: inline-flex; align-items: center; gap: .55rem; padding: .72rem 1rem; background: #111; color: var(--mesa-ink); border: 1px solid var(--mesa-line); border-radius: 2px; }
.mesa-nav__contact:hover { color: #1a1a1a; background: var(--dc-studio-accent); border-color: var(--dc-studio-accent); text-decoration: none !important; }
.mesa-nav__contact span, .mesa-button span { font-size: 1rem; }
.dc-lang-switcher { display: inline-flex; }
.dc-lang-switcher__list { display: flex; list-style: none; gap: .55rem; padding: 0; margin: 0; font: 600 .72rem/1 system-ui, sans-serif; letter-spacing: .07em; }
.dc-lang-switcher__item + .dc-lang-switcher__item::before { content: "/"; padding-right: .55rem; color: #777; }
.dc-lang-switcher__label { color: var(--mesa-muted); }
.dc-lang-switcher__link { text-decoration: none; }
.dc-lang-switcher__link:hover, .dc-lang-switcher__link:focus-visible { color: var(--mesa-ink); text-decoration: underline; text-decoration-color: var(--dc-studio-accent); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.mesa-menu-toggle { display: none; }
.mesa-mobile-nav { display: none; }

/* Header contrast: keep every link state readable on the dark surface. */
.mesa-header a,
.mesa-header a:visited,
.mesa-header a:active,
.mesa-header a:focus { color:var(--mesa-ink); }
.mesa-header a[aria-current="page"],
.mesa-header a:focus-visible { text-decoration:underline; text-decoration-color:var(--dc-studio-accent); text-decoration-thickness:2px; text-underline-offset:.3em; }
.mesa-header .mesa-nav__contact:hover,
.mesa-header .mesa-nav__contact:focus-visible,
.mesa-header .mesa-nav__contact:active { color:var(--mesa-paper); background:var(--dc-studio-accent); border-color:var(--dc-studio-accent); text-decoration:none; }
/* End header contrast. */

.mesa-hero { position: relative; overflow: hidden; min-height: min(670px, calc(100svh - 76px)); display: grid; align-items: end; padding-block: clamp(5rem, 12vw, 10rem) clamp(3rem, 7vw, 6rem); }
.mesa-hero__grid { position: absolute; inset: 0 0 0 44%; pointer-events: none; opacity: .52; background-image: radial-gradient(rgba(250, 250, 250, .2) .7px, transparent .7px); background-size: 13px 13px; mask-image: linear-gradient(90deg, transparent 1%, #000 32%, #000 78%, transparent 100%); }
.mesa-hero__content { position: relative; }
.mesa-kicker { display: flex; align-items: center; gap: .6rem; margin: 0 0 1.4rem; color: var(--mesa-muted); font: 550 .72rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .045em; }
.mesa-kicker__dot { display: inline-block; width: .48rem; height: .48rem; flex: 0 0 auto; background: var(--dc-studio-accent); border-radius: 50%; }
.mesa-hero h1 { max-width: 950px; margin: 0; font-size: clamp(3.6rem, 10.5vw, 9.5rem); font-weight: 550; line-height: .91; letter-spacing: -.085em; }
.mesa-hero__bottom { display: grid; grid-template-columns: minmax(0, 510px) auto; align-items: end; gap: 2rem; margin-top: clamp(2rem, 5vw, 4rem); }
.mesa-hero__intro { max-width: 520px; margin: 0; font-size: clamp(1.05rem, 1.8vw, 1.35rem); line-height: 1.65; color: var(--mesa-muted); }
.mesa-text-link, .mesa-more-link, .mesa-back-link { display: inline-flex; align-items: center; gap: .65rem; width: fit-content; color: var(--mesa-ink); font-size: .88rem; font-weight: 600; text-decoration: none; text-underline-offset: .35em; }
.mesa-text-link:hover, .mesa-more-link:hover, .mesa-back-link:hover { text-decoration: underline; text-decoration-color: var(--dc-studio-accent); text-decoration-thickness: 2px; }
.mesa-text-link span, .mesa-more-link span { transition: transform 220ms var(--mesa-ease); }
.mesa-text-link:hover span, .mesa-more-link:hover span { transform: translate(3px, -3px); }
.mesa-author-note, .mesa-pending { margin: 1.5rem 0 0; color: var(--mesa-muted); font-size: .75rem; }

/* Mesa abierta workbench: broad drawing surface, tactile nodes, live pointer wire. */
.mesa-hero--workbench { min-height: 0; padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(2.5rem, 5vw, 4rem); }
.mesa-hero--workbench .mesa-hero__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .62fr); align-items: end; column-gap: clamp(2rem, 8vw, 8rem); }
.mesa-hero--workbench .mesa-hero__heading { grid-row: span 2; }
.mesa-hero--workbench .mesa-kicker { margin-bottom: 1.1rem; }
.mesa-hero--workbench h1 { max-width: 760px; font-size: clamp(3.6rem, 8.5vw, 7.2rem); }
.mesa-hero--workbench .mesa-hero__intro { max-width: 390px; margin-bottom: .3rem; font-size: clamp(1rem, 1.6vw, 1.2rem); }
.mesa-hero--workbench .mesa-author-note { grid-column: 2; margin: .8rem 0 0; }
.mesa-section-heading--bench { margin-bottom: 1.5rem; }
.mesa-section-heading--bench h2 { max-width: 740px; }
.mesa-board { --mesa-pointer-x: 50%; --mesa-pointer-y: 50%; position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .88fr); align-items: center; gap: clamp(1.25rem, 8vw, 7rem); min-height: 390px; padding: clamp(1.25rem, 5vw, 3.5rem); overflow: hidden; border: 1px solid var(--mesa-line); background-color: var(--mesa-paper); background-image: radial-gradient(rgba(250, 250, 250, .24) .75px, transparent .75px), radial-gradient(180px circle at var(--mesa-pointer-x) var(--mesa-pointer-y), rgba(255, 102, 0, .12), transparent 72%); background-size: 19px 19px, auto; transition: background-position 120ms ease-out; }
.mesa-board::before, .mesa-board::after { position: absolute; z-index: -1; width: 8px; height: 8px; border: 1px solid var(--mesa-ink); border-radius: 50%; background: var(--dc-studio-accent); content: ""; }
.mesa-board::before { top: 1rem; left: 1rem; }
.mesa-board::after { right: 1rem; bottom: 1rem; }
.mesa-board__wires { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; opacity: 0; transition: opacity 180ms ease; }
.mesa-board.has-pointer .mesa-board__wires { opacity: 1; }
.mesa-board__wires path { fill: none; stroke: var(--dc-studio-accent-hover); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 360ms var(--mesa-ease); vector-effect: non-scaling-stroke; }
.mesa-board.has-pointer .mesa-board__wires path { stroke-dashoffset: 0; }
.mesa-board__wires circle { fill: var(--dc-studio-accent); stroke: var(--mesa-ink); stroke-width: 1; vector-effect: non-scaling-stroke; }
.mesa-node { position: relative; z-index: 1; display: flex; min-width: 0; min-height: 205px; flex-direction: column; justify-content: space-between; padding: clamp(1rem, 2.5vw, 1.6rem); border: 1px solid var(--mesa-line); border-radius: 0; background: var(--mesa-paper); color: var(--mesa-ink); box-shadow: 5px 5px 0 var(--mesa-soft); text-align: left; cursor: pointer; transition: transform 260ms var(--mesa-ease), box-shadow 260ms var(--mesa-ease), border-color 260ms var(--mesa-ease), background 260ms var(--mesa-ease); }
.mesa-node--interface { transform: rotate(-2deg); }
.mesa-node--editorial { margin-top: 2.5rem; transform: rotate(2.5deg); }
.mesa-node:hover, .mesa-node:focus-visible, .mesa-node[aria-pressed="true"] { z-index: 2; border-color: var(--mesa-ink); background: var(--mesa-soft); box-shadow: 10px 12px 0 rgba(0, 0, 0, .4); }
.mesa-node:hover { border-color: var(--dc-studio-accent-hover); }
.mesa-node[aria-pressed="true"] { border-color: var(--dc-studio-accent); }
.mesa-node[aria-pressed="true"] { box-shadow: 5px 5px 0 var(--mesa-soft), inset 3px 0 0 var(--dc-studio-accent); }
.mesa-node--interface:hover, .mesa-node--interface:focus-visible, .mesa-node--interface[aria-pressed="true"] { transform: translateY(-6px) rotate(-1deg); }
.mesa-node--editorial:hover, .mesa-node--editorial:focus-visible, .mesa-node--editorial[aria-pressed="true"] { transform: translateY(-6px) rotate(0); }
.mesa-node:focus-visible { outline: 3px solid var(--dc-studio-accent); outline-offset: 4px; }
.mesa-node__meta, .mesa-node__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--mesa-muted); font: 600 .66rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .035em; text-transform: uppercase; }
.mesa-node__title { display: block; max-width: 17ch; margin-block: 2rem; font-size: clamp(1.55rem, 3vw, 2.4rem); font-weight: 520; line-height: 1.05; letter-spacing: -.055em; }
.mesa-node__foot { text-transform: none; }
.mesa-node__glyph { display: flex; height: 26px; align-items: end; gap: 4px; }
.mesa-node__glyph i { display: block; width: 8px; height: var(--bar-height); background: var(--mesa-ink); transition: height 240ms var(--mesa-ease), background 240ms ease; }
.mesa-node__glyph i:nth-child(1) { --bar-height: 12px; }
.mesa-node__glyph i:nth-child(2) { --bar-height: 22px; }
.mesa-node__glyph i:nth-child(3) { --bar-height: 16px; }
.mesa-node__glyph i:nth-child(4) { --bar-height: 26px; }
.mesa-node__glyph i:nth-child(5) { --bar-height: 8px; }
.mesa-node:hover .mesa-node__glyph i:nth-child(even), .mesa-node[aria-pressed="true"] .mesa-node__glyph i:nth-child(even) { height: 8px; background: var(--dc-studio-accent-hover); }
.mesa-node:hover .mesa-node__glyph i:nth-child(odd), .mesa-node[aria-pressed="true"] .mesa-node__glyph i:nth-child(odd) { height: 22px; }
.mesa-node__orbit { position: relative; display: block; width: 29px; height: 18px; border: 1px solid var(--mesa-ink); border-radius: 50%; transform: rotate(-24deg); transition: transform 300ms ease; }
.mesa-node__orbit i { position: absolute; top: -3px; right: 3px; width: 7px; height: 7px; border-radius: 50%; background: var(--dc-studio-accent); }
.mesa-node:hover .mesa-node__orbit, .mesa-node[aria-pressed="true"] .mesa-node__orbit { transform: rotate(24deg) scale(1.18); }
.mesa-board__sample-note { position: absolute; right: 1.2rem; bottom: .75rem; z-index: 2; color: var(--mesa-muted); font: 600 .58rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .03em; text-align: right; text-transform: uppercase; }
.mesa-board-caption { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem .1rem; color: var(--mesa-muted); font: .66rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
.mesa-inspector { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 1.5rem; min-height: 130px; padding-block: 1.5rem; border-top: 1px solid var(--dc-studio-accent); border-bottom: 1px solid var(--mesa-line); }
.mesa-inspector .mesa-kicker { margin: .2rem 0 0; }
.mesa-inspector h3 { margin: 0 0 .55rem; font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 500; letter-spacing: -.04em; }
.mesa-inspector p:not(.mesa-kicker) { max-width: 650px; margin: 0; color: var(--mesa-muted); font-size: .9rem; line-height: 1.65; }
.mesa-published-work { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.2rem; }
.mesa-published-work .mesa-kicker { margin: 0; }
.mesa-published-work .mesa-text-link { font-size: .82rem; }

.mesa-work, .mesa-selected { padding-block: clamp(4.5rem, 9vw, 8rem); }
.mesa-work { background: var(--mesa-paper); }
.mesa-section-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(240px, .6fr); align-items: end; gap: 2rem; margin-bottom: 3rem; }
.mesa-section-heading h2, .mesa-interests h2, .mesa-contact h2 { margin: 0; max-width: 800px; font-size: clamp(2rem, 4.5vw, 4.3rem); font-weight: 530; line-height: 1.02; letter-spacing: -.065em; }
.mesa-section-heading > p { max-width: 390px; margin: 0 0 .3rem; color: var(--mesa-muted); line-height: 1.7; }
.mesa-sample-grid { display: grid; grid-template-columns: 1.35fr .9fr; align-items: start; gap: clamp(1.2rem, 3vw, 3rem); }
.mesa-sample { position: relative; padding: 1rem; border: 1px solid var(--mesa-line); background: var(--mesa-paper); }
.mesa-sample--wide { margin-top: 2.8rem; }
.mesa-sample__art { position: relative; overflow: hidden; height: clamp(190px, 29vw, 365px); display: grid; place-items: center; background: var(--mesa-white); }
.mesa-sample__art--lines { background-image: linear-gradient(rgba(250,250,250,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(250,250,250,.07) 1px, transparent 1px); background-size: 32px 32px; }
.mesa-sample__art--lines span { position: absolute; width: 42%; aspect-ratio: 1.38; border: 1px solid rgba(250,250,250,.4); transform: rotate(-8deg); }
.mesa-sample__art--lines span:nth-child(2) { width: 35%; transform: translate(14%, -8%) rotate(8deg); background: rgba(255,102,0,.5); }
.mesa-sample__art--lines span:nth-child(3) { width: 13%; aspect-ratio: 1; border-radius: 50%; background: var(--dc-studio-accent); transform: translate(-180%, 85%); }
.mesa-sample__art--orbit { background: var(--mesa-soft); }
.mesa-sample__art--orbit span { position: absolute; width: 58%; aspect-ratio: 1; border: 1px solid var(--mesa-muted); border-radius: 50%; transform: rotate(-35deg) scaleY(.42); }
.mesa-sample__art--orbit span:nth-child(2) { transform: rotate(35deg) scaleY(.42); }
.mesa-sample__art--orbit span:nth-child(3) { width: .75rem; height: .75rem; border: 0; background: var(--dc-studio-accent); transform: translate(150%, -125%); }
.mesa-sample__meta, .mesa-project-card__meta, .mesa-project-story__eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; }
.mesa-status { display: inline-flex; align-items: center; gap: .48rem; color: var(--mesa-muted); font-size: .72rem; }
.mesa-status i { width: .48rem; height: .48rem; border-radius: 50%; background: var(--dc-studio-accent); }
.mesa-index { color: var(--mesa-muted); font: .68rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .035em; }
.mesa-sample h3 { margin: 1.3rem 0 .55rem; font-size: clamp(1.25rem, 2.3vw, 2rem); font-weight: 550; letter-spacing: -.045em; }
.mesa-sample > p { margin: 0 0 .6rem; max-width: 52ch; color: var(--mesa-muted); font-size: .88rem; line-height: 1.6; }
.mesa-more-link { margin-top: 2rem; }

.mesa-selected { background: var(--mesa-paper); }
.mesa-section-heading--compact { grid-template-columns: 1fr auto; }
.mesa-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 2rem); }
.mesa-project-card { min-width: 0; }
.mesa-project-card__link { display: block; height: 100%; color: inherit; text-decoration: none; }
.mesa-project-card__image { position: relative; overflow: hidden; aspect-ratio: 1.32; display: grid; place-items: center; background: var(--mesa-soft); }
.mesa-project-card__image img, .mesa-project-story__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mesa-project-card__image img { transition: transform 420ms var(--mesa-ease); }
.mesa-project-card__link:hover .mesa-project-card__image img { transform: scale(1.025); }
.mesa-project-card__image-empty { display: grid; place-items: center; width: 100%; height: 100%; background-image: radial-gradient(rgba(250, 250, 250, .18) .7px, transparent .7px); background-size: 13px 13px; }
.mesa-project-card__image-empty .mesa-brand__dot { width: 1.2rem; height: 1.2rem; }
.mesa-project-card__arrow { position: absolute; right: .8rem; bottom: .8rem; display: grid; width: 2.2rem; aspect-ratio: 1; place-items: center; background: var(--mesa-white); border-radius: 50%; font-size: 1rem; transition: background 180ms ease, transform 180ms ease; }
.mesa-project-card__link:hover .mesa-project-card__arrow { background: var(--dc-studio-accent-hover); color: var(--mesa-paper); transform: translate(2px, -2px); }
.mesa-project-card__meta { margin-top: 1rem; }
.mesa-project-card h3 { margin: .75rem 0 .5rem; font-size: clamp(1.2rem, 1.8vw, 1.6rem); font-weight: 550; letter-spacing: -.045em; }
.mesa-project-card p { margin: 0; color: var(--mesa-muted); font-size: .9rem; line-height: 1.6; }
.mesa-project-card__role { display: block; margin-top: .75rem; color: var(--mesa-muted); font-size: .76rem; }
.mesa-project-card__link:focus-visible { outline: 3px solid var(--mesa-ink); outline-offset: 5px; }
.mesa-empty { grid-column: 1 / -1; padding: 1.5rem; border: 1px dashed #777; color: var(--mesa-muted); }

.mesa-invite { padding-block: clamp(5rem, 10vw, 9rem); background: #111; color: var(--mesa-ink); border-top: 1px solid var(--mesa-line); }
.mesa-invite__inner { max-width: 1080px; }
.mesa-invite .mesa-kicker, .mesa-invite > div > p:not(.mesa-kicker) { color: var(--mesa-muted); }
.mesa-invite h2 { max-width: 880px; margin: 0; font-size: clamp(3rem, 8vw, 7.4rem); font-weight: 520; line-height: .97; letter-spacing: -.08em; }
.mesa-invite > div > p:not(.mesa-kicker) { max-width: 550px; margin: 1.5rem 0 2rem; font-size: 1.05rem; line-height: 1.65; }
.mesa-button { display: inline-flex; min-height: 48px; align-items: center; gap: 1.4rem; padding: .8rem 1.1rem; border: 1px solid var(--mesa-line); background: #111; color: var(--mesa-ink); font-weight: 650; text-decoration: none; transition: transform 180ms var(--mesa-ease); }
.mesa-button:hover, .mesa-button:focus-visible { border-color: var(--dc-studio-accent); background: var(--dc-studio-accent); color: var(--mesa-paper); transform: translateY(-2px); }

.mesa-page-intro { padding-block: clamp(4rem, 8vw, 7rem) 3rem; }
.mesa-page-intro h1 { max-width: 1000px; margin: 0; font-size: clamp(3.1rem, 8vw, 7rem); font-weight: 540; line-height: .96; letter-spacing: -.08em; }
.mesa-page-intro__copy { max-width: 700px; margin-top: 1.5rem; color: var(--mesa-muted); font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.75; }
.mesa-page-intro__copy > :first-child { margin-top: 0; }
.mesa-projects-index { padding-block: 1rem clamp(5rem, 9vw, 8rem); }
.mesa-project-grid--archive { row-gap: 3.5rem; }
.mesa-project-grid--archive .mesa-project-card__image { aspect-ratio: 1.38; }
.mesa-editorial-feature { border: 1px solid var(--mesa-line); }
.mesa-editorial-feature__link { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(1.25rem, 3vw, 2.5rem); min-height: 360px; padding: clamp(1.25rem, 2.5vw, 2rem); color: var(--mesa-ink); text-decoration: none; }
.mesa-editorial-feature__link:hover { color: var(--mesa-ink); }
.mesa-editorial-feature__link:focus-visible { outline: 3px solid var(--dc-studio-accent); outline-offset: 5px; }
.mesa-editorial-feature__copy { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 2.5rem; }
.mesa-editorial-feature__copy .mesa-kicker { margin: 0; }
.mesa-editorial-feature__title { margin: clamp(1.25rem, 3vw, 2rem) 0 .8rem; font-size: clamp(2rem, 4.2vw, 4.4rem); font-weight: 520; line-height: 1.02; letter-spacing: -.07em; overflow-wrap: anywhere; }
.mesa-editorial-feature__summary { max-width: 38ch; margin: 0; color: var(--mesa-muted); font-size: .94rem; line-height: 1.65; }
.mesa-editorial-feature__cta { display: inline-flex; width: fit-content; align-items: center; gap: .65rem; padding-bottom: .35rem; border-bottom: 2px solid var(--dc-studio-accent); font-size: .88rem; font-weight: 600; }
.mesa-editorial-feature__cta span { transition: transform 220ms var(--mesa-ease); }
.mesa-editorial-feature__link:hover .mesa-editorial-feature__cta span { transform: translate(3px, -3px); }
.mesa-editorial-feature__image { display: grid; min-width: 0; min-height: 300px; place-items: center; margin: 0; overflow: hidden; background: var(--mesa-soft); }
.mesa-editorial-feature__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 420ms var(--mesa-ease); }
.mesa-editorial-feature__link:hover .mesa-editorial-feature__image img { transform: scale(1.025); }
.mesa-editorial-list__label { margin: clamp(2.25rem, 5vw, 4rem) 0 0; padding: 1rem 0; border-top: 1px solid var(--mesa-line); }
.mesa-editorial-row { border-bottom: 1px solid var(--mesa-line); }
.mesa-editorial-row > a { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; align-items: center; gap: clamp(.75rem, 2vw, 1.5rem); min-height: 100px; padding: 1.1rem .25rem; color: var(--mesa-ink); text-decoration: none; transition: padding 220ms var(--mesa-ease), background 220ms ease; }
.mesa-editorial-row > a:hover { padding-inline: 1rem; background: var(--mesa-soft); color: var(--mesa-ink); }
.mesa-editorial-row > a:focus-visible { outline: 3px solid var(--dc-studio-accent); outline-offset: -3px; }
.mesa-editorial-row__body { display: block; min-width: 0; }
.mesa-editorial-row__body h2, .mesa-editorial-row__body h3 { margin: 0 0 .4rem; font-size: clamp(1.3rem, 2.4vw, 2rem); font-weight: 520; line-height: 1.1; letter-spacing: -.045em; }
.mesa-editorial-row__body > span { display: block; overflow: hidden; color: var(--mesa-muted); font-size: .82rem; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.mesa-editorial-row__arrow { align-self: center; color: var(--dc-studio-accent); font-size: 1.3rem; transition: transform 220ms var(--mesa-ease); }
.mesa-editorial-row > a:hover .mesa-editorial-row__arrow { transform: translate(3px, -3px); }
.mesa-studio-page { padding-bottom: clamp(4rem, 8vw, 8rem); }
.mesa-placeholder { max-width: 780px; margin-top: 2rem; padding: 1.3rem 1.5rem; border-left: 3px solid var(--dc-studio-accent); background: var(--mesa-white); }
.mesa-placeholder__label { display: inline-block; color: var(--mesa-ink); font: 600 .7rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .035em; text-transform: uppercase; }
.mesa-placeholder p { margin: .55rem 0 0; color: var(--mesa-muted); line-height: 1.65; }
.mesa-interests { max-width: 800px; margin-top: clamp(4rem, 8vw, 7rem); }
.mesa-interests .mesa-kicker { margin-bottom: 1rem; }
.mesa-interests h2 { font-size: clamp(2.2rem, 5vw, 4.5rem); }
.mesa-interests > p:not(.mesa-kicker) { max-width: 580px; margin: 1rem 0 .7rem; color: var(--mesa-muted); font-size: 1.05rem; line-height: 1.65; }
.mesa-contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 7rem); margin-top: clamp(5rem, 10vw, 9rem); padding-top: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--mesa-line); scroll-margin-top: 2rem; }
.mesa-contact h2 { font-size: clamp(2.3rem, 5vw, 4.8rem); }
.mesa-contact > div:first-child > p:not(.mesa-kicker) { max-width: 460px; color: var(--mesa-muted); line-height: 1.7; }
/* Contact: a quiet writing surface, with the same editorial rhythm as the projects. */
.mesa-contact__form { min-width:0; padding:clamp(1.25rem,3vw,2.5rem); background:var(--mesa-white); border:1px solid var(--mesa-line); border-top:2px solid var(--dc-studio-accent); }
.mesa-contact__form .wpforms-container { margin:0 !important; }
.mesa-contact__form .wpforms-form { margin:0; }
.mesa-contact__form .wpforms-field-name,
.mesa-contact__form .wpforms-field-email,
.mesa-contact__form .wpforms-field-textarea { padding:0 !important; margin:0 0 1.6rem !important; }
.mesa-contact__form .wpforms-field-label { display:block; margin:0 0 .7rem !important; color:var(--mesa-ink) !important; font:550 .75rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace !important; letter-spacing:.025em; }
.mesa-contact__form .wpforms-required-label { color:var(--dc-studio-accent) !important; }
.mesa-contact__form .wpforms-field-name .wpforms-field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; width:100% !important; max-width:none !important; margin:0 !important; }
.mesa-contact__form .wpforms-field-name .wpforms-field-row::before,
.mesa-contact__form .wpforms-field-name .wpforms-field-row::after { display:none; }
.mesa-contact__form .wpforms-field-name .wpforms-field-row-block { float:none !important; width:100% !important; min-width:0; padding:0 !important; margin:0 !important; }
.mesa-contact__form .wpforms-field-name input,
.mesa-contact__form .wpforms-field-email input,
.mesa-contact__form .wpforms-field-textarea textarea { display:block; box-sizing:border-box; width:100% !important; max-width:none !important; min-height:52px; padding:.85rem 1rem !important; border:1px solid var(--mesa-line) !important; border-radius:0 !important; background:var(--mesa-paper) !important; color:var(--mesa-ink) !important; box-shadow:none !important; font:400 1rem/1.5 var(--dc-font-base,system-ui,sans-serif) !important; transition:border-color 160ms ease,outline-color 160ms ease; }
.mesa-contact__form .wpforms-field-textarea textarea { min-height:180px; resize:vertical; }
.mesa-contact__form input::placeholder,
.mesa-contact__form textarea::placeholder { color:var(--mesa-muted) !important; opacity:1; }
.mesa-contact__form .wpforms-field-sublabel { display:block; margin:.5rem 0 0 !important; color:var(--mesa-muted) !important; font:400 .7rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace !important; }
.mesa-contact__form input:not([type=hidden]):hover,
.mesa-contact__form textarea:hover { border-color:var(--mesa-muted) !important; }
.mesa-contact__form input:not([type=hidden]):focus,
.mesa-contact__form textarea:focus { border-color:var(--dc-studio-accent) !important; outline:2px solid var(--dc-studio-accent); outline-offset:3px; }
.mesa-contact__form .wpforms-submit-container { padding:1.25rem 0 0 !important; margin:0 !important; border-top:1px solid var(--mesa-line); }
.mesa-contact__form button[type=submit] { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; min-height:54px !important; padding:1rem 1.2rem !important; border:1px solid var(--dc-studio-accent) !important; border-radius:0 !important; background:#111 !important; color:var(--mesa-ink) !important; box-shadow:none !important; font:650 .9rem/1.3 var(--dc-font-base,system-ui,sans-serif) !important; text-align:left; cursor:pointer; transition:background 160ms ease; }
.mesa-contact__form button[type=submit]::after { content:'↗'; font-size:1.2rem; }
.mesa-contact__form button[type=submit]:hover, .mesa-contact__form button[type=submit]:focus-visible { background:var(--dc-studio-accent) !important; border-color:var(--dc-studio-accent) !important; color:var(--mesa-paper) !important; }
.mesa-contact__form button[type=submit]:focus-visible { outline:2px solid var(--mesa-ink); outline-offset:4px; }
.mesa-contact__form button[type=submit]:disabled { opacity:.65; cursor:wait; }
.mesa-contact__form .wpforms-error:not(input):not(textarea),
.mesa-contact__form .wpforms-error-container { color:var(--dc-studio-accent) !important; font-size:.8rem !important; line-height:1.5 !important; }
.mesa-contact__form input.wpforms-error,
.mesa-contact__form textarea.wpforms-error,
.mesa-contact__form [aria-invalid=true] { border-color:var(--dc-studio-accent) !important; }
.mesa-contact__form .wpforms-confirmation-container { padding:1.5rem !important; margin:0 !important; border:1px solid var(--dc-studio-accent) !important; background:var(--mesa-paper) !important; color:var(--mesa-ink) !important; line-height:1.65; }
@media(max-width:360px) { .mesa-contact__form .wpforms-field-name .wpforms-field-row { grid-template-columns:1fr; gap:.85rem; } }
@media(prefers-reduced-motion:reduce) { .mesa-contact__form input,.mesa-contact__form textarea,.mesa-contact__form button { transition:none; } }


.mesa-project-story { padding-bottom: clamp(5rem, 9vw, 8rem); }
.mesa-project-story__head { padding-top: clamp(2rem, 5vw, 4rem); }
.mesa-back-link { font-size: .82rem; }
.mesa-project-story__eyebrow { justify-content: flex-start; margin-top: 3rem; }
.mesa-project-story__title { max-width: 1000px; margin: 1rem 0 0; font-size: clamp(3rem, 9vw, 8rem); font-weight: 540; line-height: .94; letter-spacing: -.08em; }
.mesa-project-story__summary { max-width: 680px; margin: 1.5rem 0 0; color: var(--mesa-muted); font-size: clamp(1.05rem, 1.8vw, 1.35rem); line-height: 1.65; }
.mesa-project-story__role { margin: 1.2rem 0 0; color: var(--mesa-muted); font-size: .84rem; }
.mesa-project-story__image { overflow: hidden; max-height: 620px; margin-top: clamp(2rem, 5vw, 4rem); aspect-ratio: 1.85; background: var(--mesa-soft); }
.mesa-project-story__body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(230px, .55fr); gap: 4rem; margin-top: clamp(3rem, 7vw, 6rem); }
.mesa-story-note { max-width: 740px; }
.mesa-story-note .mesa-placeholder { margin-top: 0; }
.mesa-prose { color: var(--mesa-ink); font-size: 1.05rem; line-height: 1.8; }
.mesa-updates { padding-left: 1.5rem; border-left: 1px solid var(--mesa-line); }
.mesa-updates h2 { margin: 0 0 1.2rem; font-size: 1.6rem; font-weight: 540; letter-spacing: -.04em; }
.mesa-update { padding-block: 1rem; border-top: 1px solid var(--mesa-line); }
.mesa-update time { color: var(--mesa-muted); font: .7rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.mesa-update p { margin: .55rem 0; color: var(--mesa-ink); line-height: 1.55; }

.mesa-footer { padding-block: 2.2rem; border-top: 1px solid var(--mesa-line); background: var(--mesa-white); }
.mesa-footer__inner { width: min(calc(100% - var(--mesa-gutter) * 2), 1440px); margin-inline: auto; display: grid; grid-template-columns: 1fr 1.4fr auto; align-items: center; gap: 2rem; }
.mesa-footer p { margin: 0; max-width: 360px; color: var(--mesa-muted); font-size: .8rem; line-height: 1.55; }
.mesa-footer__links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .8rem 1.2rem; color: var(--mesa-muted); font-size: .75rem; }
.mesa-footer__links a { text-underline-offset: .25em; }

@media (max-width: 900px) {
	.mesa-header__inner { gap: 1rem; }
	.mesa-nav { gap: 1rem; }
	.mesa-section-heading { grid-template-columns: 1fr; }
	.mesa-section-heading > p { max-width: 560px; }
	.mesa-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mesa-footer__inner { grid-template-columns: 1fr 1fr; }
	.mesa-footer__links { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 700px) {
	.mesa-header__inner { min-height: 68px; flex-wrap: wrap; padding-block: .8rem; }
	.mesa-nav { order: 3; width: 100%; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.1rem; font-size: .8rem; }
	.mesa-nav__contact { padding: .6rem .75rem; }
	.has-js .mesa-header__inner { flex-wrap: nowrap; }
	.has-js .mesa-nav { display: none; }
	.has-js .mesa-menu-toggle { display: grid; width: 44px; height: 44px; place-content: center; gap: 5px; border: 1px solid var(--mesa-line); background: transparent; color: var(--mesa-ink); cursor: pointer; }
	.mesa-menu-toggle span:not(.screen-reader-text) { display: block; width: 18px; height: 1px; background: currentColor; }
	.has-js .mesa-mobile-nav:not([hidden]) { position: absolute; top: 100%; right: var(--mesa-gutter); left: var(--mesa-gutter); display: grid; gap: 1rem; padding: 1.2rem; border: 1px solid var(--mesa-line); background: var(--mesa-white); box-shadow: 0 12px 30px rgba(0,0,0,.08); }
	.mesa-mobile-nav > a { min-height: 44px; display: flex; align-items: center; }
	.mesa-hero { min-height: 570px; min-height: min(650px, calc(88svh - 68px)); padding-top: 5rem; }
	.mesa-hero__grid { inset-inline-start: 24%; opacity: .38; }
	.mesa-hero h1 { font-size: clamp(3.7rem, 15vw, 6.4rem); }
	.mesa-hero__bottom { grid-template-columns: 1fr; gap: 1.4rem; }
	.mesa-hero--workbench { min-height: 0; padding-block: 3.5rem 2.5rem; }
	.mesa-hero--workbench .mesa-hero__content { grid-template-columns: 1fr; gap: 1.25rem; }
	.mesa-hero--workbench .mesa-hero__heading { grid-row: auto; }
	.mesa-hero--workbench h1 { font-size: clamp(3.5rem, 14vw, 5.8rem); }
	.mesa-hero--workbench .mesa-hero__intro { max-width: 34ch; }
	.mesa-hero--workbench .mesa-author-note { grid-column: auto; margin-top: -.5rem; }
	.mesa-board { grid-template-columns: 1fr; gap: 1.5rem; min-height: 0; padding: 1.5rem 1rem 2.5rem; }
	.mesa-node { min-height: 175px; }
	.mesa-node--interface, .mesa-node--editorial { width: min(100%, 420px); margin: 0; }
	.mesa-node--editorial { justify-self: end; }
	.mesa-board-caption { flex-direction: column; gap: .2rem; }
	.mesa-inspector { grid-template-columns: 1fr; gap: .7rem; }
	.mesa-published-work { align-items: flex-start; flex-direction: column; }
	.mesa-section-heading--compact { grid-template-columns: 1fr; }
	.mesa-sample-grid { grid-template-columns: 1fr; }
	.mesa-sample--wide { margin-top: 0; }
	.mesa-sample__art { height: 250px; }
	.mesa-project-grid { grid-template-columns: 1fr; gap: 2.3rem; }
	.mesa-editorial-feature__link { min-height: 0; }
	.mesa-project-card__image, .mesa-project-grid--archive .mesa-project-card__image { aspect-ratio: 1.25; }
	.mesa-project-story__image { aspect-ratio: 1.2; }
	.mesa-project-story__body { grid-template-columns: 1fr; gap: 2rem; }
	.mesa-updates { padding: 1.5rem 0 0; border-top: 1px solid var(--mesa-line); border-left: 0; }
	.mesa-contact { grid-template-columns: 1fr; gap: 1.5rem; }
	.mesa-footer__inner { grid-template-columns: 1fr; gap: 1rem; }
	.mesa-footer__links { grid-column: auto; justify-content: flex-start; }
}
@media (max-width: 640px) {
	.mesa-editorial-feature__link { grid-template-columns: 1fr; }
	.mesa-editorial-feature__copy { gap: 1.5rem; }
	.mesa-editorial-feature__title { margin-top: 1.2rem; }
	.mesa-editorial-feature__image { min-height: 0; aspect-ratio: 1.45; }
	.mesa-editorial-row > a { grid-template-columns: 2.2rem minmax(0, 1fr) auto; }
}
@media (max-width: 380px) {
	:root { --mesa-gutter: 1rem; }
	.mesa-nav { gap: .6rem; font-size: .75rem; }
	.mesa-nav__contact { padding: .55rem .6rem; }
	.mesa-hero h1 { font-size: 3.45rem; }
	.mesa-sample { padding: .7rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@view-transition { navigation: auto; }

/* Measured Trees is presented in DotCraft's visual language. */
.dc-tree-study { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr); border:1px solid var(--mesa-line); background:var(--mesa-white); }
.dc-tree-study__copy { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(1.5rem,4vw,3.5rem); border-right:1px solid var(--mesa-line); }
.dc-tree-study__copy .mesa-kicker { font-size:.62rem; }
.dc-tree-study__copy h3 { margin:.8rem 0 1.5rem; font-size:clamp(3.4rem,6vw,6rem); line-height:.94; font-weight:550; letter-spacing:-.075em; }
.dc-tree-study__copy h3>span { color:var(--dc-studio-accent); }
.dc-tree-study__copy>p:not(.mesa-kicker) { max-width:32ch; color:var(--mesa-ink); font-size:1.1rem; line-height:1.6; }
.dc-tree-study__copy>p.dc-tree-study__detail { margin-bottom:2rem; color:var(--mesa-muted); font-size:.9rem; }
.dc-tree-study__copy>a { margin-top:auto; padding-block:.8rem; }
.dc-tree-study__experiment { min-width:0; padding:clamp(1.25rem,3vw,2.5rem); background-color:var(--mesa-paper); background-image:radial-gradient(var(--mesa-line) .7px,transparent .7px); background-size:19px 19px; }
.dc-tree-study__topline { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem; font: .62rem/1.6 ui-monospace,monospace; color:var(--mesa-muted); }
.dc-tree-study__drawing { display:block; width:100%; height:auto; margin-block:1rem; overflow:visible; }
.dc-tree-study__ground { stroke:var(--mesa-line); fill:none; }
.dc-tree-study__house { stroke:var(--dc-studio-accent); stroke-width:1.6; fill:var(--mesa-paper); }
.dc-tree-study__tree { stroke:var(--mesa-ink); stroke-width:1.5; fill:none; }
.dc-tree-study__tree ellipse { fill:var(--mesa-soft); }
.dc-tree-study__measure { stroke:var(--mesa-muted); stroke-width:1; fill:none; }
.dc-tree-study__measure text { fill:var(--mesa-muted); stroke:none; font:11px ui-monospace,monospace; }
.dc-tree-study__controls[hidden] { display:none; }
.dc-tree-study__controls label { display:flex; justify-content:space-between; color:var(--mesa-muted); font: .75rem/1.6 ui-monospace,monospace; }
.dc-tree-study__controls output { color:var(--mesa-ink); }
.dc-tree-study__controls input { display:block; width:100%; min-height:44px; accent-color:var(--dc-studio-accent); cursor:ew-resize; }
.dc-tree-study__controls input:focus-visible { outline:2px solid var(--dc-studio-accent); outline-offset:4px; }
.dc-tree-study__ticks { display:flex; justify-content:space-between; color:var(--mesa-muted); font: .62rem ui-monospace,monospace; }
.dc-tree-study__source { margin:1.5rem 0 0; color:var(--mesa-muted); font:.62rem/1.7 ui-monospace,monospace; }
.dc-tree-study__experiment img { width:100%; height:auto; }
.mesa-prose h2 { margin-top:2.5rem; font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.2; letter-spacing:-.04em; }
@media(max-width:768px) {
 .dc-tree-study { grid-template-columns:1fr; }
 .dc-tree-study__copy { border-right:0; border-bottom:1px solid var(--mesa-line); }
 .dc-tree-study__copy h3 { font-size:4.2rem; }
 .dc-tree-study__copy>p:not(.mesa-kicker) { max-width:40ch; }
}

/* Curated Georgia: an editorial contact sheet, in DotCraft colours. */
.dc-curation-study { margin-bottom:2rem; }
.dc-tree-study__copy .dc-curation-study__title { margin:.8rem 0 1.5rem; font-size:clamp(3rem,5.5vw,5.8rem); line-height:.94; font-weight:550; letter-spacing:-.075em; }
.dc-curation-study__title>span { color:var(--dc-studio-accent); }
.dc-curation-study__experiment { min-width:0; padding:clamp(1.25rem,3vw,2.5rem); background:var(--mesa-paper); background-image:radial-gradient(var(--mesa-line) .7px,transparent .7px); background-size:19px 19px; }
.dc-curation-study__topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; min-height:44px; color:var(--mesa-muted); font:.62rem/1.6 ui-monospace,monospace; }
.dc-curation-study__play { min-height:44px; padding:.5rem .75rem; border:1px solid var(--mesa-line); background:var(--mesa-paper); color:var(--mesa-ink); font:inherit; cursor:pointer; }
.dc-curation-study__scenes { margin-top:1.5rem; }
.dc-curation-study__scene { position:relative; animation:dc-curation-enter 550ms ease both; }
.dc-curation-study__scene[hidden], .dc-curation-study [hidden] { display:none; }
.dc-curation-study__editorial { position:relative; min-height:106px; padding-right:2rem; }
.dc-curation-study__editorial p { position:relative; margin:0 0 .5rem; max-width:20ch; font-size:clamp(1.5rem,2.5vw,2.3rem); line-height:1.1; font-weight:500; letter-spacing:-.045em; }
.dc-curation-study__editorial>span:not(.dc-curation-study__number) { position:relative; display:block; color:var(--mesa-muted); font-size:.8rem; line-height:1.5; }
.dc-curation-study__number { position:absolute; right:0; top:-1rem; color:var(--mesa-line); font:6rem/1 ui-monospace,monospace; letter-spacing:-.08em; }
.dc-curation-study__place { margin:0; border:1px solid var(--mesa-line); background:var(--mesa-white); transform:rotate(-1deg); }
.dc-curation-study__place img { display:block; width:100%; height:clamp(150px,16vw,220px); object-fit:cover; filter:grayscale(1); }
.dc-curation-study__place figcaption { padding:1rem 1.2rem; border-left:3px solid var(--dc-studio-accent); }
.dc-curation-study__place figcaption span { display:block; margin-bottom:.35rem; color:var(--mesa-muted); font:.62rem/1.4 ui-monospace,monospace; }
.dc-curation-study__place strong { display:block; color:var(--mesa-ink); font-size:1.2rem; font-weight:500; letter-spacing:-.025em; }
.dc-curation-study__chips { display:flex; flex-wrap:wrap; gap:.45rem; min-height:54px; align-content:center; margin-top:1rem; }
.dc-curation-study__chips span { padding:.4rem .65rem; border:1px solid var(--mesa-line); background:var(--mesa-paper); color:var(--mesa-muted); font:.6rem/1.3 ui-monospace,monospace; }
.dc-curation-study__chips span:first-child { color:var(--dc-studio-accent); border-color:var(--dc-studio-accent); }
.dc-curation-study__navigation { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; padding-top:1rem; border-top:1px solid var(--mesa-line); }
.dc-curation-study__navigation button { min-height:48px; padding:.6rem .4rem; border:1px solid transparent; background:var(--mesa-paper); color:var(--mesa-muted); text-align:left; font:.65rem/1.4 ui-monospace,monospace; cursor:pointer; }
.dc-curation-study__navigation button>span { display:block; font-size:.6rem; margin-bottom:.3rem; }
.dc-curation-study__navigation button[aria-pressed="true"] { color:var(--mesa-ink); border-bottom-color:var(--dc-studio-accent); }
.dc-curation-study__navigation button:hover { border-color:var(--mesa-line); }
.dc-curation-study--visual { display:block; width:min(100%,840px); margin-inline:auto; }
@keyframes dc-curation-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .dc-curation-study__scene { animation:none; } }
@media(max-width:768px) { .dc-curation-study__place img { height:190px; } .dc-curation-study__editorial { min-height:125px; } }

/* Give the studio's longer first-person introduction room between paragraphs. */
.mesa-page-intro__copy p + p { margin-top:1.1em; }

/* Preserve the complete growth study and caption at every width. */
.mesa-project-story__image--measured { aspect-ratio:auto; max-height:none; overflow:visible; background:transparent; }
.mesa-project-story__image--measured img { width:100%; height:auto; object-fit:contain; }
.mesa-editorial-feature__image img[src*="measured-trees-study.svg"] { object-fit:contain; }

.mesa-project-story__capabilities { max-width:65ch; margin:1.5rem 0; color:var(--mesa-muted); font:.75rem/1.8 ui-monospace,SFMono-Regular,Menlo,monospace; }

/* Deluxe Dento-Facial: the work told through three editorial chapters. */
.dc-dental-study { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); margin-bottom:2rem; border:1px solid var(--mesa-line); background:var(--mesa-white); }
.dc-dental-study__copy { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:clamp(1.5rem,3vw,2.5rem); border-right:1px solid var(--mesa-line); }
.dc-dental-study .mesa-kicker { font-size:.65rem; line-height:1.7; }
.dc-dental-study__copy .mesa-kicker { margin:0; }
.dc-dental-study__copy .dc-dental-study__title { margin:1.8rem 0 1.7rem; font-size:clamp(2.5rem,5.5vw,5.5rem); font-weight:550; line-height:1.01; letter-spacing:-.065em; overflow-wrap:anywhere; }
.dc-dental-study__title>span { color:var(--dc-studio-accent); }
.dc-dental-study__lead { max-width:30ch; margin:0 0 .9rem; font-size:1.2rem; line-height:1.5; }
.dc-dental-study__detail { max-width:34ch; margin:0 0 2rem; color:var(--mesa-muted); font-size:.9rem; line-height:1.6; }
.dc-dental-study__copy>a { margin-top:auto; padding-block:.8rem; }
.dc-dental-study__narrative { min-width:0; padding:clamp(1.5rem,3vw,2.5rem); background-color:var(--mesa-paper); background-image:radial-gradient(var(--mesa-line) .7px,transparent .7px); background-size:19px 19px; }
.dc-dental-study__narrative>.mesa-kicker { margin:0; }
.dc-dental-study__chapter { padding:1.6rem 0; border-bottom:1px solid var(--mesa-line); }
.dc-dental-study__chapter:last-child { padding-bottom:0; border-bottom:0; }
.dc-dental-study__chapter .mesa-kicker { margin:0 0 .6rem; }
.dc-dental-study__chapter h3,.dc-dental-study__chapter h4 { margin:0 0 .75rem; font-size:clamp(1.5rem,2.3vw,2rem); line-height:1.15; font-weight:500; letter-spacing:-.035em; }
.dc-dental-study__chapter>p:not(.mesa-kicker) { max-width:48ch; margin:0; color:var(--mesa-muted); font-size:.9rem; line-height:1.6; }
@media(max-width:768px) {
 .dc-dental-study { grid-template-columns:1fr; }
 .dc-dental-study__copy { border-right:0; border-bottom:1px solid var(--mesa-line); }
 .dc-dental-study__copy .dc-dental-study__title { font-size:clamp(2.8rem,10vw,4.2rem); }
}

/* From the lab: compact experiment cards on Home and Projects. */
.mesa-lab { padding-block: clamp(4rem, 8vw, 7rem); border-top: 1px solid var(--mesa-line); background: var(--mesa-paper); }
.mesa-lab--index { padding-block: clamp(3rem, 6vw, 5rem) clamp(5rem, 9vw, 8rem); border-top: 0; }
.mesa-lab--index .mesa-kicker { margin-bottom: 1.5rem; }
.mesa-lab__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.mesa-lab-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--mesa-line); background: var(--mesa-white); transition: border-color 220ms var(--mesa-ease); }
.mesa-lab-card:hover, .mesa-lab-card:focus-within { border-color: var(--mesa-muted); }
.mesa-lab-card__copy { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; padding: clamp(1.25rem, 2.5vw, 2rem); }
.mesa-lab-card__copy .mesa-kicker { margin: 0; font-size: .62rem; }
.mesa-lab-card__title { margin: 0; font-size: clamp(1.9rem, 3vw, 2.6rem); font-weight: 550; line-height: .95; letter-spacing: -.06em; }
.mesa-lab-card__title a { color: var(--mesa-ink); text-decoration: none; }
.mesa-lab-card__title a span { color: var(--dc-studio-accent); }
.mesa-lab-card__title a:hover { text-decoration: underline; text-decoration-color: var(--dc-studio-accent); text-decoration-thickness: 2px; text-underline-offset: .12em; }
.mesa-lab-card a:focus-visible { outline: 2px solid var(--dc-studio-accent); outline-offset: 3px; }
.mesa-lab-card__teaser { margin: 0; max-width: 34ch; color: var(--mesa-muted); font-size: .9rem; line-height: 1.6; }
.mesa-lab-card__open { margin-top: auto; padding-block: .4rem; }
.mesa-lab-card__drawing { display: flex; align-items: center; margin: 0; padding: 1rem; border-left: 1px solid var(--mesa-line); background-color: var(--mesa-paper); background-image: radial-gradient(var(--mesa-line) .7px, transparent .7px); background-size: 19px 19px; }
.mesa-lab-card__drawing img { display: block; width: 100%; height: auto; }
@media (max-width: 900px) { .mesa-lab__grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .mesa-lab-card { grid-template-columns: 1fr; } .mesa-lab-card__drawing { order: -1; border-left: 0; border-bottom: 1px solid var(--mesa-line); } }
@media (prefers-reduced-motion: reduce) { .mesa-lab-card { transition: none; } }
