:root {
  --font-display: 'Zodiak', 'Iowan Old Style', Georgia, serif;
  --font-body: 'General Sans', 'Segoe UI', sans-serif;
  --text-xs: clamp(.75rem, .73rem + .08vw, .8125rem);
  --text-sm: clamp(.875rem, .84rem + .12vw, .9375rem);
  --text-base: clamp(1rem, .97rem + .12vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + .4vw, 1.375rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
  --text-2xl: clamp(2.125rem, 1.2rem + 2.5vw, 3.5rem);
  --text-hero: clamp(3.5rem, 1.15rem + 5.7vw, 6.75rem);
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem;
  --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
  --gutter: clamp(var(--space-5), 4.4vw, var(--space-20));
  --section-space: clamp(var(--space-16), 8vw, var(--space-32));
  --radius-sm: 0; --radius-md: 0; --radius-lg: 0;
  --transition-interactive: 200ms cubic-bezier(.2,.65,.3,1);
  --color-panel: oklch(24% .014 68);
  --color-panel-text: oklch(96.5% .018 84);
  --color-panel-muted: oklch(76% .025 80);
  --color-model-bg: oklch(91.8% .022 80);
  --color-model-text: oklch(27% .02 70);
}
:root, [data-theme='light'] {
  color-scheme: light;
  --color-bg: #faf6ee;
  --color-surface: oklch(98% .01 84);
  --color-surface-offset: oklch(92.5% .025 82);
  --color-text: oklch(26% .018 65);
  --color-text-muted: oklch(47% .025 67);
  --color-divider: oklch(26% .018 65 / .18);
  --color-border: oklch(26% .018 65 / .29);
  --color-primary: oklch(41% .049 104);
  --color-primary-hover: oklch(30% .04 104);
  --color-text-inverse: oklch(98% .01 84);
  --color-error: oklch(44% .12 30);
  --color-success: oklch(42% .06 122);
}
[data-theme='dark'] {
  color-scheme: dark;
  --color-bg: oklch(22% .014 68);
  --color-surface: oklch(26% .014 68);
  --color-surface-offset: oklch(30% .018 68);
  --color-text: oklch(95% .018 84);
  --color-text-muted: oklch(76% .026 79);
  --color-divider: oklch(95% .018 84 / .18);
  --color-border: oklch(95% .018 84 / .29);
  --color-primary: oklch(79% .055 104);
  --color-primary-hover: oklch(89% .045 104);
  --color-text-inverse: oklch(22% .014 68);
  --color-error: oklch(79% .12 30);
  --color-success: oklch(78% .07 122);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --color-bg: oklch(22% .014 68); --color-surface: oklch(26% .014 68);
    --color-surface-offset: oklch(30% .018 68); --color-text: oklch(95% .018 84);
    --color-text-muted: oklch(76% .026 79); --color-divider: oklch(95% .018 84 / .18);
    --color-border: oklch(95% .018 84 / .29); --color-primary: oklch(79% .055 104);
    --color-primary-hover: oklch(89% .045 104); --color-text-inverse: oklch(22% .014 68);
    --color-error: oklch(79% .12 30); --color-success: oklch(78% .07 122);
  }
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; scroll-padding-top: var(--space-12); }
body { min-height: 100dvh; font-family: var(--font-body); font-size: var(--text-base); line-height: 1.6; background: var(--color-bg); color: var(--color-text); }
body.dialog-open { overflow: hidden; }
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
img { background: var(--color-surface-offset); }
button, input, textarea, select { font: inherit; color: inherit; border-radius: 0; }
button { cursor: pointer; border: 0; background: none; }
button:disabled { cursor: not-allowed; opacity: .45; }
a { color: inherit; text-decoration: none; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; transition: color var(--transition-interactive), background-color var(--transition-interactive), border-color var(--transition-interactive), opacity var(--transition-interactive); }
/* Theme switches are atomic: inherited foregrounds must never trail the surface. */
html.theme-changing *, html.theme-changing *::before, html.theme-changing *::after { transition: none !important; }
button:active, a:active { opacity: .7; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: 1.14; text-wrap: balance; }
h2 { font-size: var(--text-2xl); letter-spacing: -.035em; }
h3 { font-size: var(--text-xl); letter-spacing: -.025em; }
p, li, figcaption { text-wrap: pretty; }
fieldset { min-width: 0; border: 0; }
::selection { color: var(--color-text); background: color-mix(in oklab, var(--color-primary) 22%, transparent); }
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 5px; }
[hidden] { display: none !important; }
.svg-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.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; }
.page-width { width: min(100%, 1600px); padding-inline: var(--gutter); margin-inline: auto; }
.eyebrow { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 500; line-height: 1.5; letter-spacing: .13em; text-transform: uppercase; }
.skip-link { position: fixed; z-index: 200; left: var(--space-4); top: var(--space-4); padding: var(--space-3) var(--space-5); background: var(--color-text); color: var(--color-bg); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.preview-notice { padding: var(--space-2) var(--space-4); background: var(--color-panel); color: var(--color-panel-text); font-size: var(--text-xs); text-align: center; letter-spacing: .045em; }
.preview-notice span { padding-inline: var(--space-1); }
.site-header { position: relative; z-index: 20; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); min-height: 112px; }
.brand { display: flex; align-items: center; gap: var(--space-4); flex-shrink: 0; min-height: 44px; }
.brand-mark { width: 40px; height: 46px; }
.brand-type { display: flex; flex-direction: column; gap: var(--space-1); text-transform: uppercase; line-height: 1.3; }
.brand-type > span:first-child { font-size: var(--text-base); letter-spacing: .15em; font-weight: 500; }
.brand-type > span:last-child { font-size: var(--text-xs); letter-spacing: .13em; }
.desktop-nav { display: flex; align-items: center; gap: var(--space-8); }
.desktop-nav a { display: inline-flex; min-height: 44px; align-items: center; font-size: var(--text-sm); position: relative; }
.desktop-nav a::after { content: ''; position: absolute; left: 0; bottom: var(--space-2); width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current]::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: var(--space-6); }
.header-request { font-size: var(--text-sm); min-height: 44px; display: flex; align-items: center; gap: var(--space-5); }
.header-request:hover { color: var(--color-primary); }
.theme-toggle { width: 44px; height: 44px; display: grid; place-items: center; }
.theme-disc { display: block; width: 17px; height: 17px; border: 1px solid currentColor; border-radius: 50%; overflow: hidden; }
.theme-disc::before { content: ''; display: block; width: 50%; height: 100%; background: currentColor; transition: transform .25s ease; }
[data-theme='dark'] .theme-disc::before { transform: translateX(100%); }
.menu-toggle, .mobile-nav { display: none; }
.hero { display: grid; grid-template-columns: 40% 60%; padding-top: var(--space-8); padding-bottom: var(--space-16); }
.hero-copy { padding-top: clamp(var(--space-8), 4vw, var(--space-16)); padding-right: var(--space-4); align-self: stretch; position: relative; display: flex; flex-direction: column; align-items: flex-start; }
.hero-copy .eyebrow { display: flex; align-items: center; gap: var(--space-3); }
.small-rule { display: inline-block; width: 24px; height: 1px; background: currentColor; }
.hero h1 { font-size: var(--text-hero); line-height: 1.075; letter-spacing: -.06em; margin-top: var(--space-8); margin-bottom: var(--space-8); position: relative; z-index: 2; }
.hero-description { color: var(--color-text-muted); max-width: 31ch; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-8); padding-block: var(--space-2); font-size: var(--text-sm); border-bottom: 1px solid currentColor; text-align: left; }
.text-link > span, .request-link > span, .header-request > span { display: inline-block; transition: transform .25s ease; }
.text-link:hover > span, .request-link:hover > span, .header-request:hover > span { transform: translate(3px, -3px); }
.text-link:hover { color: var(--color-primary); }
.hero-link { margin-top: var(--space-6); }
.hero-footnote { margin-top: auto; padding-top: var(--space-10); display: flex; flex-direction: column; gap: var(--space-1); font-size: var(--text-xs); }
.hero-footnote > span:first-child { color: var(--color-text-muted); }
.hero-figure { padding-left: var(--space-6); }
.hero-photo { aspect-ratio: 1740 / 1290; width: 100%; position: relative; background: var(--color-surface-offset); }
.hero-photo img { width: 100%; height: 100%; object-fit: contain; }
.image-link { display: block; overflow: hidden; text-align: left; position: relative; }
.image-link img { transition: transform .65s cubic-bezier(.2,.65,.3,1); }
.image-link:hover img { transform: scale(1.025); }
.photo-action { position: absolute; inset: auto var(--space-5) var(--space-5) auto; background: var(--color-bg); color: var(--color-text); display: inline-flex; align-items: center; gap: var(--space-8); font-size: var(--text-xs); padding: var(--space-3) var(--space-4); min-height: 44px; opacity: 0; transform: translateY(5px); transition: opacity .25s ease, transform .25s ease; }
.image-link:hover .photo-action, .image-link:focus-visible .photo-action { opacity: 1; transform: translateY(0); }
.hero-figure figcaption { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-3); font-size: var(--text-xs); }
.hero-figure figcaption a { display: inline-flex; align-items: center; min-height: 44px; gap: var(--space-6); }
.hero-figure figcaption a:hover { color: var(--color-primary); }
.caption-number { margin-right: var(--space-5); color: var(--color-text-muted); }
.collection-index { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); }
.collection-index::before { display: none; }
.index-label { font-size: var(--text-xs); color: var(--color-text-muted); }
.index-links { display: flex; gap: var(--space-8); }
.index-links a { display: flex; align-items: center; gap: var(--space-3); min-height: 44px; font-size: var(--text-sm); }
.index-links a:hover { color: var(--color-primary); }
.index-links a span { font-size: var(--text-xs); color: var(--color-text-muted); }
.collection-section { padding-top: var(--section-space); padding-bottom: var(--space-20); }
.section-heading { border-top: 1px solid var(--color-divider); padding-top: var(--space-8); display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: var(--space-16); margin-bottom: var(--space-12); }
.section-heading h2 { margin-top: var(--space-5); }
.section-heading > p { max-width: 42ch; justify-self: end; font-size: var(--text-sm); color: var(--color-text-muted); }
.product-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--space-12); row-gap: var(--space-16); align-items: start; }
.product-card { min-width: 0; scroll-margin-top: var(--space-8); }
.product-card--lead { grid-column: 1 / 8; }
.product-card--console { grid-column: 8 / 13; padding-top: var(--space-24); }
.product-card--stools { grid-column: 1 / 6; padding-top: var(--space-10); }
.product-card--shelving { grid-column: 7 / 13; }
.product-photo { width: 100%; aspect-ratio: auto; background: var(--color-surface-offset); }
.product-photo img { width: 100%; height: auto; object-fit: contain; }
.product-card--lead .product-photo img { object-position: 50% 66%; }
.product-card--console .product-photo { aspect-ratio: auto; }
.product-card--stools .product-photo { aspect-ratio: auto; }
.product-card--shelving .product-photo { aspect-ratio: auto; }
.product-card--shelving .product-photo img { object-position: 50% 52%; }
.product-info { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding-top: var(--space-6); }
.product-info .eyebrow { color: var(--color-text-muted); margin-bottom: var(--space-2); }
.product-info h3 button { font: inherit; letter-spacing: inherit; text-align: left; min-height: 44px; }
.product-info h3 button:hover { color: var(--color-primary); }
.request-link { display: inline-flex; gap: var(--space-6); align-items: center; min-height: 44px; font-size: var(--text-sm); border-bottom: 1px solid var(--color-divider); }
.request-link:hover { border-color: currentColor; }
.product-description { color: var(--color-text-muted); font-size: var(--text-sm); margin-top: var(--space-2); }
.collection-note { border-top: 1px solid var(--color-divider); margin-top: var(--space-12); padding-top: var(--space-5); font-size: var(--text-xs); color: var(--color-text-muted); }
.study-section { color: var(--color-panel-text); background: var(--color-panel); padding-block: var(--space-16); }
.study-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-8); }
.study-label { font-size: var(--text-xs); color: var(--color-panel-muted); }
.study-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); gap: var(--space-16); align-items: start; }
.model-column { min-width: 0; }
.model-stage { position: relative; background: var(--color-model-bg); color: var(--color-model-text); min-width: 0; }
#table-model { min-height: 500px; height: clamp(500px, 39vw, 620px); width: 100%; position: relative; overflow: hidden; cursor: grab; }
#table-model:active { cursor: grabbing; }
#table-model canvas { display: block; width: 100%; height: 100%; }
.model-placeholder { position: absolute; inset: 0; pointer-events: none; display: grid; grid-template-rows: minmax(0,1fr) auto; padding: var(--space-6); background: var(--color-model-bg); }
.model-placeholder img { height: 100%; width: 100%; object-fit: contain; min-height: 0; background: transparent; }
.model-placeholder p { padding-top: var(--space-4); font-size: var(--text-sm); text-align: center; }
.model-corner-label { position: absolute; left: var(--space-5); top: var(--space-4); font-size: var(--text-xs); letter-spacing: .1em; pointer-events: none; }
.model-controls { border: 1px solid color-mix(in oklab, var(--color-panel-text) 26%, transparent); padding: var(--space-4) var(--space-5); }
.model-controls:disabled { opacity: .48; }
.model-control-top, .model-control-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); }
.model-views { display: flex; gap: var(--space-5); }
.model-control-top { flex-wrap: wrap; }
.model-views { flex-wrap: wrap; }
.drawer-reference { margin: var(--space-8) 0 0; }
.drawer-reference img { display: block; width: 100%; height: auto; }
.drawer-reference figcaption { margin-top: var(--space-3); font-size: var(--text-xs); color: var(--color-panel-muted); line-height: 1.6; }
.study-copy .model-dimensions { font-size: var(--text-sm); letter-spacing: .035em; color: var(--color-panel-text); margin: var(--space-5) 0; }
.model-controls button { min-height: 44px; font-size: var(--text-xs); }
.model-views button { color: var(--color-panel-muted); border-bottom: 1px solid transparent; }
.model-views button[aria-pressed='true'] { color: var(--color-panel-text); border-bottom-color: currentColor; }
.model-controls button:not(:disabled):hover { color: var(--color-panel-muted); }
.model-reset { display: flex; gap: var(--space-3); align-items: center; }
.explode-control { display: grid; grid-template-columns: auto minmax(0,1fr) 3ch; align-items: center; gap: var(--space-5); padding-block: var(--space-3); font-size: var(--text-xs); }
.explode-control input { width: 100%; accent-color: var(--color-panel-text); cursor: pointer; height: 44px; }
.explode-control output { text-align: right; }
.rotate-buttons { display: flex; gap: var(--space-6); }
.rotate-buttons button { display: inline-flex; gap: var(--space-2); align-items: center; }
#auto-state { color: var(--color-panel-muted); margin-left: var(--space-2); }
.model-caption { font-size: var(--text-xs); color: var(--color-panel-muted); margin-top: var(--space-4); line-height: 1.65; max-width: 70ch; }
.study-copy { padding-top: var(--space-6); }
.study-number { font-size: var(--text-xs); letter-spacing: .1em; color: var(--color-panel-muted); }
.study-copy h2 { margin-top: var(--space-16); margin-bottom: var(--space-8); }
.study-copy p { color: var(--color-panel-muted); max-width: 32ch; }
.study-copy #model-instructions { margin-top: var(--space-6); font-size: var(--text-sm); }
.study-actions { margin-top: var(--space-12); display: flex; align-items: flex-start; flex-direction: column; gap: var(--space-4); }
.study-actions .text-link:hover { color: var(--color-panel-muted); }
.quiet-link { font-size: var(--text-sm); min-height: 44px; display: inline-flex; align-items: center; text-align: left; text-decoration: underline; text-decoration-color: var(--color-divider); text-underline-offset: 5px; }
.quiet-link:hover { text-decoration-color: currentColor; }
.study-actions .quiet-link { font-size: var(--text-xs); color: var(--color-panel-muted); text-decoration-color: color-mix(in oklab, var(--color-panel-text) 30%, transparent); }
.study-section :focus-visible { outline-color: var(--color-panel-text); }
.designer-invitation { display: flex; justify-content: space-between; align-items: center; gap: var(--space-12); padding-top: var(--space-12); margin-top: var(--space-16); border-top: 1px solid color-mix(in oklab, var(--color-panel-text) 20%, transparent); }
.designer-invitation h3 { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 400; margin-block: var(--space-4); }
.designer-invitation > div:first-child { max-width: 52ch; }
.designer-invitation p:not(.eyebrow) { font-size: var(--text-sm); color: var(--color-panel-muted); }
.designer-invitation-actions { flex-shrink: 0; }
.designer-invitation .designer-open { color: var(--color-panel); background: var(--color-panel-text); }
.designer-invitation-actions p { margin-top: var(--space-3); }
@media (max-width: 760px) {
  .designer-invitation { flex-direction: column; align-items: flex-start; gap: var(--space-6); }
  .designer-invitation-actions { width: 100%; }
  .designer-invitation .designer-open { width: 100%; }
}
.conversation-section { display: grid; grid-template-columns: 1.08fr 1fr; gap: var(--space-24); align-items: center; padding-block: var(--section-space); }
.room-figure img { width: 100%; height: auto; object-fit: contain; }
.room-figure figcaption { color: var(--color-text-muted); margin-top: var(--space-3); font-size: var(--text-xs); }
.conversation-copy h2 { margin-block: var(--space-6); }
.conversation-copy p:not(.eyebrow) { max-width: 37ch; color: var(--color-text-muted); }
.conversation-copy .button { margin-top: var(--space-8); }
.conversation-copy .quiet-link { display: flex; margin-top: var(--space-5); font-size: var(--text-xs); max-width: 40ch; }
.button { min-height: 52px; padding: var(--space-4) var(--space-6); display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-12); font-size: var(--text-sm); font-weight: 500; text-align: left; }
.button-primary { background: var(--color-text); color: var(--color-bg); border: 1px solid var(--color-text); }
.button-primary:hover { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-text-inverse); }
.site-footer { border-top: 1px solid var(--color-divider); }
.footer-main { display: flex; justify-content: space-between; align-items: center; gap: var(--space-12); padding-block: var(--space-12); }
.footer-brand { display: flex; gap: var(--space-6); align-items: center; }
.footer-brand svg { width: 44px; height: 52px; }
.footer-brand > span { font-size: var(--text-base); line-height: 1.5; }
.footer-brand > span > span { font-size: var(--text-xs); letter-spacing: .12em; text-transform: uppercase; }
.footer-main > p { font-size: var(--text-xs); color: var(--color-text-muted); }
.footer-main > p > a { min-height: 44px; display: inline-flex; align-items: center; color: var(--color-text); }
.footer-main nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-8); }
.footer-main nav a { font-size: var(--text-sm); min-height: 44px; display: flex; align-items: center; gap: var(--space-6); }
.footer-main a:hover { color: var(--color-primary); }
.footer-bottom { display: flex; justify-content: space-between; gap: var(--space-8); padding-bottom: var(--space-6); font-size: var(--text-xs); color: var(--color-text-muted); }
dialog { position: fixed; margin: auto; max-height: calc(100dvh - var(--space-12)); border: 0; color: var(--color-text); background: var(--color-bg); padding: 0; box-shadow: 0 24px 100px oklch(10% .02 70 / .3); overflow: auto; overscroll-behavior: contain; }
dialog::backdrop { background: oklch(14% .015 68 / .7); backdrop-filter: blur(5px); }
dialog[open] { animation: dialog-arrive .25s ease both; }
.dialog-topline { display: flex; justify-content: space-between; align-items: center; gap: var(--space-5); padding: var(--space-4) var(--space-6); border-bottom: 1px solid var(--color-divider); position: sticky; top: 0; z-index: 3; background: var(--color-bg); }
.close-button { min-height: 44px; display: flex; align-items: center; gap: var(--space-5); font-size: var(--text-xs); }
.close-button > span { font-size: var(--text-xl); font-weight: 400; line-height: 1; }
.close-button:hover { color: var(--color-primary); }
.product-dialog { width: min(1080px, calc(100% - var(--space-12))); }
.product-dialog-body { display: grid; grid-template-columns: 1.2fr 1fr; }
.detail-gallery { padding: var(--space-6); min-width: 0; }
.detail-image-wrap { height: min(49dvh, 440px); background: var(--color-surface-offset); display: grid; place-items: center; }
.detail-image-wrap img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.detail-gallery-bottom { margin-top: var(--space-4); display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.detail-thumbnails { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.detail-thumbnail { width: 65px; height: 65px; padding: var(--space-1); border: 1px solid transparent; opacity: .7; }
.detail-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.detail-thumbnail[aria-pressed='true'] { border-color: var(--color-text); opacity: 1; }
.detail-thumbnail:hover { opacity: 1; }
.detail-counter { font-size: var(--text-xs); white-space: nowrap; color: var(--color-text-muted); }
.detail-image-label { margin-top: var(--space-3); font-size: var(--text-xs); color: var(--color-text-muted); }
.detail-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: var(--space-10); border-left: 1px solid var(--color-divider); }
.detail-copy h2 { margin-top: var(--space-4); margin-bottom: var(--space-6); }
.detail-copy > p:not(.eyebrow) { color: var(--color-text-muted); }
.detail-terms { margin-top: var(--space-8); font-size: var(--text-sm); }
.detail-copy .button { width: 100%; margin-top: var(--space-6); }
.detail-small { font-size: var(--text-xs); margin-top: var(--space-4); }
.detail-copy .text-link { margin-top: var(--space-6); font-size: var(--text-xs); }
.request-dialog { width: min(1060px, calc(100% - var(--space-12))); }
.request-layout { display: grid; grid-template-columns: .85fr 1.6fr; }
.request-aside { padding: var(--space-8); background: var(--color-surface-offset); }
.request-preview-image { width: 100%; aspect-ratio: 1.1; overflow: hidden; margin-bottom: var(--space-6); }
.request-preview-image img { width: 100%; height: 100%; object-fit: contain; }
.request-aside h3 { margin-top: var(--space-3); margin-bottom: var(--space-6); }
.request-aside > p:not(.eyebrow) { font-size: var(--text-sm); color: var(--color-text-muted); }
.request-aside .request-terms-note { margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--color-divider); font-size: var(--text-xs); }
.request-main { padding: var(--space-8) var(--space-10); min-width: 0; }
.request-mode-notice, .request-config-notice { margin-bottom: var(--space-6); padding: var(--space-4); font-size: var(--text-sm); background: var(--color-surface-offset); }
.request-mode-notice { background: var(--color-panel); color: var(--color-panel-text); }
.request-config-notice { color: var(--color-text-muted); }
.request-config-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-6); margin-top: var(--space-2); }
.request-steps { list-style: none; display: flex; gap: var(--space-8); margin-bottom: var(--space-6); font-size: var(--text-xs); color: var(--color-text-muted); }
.request-steps li { display: flex; gap: var(--space-2); align-items: center; }
.request-steps li[aria-current] { color: var(--color-text); }
.request-steps li[aria-current] span { border-bottom: 1px solid currentColor; }
.request-main h2 { font-size: var(--text-xl); margin-bottom: var(--space-6); }
.field { display: flex; flex-direction: column; margin-bottom: var(--space-5); min-width: 0; }
.field label, .preference-field legend { display: block; margin-bottom: var(--space-2); font-size: var(--text-sm); font-weight: 500; }
.field label > span { font-weight: 400; color: var(--color-text-muted); font-size: var(--text-xs); }
.field input, .field textarea, .field select { min-height: 48px; width: 100%; border: 1px solid var(--color-border); background: var(--color-bg); padding: var(--space-3); font-size: var(--text-base); }
.field select { padding-right: var(--space-8); }
.field textarea { resize: vertical; line-height: 1.5; min-height: 96px; max-height: 300px; }
.field input:hover, .field textarea:hover, .field select:hover { border-color: var(--color-text-muted); }
.field input[aria-invalid='true'], .field select[aria-invalid='true'], .field textarea[aria-invalid='true'] { border-color: var(--color-error); }
.field input::placeholder, .field textarea::placeholder { color: var(--color-text-muted); opacity: .8; font-size: var(--text-sm); }
.field-hint { font-size: var(--text-xs); color: var(--color-text-muted); margin-top: var(--space-2); }
.field-error { color: var(--color-error); font-size: var(--text-xs); margin-top: var(--space-1); }
.field-error:empty { display: none; }
.quantity-control { display: grid; grid-template-columns: 48px 70px 48px; align-self: start; border: 1px solid var(--color-border); }
.quantity-control button { min-height: 48px; font-size: var(--text-lg); }
.quantity-control button:hover:not(:disabled) { background: var(--color-surface-offset); }
.quantity-control input { appearance: textfield; -moz-appearance: textfield; border: 0; padding: var(--space-2); text-align: center; border-inline: 1px solid var(--color-divider); }
.quantity-control input::-webkit-inner-spin-button, .quantity-control input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.preference-field { margin-top: var(--space-6); }
.radio-choice { display: flex; align-items: flex-start; gap: var(--space-3); border: 1px solid var(--color-border); padding: var(--space-4); margin-top: var(--space-3); cursor: pointer; }
.radio-choice:has(input:checked) { border-color: var(--color-text); background: var(--color-surface-offset); }
.radio-choice > input { margin-top: var(--space-1); width: 17px; height: 17px; accent-color: var(--color-primary); flex-shrink: 0; }
.radio-choice > span { display: flex; flex-direction: column; gap: var(--space-1); }
.radio-choice strong { font-size: var(--text-sm); font-weight: 500; }
.radio-choice > span > span { font-size: var(--text-xs); color: var(--color-text-muted); }
.step-next { width: 100%; margin-top: var(--space-8); }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-4); }
.review-summary { padding: var(--space-4); background: var(--color-surface-offset); margin-block: var(--space-5); }
.review-summary > p:nth-child(2) { font-size: var(--text-sm); margin-top: var(--space-2); }
.review-summary .quiet-link { font-size: var(--text-xs); min-height: 44px; }
.consent-label { display: flex; align-items: flex-start; gap: var(--space-3); cursor: pointer; }
.consent-label input { width: 18px; height: 18px; margin-top: var(--space-1); accent-color: var(--color-primary); flex-shrink: 0; }
.consent-label > span { font-size: var(--text-xs); line-height: 1.6; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.request-submit-row { display: flex; gap: var(--space-6); justify-content: space-between; margin-top: var(--space-6); }
.submission-error { padding: var(--space-4); margin-top: var(--space-5); border: 1px solid var(--color-error); color: var(--color-error); font-size: var(--text-sm); }
.submission-status { margin-top: var(--space-5); color: var(--color-text-muted); font-size: var(--text-sm); }
.request-success { padding-block: var(--space-10); }
.request-success h2 { font-size: var(--text-2xl); margin-top: var(--space-6); }
.request-success > p:not(.eyebrow) { color: var(--color-text-muted); font-size: var(--text-sm); }
.success-reference { padding-block: var(--space-6); margin-block: var(--space-6); border-block: 1px solid var(--color-divider); }
.success-reference .eyebrow { display: block; color: var(--color-text-muted); margin-bottom: var(--space-2); }
.success-reference strong { font-size: var(--text-base); font-weight: 500; overflow-wrap: anywhere; }
.success-actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-top: var(--space-8); }
.img-fallback { width: 100%; height: 100%; min-height: 120px; display: grid; place-content: center; gap: var(--space-3); padding: var(--space-6); background: var(--color-surface-offset); color: var(--color-text-muted); font-size: var(--text-sm); text-align: center; }
.img-fallback > span:last-child { font-size: var(--text-xs); }
.noscript-message { padding: var(--space-8); border-top: 1px solid var(--color-divider); }
.noscript-message a { text-decoration: underline; }
@keyframes dialog-arrive { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 1550px) { .hero-figure { padding-top: var(--space-6); } }
@media (max-width: 1190px) {
  .header-inner { gap: var(--space-5); min-height: 96px; }
  .desktop-nav { gap: var(--space-5); }
  .header-actions { gap: var(--space-2); }
  .header-request { display: none; }
  .hero { grid-template-columns: 43% 57%; }
  .hero-figure { padding-left: var(--space-3); }
  .hero-copy { padding-top: var(--space-8); }
  .hero h1 { margin-block: var(--space-6); }
  .hero-footnote { padding-top: var(--space-6); }
  .index-links { gap: var(--space-5); }
  .product-grid { column-gap: var(--space-8); }
  .study-layout { gap: var(--space-8); grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); }
  .study-copy h2 { margin-top: var(--space-12); }
  .conversation-section { gap: var(--space-12); }
}
@media (max-width: 850px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: flex; gap: var(--space-3); align-items: center; min-height: 44px; font-size: var(--text-sm); padding-left: var(--space-3); }
  .menu-lines { display: flex; flex-direction: column; gap: var(--space-1); width: 20px; }
  .menu-lines::before, .menu-lines::after { content: ''; display: block; height: 1px; width: 100%; background: currentColor; transition: transform .2s ease; }
  .menu-toggle[aria-expanded='true'] .menu-lines::before { transform: translateY(2.5px) rotate(45deg); }
  .menu-toggle[aria-expanded='true'] .menu-lines::after { transform: translateY(-2.5px) rotate(-45deg); }
  .mobile-nav:not([hidden]) { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; padding: var(--space-4) var(--gutter) var(--space-8); background: var(--color-bg); border-block: 1px solid var(--color-divider); box-shadow: 0 24px 32px oklch(20% .02 70 / .08); }
  .mobile-nav > * { text-align: left; min-height: 52px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-divider); font-size: var(--text-base); }
  .hero { padding-top: var(--space-5); padding-bottom: var(--space-10); }
  .hero .eyebrow { letter-spacing: .07em; }
  .small-rule { display: none; }
  .hero h1 { font-size: clamp(3rem, 1.7rem + 4.7vw, 4.5rem); }
  .hero-figure figcaption { flex-direction: column; align-items: flex-start; gap: 0; }
  .hero-footnote { display: none; }
  .hero-description { font-size: var(--text-sm); }
  .hero-link { gap: var(--space-4); }
  .collection-index { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  .index-links { width: 100%; justify-content: space-between; }
  .section-heading { gap: var(--space-8); }
  .product-grid { column-gap: var(--space-6); row-gap: var(--space-12); }
  .product-card--lead { grid-column: 1/7; }
  .product-card--console { grid-column: 7/13; padding-top: var(--space-16); }
  .product-card--stools { grid-column: 1/7; }
  .product-card--shelving { grid-column: 7/13; }
  .product-info { align-items: flex-start; gap: var(--space-3); }
  .request-link { gap: var(--space-2); margin-top: var(--space-6); }
  .product-description { font-size: var(--text-xs); }
  .study-layout { grid-template-columns: 1fr; }
  .study-copy { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-10); padding-top: var(--space-4); }
  .study-number { grid-column: 1; }
  .study-copy h2 { grid-column: 1; grid-row: 2 / 4; margin-top: var(--space-5); margin-bottom: 0; }
  .study-copy > p { grid-column: 2; grid-row: 2; }
  .study-copy #model-instructions { grid-row: 3; }
  .study-actions { grid-column: 1 / 3; flex-direction: row; align-items: center; gap: var(--space-8); margin-top: var(--space-8); }
  .conversation-section { gap: var(--space-8); }
  .conversation-copy h2 { font-size: var(--text-xl); }
  .footer-main { flex-wrap: wrap; }
  .footer-main nav { width: 100%; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); }
  .request-layout { grid-template-columns: 1fr; }
  .request-aside { display: grid; grid-template-columns: 96px minmax(0,1fr); column-gap: var(--space-5); padding: var(--space-5) var(--space-8); }
  .request-preview-image { grid-column: 1; grid-row: 1/4; aspect-ratio: 1; margin-bottom: 0; }
  .request-aside .eyebrow { grid-column: 2; }
  .request-aside h3 { grid-column: 2; margin-top: var(--space-1); margin-bottom: var(--space-2); font-size: var(--text-lg); font-family: var(--font-body); }
  .request-aside > p:not(.eyebrow) { grid-column: 2; font-size: var(--text-xs); }
  .request-aside .request-terms-note { display: none; }
  .request-main { padding: var(--space-6) var(--space-8); }
  .detail-copy { padding: var(--space-6); }
}
@media (max-width: 600px) {
  :root { --text-hero: clamp(3.5rem, 10vw + 1rem, 5rem); }
  .preview-notice { letter-spacing: 0; }
  .header-inner { min-height: 90px; gap: var(--space-3); }
  .brand { gap: var(--space-3); }
  .brand-mark { width: 31px; height: 37px; }
  .brand-type > span:first-child { font-size: var(--text-sm); letter-spacing: .12em; }
  .brand-type > span:last-child { font-size: var(--text-xs); letter-spacing: .03em; }
  .header-actions { gap: 0; }
  .menu-toggle { font-size: var(--text-xs); padding-left: var(--space-1); }
  .menu-lines { width: 16px; }
  .theme-toggle { width: 40px; min-width: 44px; }
  .hero { grid-template-columns: 1fr; padding-top: var(--space-6); padding-bottom: var(--space-8); }
  .hero-copy { padding: 0; }
  .hero-copy .eyebrow { font-size: var(--text-xs); letter-spacing: .1em; }
  .hero h1 { font-size: var(--text-hero); margin-block: var(--space-5); letter-spacing: -.055em; }
  .hero-description { font-size: var(--text-base); }
  .hero-description br { display: none; }
  .hero-link { margin-top: var(--space-4); gap: var(--space-8); }
  .hero-figure { padding: 0; margin-top: var(--space-8); }
  .hero-figure figcaption { flex-direction: row; align-items: center; }
  .caption-number { margin-right: var(--space-3); }
  .hero-figure figcaption a { gap: var(--space-3); }
  .index-label { display: none; }
  .index-links { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-8); border-block: 1px solid var(--color-divider); padding-block: var(--space-3); }
  .index-links a { min-height: 44px; }
  .collection-section { padding-top: var(--space-16); padding-bottom: var(--space-12); }
  .section-heading { grid-template-columns: 1fr; gap: var(--space-6); border-top: 0; padding-top: 0; margin-bottom: var(--space-8); }
  .section-heading h2 { margin-top: var(--space-3); }
  .section-heading > p { justify-self: start; }
  .product-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-12); }
  .product-card { grid-column: 1 !important; padding-top: 0; }
  .product-photo { aspect-ratio: auto; }
  .product-card--console .product-photo, .product-card--stools .product-photo { aspect-ratio: auto; }
  .product-card--shelving .product-photo { aspect-ratio: auto; }
  .product-info { padding-top: var(--space-4); align-items: center; }
  .product-info .eyebrow { margin-bottom: var(--space-1); }
  .product-info h3 { font-size: var(--text-xl); }
  .request-link { margin-top: var(--space-4); gap: var(--space-5); }
  .product-description { font-size: var(--text-sm); margin-top: 0; }
  .collection-note { margin-top: var(--space-8); }
  .study-section { padding-block: var(--space-10); }
  .study-heading { margin-bottom: var(--space-5); }
  .study-heading .eyebrow { letter-spacing: .08em; }
  .study-label { display: none; }
  #table-model { min-height: 400px; height: 400px; }
  .model-placeholder { padding: var(--space-4); }
  .model-controls { padding: var(--space-3); }
  .model-control-top, .model-control-bottom { gap: var(--space-2); }
  .model-views { gap: var(--space-4); }
  .explode-control { gap: var(--space-3); grid-template-columns: auto minmax(0,1fr) 4ch; }
  .rotate-buttons { gap: var(--space-3); }
  .rotate-buttons button { gap: var(--space-1); }
  .model-control-bottom { flex-wrap: wrap; justify-content: space-between; }
  .study-copy { display: block; }
  .study-number { display: none; }
  .study-copy h2 { margin-top: 0; margin-bottom: var(--space-6); }
  .study-copy p { max-width: 40ch; }
  .study-actions { flex-direction: column; align-items: flex-start; gap: var(--space-3); margin-top: var(--space-6); }
  .conversation-section { grid-template-columns: 1fr; gap: var(--space-8); padding-block: var(--space-16); }
  .room-figure img { aspect-ratio: auto; }
  .conversation-copy h2 { font-size: var(--text-2xl); }
  .conversation-copy .button { width: 100%; }
  .conversation-copy .quiet-link { max-width: 100%; }
  .footer-main { gap: var(--space-8); padding-block: var(--space-8); align-items: flex-start; }
  .footer-brand { gap: var(--space-4); }
  .footer-brand svg { width: 36px; height: 44px; }
  .footer-main > p { width: 100%; }
  .footer-main > p > br { display: none; }
  .footer-main > p > a { margin-left: var(--space-2); }
  .footer-main nav { grid-template-columns: 1fr 1fr; gap: 0 var(--space-6); }
  .footer-bottom { flex-direction: column; gap: var(--space-2); }
  dialog { max-height: calc(100dvh - var(--space-4)); }
  .product-dialog, .request-dialog { width: calc(100% - var(--space-4)); }
  .dialog-topline { padding: var(--space-2) var(--space-4); gap: var(--space-3); }
  .dialog-topline .eyebrow { font-size: var(--text-xs); letter-spacing: .06em; }
  .close-button { gap: var(--space-3); }
  .product-dialog-body { grid-template-columns: 1fr; }
  .detail-gallery { padding: var(--space-4); }
  .detail-image-wrap { height: 280px; }
  .detail-thumbnail { width: 55px; height: 55px; }
  .detail-copy { border-left: 0; border-top: 1px solid var(--color-divider); padding: var(--space-6); }
  .detail-copy h2 { margin-bottom: var(--space-4); }
  .detail-terms { margin-top: var(--space-5); }
  .detail-copy .button { margin-top: var(--space-5); }
  .request-aside { padding: var(--space-4); grid-template-columns: 74px minmax(0,1fr); gap: 0 var(--space-4); }
  .request-aside h3 { margin-bottom: 0; }
  .request-aside > p:not(.eyebrow) { font-size: var(--text-xs); }
  .request-main { padding: var(--space-6) var(--space-5); }
  .request-steps { gap: var(--space-6); margin-bottom: var(--space-5); }
  .field-grid { grid-template-columns: 1fr; }
  .request-submit-row { gap: var(--space-3); }
  .request-submit-row .button { gap: var(--space-5); padding-inline: var(--space-5); }
  .request-success { padding-block: var(--space-6); }
}
@media (hover: none) {
  .photo-action { opacity: 1; transform: none; font-size: var(--text-xs); padding: var(--space-2) var(--space-3); inset: auto var(--space-3) var(--space-3) auto; gap: var(--space-5); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .image-link:hover img { transform: none; }
}
