
:root {
  --bg: #ffffff;
  --surface: #f7f7f7;
  --surface-warm: #eeeeee;
  --fg: #111111;
  --fg-2: #3a3a3a;
  --muted: #707070;
  --meta: #111111;
  --border: #d9d9d9;
  --border-soft: #eeeeee;
  --accent: #111111;
  --accent-on: #ffffff;
  --accent-hover: color-mix(in oklab, var(--accent), black 8%);
  --accent-active: color-mix(in oklab, var(--accent), black 14%);
  --success: #168a46;
  --warn: #b7791f;
  --danger: #c53030;
  --font-display: "Helvetica Neue", Arial, sans-serif;
  --font-body: "Helvetica Neue", Arial, sans-serif;
  --font-mono: "SF Mono", ui-monospace, Menlo, monospace;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 24px;
  --text-2xl: 36px;
  --text-3xl: 54px;
  --text-4xl: 76px;
  --leading-body: 1.52;
  --leading-tight: 1.06;
  --tracking-display: -0.025em;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --section-y-desktop: 96px;
  --section-y-tablet: 68px;
  --section-y-phone: 48px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 9999px;
  --elev-flat: none;
  --elev-ring: 0 0 0 1px var(--border);
  --elev-raised: 0 16px 40px rgba(0, 0, 0, 0.10);
  --focus-ring: 0 0 0 3px rgba(17, 17, 17, 0.18);
  --motion-fast: 150ms;
  --motion-base: 240ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --container-max: 1180px;
  --container-gutter-desktop: 36px;
  --container-gutter-tablet: 24px;
  --container-gutter-phone: 16px;
}
html[data-brand="stone-kuche"] {
  --font-display: Didot, "Bodoni 72", "Iowan Old Style", Georgia, serif;
  --font-body: "Helvetica Neue", Arial, system-ui, sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, monospace;
  --container-max: 1440px;
  --container-gutter-desktop: 48px;
  --container-gutter-tablet: 28px;
  --container-gutter-phone: 16px;
  --motion-fast: 220ms;
  --motion-base: 640ms;
  --ease-standard: cubic-bezier(0.23, 1, 0.32, 1);
  --text-4xl: clamp(58px, 9vw, 134px);
  --text-3xl: clamp(44px, 6vw, 88px);
  --text-2xl: clamp(34px, 4.5vw, 62px);
  --text-xl: clamp(22px, 3vw, 34px);
  --hairline: color-mix(in oklch, var(--fg) 16%, transparent);
  --halo: color-mix(in oklch, var(--fg) 10%, transparent);
  --image-overlay: color-mix(in oklch, var(--bg) 34%, transparent);
  --image-frame: color-mix(in oklch, var(--fg) 18%, transparent);
  --diagram-line: color-mix(in oklch, var(--fg) 18%, transparent);
  --stone-a: color-mix(in oklch, var(--fg) 72%, var(--bg));
  --stone-b: color-mix(in oklch, var(--surface) 82%, var(--fg));
  --stone-c: color-mix(in oklch, var(--bg) 70%, var(--fg));
  --moss: oklch(62% 0.034 150);
  --accent-sparse: color-mix(in oklch, var(--moss) 24%, var(--fg));
}
html[data-theme="dark"] {
  --bg: oklch(8% 0.004 255);
  --surface: oklch(13% 0.004 255);
  --surface-warm: oklch(18% 0.004 255);
  --fg: oklch(94% 0.004 255);
  --fg-2: oklch(78% 0.006 255);
  --muted: oklch(61% 0.006 255);
  --meta: oklch(70% 0.005 255);
  --border: oklch(33% 0.005 255);
  --border-soft: oklch(22% 0.004 255);
  --accent: oklch(92% 0.004 255);
  --accent-on: oklch(9% 0.004 255);
  --accent-hover: oklch(100% 0 0);
  --accent-active: oklch(82% 0.006 255);
  --focus-ring: 0 0 0 3px color-mix(in oklch, var(--fg) 18%, transparent);
  color-scheme: dark;
}
html[data-theme="light"] {
  --bg: oklch(94% 0.006 255);
  --surface: oklch(98% 0.004 255);
  --surface-warm: oklch(89% 0.006 255);
  --fg: oklch(15% 0.005 255);
  --fg-2: oklch(30% 0.006 255);
  --muted: oklch(45% 0.006 255);
  --meta: oklch(38% 0.005 255);
  --border: oklch(74% 0.006 255);
  --border-soft: oklch(83% 0.005 255);
  --accent: oklch(15% 0.005 255);
  --accent-on: oklch(98% 0.004 255);
  --accent-hover: oklch(26% 0.006 255);
  --accent-active: oklch(34% 0.006 255);
  --focus-ring: 0 0 0 3px color-mix(in oklch, var(--fg) 16%, transparent);
  color-scheme: light;
}
* { box-sizing: border-box; }
*::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; background: var(--bg); transition: background var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard); }
body { margin: 0; min-width: 0; overflow-x: hidden; background: radial-gradient(circle at 18% 4%, var(--halo), transparent 32rem), radial-gradient(circle at 82% 16%, color-mix(in oklch, var(--surface-warm) 52%, transparent), transparent 38rem), linear-gradient(180deg, var(--surface) 0, var(--bg) 42rem); color: var(--fg); font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-body); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; transition: background var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard); }
body::before { content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none; background: radial-gradient(circle at 22% 18%, color-mix(in oklch, var(--fg) 5%, transparent) 0 1px, transparent 1px 8px), linear-gradient(90deg, transparent, color-mix(in oklch, var(--fg) 3%, transparent), transparent); opacity: .42; mix-blend-mode: soft-light; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a, .card-link, .gallery-trigger, .catalog-card, .theme-toggle, .menu-toggle { cursor: pointer; }
p, h1, h2, h3, h4 { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-display); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); text-wrap: balance; }
p { text-wrap: pretty; }
::selection { background: var(--accent); color: var(--accent-on); }
:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.container { width: min(100%, var(--container-max)); margin: 0 auto; padding-inline: var(--container-gutter-desktop); }
.meta-strip { border-bottom: 1px solid var(--border-soft); background: color-mix(in oklch, var(--bg) 88%, transparent); color: var(--meta); font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.meta-strip .container { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--space-4); min-height: 38px; align-items: center; }
.meta-strip span:nth-child(2) { text-align: center; color: var(--accent); }
.meta-strip span:nth-child(3) { text-align: right; }
.pulse { display: inline-block; width: 6px; height: 6px; margin-right: var(--space-2); border-radius: var(--radius-pill); background: var(--accent-sparse); animation: pulse 3.2s ease-in-out infinite; }
.topnav { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--border-soft); background: color-mix(in oklch, var(--bg) 82%, transparent); backdrop-filter: blur(20px); }
.topnav-inner { display: grid; grid-template-columns: auto 1fr auto; gap: var(--space-5); align-items: center; min-height: 76px; }
.brand { display: inline-flex; align-items: baseline; gap: var(--space-3); min-width: max-content; font-family: var(--font-display); font-size: 24px; font-weight: 700; letter-spacing: -.045em; }
.brand span { color: var(--muted); font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.nav-cluster { display: flex; justify-content: center; align-items: center; gap: var(--space-2); }
.nav-item { position: relative; }
.nav-link, .subnav-trigger { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: var(--space-2) var(--space-4); border: 1px solid var(--hairline); border-radius: var(--radius-pill); background: transparent; color: var(--fg-2); font-size: var(--text-sm); transition: color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard); }
.nav-link:hover, .subnav-trigger:hover, .nav-link.active { color: var(--fg); border-color: color-mix(in oklch, var(--fg) 30%, transparent); background: color-mix(in oklch, var(--surface) 68%, transparent); }
.subnav { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%) translateY(8px); min-width: 265px; padding: 10px; border: 1px solid var(--border-soft); border-radius: 18px; background: color-mix(in oklch, var(--bg) 94%, transparent); box-shadow: 0 22px 60px color-mix(in oklch, var(--bg) 78%, transparent); opacity: 0; pointer-events: none; transition: opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard); }
.nav-item:hover .subnav, .nav-item:focus-within .subnav { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.subnav a { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: center; padding: 11px 10px; border-radius: 12px; color: var(--fg-2); font-size: var(--text-sm); }
.subnav a:hover, .subnav a.active { background: color-mix(in oklch, var(--fg) 7%, transparent); color: var(--fg); }
.subnav a span { color: var(--muted); font-family: var(--font-mono); font-size: 11px; }
.nav-actions { display: flex; justify-content: flex-end; gap: var(--space-2); align-items: center; }
.theme-toggle, .menu-toggle { min-height: 38px; border: 1px solid var(--hairline); border-radius: var(--radius-pill); background: color-mix(in oklch, var(--surface) 68%, transparent); color: var(--fg); padding: 8px 12px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.menu-toggle { display: none; }
.btn { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: var(--space-2); padding: 12px 20px; border: 1px solid var(--hairline); border-radius: var(--radius-pill); background: color-mix(in oklch, var(--surface) 74%, transparent); color: var(--fg); font-size: var(--text-sm); font-weight: 600; transition: transform var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.btn:hover { transform: translateY(-1px); border-color: color-mix(in oklch, var(--fg) 34%, transparent); background: color-mix(in oklch, var(--surface-warm) 72%, transparent); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: var(--accent-on); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-ghost { background: transparent; }
.btn-arrow::after { content: "→"; font-family: var(--font-mono); transition: transform var(--motion-fast) var(--ease-standard); }
.btn-arrow:hover::after { transform: translateX(3px); }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.section { position: relative; padding-block: var(--section-y-desktop); border-top: 1px solid var(--border-soft); }
.section-rule { display: grid; grid-template-columns: minmax(78px, auto) 1fr minmax(88px, auto); gap: var(--space-4); align-items: center; margin-bottom: var(--space-12); padding-top: var(--space-4); border-top: 1px solid var(--hairline); color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .12em; }
.section-rule b { color: var(--accent); font-family: var(--font-display); font-size: var(--text-sm); font-style: italic; font-weight: 500; letter-spacing: 0; text-transform: none; }
.section-rule span:nth-child(2) { text-align: center; color: var(--muted); }
.section-rule span:nth-child(3) { text-align: right; color: var(--muted); }
.display-xl { font-size: var(--text-4xl); max-width: 12ch; letter-spacing: -.058em; }
.display-lg { font-size: var(--text-3xl); max-width: 14ch; }
.display-md { font-size: var(--text-2xl); max-width: 13ch; }
.italic-word { font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 500; letter-spacing: -.035em; }
.dot { color: var(--accent); }
.lead { max-width: 62ch; color: var(--fg-2); font-size: var(--text-lg); line-height: 1.55; }
.micro { color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .12em; text-transform: uppercase; }
.kicker { display: inline-flex; gap: var(--space-3); align-items: center; margin-bottom: var(--space-5); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .14em; text-transform: uppercase; }
.kicker::before { content: ""; width: 38px; height: 1px; background: var(--accent); }
.hero { min-height: calc(100vh - 114px); padding-block: var(--space-12) var(--section-y-desktop); border-top: 0; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: var(--space-12); align-items: end; min-height: calc(100vh - 195px); }
.hero-copy { position: relative; z-index: 2; padding-bottom: var(--space-8); }
.hero-copy .lead { margin-top: var(--space-6); }
.hero-copy .btn-row { margin-top: var(--space-8); }
.hero-microgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-12); padding-top: var(--space-5); border-top: 1px solid var(--hairline); }
.hero-microgrid strong { display: block; margin-bottom: var(--space-1); color: var(--fg); font-family: var(--font-mono); font-size: var(--text-sm); font-weight: 500; }
.hero-microgrid span { color: var(--muted); font-size: var(--text-sm); }
.sculpture-stage { position: relative; min-height: 650px; isolation: isolate; }
.stone-orbit { position: absolute; inset: 0; border: 1px solid var(--hairline); border-radius: 34px; background: radial-gradient(circle at 44% 28%, color-mix(in oklch, var(--fg) 12%, transparent), transparent 18rem), radial-gradient(circle at 72% 72%, color-mix(in oklch, var(--surface-warm) 55%, transparent), transparent 18rem), linear-gradient(135deg, color-mix(in oklch, var(--surface-warm) 86%, transparent), color-mix(in oklch, var(--surface) 64%, transparent)); box-shadow: 0 30px 90px color-mix(in oklch, var(--bg) 72%, transparent), inset 0 0 0 1px color-mix(in oklch, var(--fg) 7%, transparent); overflow: hidden; }
.stone-orbit::before { content: ""; position: absolute; inset: 8%; border: 1px solid var(--diagram-line); border-radius: 50%; transform: rotate(-12deg); opacity: .6; }
.stone-orbit::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 0 36%, color-mix(in oklch, var(--fg) 8%, transparent) 37% 38%, transparent 39%), radial-gradient(circle at 20% 22%, color-mix(in oklch, var(--fg) 7%, transparent) 0 1px, transparent 2px 9px); mix-blend-mode: soft-light; opacity: .82; }
.stone-volume { position: absolute; width: min(550px, 72%); aspect-ratio: 1; left: 10%; top: 10%; border-radius: 45% 55% 52% 48% / 41% 44% 56% 59%; background: radial-gradient(circle at 40% 30%, color-mix(in oklch, var(--fg) 58%, transparent), transparent 10rem), radial-gradient(circle at 70% 68%, color-mix(in oklch, var(--bg) 86%, transparent), transparent 15rem), repeating-radial-gradient(ellipse at 35% 38%, color-mix(in oklch, var(--fg) 14%, transparent) 0 2px, transparent 3px 10px), linear-gradient(145deg, var(--stone-a), var(--stone-c)); filter: saturate(.25) contrast(1.08); box-shadow: 42px 58px 90px color-mix(in oklch, var(--bg) 80%, transparent); transform: translate3d(calc(var(--parallax, 0) * -12px), calc(var(--parallax, 0) * 18px), 0) rotate(-10deg); animation: floatMain 8s ease-in-out infinite; }
.stone-chip { position: absolute; border-radius: 50%; background: radial-gradient(circle at 32% 28%, var(--fg), color-mix(in oklch, var(--fg-2) 80%, transparent) 45%, var(--bg)); box-shadow: 18px 24px 54px color-mix(in oklch, var(--bg) 78%, transparent); }
.stone-chip.one { width: 118px; height: 118px; right: 16%; top: 9%; animation: floatChip 6.4s ease-in-out infinite; }
.stone-chip.two { width: 82px; height: 82px; right: 8%; bottom: 22%; background: radial-gradient(circle at 30% 25%, var(--surface), color-mix(in oklch, var(--fg) 70%, var(--bg))); animation: floatChip 7.2s ease-in-out infinite reverse; }
.stone-label { position: absolute; left: 36px; bottom: 34px; right: 36px; display: grid; grid-template-columns: 1fr auto; gap: var(--space-4); align-items: end; color: var(--fg); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; }
.stone-label span { color: var(--muted); }
.texture-image, .media-frame { position: relative; overflow: hidden; border: 1px solid var(--image-frame); background: var(--surface); }
.texture-image img, .media-frame img, .catalog-card img, .gallery-card img, .material-tile img, .work-tile img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.28) contrast(1.08); transition: transform 900ms var(--ease-standard), filter var(--motion-base) var(--ease-standard), opacity var(--motion-base) var(--ease-standard); }
html[data-theme="light"] .texture-image img, html[data-theme="light"] .media-frame img, html[data-theme="light"] .catalog-card img, html[data-theme="light"] .gallery-card img, html[data-theme="light"] .material-tile img, html[data-theme="light"] .work-tile img { filter: saturate(.2) contrast(1.02) brightness(.98); }
.texture-image::after, .media-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent, var(--image-overlay)); pointer-events: none; }
.fallback-texture { min-height: 260px; background: radial-gradient(circle at 30% 22%, color-mix(in oklch, var(--fg) 18%, transparent), transparent 8rem), repeating-radial-gradient(ellipse at 40% 50%, color-mix(in oklch, var(--fg) 16%, transparent) 0 1px, transparent 2px 9px), linear-gradient(135deg, var(--surface-warm), var(--bg)); }
.split-head { display: grid; grid-template-columns: minmax(0, .86fr) minmax(260px, .54fr); gap: var(--space-12); align-items: end; margin-bottom: var(--space-12); }
.split-head .lead { justify-self: end; }
.editorial-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); }
.material-tile, .work-tile { position: relative; min-height: 430px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; border: 1px solid var(--image-frame); border-radius: 24px; padding: var(--space-5); background: var(--surface); isolation: isolate; transition: transform var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard); }
.material-tile:nth-child(1), .work-tile:nth-child(1) { grid-column: span 5; }
.material-tile:nth-child(2), .work-tile:nth-child(2) { grid-column: span 4; }
.material-tile:nth-child(3), .work-tile:nth-child(3) { grid-column: span 3; }
.material-tile:nth-child(n+4), .work-tile:nth-child(n+4) { grid-column: span 3; min-height: 320px; }
.material-tile img, .work-tile img { position: absolute; inset: 0; z-index: -2; }
.material-tile::before, .work-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, color-mix(in oklch, var(--bg) 4%, transparent), color-mix(in oklch, var(--bg) 76%, transparent)); }
.material-tile:hover, .work-tile:hover { transform: translateY(-4px); border-color: color-mix(in oklch, var(--fg) 34%, transparent); }
.material-tile:hover img, .work-tile:hover img { transform: scale(1.08); filter: saturate(.18) contrast(1.12); }
.tile-meta { display: flex; justify-content: space-between; gap: var(--space-3); align-items: center; color: var(--meta); font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.tile-copy { margin-top: auto; }
.tile-copy h3 { font-size: clamp(30px, 4vw, 56px); max-width: 9ch; }
.tile-copy p { margin-top: var(--space-3); max-width: 36ch; color: var(--fg-2); }
.info-panel { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); padding: var(--space-8); border: 1px solid var(--hairline); border-radius: 28px; background: color-mix(in oklch, var(--surface) 76%, transparent); }
.fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.fact { padding: var(--space-5); border: 1px solid var(--hairline); border-radius: 20px; background: color-mix(in oklch, var(--bg) 44%, transparent); }
.fact strong { display: block; font-family: var(--font-display); font-size: clamp(42px, 6vw, 76px); line-height: .9; letter-spacing: -.055em; }
.fact span { display: block; margin-top: var(--space-3); color: var(--muted); font-size: var(--text-sm); }
.catalog-tools { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; justify-content: space-between; margin-bottom: var(--space-8); padding: var(--space-4); border: 1px solid var(--hairline); border-radius: 22px; background: color-mix(in oklch, var(--surface) 72%, transparent); }
.search-box { min-width: min(100%, 330px); flex: 1 1 280px; }
.search-box input { width: 100%; min-height: 44px; padding: 0 var(--space-5); border: 1px solid var(--border-soft); border-radius: var(--radius-pill); background: var(--bg); color: var(--fg); }
.catalog-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.catalog-card { position: relative; overflow: hidden; min-height: 380px; border: 1px solid var(--image-frame); border-radius: 24px; background: var(--surface); transition: transform var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard); }
.catalog-card:hover { transform: translateY(-4px); border-color: color-mix(in oklch, var(--fg) 34%, transparent); }
.catalog-media { height: 245px; background: var(--surface-warm); overflow: hidden; }
.catalog-card:hover img { transform: scale(1.09); }
.catalog-body { padding: var(--space-5); }
.catalog-body h3 { font-size: var(--text-xl); letter-spacing: -.035em; }
.catalog-body p { margin-top: var(--space-2); color: var(--muted); font-size: var(--text-sm); }
.empty-state { padding: var(--space-12); border: 1px solid var(--hairline); border-radius: 28px; background: color-mix(in oklch, var(--surface) 72%, transparent); text-align: center; }
.gallery-grid { columns: 3 260px; column-gap: var(--space-4); }
.gallery-card { display: inline-block; width: 100%; margin: 0 0 var(--space-4); break-inside: avoid; overflow: hidden; border: 1px solid var(--image-frame); border-radius: 22px; background: var(--surface); text-align: left; transition: transform var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard); }
.gallery-card:hover { transform: translateY(-4px); border-color: color-mix(in oklch, var(--fg) 34%, transparent); }
.gallery-media { height: auto; aspect-ratio: var(--ratio, 4 / 5); overflow: hidden; background: var(--surface-warm); }
.gallery-card:hover img { transform: scale(1.07); }
.gallery-caption { padding: var(--space-4); }
.gallery-caption h3 { font-size: var(--text-xl); }
.gallery-caption p { margin-top: var(--space-2); color: var(--muted); font-size: var(--text-sm); }
.process-list { display: grid; gap: 0; border-top: 1px solid var(--hairline); }
.process-row { display: grid; grid-template-columns: 90px 1fr minmax(260px, .45fr); gap: var(--space-6); padding: var(--space-6) 0; border-bottom: 1px solid var(--hairline); align-items: start; }
.process-row h3 { font-size: var(--text-xl); }
.process-row p { color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(360px, .65fr); gap: var(--space-8); align-items: start; }
.contact-card, .form-card { padding: var(--space-8); border: 1px solid var(--hairline); border-radius: 28px; background: color-mix(in oklch, var(--surface) 74%, transparent); }
.contact-list { display: grid; gap: var(--space-3); margin-top: var(--space-8); }
.contact-line { display: grid; grid-template-columns: 120px 1fr; gap: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--hairline); }
.contact-line span:first-child { color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.field { display: grid; gap: var(--space-2); }
.field.full { grid-column: 1 / -1; }
.field label { color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; }
input, textarea, select { width: 100%; border: 1px solid var(--border-soft); border-radius: 16px; background: color-mix(in oklch, var(--bg) 72%, transparent); color: var(--fg); padding: 13px 14px; }
textarea { min-height: 120px; resize: vertical; }
.form-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-5); }
.form-note { min-height: 24px; margin-top: var(--space-4); color: var(--muted); font-size: var(--text-sm); }
.lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: var(--space-6); background: color-mix(in oklch, var(--bg) 78%, transparent); backdrop-filter: blur(18px); opacity: 0; pointer-events: none; transition: opacity var(--motion-fast) var(--ease-standard); }
.lightbox.open { opacity: 1; pointer-events: auto; }
.lightbox-panel { width: min(1120px, 100%); max-height: 90vh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .35fr); overflow: hidden; border: 1px solid var(--hairline); border-radius: 28px; background: var(--surface); box-shadow: 0 30px 80px color-mix(in oklch, var(--bg) 82%, transparent); }
.lightbox-media { min-height: 62vh; background: var(--bg); }
.lightbox-media img { width: 100%; height: 100%; object-fit: contain; }
.lightbox-copy { padding: var(--space-6); border-left: 1px solid var(--hairline); }
.lightbox-close { position: absolute; top: var(--space-6); right: var(--space-6); width: 44px; height: 44px; border: 1px solid var(--hairline); border-radius: var(--radius-pill); background: var(--surface); color: var(--fg); }
.pagefoot { padding-block: var(--section-y-desktop) var(--space-8); border-top: 1px solid var(--border-soft); background: linear-gradient(180deg, color-mix(in oklch, var(--surface) 64%, transparent), var(--bg)); overflow: hidden; }
.footer-cta { display: grid; grid-template-columns: 1fr auto; gap: var(--space-8); align-items: end; margin-bottom: var(--space-12); }
.footer-word { display: block; margin-top: var(--space-12); font-family: var(--font-display); font-size: clamp(66px, 13vw, 210px); line-height: .78; letter-spacing: -.08em; color: color-mix(in oklch, var(--fg) 14%, transparent); white-space: nowrap; }
.footer-links { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: var(--space-5); }
.footer-links h3 { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--meta); letter-spacing: .12em; text-transform: uppercase; }
.footer-links a, .footer-links p { display: block; margin-top: var(--space-2); color: var(--muted); font-size: var(--text-sm); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--hairline); color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; }
.reveal { opacity: 0; transform: translateY(24px); filter: blur(8px); transition: opacity 760ms var(--ease-standard), transform 760ms var(--ease-standard), filter 760ms var(--ease-standard); }
.reveal.in-view { opacity: 1; transform: translateY(0); filter: blur(0); }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes floatMain { 0%,100% { transform: translate3d(calc(var(--parallax, 0) * -12px), calc(var(--parallax, 0) * 18px), 0) rotate(-10deg); } 50% { transform: translate3d(calc(var(--parallax, 0) * -12px), calc(var(--parallax, 0) * 18px - 16px), 0) rotate(-7deg); } }
@keyframes floatChip { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-14px) rotate(7deg); } }
@media (max-width: 1180px) { .container { padding-inline: var(--container-gutter-tablet); } .nav-cluster { position: fixed; left: var(--space-4); right: var(--space-4); top: 116px; display: none; flex-direction: column; align-items: stretch; padding: var(--space-4); border: 1px solid var(--border-soft); border-radius: 24px; background: color-mix(in oklch, var(--bg) 96%, transparent); box-shadow: 0 24px 80px color-mix(in oklch, var(--bg) 80%, transparent); } .nav-cluster.open { display: flex; } .nav-item, .nav-link, .subnav-trigger { width: 100%; } .subnav { position: static; transform: none; opacity: 1; pointer-events: auto; min-width: 0; margin-top: var(--space-2); display: none; } .nav-item:hover .subnav, .nav-item:focus-within .subnav { transform: none; } .nav-item.open .subnav { display: block; } .menu-toggle { display: inline-flex; } .topnav-inner { grid-template-columns: auto auto; } .nav-actions { grid-column: 2; } }
@media (max-width: 920px) { .section { padding-block: var(--section-y-tablet); } .hero-grid, .split-head, .info-panel, .contact-grid, .footer-cta { grid-template-columns: 1fr; } .hero { min-height: auto; } .hero-grid { min-height: auto; } .sculpture-stage { min-height: 500px; } .editorial-grid, .catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .material-tile, .work-tile, .material-tile:nth-child(n), .work-tile:nth-child(n) { grid-column: span 1; min-height: 360px; } .process-row { grid-template-columns: 68px 1fr; } .process-row p { grid-column: 2; } .footer-links { grid-template-columns: repeat(2, minmax(0,1fr)); } .lightbox-panel { grid-template-columns: 1fr; } .lightbox-copy { border-left: 0; border-top: 1px solid var(--hairline); } }
@media (max-width: 560px) { .container { padding-inline: var(--container-gutter-phone); } .meta-strip .container { grid-template-columns: 1fr; gap: 2px; padding-block: 8px; } .meta-strip span:nth-child(2), .meta-strip span:nth-child(3) { text-align: left; } .topnav-inner { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); } .brand { min-width: 0; font-size: 24px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .brand span { display: none; } .nav-actions { justify-self: end; gap: var(--space-2); } .theme-toggle, .menu-toggle { padding-inline: 10px; min-height: 36px; } .section { padding-block: var(--section-y-phone); } .section-rule { grid-template-columns: 1fr; gap: var(--space-2); margin-bottom: var(--space-8); } .section-rule span:nth-child(2), .section-rule span:nth-child(3) { text-align: left; } .display-xl { max-width: 100%; font-size: clamp(44px, 12.8vw, 58px); letter-spacing: -.052em; } .display-lg { font-size: clamp(34px, 10.5vw, 52px); } .hero-copy { max-width: 100%; } .btn-row { width: 100%; } .btn-row .btn { flex: 1 1 auto; justify-content: center; min-width: min(100%, 150px); } .hero-microgrid, .fact-grid, .form-grid, .editorial-grid, .catalog-grid { grid-template-columns: 1fr; } .sculpture-stage { min-height: 390px; } .mobile-cta { display: none; } .catalog-media { height: 235px; } .gallery-grid { columns: 1; } .contact-line { grid-template-columns: 1fr; gap: var(--space-1); } .footer-links { grid-template-columns: 1fr; } .footer-word { white-space: normal; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; filter: none; } }


/* V5 refinement: Apple-style theme switch, smoother theme transition, and cleaner media fallbacks */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.theme-toggle {
  --switch-w: 74px;
  --switch-h: 38px;
  --thumb: 30px;
  position: relative;
  inline-size: var(--switch-w);
  min-inline-size: var(--switch-w);
  block-size: var(--switch-h);
  min-height: var(--switch-h);
  padding: 0;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in oklch, var(--fg) 18%, transparent);
  background: color-mix(in oklch, var(--surface) 74%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in oklch, var(--fg) 8%, transparent), 0 10px 28px color-mix(in oklch, var(--bg) 45%, transparent);
  overflow: hidden;
  isolation: isolate;
  transition: background 700ms var(--ease-standard), border-color 700ms var(--ease-standard), box-shadow 700ms var(--ease-standard), transform 220ms var(--ease-standard);
}
.theme-toggle:hover { transform: translateY(-1px); }
.theme-toggle:active { transform: translateY(0) scale(.985); }
.theme-track {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  padding-inline: 10px;
}
.theme-icon {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 15px;
  line-height: 1;
  color: color-mix(in oklch, var(--fg) 56%, transparent);
  transition: color 700ms var(--ease-standard), opacity 700ms var(--ease-standard), transform 700ms var(--ease-standard);
}
.theme-sun { justify-self: start; }
.theme-moon { justify-self: end; }
.theme-thumb {
  position: absolute;
  z-index: 1;
  inset-block-start: calc((var(--switch-h) - var(--thumb)) / 2);
  inline-size: var(--thumb);
  block-size: var(--thumb);
  border-radius: 50%;
  background:
    radial-gradient(circle at 36% 30%, color-mix(in oklch, var(--accent-on) 42%, transparent), transparent 42%),
    var(--accent);
  box-shadow: 0 6px 18px color-mix(in oklch, var(--bg) 54%, transparent), inset 0 0 0 1px color-mix(in oklch, var(--fg) 11%, transparent);
  transform: translateX(calc(var(--switch-w) - var(--thumb) - 5px));
  transition: transform 760ms cubic-bezier(.22, 1, .36, 1), background 700ms var(--ease-standard), box-shadow 700ms var(--ease-standard);
}
html[data-theme="light"] .theme-thumb { transform: translateX(5px); }
html[data-theme="dark"] .theme-moon { color: var(--accent-on); transform: scale(1.04); }
html[data-theme="dark"] .theme-sun { opacity: .54; }
html[data-theme="light"] .theme-sun { color: var(--accent-on); transform: scale(1.04); }
html[data-theme="light"] .theme-moon { opacity: .54; }
html[data-theme="light"] .theme-toggle {
  background: color-mix(in oklch, var(--surface) 88%, white 8%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 10px 28px rgba(0,0,0,.08);
}
html[data-theme="dark"] .theme-toggle {
  background: color-mix(in oklch, var(--surface) 74%, black 12%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 28px rgba(0,0,0,.32);
}
html.theme-transitioning,
html.theme-transitioning *,
html.theme-transitioning *::before,
html.theme-transitioning *::after {
  transition-duration: 760ms !important;
  transition-timing-function: var(--ease-standard) !important;
}
.fallback-texture {
  min-height: 260px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 26% 14%, color-mix(in oklch, var(--fg) 20%, transparent), transparent 8rem),
    radial-gradient(ellipse at 76% 78%, color-mix(in oklch, var(--surface-warm) 62%, transparent), transparent 14rem),
    repeating-radial-gradient(ellipse at 44% 48%, color-mix(in oklch, var(--fg) 15%, transparent) 0 1px, transparent 2px 9px),
    linear-gradient(135deg, var(--surface-warm), var(--bg));
}
.fallback-texture::before {
  content: "";
  position: absolute;
  inset: -20%;
  opacity: .38;
  background:
    linear-gradient(120deg, transparent 0 34%, color-mix(in oklch, var(--fg) 8%, transparent) 35% 36%, transparent 37%),
    linear-gradient(22deg, transparent 0 52%, color-mix(in oklch, var(--fg) 12%, transparent) 53% 54%, transparent 55%);
  filter: blur(.2px);
}
.fallback-texture::after {
  content: "";
  position: absolute;
  inset: 11%;
  border: 1px solid var(--diagram-line);
  border-radius: 50%;
  transform: rotate(-12deg);
  opacity: .42;
}
@media (max-width: 560px) {
  .theme-toggle {
    --switch-w: 64px;
    --switch-h: 34px;
    --thumb: 26px;
    min-height: var(--switch-h);
  }
  .theme-icon { font-size: 13px; }
}


/* V6 home/nav refinement: remove meta strip, Apple-inspired mode switch, aligned quote CTA, tighter hero */
.meta-strip { display: none !important; }
.topnav-inner { min-height: 72px; }
.nav-actions { align-items: center; gap: 10px; }
.nav-actions .btn.nav-quote,
.nav-actions .mobile-cta.nav-quote {
  min-height: 44px;
  height: 44px;
  padding: 0 22px;
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 12px 34px color-mix(in oklch, var(--bg) 48%, transparent);
}
.theme-toggle {
  --switch-w: 108px;
  --switch-h: 44px;
  --thumb: 36px;
  position: relative;
  inline-size: var(--switch-w);
  min-inline-size: var(--switch-w);
  block-size: var(--switch-h);
  min-height: var(--switch-h);
  padding: 0;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in oklch, var(--fg) 14%, transparent);
  background: color-mix(in oklch, var(--surface) 78%, transparent);
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, var(--fg) 8%, transparent),
    0 14px 34px color-mix(in oklch, var(--bg) 48%, transparent);
  overflow: hidden;
  isolation: isolate;
  transition:
    background 620ms cubic-bezier(.22, 1, .36, 1),
    border-color 620ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 620ms cubic-bezier(.22, 1, .36, 1),
    transform 220ms cubic-bezier(.22, 1, .36, 1);
}
.theme-toggle:hover { transform: translateY(-1px); }
.theme-toggle:active { transform: translateY(0) scale(.985); }
.theme-track {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  padding: 0 13px;
}
.mode-label {
  position: relative;
  z-index: 2;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: -.02em;
  color: color-mix(in oklch, var(--fg) 54%, transparent);
  transition: color 520ms cubic-bezier(.22, 1, .36, 1), opacity 520ms cubic-bezier(.22, 1, .36, 1), transform 520ms cubic-bezier(.22, 1, .36, 1);
  pointer-events: none;
}
.mode-dark { justify-self: start; padding-left: 3px; }
.mode-light { justify-self: end; padding-right: 1px; }
.theme-thumb {
  position: absolute;
  z-index: 1;
  inset-block-start: calc((var(--switch-h) - var(--thumb)) / 2);
  inline-size: var(--thumb);
  block-size: var(--thumb);
  border-radius: 999px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.50), transparent 38%),
    color-mix(in oklch, var(--fg) 92%, var(--surface));
  color: var(--accent-on);
  box-shadow:
    0 10px 26px color-mix(in oklch, var(--bg) 56%, transparent),
    inset 0 0 0 1px color-mix(in oklch, var(--fg) 12%, transparent);
  transform: translateX(calc(var(--switch-w) - var(--thumb) - 4px));
  transition:
    transform 560ms cubic-bezier(.22, 1, .36, 1),
    background 620ms cubic-bezier(.22, 1, .36, 1),
    color 620ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 620ms cubic-bezier(.22, 1, .36, 1);
}
.thumb-icon {
  grid-area: 1 / 1;
  font-size: 15px;
  line-height: 1;
  transition: opacity 420ms cubic-bezier(.22, 1, .36, 1), transform 420ms cubic-bezier(.22, 1, .36, 1);
}
html[data-theme="dark"] .theme-thumb { transform: translateX(calc(var(--switch-w) - var(--thumb) - 4px)); }
html[data-theme="light"] .theme-thumb { transform: translateX(4px); background: radial-gradient(circle at 34% 28%, #fff, transparent 42%), color-mix(in oklch, var(--surface) 92%, white); color: var(--fg); }
html[data-theme="dark"] .mode-dark { color: var(--fg); opacity: .95; transform: translateX(1px); }
html[data-theme="dark"] .mode-light { opacity: .44; }
html[data-theme="light"] .mode-light { color: var(--fg); opacity: .95; transform: translateX(-1px); }
html[data-theme="light"] .mode-dark { opacity: .44; }
html[data-theme="dark"] .thumb-sun { opacity: 0; transform: scale(.7) rotate(-18deg); }
html[data-theme="dark"] .thumb-moon { opacity: 1; transform: scale(1) rotate(0); }
html[data-theme="light"] .thumb-moon { opacity: 0; transform: scale(.7) rotate(18deg); }
html[data-theme="light"] .thumb-sun { opacity: 1; transform: scale(1) rotate(0); }
html[data-theme="light"] .theme-toggle {
  background: color-mix(in oklch, var(--surface) 86%, white 8%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 14px 34px rgba(0,0,0,.09);
}
html[data-theme="dark"] .theme-toggle {
  background: color-mix(in oklch, var(--surface) 72%, black 18%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 14px 34px rgba(0,0,0,.34);
}
html.theme-transitioning,
html.theme-transitioning *,
html.theme-transitioning *::before,
html.theme-transitioning *::after {
  transition-duration: 680ms !important;
  transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.hero {
  min-height: calc(100vh - 73px);
  padding-block: clamp(34px, 4.2vw, 60px) clamp(44px, 5vw, 72px);
}
.hero-grid {
  min-height: calc(100vh - 168px);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
}
.hero-copy { padding-bottom: 0; }
.hero-copy .lead { margin-top: clamp(14px, 2vw, 22px); max-width: 46rem; }
.hero-copy .btn-row { margin-top: clamp(20px, 2.5vw, 30px); }
.hero-microgrid {
  margin-top: clamp(24px, 3.2vw, 40px);
  padding-top: var(--space-4);
}
.display-xl {
  max-width: 9.6ch;
  font-size: clamp(58px, 7.4vw, 116px);
  line-height: .86;
  letter-spacing: -.066em;
}
.sculpture-stage { min-height: clamp(420px, 42vw, 610px); }
@media (max-width: 1180px) {
  .nav-cluster { top: 88px; }
}
@media (max-width: 920px) {
  .hero { min-height: auto; }
  .hero-grid { min-height: auto; }
  .display-xl { max-width: 100%; font-size: clamp(54px, 12vw, 92px); }
  .sculpture-stage { min-height: 460px; }
}
@media (max-width: 560px) {
  .theme-toggle { --switch-w: 92px; --switch-h: 38px; --thumb: 30px; min-height: var(--switch-h); }
  .mode-label { font-size: 11px; }
  .thumb-icon { font-size: 13px; }
  .nav-actions .btn.nav-quote, .nav-actions .mobile-cta.nav-quote { min-height: 38px; height: 38px; padding-inline: 16px; }
  .display-xl { font-size: clamp(48px, 14vw, 64px); line-height: .9; }
  .hero-copy .lead { font-size: 15px; }
  .hero-microgrid { margin-top: var(--space-6); }
  .sculpture-stage { min-height: 340px; }
}


/* V6.2 hero refinement: cleaner Apple-like segmented theme switch, no brand subtitle, single-line hero phrase, floating stone image */
.brand span { display: none !important; }
.nav-actions { align-items: center; gap: 12px; }
.theme-toggle {
  --switch-w: 132px;
  --switch-h: 44px;
  --thumb: 60px;
  inline-size: var(--switch-w);
  min-inline-size: var(--switch-w);
  block-size: var(--switch-h);
  min-height: var(--switch-h);
  padding: 0;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid color-mix(in oklch, var(--fg) 13%, transparent);
  background: color-mix(in oklch, var(--surface) 72%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, var(--fg) 6%, transparent),
    0 12px 34px color-mix(in oklch, var(--bg) 45%, transparent);
}
.theme-track {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  padding: 4px;
}
.theme-thumb {
  position: absolute;
  z-index: 1;
  top: 4px;
  left: 4px;
  inline-size: var(--thumb);
  block-size: calc(var(--switch-h) - 8px);
  border-radius: 999px;
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.58), transparent 42%),
    color-mix(in oklch, var(--fg) 92%, var(--surface));
  box-shadow:
    0 14px 28px color-mix(in oklch, var(--bg) 58%, transparent),
    inset 0 0 0 1px color-mix(in oklch, var(--fg) 11%, transparent);
  transform: translateX(0);
  transition:
    transform 520ms cubic-bezier(.22, 1, .36, 1),
    background 560ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 560ms cubic-bezier(.22, 1, .36, 1);
}
.mode-label {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  height: 100%;
  padding: 0 8px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1;
  white-space: nowrap;
  color: color-mix(in oklch, var(--fg) 52%, transparent);
  opacity: .68;
  transition: color 420ms cubic-bezier(.22, 1, .36, 1), opacity 420ms cubic-bezier(.22, 1, .36, 1), transform 420ms cubic-bezier(.22, 1, .36, 1);
  pointer-events: none;
}
.mode-icon { font-size: 11px; line-height: 1; opacity: .9; }
html[data-theme="dark"] .theme-thumb { transform: translateX(0); background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.42), transparent 42%), color-mix(in oklch, var(--fg) 88%, black 10%); }
html[data-theme="light"] .theme-thumb { transform: translateX(calc(var(--switch-w) - var(--thumb) - 8px)); background: radial-gradient(circle at 34% 26%, #fff, transparent 45%), color-mix(in oklch, var(--surface) 90%, white 10%); }
html[data-theme="dark"] .mode-dark { color: var(--accent-on); opacity: 1; }
html[data-theme="dark"] .mode-light { color: color-mix(in oklch, var(--fg) 50%, transparent); opacity: .58; }
html[data-theme="light"] .mode-light { color: var(--fg); opacity: 1; }
html[data-theme="light"] .mode-dark { color: color-mix(in oklch, var(--fg) 48%, transparent); opacity: .55; }
html[data-theme="light"] .theme-toggle { background: color-mix(in oklch, var(--surface) 88%, white 8%); box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 12px 30px rgba(0,0,0,.08); }
html[data-theme="dark"] .theme-toggle { background: color-mix(in oklch, var(--surface) 70%, black 20%); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.36); }
.display-xl {
  max-width: 13.6ch;
  overflow: visible;
}
.italic-word.nowrap-line,
.nowrap-line {
  white-space: nowrap;
  display: inline-block;
}
.hero-copy { z-index: 4; }
.hero-photo-stage {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 45%, color-mix(in oklch, var(--fg) 10%, transparent), transparent 45%),
    linear-gradient(135deg, color-mix(in oklch, var(--surface) 80%, transparent), color-mix(in oklch, var(--bg) 84%, transparent));
}
.hero-floating-stone {
  position: relative;
  z-index: 2;
  width: min(74%, 620px);
  max-height: 82%;
  object-fit: contain;
  filter: grayscale(1) contrast(1.18) brightness(.96) drop-shadow(0 34px 54px rgba(0,0,0,.24));
  mix-blend-mode: multiply;
  animation: stoneFloat 7.5s cubic-bezier(.45, 0, .2, 1) infinite alternate;
  transform-origin: center;
}
html[data-theme="dark"] .hero-floating-stone {
  mix-blend-mode: screen;
  filter: grayscale(1) contrast(1.2) brightness(.82) drop-shadow(0 34px 54px rgba(0,0,0,.55));
  opacity: .92;
}
.hero-photo-stage .stone-orbit { z-index: 1; }
.hero-photo-stage .stone-chip { z-index: 3; opacity: .78; }
@keyframes stoneFloat {
  from { transform: translate3d(-1.2%, 1.2%, 0) rotate(-2.2deg) scale(.985); }
  to { transform: translate3d(1.4%, -1.6%, 0) rotate(2.6deg) scale(1.015); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-floating-stone { animation: none; }
}
@media (max-width: 920px) {
  .display-xl { max-width: 100%; }
  .italic-word.nowrap-line { white-space: normal; }
  .hero-floating-stone { width: min(82%, 520px); }
}
@media (max-width: 560px) {
  .theme-toggle { --switch-w: 116px; --switch-h: 38px; --thumb: 52px; }
  .mode-label { font-size: 11px; padding-inline: 6px; }
  .mode-icon { font-size: 10px; }
}


/* V7 targeted refinements requested by user */
.stone-orbit {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.stone-orbit::after {
  opacity: .42;
}
.stone-label {
  display: none !important;
}
.hero-photo-stage {
  pointer-events: none;
}
@media (min-width: 921px) {
  .hero-grid {
    gap: clamp(1.5rem, 3.2vw, 3.75rem);
    align-items: center;
  }
  .hero .hero-copy {
    margin-right: clamp(-90px, -5vw, -40px);
  }
  .hero .hero-photo-stage {
    margin-left: clamp(-92px, -5vw, -34px);
    z-index: 1;
  }
  .hero-copy {
    z-index: 5;
  }
}
.footer-bottom {
  justify-content: center !important;
  text-align: center;
}
.footer-bottom span {
  width: 100%;
}

/* V8 requested refinements: clean hero visual residual block + about image framing */
.hero-photo-stage,
.sculpture-stage.hero-photo-stage {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.hero-photo-stage::before,
.hero-photo-stage::after,
.sculpture-stage.hero-photo-stage::before,
.sculpture-stage.hero-photo-stage::after {
  display: none !important;
  content: none !important;
}
.hero-photo-stage .stone-orbit {
  inset: 3% 1% 2% -5%;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.hero-photo-stage .stone-orbit::before {
  inset: 8% 2% 5% -8%;
  border-color: color-mix(in oklch, var(--fg) 12%, transparent);
  opacity: .48;
}
.hero-photo-stage .stone-orbit::after {
  opacity: 0 !important;
}
.hero-photo-stage .stone-chip.one {
  right: 19%;
  top: 4%;
}
.hero-photo-stage .stone-chip.two {
  right: 8%;
  bottom: 20%;
}
.hero-floating-stone {
  width: min(72%, 590px);
  filter: grayscale(1) contrast(1.22) brightness(.95) drop-shadow(0 44px 70px rgba(0,0,0,.24));
}
html[data-theme="dark"] .hero-floating-stone {
  filter: grayscale(1) contrast(1.22) brightness(.84) drop-shadow(0 44px 70px rgba(0,0,0,.58));
}
.about-hero-media {
  background: color-mix(in oklch, var(--surface) 78%, transparent) !important;
}
.about-hero-media::after {
  background: linear-gradient(180deg, transparent 46%, color-mix(in oklch, var(--bg) 24%, transparent)) !important;
}
.about-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: grayscale(.88) saturate(.16) contrast(1.08) brightness(.98);
  transform: scale(1.015);
}
html[data-theme="dark"] .about-hero-img {
  filter: grayscale(.92) saturate(.12) contrast(1.12) brightness(.76);
}
@media (min-width: 921px) {
  .hero .hero-photo-stage {
    margin-left: clamp(-130px, -7vw, -58px);
  }
}


/* V9 gallery polish: tighter material crops, cleaner catalog hero, lightbox carousel arrows */
.about-hero-media {
  overflow: hidden !important;
  background: color-mix(in oklch, var(--surface) 62%, transparent) !important;
}
.about-hero-img {
  object-position: center 34% !important;
  transform: scale(1.22) !important;
  transform-origin: center center;
}
html[data-theme="dark"] .about-hero-img {
  filter: grayscale(.94) saturate(.08) contrast(1.14) brightness(.75) !important;
}
.catalog-page-clean .hero-microgrid,
[data-od-id="catalog-hero"] .hero-microgrid {
  display: none !important;
}
.catalog-media {
  height: clamp(248px, 18vw, 310px) !important;
  background: color-mix(in oklch, var(--surface) 92%, var(--bg) 8%) !important;
}
.catalog-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.08);
  transform-origin: center center;
}
.catalog-card:hover .catalog-media img,
.catalog-card:focus-within .catalog-media img {
  transform: scale(1.14) !important;
}
.catalog-card .fallback-texture {
  min-height: 100% !important;
}
.lightbox-panel {
  width: min(1180px, calc(100vw - 104px));
  min-height: min(760px, 84vh);
}
.lightbox-media {
  position: relative;
  min-height: min(72vh, 760px);
  overflow: hidden;
}
.lightbox-media img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center center;
  transform: scale(1.01);
}
.lightbox-copy {
  overflow: hidden;
}
.lightbox-copy .display-md {
  font-size: clamp(36px, 4.2vw, 68px);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: anywhere;
}
.lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 102;
  width: clamp(46px, 4vw, 58px);
  height: clamp(46px, 4vw, 58px);
  display: grid;
  place-items: center;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  background: color-mix(in oklch, var(--surface) 88%, transparent);
  color: var(--fg);
  font-family: var(--font-display);
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1;
  box-shadow: 0 20px 60px color-mix(in oklch, var(--bg) 70%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transform: translateY(-50%);
  transition: transform 320ms var(--ease-standard), background-color 320ms var(--ease-standard), opacity 320ms var(--ease-standard);
}
.lightbox-nav:hover {
  transform: translateY(-50%) scale(1.06);
  background: var(--fg);
  color: var(--bg);
}
.lightbox-prev { left: clamp(14px, 3vw, 42px); }
.lightbox-next { right: clamp(14px, 3vw, 42px); }
@media (max-width: 920px) {
  .lightbox-panel {
    width: min(100%, calc(100vw - 28px));
    max-height: 86vh;
    min-height: 0;
  }
  .lightbox-media {
    min-height: 52vh;
  }
  .lightbox-nav {
    top: 43%;
    width: 42px;
    height: 42px;
    font-size: 30px;
  }
  .lightbox-prev { left: 12px; }
  .lightbox-next { right: 12px; }
}
@media (max-width: 560px) {
  .catalog-media { height: 230px !important; }
  .about-hero-img { transform: scale(1.16) !important; object-position: center 40% !important; }
}


/* V10 natural stone fixes: always-visible catalog grids, fuller image crops, premium coming-soon states */
.texture-image img, .media-frame img, .material-tile img, .work-tile img, .gallery-card img, .catalog-card img {
  object-fit: cover !important;
  object-position: center center !important;
}
.texture-image img, .media-frame img {
  transform: scale(1.04);
  transform-origin: center center;
}
.catalog-card {
  display: flex;
  flex-direction: column;
}
.catalog-media {
  height: clamp(260px, 19vw, 320px) !important;
  overflow: hidden;
}
.catalog-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.12) !important;
  transform-origin: center center;
}
.catalog-card:hover .catalog-media img,
.catalog-card:focus-within .catalog-media img {
  transform: scale(1.18) !important;
}
.material-tile img, .work-tile img {
  transform: scale(1.05);
  transform-origin: center center;
}
.material-tile:hover img, .work-tile:hover img {
  transform: scale(1.1);
}
.catalog-grid {
  align-items: start;
}
.stone-coming-soon {
  max-width: 1180px;
  padding: clamp(44px, 7vw, 84px) clamp(26px, 5vw, 72px);
  border-radius: 34px;
  border: 1px solid var(--hairline);
  background: linear-gradient(180deg, color-mix(in oklch, var(--surface) 96%, transparent), color-mix(in oklch, var(--surface-warm) 78%, transparent));
  text-align: center;
}
.stone-coming-soon .lead {
  max-width: 760px;
}
.stone-coming-soon .btn-row {
  gap: var(--space-3);
}


/* V11 hero fill + quartz reference */
.texture-image > img,
.media-frame > img,
.texture-image > .fallback-texture,
.media-frame > .fallback-texture {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.texture-image,
.media-frame {
  isolation: isolate;
}

.texture-image::after,
.media-frame::after {
  z-index: 1;
}

.texture-image > img,
.media-frame > img {
  z-index: 0;
}

.texture-image > .fallback-texture,
.media-frame > .fallback-texture {
  min-height: 100% !important;
}


/* v12 trabajos refinement */
.section[data-od-id="work-hero"] .media-frame {
  height: clamp(420px, 58vh, 720px) !important;
  min-height: 0 !important;
  overflow: hidden;
}
.section[data-od-id="work-hero"] .media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.gallery-media {
  overflow: hidden;
}
.gallery-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* v14 trabajos cards fill - match piedras catalog rhythm */
.section[data-od-id="work-gallery"] .gallery-grid {
  columns: unset !important;
  column-gap: unset !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(18px, 1.6vw, 28px) !important;
  align-items: stretch !important;
}

.section[data-od-id="work-gallery"] .gallery-card {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 100% !important;
  margin: 0 !important;
  break-inside: auto !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  background: var(--surface) !important;
  align-self: stretch !important;
}

.section[data-od-id="work-gallery"] .gallery-media {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 0.98 !important;
  overflow: hidden !important;
  background: var(--surface-warm) !important;
  flex: 0 0 auto !important;
}

.section[data-od-id="work-gallery"] .gallery-media img,
.section[data-od-id="work-gallery"] .gallery-media picture,
.section[data-od-id="work-gallery"] .gallery-media picture img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.04) !important;
  transform-origin: center center !important;
}

.section[data-od-id="work-gallery"] .gallery-card:hover .gallery-media img {
  transform: scale(1.1) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

@media (max-width: 980px) {
  .section[data-od-id="work-gallery"] .gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .section[data-od-id="work-gallery"] .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .section[data-od-id="work-gallery"] .gallery-grid {
    grid-template-columns: 1fr !important;
  }
  .section[data-od-id="work-gallery"] .gallery-media {
    aspect-ratio: 1 / 0.82 !important;
  }
}

/* v15 trabajos cards full-bleed - image fills the whole card */
.section[data-od-id="work-gallery"] .gallery-card {
  position: relative !important;
  min-height: clamp(410px, 31vw, 520px) !important;
  display: flex !important;
  justify-content: flex-end !important;
  border-radius: 22px !important;
  background: var(--surface) !important;
  isolation: isolate !important;
}

.section[data-od-id="work-gallery"] .gallery-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background:
    linear-gradient(180deg, transparent 34%, color-mix(in oklch, var(--bg) 14%, transparent) 58%, color-mix(in oklch, var(--bg) 86%, transparent) 100%),
    linear-gradient(90deg, color-mix(in oklch, var(--bg) 26%, transparent), transparent 46%) !important;
  pointer-events: none !important;
}

.section[data-od-id="work-gallery"] .gallery-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  aspect-ratio: auto !important;
  background: var(--surface) !important;
  z-index: 0 !important;
}

.section[data-od-id="work-gallery"] .gallery-media img,
.section[data-od-id="work-gallery"] .gallery-media picture,
.section[data-od-id="work-gallery"] .gallery-media picture img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.01) !important;
}

.section[data-od-id="work-gallery"] .gallery-card:hover .gallery-media img {
  transform: scale(1.055) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 2 !important;
  width: 100% !important;
  min-height: auto !important;
  flex: 0 0 auto !important;
  margin-top: 0 !important;
  padding: clamp(72px, 7vw, 126px) clamp(22px, 2.1vw, 34px) clamp(22px, 2.1vw, 34px) !important;
  color: var(--fg) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption .micro {
  color: color-mix(in oklch, var(--fg) 72%, transparent) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption h3 {
  max-width: 8.8ch !important;
  color: var(--fg) !important;
  text-wrap: balance !important;
}

.section[data-od-id="work-gallery"] .gallery-caption p {
  max-width: 30ch !important;
  color: color-mix(in oklch, var(--fg) 72%, transparent) !important;
}

@media (max-width: 980px) {
  .section[data-od-id="work-gallery"] .gallery-card {
    min-height: clamp(360px, 44vw, 480px) !important;
  }
}

@media (max-width: 560px) {
  .section[data-od-id="work-gallery"] .gallery-card {
    min-height: 430px !important;
  }
}

/* v16 trabajos cards catalog-style - match piedras: full crop above, text panel below */
.section[data-od-id="work-gallery"] .gallery-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-height: 0 !important;
  height: 100% !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--image-frame) !important;
  border-radius: 24px !important;
  background: var(--surface) !important;
  color: var(--fg) !important;
  text-align: left !important;
  isolation: auto !important;
}

.section[data-od-id="work-gallery"] .gallery-card::after {
  content: none !important;
  display: none !important;
}

.section[data-od-id="work-gallery"] .gallery-media {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  width: 100% !important;
  height: clamp(260px, 19vw, 320px) !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  background: color-mix(in oklch, var(--surface) 92%, var(--bg) 8%) !important;
}

.section[data-od-id="work-gallery"] .gallery-media img,
.section[data-od-id="work-gallery"] .gallery-media picture,
.section[data-od-id="work-gallery"] .gallery-media picture img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.12) !important;
  transform-origin: center center !important;
}

.section[data-od-id="work-gallery"] .gallery-card:hover .gallery-media img,
.section[data-od-id="work-gallery"] .gallery-card:focus-visible .gallery-media img {
  transform: scale(1.18) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: auto !important;
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  padding: var(--space-5) !important;
  background: var(--surface) !important;
  color: var(--fg) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption .micro {
  color: var(--meta) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption h3 {
  max-width: none !important;
  color: var(--fg) !important;
  font-size: var(--text-xl) !important;
  letter-spacing: -.035em !important;
  text-wrap: balance !important;
}

.section[data-od-id="work-gallery"] .gallery-caption p {
  max-width: none !important;
  margin-top: var(--space-2) !important;
  color: var(--muted) !important;
  font-size: var(--text-sm) !important;
}

.section[data-od-id="work-gallery"] .gallery-caption .gallery-quote {
  margin-top: var(--space-3) !important;
  pointer-events: none !important;
}

@media (max-width: 560px) {
  .section[data-od-id="work-gallery"] .gallery-media {
    height: 235px !important;
  }
}

/* v17 piedras cards equal rhythm - consistent catalogue cards + mobile CTA visibility */
.section[data-od-id="catalog-grid"] .catalog-grid {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}

.section[data-od-id="catalog-grid"] .catalog-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  background: var(--surface) !important;
}

.section[data-od-id="catalog-grid"] .catalog-card > .gallery-trigger {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

.section[data-od-id="catalog-grid"] .catalog-media {
  flex: 0 0 auto !important;
  width: 100% !important;
  height: clamp(270px, 19vw, 320px) !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}

.section[data-od-id="catalog-grid"] .catalog-media img,
.section[data-od-id="catalog-grid"] .catalog-media .fallback-texture {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.section[data-od-id="catalog-grid"] .catalog-body {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  min-height: 258px !important;
  padding: var(--space-5) !important;
}

.section[data-od-id="catalog-grid"] .catalog-body .micro {
  margin-top: 0 !important;
}

.section[data-od-id="catalog-grid"] .catalog-body h3 {
  display: -webkit-box !important;
  min-height: 0 !important;
  margin-top: 8px !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.section[data-od-id="catalog-grid"] .catalog-body p:not(.micro) {
  display: -webkit-box !important;
  min-height: 0 !important;
  margin-top: 12px !important;
  margin-bottom: 18px !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
}

.section[data-od-id="catalog-grid"] .catalog-body .btn {
  width: fit-content !important;
  max-width: 100% !important;
  margin-top: auto !important;
}

@media (max-width: 920px) {
  .section[data-od-id="catalog-grid"] .catalog-media {
    height: clamp(248px, 34vw, 300px) !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-body {
    min-height: 244px !important;
  }
}

@media (max-width: 560px) {
  .section[data-od-id="catalog-grid"] .catalog-grid {
    gap: var(--space-5) !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-media {
    height: clamp(230px, 64vw, 270px) !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-body {
    min-height: 238px !important;
    padding: 18px !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-body h3 {
    min-height: 0 !important;
    font-size: clamp(30px, 9.5vw, 40px) !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-body p:not(.micro) {
    min-height: 0 !important;
  }

  .section[data-od-id="catalog-grid"] .catalog-body .btn {
    width: 100% !important;
    min-height: 46px !important;
  }
}

@media (max-width: 920px) {
  .lightbox-panel {
    max-height: calc(100svh - 28px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .lightbox-media {
    height: min(42svh, 340px) !important;
    min-height: 0 !important;
  }

  .lightbox-copy {
    overflow: visible !important;
    padding: 18px !important;
  }

  .lightbox-copy .display-md {
    font-size: clamp(30px, 8vw, 46px) !important;
    line-height: 1.02 !important;
  }

  .lightbox-copy .lead {
    margin-top: var(--space-3) !important;
    font-size: var(--text-sm) !important;
  }

  .lightbox-copy .btn-row {
    margin-top: var(--space-4) !important;
  }

  .lightbox-copy .btn-row .btn {
    width: 100% !important;
  }
}

/* v18 theme default + premium quotation CTA */
html[data-brand="stone-kuche"] {
  --quote-cta-bg: color-mix(in oklch, var(--fg) 96%, var(--moss) 4%);
  --quote-cta-on: var(--accent-on);
  --quote-cta-border: color-mix(in oklch, var(--fg) 72%, var(--moss) 28%);
  --quote-cta-glint: color-mix(in oklch, var(--moss) 34%, white 8%);
  --quote-cta-shadow: 0 15px 34px color-mix(in oklch, var(--fg) 14%, transparent);
}

html[data-theme="light"] {
  --quote-cta-bg: oklch(17% 0.006 255);
  --quote-cta-on: oklch(98% 0.004 255);
  --quote-cta-border: color-mix(in oklch, var(--moss) 36%, oklch(17% 0.006 255));
  --quote-cta-glint: color-mix(in oklch, var(--moss) 42%, white 10%);
  --quote-cta-shadow: 0 16px 34px rgb(17 17 17 / 14%);
}

html[data-theme="dark"] {
  --quote-cta-bg: oklch(91% 0.006 255);
  --quote-cta-on: oklch(9% 0.004 255);
  --quote-cta-border: color-mix(in oklch, var(--moss) 28%, oklch(91% 0.006 255));
  --quote-cta-glint: color-mix(in oklch, var(--moss) 34%, black 8%);
  --quote-cta-shadow: 0 18px 42px rgb(0 0 0 / 34%);
}

.btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow: inset 0 1px 0 color-mix(in oklch, var(--fg) 8%, transparent);
}

.btn-primary,
.nav-actions .btn.nav-quote,
.lightbox-copy .btn-row .btn-primary,
.section[data-od-id="catalog-grid"] .catalog-body .btn,
.section[data-od-id="work-gallery"] .gallery-caption .gallery-quote {
  border-color: var(--quote-cta-border) !important;
  background:
    linear-gradient(112deg, transparent 0 36%, color-mix(in oklch, var(--quote-cta-glint) 22%, transparent) 45%, transparent 56%),
    linear-gradient(135deg, var(--quote-cta-bg), color-mix(in oklch, var(--quote-cta-bg) 88%, var(--moss) 12%)) !important;
  color: var(--quote-cta-on) !important;
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, white 18%, transparent),
    var(--quote-cta-shadow) !important;
}

.btn-primary:hover,
.nav-actions .btn.nav-quote:hover,
.lightbox-copy .btn-row .btn-primary:hover,
.section[data-od-id="catalog-grid"] .catalog-body .btn:hover,
.section[data-od-id="work-gallery"] .gallery-caption .gallery-quote:hover {
  border-color: color-mix(in oklch, var(--quote-cta-border) 82%, var(--quote-cta-glint)) !important;
  background:
    linear-gradient(112deg, transparent 0 30%, color-mix(in oklch, var(--quote-cta-glint) 32%, transparent) 45%, transparent 60%),
    linear-gradient(135deg, color-mix(in oklch, var(--quote-cta-bg) 92%, white 3%), color-mix(in oklch, var(--quote-cta-bg) 80%, var(--moss) 20%)) !important;
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, white 22%, transparent),
    0 18px 42px color-mix(in oklch, var(--fg) 18%, transparent) !important;
}

.section[data-od-id="catalog-grid"] .catalog-body .btn,
.section[data-od-id="work-gallery"] .gallery-caption .gallery-quote {
  width: 100% !important;
  min-height: 48px !important;
  justify-content: space-between !important;
  padding: 13px 18px !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
}

.section[data-od-id="catalog-grid"] .catalog-body .btn::after,
.section[data-od-id="work-gallery"] .gallery-caption .gallery-quote::after {
  font-size: 14px;
  opacity: .86;
}

/* v19 text-only theme switch */
.theme-toggle {
  --switch-w: 148px;
  --switch-h: 40px;
  --thumb: calc((var(--switch-w) - 8px) / 2);
  inline-size: var(--switch-w) !important;
  min-inline-size: var(--switch-w) !important;
  block-size: var(--switch-h) !important;
  min-height: var(--switch-h) !important;
  padding: 0 !important;
  border: 1px solid color-mix(in oklch, var(--fg) 14%, transparent) !important;
  border-radius: var(--radius-pill) !important;
  background:
    linear-gradient(180deg, color-mix(in oklch, var(--surface) 88%, white 4%), color-mix(in oklch, var(--bg) 72%, transparent)) !important;
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, white 32%, transparent),
    0 12px 26px color-mix(in oklch, var(--fg) 8%, transparent) !important;
}

.theme-track {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  padding: 4px !important;
}

.theme-thumb {
  position: absolute !important;
  z-index: 1 !important;
  top: 4px !important;
  left: 4px !important;
  inline-size: var(--thumb) !important;
  block-size: calc(var(--switch-h) - 8px) !important;
  border-radius: var(--radius-pill) !important;
  background:
    linear-gradient(135deg, color-mix(in oklch, var(--surface) 96%, white 6%), color-mix(in oklch, var(--surface-warm) 88%, white 4%)) !important;
  box-shadow:
    inset 0 0 0 1px color-mix(in oklch, var(--fg) 10%, transparent),
    0 9px 20px color-mix(in oklch, var(--fg) 12%, transparent) !important;
  transform: translateX(0) !important;
  transition:
    transform 420ms var(--ease-standard),
    background 420ms var(--ease-standard),
    box-shadow 420ms var(--ease-standard) !important;
}

.mode-label {
  position: relative !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: stretch !important;
  height: 100% !important;
  padding: 0 10px !important;
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: .11em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  color: color-mix(in oklch, var(--fg) 52%, transparent) !important;
  opacity: .68 !important;
  transform: none !important;
  transition:
    color 300ms var(--ease-standard),
    opacity 300ms var(--ease-standard) !important;
}

.mode-icon,
.thumb-icon,
.theme-sun,
.theme-moon {
  display: none !important;
}

html[data-theme="light"] .theme-thumb {
  transform: translateX(0) !important;
}

html[data-theme="dark"] .theme-thumb {
  transform: translateX(calc(var(--switch-w) - var(--thumb) - 8px)) !important;
  background:
    linear-gradient(135deg, color-mix(in oklch, var(--fg) 96%, white 5%), color-mix(in oklch, var(--fg) 84%, var(--moss) 8%)) !important;
  box-shadow:
    inset 0 0 0 1px color-mix(in oklch, white 12%, transparent),
    0 12px 24px color-mix(in oklch, black 34%, transparent) !important;
}

html[data-theme="light"] .mode-light,
html[data-theme="dark"] .mode-dark {
  color: var(--fg) !important;
  opacity: 1 !important;
}

html[data-theme="dark"] .mode-dark {
  color: var(--accent-on) !important;
}

html[data-theme="light"] .mode-dark,
html[data-theme="dark"] .mode-light {
  color: color-mix(in oklch, var(--fg) 46%, transparent) !important;
  opacity: .58 !important;
}

html[data-theme="dark"] .theme-toggle {
  background:
    linear-gradient(180deg, color-mix(in oklch, var(--surface) 78%, black 14%), color-mix(in oklch, var(--bg) 78%, black 4%)) !important;
  box-shadow:
    inset 0 1px 0 color-mix(in oklch, white 8%, transparent),
    0 14px 30px rgb(0 0 0 / 30%) !important;
}

@media (max-width: 560px) {
  .topnav-inner {
    gap: 8px;
  }

  .nav-actions {
    gap: 6px !important;
    min-width: max-content;
  }

  .theme-toggle {
    --switch-w: 68px;
    --switch-h: 34px;
    --thumb: 29px;
    flex: 0 0 var(--switch-w);
    inline-size: var(--switch-w) !important;
    min-inline-size: var(--switch-w) !important;
    block-size: var(--switch-h) !important;
    min-height: var(--switch-h) !important;
  }

  .theme-track {
    padding: 3px !important;
  }

  .theme-thumb {
    top: 3px !important;
    left: 3px !important;
    inline-size: var(--thumb) !important;
    block-size: calc(var(--switch-h) - 6px) !important;
  }

  .mode-label {
    padding: 0 !important;
    font-size: 0 !important;
    letter-spacing: 0 !important;
  }

  .mode-label::before {
    content: "";
    display: block;
    inline-size: 10px;
    block-size: 10px;
    margin: auto;
    border-radius: var(--radius-pill);
    opacity: .58;
    transition:
      opacity 260ms var(--ease-standard),
      transform 260ms var(--ease-standard),
      box-shadow 260ms var(--ease-standard);
  }

  .mode-light::before {
    background:
      radial-gradient(circle at 34% 28%, white 0 24%, transparent 26%),
      linear-gradient(135deg, color-mix(in oklch, var(--surface) 94%, white 8%), color-mix(in oklch, var(--surface-warm) 82%, white 4%));
    box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--fg) 16%, transparent);
  }

  .mode-dark::before {
    background:
      radial-gradient(circle at 68% 24%, color-mix(in oklch, white 30%, transparent) 0 18%, transparent 20%),
      linear-gradient(135deg, color-mix(in oklch, var(--fg) 92%, black 8%), color-mix(in oklch, var(--moss) 48%, var(--fg)));
    box-shadow: inset 0 0 0 1px color-mix(in oklch, white 12%, transparent);
  }

  html[data-theme="light"] .theme-thumb {
    transform: translateX(0) !important;
  }

  html[data-theme="dark"] .theme-thumb {
    transform: translateX(calc(var(--switch-w) - var(--thumb) - 6px)) !important;
  }

  html[data-theme="light"] .mode-light::before,
  html[data-theme="dark"] .mode-dark::before {
    opacity: 1;
    transform: scale(1.06);
  }

  .nav-actions .btn.nav-quote,
  .nav-actions .mobile-cta.nav-quote {
    min-width: 74px;
    min-height: 36px;
    height: 36px;
    padding-inline: 13px !important;
    font-size: 12px;
  }

  .menu-toggle {
    min-height: 36px;
    padding-inline: 10px !important;
    font-size: 10px;
  }
}

/* v20 desktop theme switch alignment: true two-segment control */
@media (min-width: 561px) {
  .theme-toggle {
    --switch-w: 146px;
    --switch-h: 38px;
    --switch-pad: 4px;
    --thumb: calc((var(--switch-w) - (var(--switch-pad) * 2)) / 2);
    inline-size: var(--switch-w) !important;
    min-inline-size: var(--switch-w) !important;
    block-size: var(--switch-h) !important;
    min-height: var(--switch-h) !important;
    display: inline-grid !important;
    place-items: center !important;
    padding: 0 !important;
    overflow: hidden !important;
    isolation: isolate;
    border: 1px solid color-mix(in oklch, var(--fg) 12%, transparent) !important;
    background:
      linear-gradient(180deg, color-mix(in oklch, var(--surface) 92%, white 4%), color-mix(in oklch, var(--bg) 76%, transparent)) !important;
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 42%, transparent),
      inset 0 -1px 0 color-mix(in oklch, var(--fg) 5%, transparent),
      0 10px 24px color-mix(in oklch, var(--fg) 7%, transparent) !important;
    vertical-align: middle;
  }

  .theme-toggle:hover {
    transform: translateY(-1px);
    border-color: color-mix(in oklch, var(--accent) 30%, var(--fg) 10%) !important;
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 46%, transparent),
      inset 0 -1px 0 color-mix(in oklch, var(--fg) 6%, transparent),
      0 14px 28px color-mix(in oklch, var(--fg) 9%, transparent) !important;
  }

  .theme-toggle:focus-visible {
    outline: 2px solid color-mix(in oklch, var(--accent) 62%, white 12%);
    outline-offset: 3px;
  }

  .theme-track {
    position: relative !important;
    inset: auto !important;
    inline-size: 100% !important;
    block-size: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    padding: var(--switch-pad) !important;
    border-radius: inherit;
  }

  .theme-thumb {
    top: var(--switch-pad) !important;
    left: var(--switch-pad) !important;
    inline-size: var(--thumb) !important;
    block-size: calc(var(--switch-h) - (var(--switch-pad) * 2)) !important;
    border-radius: calc(var(--radius-pill) - 4px) !important;
    background:
      linear-gradient(180deg, color-mix(in oklch, white 86%, var(--surface) 14%), color-mix(in oklch, var(--surface-warm) 86%, white 7%)) !important;
    box-shadow:
      inset 0 0 0 1px color-mix(in oklch, var(--fg) 9%, transparent),
      inset 0 1px 0 color-mix(in oklch, white 56%, transparent),
      0 7px 18px color-mix(in oklch, var(--fg) 13%, transparent) !important;
    transform: translateX(0) !important;
  }

  html[data-theme="dark"] .theme-thumb {
    transform: translateX(var(--thumb)) !important;
    background:
      linear-gradient(180deg, color-mix(in oklch, var(--fg) 92%, var(--moss) 8%), color-mix(in oklch, var(--fg) 78%, black 10%)) !important;
    box-shadow:
      inset 0 0 0 1px color-mix(in oklch, white 11%, transparent),
      inset 0 1px 0 color-mix(in oklch, white 12%, transparent),
      0 9px 20px color-mix(in oklch, black 34%, transparent) !important;
  }

  .mode-label {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    block-size: 100% !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: .085em !important;
    text-indent: .085em;
    line-height: 1 !important;
    transform: none !important;
  }

  html[data-theme="light"] .mode-light,
  html[data-theme="dark"] .mode-dark {
    opacity: 1 !important;
  }

  html[data-theme="light"] .mode-dark,
  html[data-theme="dark"] .mode-light {
    opacity: .48 !important;
  }

  html[data-theme="dark"] .theme-toggle {
    border-color: color-mix(in oklch, white 12%, transparent) !important;
    background:
      linear-gradient(180deg, color-mix(in oklch, var(--surface) 76%, black 14%), color-mix(in oklch, var(--bg) 78%, black 6%)) !important;
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 8%, transparent),
      inset 0 -1px 0 color-mix(in oklch, black 24%, transparent),
      0 14px 30px rgb(0 0 0 / 30%) !important;
  }
}

/* v21 mobile floating quote CTA: keep header clean, preserve discreet conversion */
@media (max-width: 560px) {
  .nav-actions .btn.nav-quote,
  .nav-actions .mobile-cta.nav-quote {
    position: fixed !important;
    right: calc(14px + env(safe-area-inset-right, 0px)) !important;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 90 !important;
    display: inline-flex !important;
    inline-size: auto !important;
    min-inline-size: 74px !important;
    block-size: 40px !important;
    min-height: 40px !important;
    padding: 0 15px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    border: 1px solid color-mix(in oklch, var(--moss) 26%, oklch(17% 0.006 255)) !important;
    border-radius: var(--radius-pill) !important;
    background:
      linear-gradient(180deg, oklch(20% 0.006 255), oklch(14% 0.004 255)) !important;
    color: oklch(97% 0.004 255) !important;
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 34%, transparent),
      0 12px 30px rgb(17 17 17 / 14%) !important;
    backdrop-filter: blur(18px) saturate(1.08);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    font-family: var(--font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
  }

  .nav-actions .btn.nav-quote::after,
  .nav-actions .mobile-cta.nav-quote::after {
    content: none !important;
  }

  .nav-actions .btn.nav-quote:hover,
  .nav-actions .mobile-cta.nav-quote:hover,
  .nav-actions .btn.nav-quote:focus-visible,
  .nav-actions .mobile-cta.nav-quote:focus-visible {
    transform: translateY(-1px) !important;
    border-color: color-mix(in oklch, var(--moss) 42%, oklch(17% 0.006 255)) !important;
    background:
      linear-gradient(180deg, oklch(23% 0.006 255), oklch(16% 0.004 255)) !important;
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 42%, transparent),
      0 15px 34px color-mix(in oklch, var(--fg) 15%, transparent) !important;
  }

  html[data-theme="dark"] .nav-actions .btn.nav-quote,
  html[data-theme="dark"] .nav-actions .mobile-cta.nav-quote {
    border-color: color-mix(in oklch, var(--moss) 24%, oklch(90% 0.004 255)) !important;
    background:
      linear-gradient(180deg, oklch(94% 0.004 255), oklch(86% 0.006 255)) !important;
    color: oklch(13% 0.006 255) !important;
    box-shadow:
      inset 0 1px 0 rgb(255 255 255 / 62%),
      0 16px 36px rgb(0 0 0 / 30%) !important;
  }
}

/* v22 true mobile floating quote CTA: outside the blurred header */
.mobile-floating-quote {
  display: none;
}

@media (max-width: 560px) {
  .nav-actions .btn.nav-quote,
  .nav-actions .mobile-cta.nav-quote {
    display: none !important;
  }

  .mobile-floating-quote {
    position: fixed;
    right: calc(14px + env(safe-area-inset-right, 0px));
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    z-index: 90;
    display: inline-flex;
    min-inline-size: 78px;
    block-size: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in oklch, var(--moss) 26%, oklch(17% 0.006 255));
    border-radius: var(--radius-pill);
    background: linear-gradient(180deg, oklch(20% 0.006 255), oklch(14% 0.004 255));
    color: oklch(97% 0.004 255);
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 20%, transparent),
      0 14px 32px rgb(17 17 17 / 16%);
    backdrop-filter: blur(18px) saturate(1.08);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
    transition:
      transform 180ms var(--ease-standard),
      border-color 180ms var(--ease-standard),
      background 180ms var(--ease-standard),
      box-shadow 180ms var(--ease-standard);
  }

  .mobile-floating-quote:hover,
  .mobile-floating-quote:focus-visible {
    transform: translateY(-1px);
    border-color: color-mix(in oklch, var(--moss) 42%, oklch(17% 0.006 255));
    background: linear-gradient(180deg, oklch(23% 0.006 255), oklch(16% 0.004 255));
    box-shadow:
      inset 0 1px 0 color-mix(in oklch, white 24%, transparent),
      0 16px 36px rgb(17 17 17 / 18%);
  }

  html[data-theme="dark"] .mobile-floating-quote {
    border-color: color-mix(in oklch, var(--moss) 24%, oklch(90% 0.004 255));
    background: linear-gradient(180deg, oklch(94% 0.004 255), oklch(86% 0.006 255));
    color: oklch(13% 0.006 255);
    box-shadow:
      inset 0 1px 0 rgb(255 255 255 / 62%),
      0 16px 36px rgb(0 0 0 / 30%);
  }
}


/* v24 mobile quote CTA: fade out smoothly when footer is visible */
@media (max-width: 560px) {
  .mobile-floating-quote {
    will-change: transform, opacity, filter;
    transition:
      opacity 460ms var(--ease-standard),
      transform 460ms var(--ease-standard),
      filter 460ms var(--ease-standard),
      border-color 180ms var(--ease-standard),
      background 180ms var(--ease-standard),
      box-shadow 180ms var(--ease-standard) !important;
  }

  .mobile-floating-quote.is-over-footer {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(.94);
    filter: blur(8px);
    pointer-events: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .mobile-floating-quote {
      transition: opacity 160ms linear !important;
    }

    .mobile-floating-quote.is-over-footer {
      transform: none;
      filter: none;
    }
  }
}


/* V15 Lightbox arrows — Iconsax style */
.lightbox-nav {
  width: clamp(56px, 4.4vw, 72px) !important;
  height: clamp(56px, 4.4vw, 72px) !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: white !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  cursor: pointer;
}

.lightbox-nav iconsax-arrow {
  --fillg: rgba(255,255,255,.92);
  transition: transform .32s ease, opacity .32s ease;
}

.lightbox-nav:hover iconsax-arrow {
  --fillg: #ffffff;
  transform: scale(1.08);
}

.lightbox-prev {
  left: clamp(18px, 3vw, 46px) !important;
}

.lightbox-next {
  right: clamp(18px, 3vw, 46px) !important;
}

@media (max-width: 560px) {
  .lightbox-nav {
    width: 52px !important;
    height: 52px !important;
  }

  .lightbox-prev {
    left: 10px !important;
  }

  .lightbox-next {
    right: 10px !important;
  }

  .lightbox-nav iconsax-arrow {
    transform: scale(.92);
  }
}


/* V16 Lightbox close — Iconsax close-circle */
.lightbox-close {
  width: clamp(56px, 4.4vw, 72px) !important;
  height: clamp(56px, 4.4vw, 72px) !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: white !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  cursor: pointer;
}

.lightbox-close iconsax-close {
  --fillg: rgba(255,255,255,.92);
  transition: transform .32s ease, opacity .32s ease;
}

.lightbox-close:hover iconsax-close {
  --fillg: #ffffff;
  transform: scale(1.08);
}

@media (max-width: 560px) {
  .lightbox-close {
    width: 52px !important;
    height: 52px !important;
  }

  .lightbox-close iconsax-close {
    transform: scale(.92);
  }
}


/* V17 premium custom cursor + expandable card cue */
.site-cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
  width: 1px;
  height: 1px;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-999px, -999px, 0);
  transition: opacity 180ms var(--ease-standard);
  mix-blend-mode: normal;
}

.site-cursor-ring,
.site-cursor-dot,
.site-cursor-label {
  position: absolute;
  pointer-events: none;
}

.site-cursor-ring {
  left: 0;
  top: 0;
  width: 34px;
  height: 34px;
  border: 1px solid color-mix(in oklch, var(--fg) 48%, transparent);
  border-radius: 999px;
  background: color-mix(in oklch, var(--surface) 28%, transparent);
  box-shadow:
    0 18px 44px color-mix(in oklch, var(--bg) 52%, transparent),
    inset 0 1px 0 color-mix(in oklch, white 28%, transparent);
  backdrop-filter: blur(12px) saturate(1.08);
  -webkit-backdrop-filter: blur(12px) saturate(1.08);
  transform: translate(-50%, -50%);
  transition:
    width 260ms var(--ease-standard),
    height 260ms var(--ease-standard),
    border-color 260ms var(--ease-standard),
    background 260ms var(--ease-standard),
    box-shadow 260ms var(--ease-standard),
    transform 180ms var(--ease-standard);
}

.site-cursor-dot {
  left: 0;
  top: 0;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: color-mix(in oklch, var(--fg) 82%, transparent);
  box-shadow: 0 0 24px color-mix(in oklch, var(--fg) 34%, transparent);
  transform: translate(-50%, -50%);
  transition: opacity 180ms var(--ease-standard), transform 180ms var(--ease-standard), background 180ms var(--ease-standard);
}

.site-cursor-label {
  left: 22px;
  top: -17px;
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0 13px;
  border: 1px solid color-mix(in oklch, var(--fg) 16%, transparent);
  border-radius: var(--radius-pill);
  background: color-mix(in oklch, var(--bg) 82%, transparent);
  color: var(--fg);
  box-shadow:
    0 18px 44px color-mix(in oklch, var(--bg) 62%, transparent),
    inset 0 1px 0 color-mix(in oklch, white 18%, transparent);
  backdrop-filter: blur(16px) saturate(1.08);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  transform: translate3d(-8px, 6px, 0) scale(.94);
  filter: blur(5px);
  transition:
    opacity 220ms var(--ease-standard),
    transform 260ms var(--ease-standard),
    filter 260ms var(--ease-standard),
    background 260ms var(--ease-standard),
    border-color 260ms var(--ease-standard);
}

.site-cursor.is-visible {
  opacity: 1;
}

.site-cursor.is-clickable .site-cursor-ring {
  width: 46px;
  height: 46px;
  border-color: color-mix(in oklch, var(--fg) 34%, transparent);
  background: color-mix(in oklch, var(--surface) 38%, transparent);
}

.site-cursor.is-expandable .site-cursor-ring {
  width: 62px;
  height: 62px;
  border-color: color-mix(in oklch, var(--fg) 58%, transparent);
  background:
    radial-gradient(circle at 36% 30%, color-mix(in oklch, var(--fg) 14%, transparent), transparent 58%),
    color-mix(in oklch, var(--surface) 34%, transparent);
  box-shadow:
    0 24px 64px color-mix(in oklch, var(--bg) 74%, transparent),
    inset 0 1px 0 color-mix(in oklch, white 28%, transparent);
}

.site-cursor.is-expandable .site-cursor-dot {
  opacity: 0;
  transform: translate(-50%, -50%) scale(.35);
}

.site-cursor.is-expandable .site-cursor-label {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

.site-cursor.is-pressed .site-cursor-ring {
  transform: translate(-50%, -50%) scale(.88);
}

.site-cursor.is-text {
  opacity: 0;
}

@media (hover: hover) and (pointer: fine) {
  html.has-premium-cursor,
  html.has-premium-cursor body,
  html.has-premium-cursor a,
  html.has-premium-cursor button,
  html.has-premium-cursor .card-link,
  html.has-premium-cursor .gallery-trigger,
  html.has-premium-cursor .catalog-card,
  html.has-premium-cursor .gallery-card {
    cursor: none !important;
  }

  html.has-premium-cursor input,
  html.has-premium-cursor textarea,
  html.has-premium-cursor select,
  html.has-premium-cursor label {
    cursor: auto !important;
  }
}

@media (hover: none), (pointer: coarse), (max-width: 920px) {
  .site-cursor {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-cursor {
    display: none !important;
  }
}


/* V21 — Catalog search fix: author display rules were overriding the hidden attribute */
.section[data-od-id="catalog-grid"] .catalog-card[hidden],
.section[data-od-id="catalog-grid"] .catalog-card.is-filtered-out {
  display: none !important;
}

.catalog-empty-filter {
  margin-top: var(--space-5);
  padding: var(--space-8);
  border: 1px solid var(--hairline);
  border-radius: 24px;
  background: color-mix(in oklch, var(--surface) 72%, transparent);
  text-align: center;
}

.catalog-empty-filter[hidden] {
  display: none !important;
}
