:root {
  --font-heading: "Space Grotesk", system-ui, sans-serif;
  --font-body: "Hanken Grotesk", system-ui, sans-serif;
  --gutter: clamp(20px, 5vw, 72px);
  --radius-image: 12px;
  --radius-card: 18px;
  --radius-panel: 32px;
  --shadow-md: 0 3px 10px rgb(54 8 11 / 16%);
  --shadow-lg: 0 18px 42px rgb(54 8 11 / 25%);
  --color-bg: #5f060c;
  --color-text: #f8e9df;
  --color-surface: #4c0a0e;
  --color-accent: #f0704f;
  --color-accent-100: #340609;
  --color-accent-200: #4c0a0e;
  --color-accent-300: #6e1414;
  --color-accent-400: #94241a;
  --color-accent-500: #c43a26;
  --color-accent-600: #f0704f;
  --color-accent-700: #f5ac99;
  --color-accent-800: #f8cfc3;
  --color-accent-900: #fceae3;
  --color-accent-2: #821c1a;
  --color-neutral-100: #2c0a0d;
  --color-neutral-200: #4a0f13;
  --color-neutral-300: #5e1418;
  --color-neutral-400: #7c2a26;
  --color-neutral-500: #a96a5c;
  --color-neutral-600: #cd9a8a;
  --color-neutral-700: #e0b9ab;
  --color-neutral-800: #efd7cc;
  --color-neutral-900: #faede6;
  --color-divider: color-mix(in srgb, var(--color-text) 22%, transparent);
}

.cream {
  --color-bg: #f4e2d6;
  --color-text: #3d060b;
  --color-surface: #fbf1e9;
  --color-accent: #c43a26;
  --color-accent-100: #fceae3;
  --color-accent-200: #f8cfc3;
  --color-accent-300: #f5ac99;
  --color-accent-400: #f0704f;
  --color-accent-500: #dc4a2e;
  --color-accent-600: #b93520;
  --color-accent-700: #94241a;
  --color-accent-800: #6e1414;
  --color-accent-900: #4a080c;
  --color-neutral-100: #fdf6f1;
  --color-neutral-200: #f1dcd0;
  --color-neutral-300: #e3c6b7;
  --color-neutral-400: #cba492;
  --color-neutral-500: #a87a6b;
  --color-neutral-600: #83544b;
  --color-neutral-700: #62332f;
  --color-neutral-800: #451a1b;
  --color-neutral-900: #2c0a0d;
  --color-divider: color-mix(in srgb, var(--color-text) 18%, transparent);
  background: var(--color-bg);
  color: var(--color-text);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; background: #5f060c; color: var(--color-text); font-family: var(--font-body); font-size: 16px; line-height: 1.6; text-wrap: pretty; }
body.menu-open { overflow: hidden; }
body::selection { background: #f0704f; color: #3d060b; }
img, video { display: block; max-width: 100%; }
figure { margin: 0; }
button, input, textarea { font: inherit; }
a { color: inherit; text-underline-offset: 3px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 500; letter-spacing: -0.02em; line-height: 1.08; text-transform: lowercase; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }

.skip-link { position: fixed; top: 12px; left: 16px; z-index: 100; padding: 10px 16px; border-radius: 999px; background: #f8e9df; color: #5f060c; font-weight: 500; transform: translateY(-180%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.content { width: min(1200px, 100%); margin: 0 auto; padding-inline: var(--gutter); }
.deep { background: var(--color-bg); color: var(--color-text); }

.site-nav { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 16px; padding: 16px var(--gutter); background: #5f060c; }
.wordmark { color: #f8e9df; font-family: var(--font-heading); font-size: 22px; font-weight: 500; letter-spacing: -.01em; text-decoration: none; }
.nav-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 20px; border: 1px solid transparent; border-radius: 999px; color: var(--color-text); background: transparent; font-family: var(--font-body); font-size: 13.5px; font-weight: 500; letter-spacing: .02em; line-height: 1.2; text-decoration: none; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease, border-color .2s ease; }
.button svg, .text-link svg, .contact-actions svg, .card-action svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; }
.button-accent { background: var(--color-accent); color: #3d060b; }
.button-outline { border-color: currentColor; }
.menu-button { min-width: 92px; border: 0; background: #f8e9df; color: #5f060c; letter-spacing: .1em; }
.text-link { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; text-decoration: none; }

.menu-overlay { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; padding: 16px var(--gutter) max(28px, env(safe-area-inset-bottom)); overflow-y: auto; background: #5f060c; animation: menu-fade .28s ease both; }
.menu-overlay[hidden] { display: none; }
.menu-head { display: flex; align-items: center; gap: 16px; }
.menu-close { margin-left: auto; background: #f8e9df; color: #5f060c; }
.menu-links { display: flex; flex-direction: column; gap: clamp(8px, 1.5vh, 18px); margin: auto 0; padding: 36px 0; }
.menu-links a { display: flex; align-items: baseline; gap: 18px; color: #f8e9df; font-family: var(--font-heading); font-size: clamp(36px, 6vw, 68px); font-weight: 500; line-height: 1.06; text-decoration: none; animation: menu-item .45s both var(--menu-delay, 0s); }
.menu-links a span { color: #f0704f; font-family: var(--font-body); font-size: 13px; letter-spacing: .06em; }
.menu-delay-1 { --menu-delay: .04s; }.menu-delay-2 { --menu-delay: .09s; }.menu-delay-3 { --menu-delay: .14s; }.menu-delay-4 { --menu-delay: .19s; }.menu-delay-5 { --menu-delay: .24s; }.menu-delay-6 { --menu-delay: .29s; }
.menu-foot { display: flex; flex-wrap: wrap; gap: 10px 20px; color: #f8e9df; font-size: 14px; }
.menu-foot span { color: #cd9a8a; }.menu-foot a { text-decoration: none; }.menu-foot a:last-child { margin-left: auto; color: #f5ac99; }

.hero { position: relative; overflow: hidden; padding: clamp(68px, 13vh, 154px) 0 clamp(72px, 12vh, 130px); text-align: center; }
.hero::after { content: ""; position: absolute; top: -27vw; left: 50%; width: min(90vw, 1100px); aspect-ratio: 1; border: 1px solid rgb(240 112 79 / 19%); border-radius: 50%; transform: translateX(-50%); pointer-events: none; }
.hero-content { position: relative; z-index: 1; max-width: 1080px; }
.eyebrow { margin-bottom: 16px; color: var(--color-accent-700); font-size: 12.5px; font-weight: 500; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.hero h1 { max-width: 14ch; margin: 0 auto; font-size: clamp(46px, 8.4vw, 112px); letter-spacing: -.025em; line-height: 1.04; }
.hero h1 > span { display: block; min-height: 1.04em; }.hero h1 em { color: var(--color-accent); font-style: normal; }
.hero-copy { max-width: 58ch; margin: clamp(24px, 3vh, 34px) auto 0; color: color-mix(in srgb, var(--color-text) 82%, transparent); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.62; }
.hero-tags, .hero-actions, .profile-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; }
.hero-tags { margin-top: 30px; }.hero-tags span { padding: 7px 12px; border: 1px solid color-mix(in srgb, var(--color-text) 25%, transparent); border-radius: 999px; color: color-mix(in srgb, var(--color-text) 74%, transparent); font-size: 12px; }.hero-tags .mobile-label { display: none; }.hero-actions { align-items: center; margin-top: 30px; }

.client-strip { padding: 20px 0 30px; overflow: hidden; background: #5f060c; }.client-strip .content p { margin: 0 0 13px; color: #cd9a8a; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.marquee { overflow: hidden; }.marquee-track { display: flex; width: max-content; align-items: center; animation: marquee 30s linear infinite; }.marquee-track span { padding-inline: clamp(22px, 4vw, 56px); color: #cd9a8a; font-family: var(--font-heading); font-size: clamp(21px, 2.5vw, 34px); letter-spacing: -.02em; white-space: nowrap; }.marquee-track i { width: 5px; height: 5px; border-radius: 50%; background: #f0704f; }

.section { position: relative; padding: 72px 0 56px; }.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; }.section-heading h2, .about h2, .testimonials h2, .contact h2 { max-width: 18ch; margin-bottom: 0; font-size: clamp(34px, 4vw, 52px); }.section-heading > p { max-width: 35ch; margin: 0; color: color-mix(in srgb, var(--color-text) 72%, transparent); font-size: 14px; line-height: 1.62; }
.service-list { margin-top: 46px; border-top: 1px solid var(--color-divider); }.service-row { display: grid; grid-template-columns: 88px minmax(0, 340px) minmax(0, 1fr) 32px; gap: 18px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--color-divider); color: var(--color-text); transition: clip-path .4s ease, transform .25s ease; }.service-row > span { color: var(--color-accent); font-family: var(--font-heading); font-size: 18px; }.service-row h3 { margin-bottom: 0; font-size: 26px; }.service-row p { grid-column: 3; margin: 2px 0 0; color: color-mix(in srgb, var(--color-text) 74%, transparent); font-size: 15px; line-height: 1.6; }.service-row a { color: var(--color-accent); font-size: 24px; text-decoration: none; }

.work-section { padding-top: 86px; }.stack-deck { display: grid; gap: 26px; margin-top: 48px; }.stack-card { position: sticky; top: 86px; color: var(--nm, var(--color-neutral-500)); transform-origin: top center; will-change: transform, filter; transition: color .4s ease; }.stack-card:nth-child(2) { top: 95px; }.stack-card:nth-child(3) { top: 104px; }.stack-card:nth-child(4) { top: 113px; }.stack-card:nth-child(5) { top: 122px; }.stack-card:nth-child(6) { top: 131px; }.stack-card:nth-child(7) { top: 140px; }.stack-card:nth-child(8) { top: 149px; }
.stack-card > a { display: flex; max-height: calc(100dvh - 112px); overflow: hidden; border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-md); color: inherit; flex-direction: column; text-decoration: none; }.card-media { display: grid; flex: 1 1 auto; min-height: 0; overflow: hidden; background: var(--color-neutral-200); }.card-media img { width: 100%; height: 100%; object-fit: cover; }.media-triptych { grid-template-columns: repeat(3, 1fr); aspect-ratio: 3 / 1; }.media-wide { aspect-ratio: 16 / 8; }.media-contain { aspect-ratio: 16 / 9; background: #efe7da; }.media-contain img { object-fit: contain; }
.card-copy { display: flex; flex: none; flex-wrap: wrap; align-items: baseline; gap: 12px 18px; padding: 22px clamp(18px, 2.4vw, 30px) 26px; }.card-number { font-family: var(--font-heading); font-size: 17px; line-height: 1; opacity: .72; }.card-copy > div:nth-child(2) { flex: 1 1 240px; min-width: 0; }.card-copy h2 { margin-bottom: 0; font-size: clamp(24px, 2.6vw, 34px); }.card-copy p { margin: 7px 0 0; color: currentColor; font-size: 14.5px; line-height: 1.55; opacity: .8; }.card-tags { display: flex; flex-wrap: wrap; gap: 8px; }.card-tags span { padding: 6px 11px; border: 1px solid currentColor; border-radius: 999px; font-size: 11.5px; letter-spacing: .08em; opacity: .72; text-transform: uppercase; }.card-action { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; font-size: 14px; font-weight: 500; white-space: nowrap; }.section-action { display: flex; justify-content: center; margin-top: 44px; }

.reels { position: relative; overflow: hidden; padding: clamp(64px, 9vh, 104px) 0 clamp(48px, 7vh, 76px); background: #5f060c; }.reels-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; }.reels-heading h2 { max-width: 18ch; margin: 0 0 0 -.028em; font-size: clamp(34px, 4vw, 52px); }.reels-intro { display: flex; align-items: end; gap: clamp(20px, 3vw, 40px); margin-left: auto; }.reels-intro > p { max-width: 30ch; margin: 0 0 4px; color: #cd9a8a; font-size: 13.5px; line-height: 1.62; }.reel-controls { display: flex; flex: none; gap: 10px; }.reel-controls button { display: grid; width: 46px; height: 46px; padding: 0; border: 1px solid rgb(248 233 223 / 34%); border-radius: 50%; place-content: center; background: transparent; color: #f8e9df; cursor: pointer; font-size: 17px; }.reel-stage { position: relative; height: clamp(420px, 62vh, 580px); margin-top: clamp(32px, 5vh, 54px); outline: none; cursor: grab; touch-action: pan-y; }.reel-stage.is-dragging { cursor: grabbing; }.reel-card { position: absolute; top: 0; left: 50%; height: 100%; margin: 0; overflow: hidden; border: 1px solid rgb(248 233 223 / 14%); border-radius: 26px; aspect-ratio: 9 / 16; transform: translateX(-50%); transform-origin: center 60%; background: #1b0507; box-shadow: 0 34px 70px -34px rgb(0 0 0 / 85%); transition: transform .9s cubic-bezier(.22,.61,.24,1), filter .7s ease, opacity .7s ease; user-select: none; will-change: transform; }.reel-card video { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }.reel-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(18 3 4 / 68%) 0%, rgb(18 3 4 / 6%) 26%, transparent 44%, rgb(18 3 4 / 82%) 100%); pointer-events: none; }.reel-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 18px 16px 22px; color: #fff; pointer-events: none; transition: opacity .35s ease; }.reel-overlay header, .reel-overlay footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.reel-overlay h3 { margin: 0; font-size: 19px; letter-spacing: -.015em; line-height: 1.14; text-transform: none; }.reel-overlay header p { margin: 4px 0 0; color: rgb(255 255 255 / 72%); font-size: 12.5px; line-height: 17px; }.reel-overlay header > span { flex: none; padding: 7px 12px; border: 1px solid rgb(255 255 255 / 30%); border-radius: 999px; background: rgb(255 255 255 / 16%); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(6px); }.reel-overlay footer { align-items: end; }.reel-meta { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: 9px; }.reel-account { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; }.reel-account img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }.reel-meta > p { margin: 0; color: rgb(255 255 255 / 82%); font-size: 12px; line-height: 17px; }.reel-audio { display: flex; align-items: center; gap: 7px; color: rgb(255 255 255 / 70%); font-size: 10px; letter-spacing: .06em; }.reel-audio > span { display: flex; height: 10px; align-items: end; gap: 2px; }.reel-audio i { display: block; width: 2px; height: 100%; border-radius: 1px; transform-origin: bottom; animation: equalizer .9s ease-in-out infinite; background: #fff; }.reel-audio i:nth-child(2) { animation-delay: .18s; }.reel-audio i:nth-child(3) { animation-delay: .36s; }.reel-sound { display: grid; width: 44px; height: 44px; flex: none; padding: 0; border: 1px solid rgb(255 255 255 / 32%); border-radius: 50%; place-content: center; background: rgb(255 255 255 / 16%); color: #fff; cursor: pointer; pointer-events: auto; backdrop-filter: blur(6px); }.reel-sound svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.reel-progress { position: absolute; right: 14px; bottom: 9px; left: 14px; height: 2px; overflow: hidden; border-radius: 2px; background: rgb(255 255 255 / 22%); }.reel-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: #fff; }.reel-dots { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: clamp(26px, 4vh, 38px); }.reel-dots button { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }.reel-dots button::after { display: block; width: 8px; height: 8px; margin: auto; border-radius: 999px; background: rgb(248 233 223 / 32%); content: ""; transition: width .5s cubic-bezier(.22,.61,.24,1), background-color .4s ease; }.reel-dots button[aria-current="true"]::after { width: 28px; background: #f0704f; }.reel-note { margin: 4px 0 0; color: #a96a5c; font-size: 10.5px; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.reel-card:not([data-active]) .reel-sound { pointer-events: none; }

.process { padding-top: clamp(64px, 9vh, 104px); padding-bottom: clamp(56px, 8vh, 88px); }.process-track { position: relative; margin-top: clamp(36px, 5.5vh, 60px); }.process-track::before, .process-rail { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; content: ""; }.process-track::before { background: color-mix(in srgb, var(--color-text) 16%, transparent); }.process-rail { height: 100%; bottom: auto; background: var(--color-accent); transform: scaleY(0); transform-origin: top; }.process-step { position: relative; display: grid; grid-template-columns: minmax(210px, 26%) minmax(0, 1fr); gap: clamp(18px, 3vw, 44px); padding: clamp(24px, 3.4vh, 38px) 0 clamp(26px, 3.6vh, 42px) clamp(20px, 2.6vw, 40px); border-top: 1px solid color-mix(in srgb, currentColor 24%, transparent); color: var(--nm, var(--color-neutral-500)); transition: color .45s ease, background-color .45s ease, transform .3s ease; }.process-copy { position: sticky; top: clamp(96px, 13vh, 132px); }.process-copy > p:first-child { margin-bottom: 16px; color: var(--color-accent); font-family: var(--font-heading); font-size: clamp(38px, 4.2vw, 60px); line-height: .86; }.process-copy > p:first-child span { display: block; margin-bottom: 6px; color: currentColor; font-family: var(--font-body); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; }.process-copy h3 { margin-bottom: 10px; font-size: clamp(18px, 1.65vw, 23px); }.process-copy > p:last-child { max-width: 40ch; margin-bottom: 0; color: currentColor; font-size: 13.5px; line-height: 1.62; }.process-step figure { overflow: hidden; border-radius: var(--radius-card); background: var(--color-neutral-200); }.process-step video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }.process-step figcaption { display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; color: color-mix(in srgb, var(--color-text) 68%, transparent); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; }

.about { padding: 96px 0; }.about-layout { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; }.about h2 { margin-bottom: 24px; }.about p:not(.eyebrow) { max-width: 58ch; margin-bottom: 16px; color: color-mix(in srgb, var(--color-text) 82%, transparent); line-height: 1.7; }.profile-links { justify-content: flex-start; margin-top: 28px; }.profile-links .text-link { color: var(--color-accent-700); }
.testimonials { padding: 74px 0; background: #6b0d11; }.testimonial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 42px; }.testimonial-grid figure { margin: 0; padding: 30px; border: 1px solid rgb(248 233 223 / 20%); border-radius: var(--radius-panel); background: #5f060c; }.testimonial-grid blockquote { margin: 0; font-size: clamp(18px, 2vw, 23px); line-height: 1.45; }.testimonial-grid figcaption { margin-top: 24px; color: var(--color-accent-700); font-family: var(--font-heading); font-size: 17px; }.testimonial-grid figcaption span { display: block; margin-top: 4px; color: #cd9a8a; font-family: var(--font-body); font-size: 13px; }
.contact { padding: 74px 0 96px; background: #4a070c; }.contact-panel { display: grid; grid-template-columns: minmax(0, 6fr) minmax(270px, 4fr); gap: 36px clamp(28px, 6vw, 90px); padding: clamp(32px, 6vw, 72px); border: 1px solid rgb(248 233 223 / 18%); border-radius: var(--radius-panel); background: #5f060c; }.contact h2 { max-width: 17ch; margin-bottom: 20px; }.contact-panel > div > p:last-child { max-width: 48ch; margin-bottom: 0; color: #e0b9ab; }.contact-actions { display: grid; align-content: start; gap: 14px; }.contact-actions > a:not(.button) { display: inline-flex; align-items: center; gap: 12px; color: #f8e9df; font-size: 15px; text-decoration: none; }.contact-actions > a:not(.button) svg { color: #f0704f; }.contact-actions .button { justify-self: start; margin-top: 14px; }

.site-footer { padding: 24px 0 max(36px, env(safe-area-inset-bottom)); background: #340609; }.site-footer .content { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; color: #cd9a8a; font-size: 13px; }.site-footer strong { color: #f8e9df; font-family: var(--font-heading); font-size: 15px; }.site-footer a { color: #f5ac99; text-decoration: none; }.footer-push { margin-left: auto; }

.page-hero { padding: clamp(64px, 12vh, 140px) 0 64px; }.page-hero h1 { max-width: 14ch; margin-bottom: 24px; font-size: clamp(44px, 6.4vw, 88px); }.page-hero p:last-child { max-width: 54ch; margin-bottom: 0; color: #e0b9ab; font-size: 17px; line-height: 1.65; }.work-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; padding: clamp(36px, 7vw, 76px); border-radius: var(--radius-panel); background: #821c1a; }.work-cta h2 { max-width: 19ch; margin-bottom: 0; font-size: clamp(30px, 4vw, 54px); }

.project-content { max-width: 1100px; }.project-hero { padding: clamp(46px, 8vh, 96px) 0 44px; background: linear-gradient(180deg, #5f060c 0%, #55090e 100%); }.back-link { display: inline-block; margin-bottom: 32px; color: #f5ac99; font-size: 14px; font-weight: 500; text-decoration: none; }.project-hero p { margin-bottom: 12px; color: #f0704f; font-size: 14px; font-weight: 500; }.project-hero h1 { max-width: 16ch; margin-bottom: 18px; font-size: clamp(40px, 5.6vw, 76px); }.project-hero span { color: #f5ac99; font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }.project-details { padding: 44px 0; }.project-details .project-content { display: grid; grid-template-columns: minmax(260px, 6fr) minmax(180px, 3fr) minmax(150px, 3fr); gap: 36px clamp(28px, 4vw, 64px); padding-top: 30px; border-top: 1px solid var(--color-divider); }.project-details .project-content > div > p:not(.detail-label) { margin-bottom: 14px; color: color-mix(in srgb, var(--color-text) 84%, transparent); line-height: 1.7; }.detail-label { margin-bottom: 16px; color: var(--color-accent-700); font-size: 13px; font-weight: 500; }.detail-item { padding: 11px 0; border-bottom: 1px solid var(--color-divider); font-family: var(--font-heading); font-size: 17px; line-height: 1.4; text-transform: lowercase; }
.project-gallery { padding-bottom: 28px; }.project-gallery .project-content { display: grid; gap: 22px; }.gallery-image { overflow: hidden; border-radius: var(--radius-image); background: var(--color-surface); box-shadow: var(--shadow-md); }.gallery-image img { width: 100%; height: auto; }.gallery-bare { margin: 0 -6% 14px; overflow: visible; background: transparent; box-shadow: none; }.gallery-row { display: grid; gap: 22px; align-items: start; }.gallery-row.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }.gallery-row.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }.gallery-row .gallery-image { aspect-ratio: var(--gallery-ratio); }.gallery-row .gallery-image img { width: 100%; height: 100%; object-fit: cover; }.ratio-square { --gallery-ratio: 1 / 1; }.ratio-three-four { --gallery-ratio: 3 / 4; }.ratio-four-five { --gallery-ratio: 4 / 5; }.ratio-prakriti { --gallery-ratio: 5221 / 8108; }.gallery-image.zoom-110 img { transform: scale(1.1); }.gallery-section { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; padding: 30px 0 6px; border-top: 1px solid var(--color-divider); }.gallery-section h2 { margin-bottom: 0; font-size: clamp(24px, 2.8vw, 38px); }.gallery-section p { max-width: 46ch; margin-bottom: 0; color: color-mix(in srgb, var(--color-text) 70%, transparent); font-size: 15px; }.gallery-section span { margin-left: auto; color: var(--color-accent-700); font-size: 13px; letter-spacing: .05em; }.project-footer { padding: 28px 0 68px; }.project-footer .project-content { display: flex; flex-wrap: wrap; justify-content: center; gap: 34px; }.project-footer nav { display: flex; width: 100%; align-items: center; gap: 20px; padding-top: 28px; border-top: 1px solid var(--color-divider); }.project-footer nav a { color: var(--color-text); font-family: var(--font-heading); font-size: clamp(18px, 2vw, 24px); text-decoration: none; }.project-footer nav a:last-child { margin-left: auto; text-align: right; }

.error-page { display: grid; min-height: 72vh; place-items: center; padding: 72px 0; text-align: center; }.error-page p { margin-bottom: 20px; color: #f0704f; font-family: var(--font-heading); font-size: clamp(90px, 18vw, 220px); letter-spacing: -.07em; line-height: .75; }.error-page h1 { max-width: 12ch; margin: 0 auto 18px; font-size: clamp(36px, 5vw, 64px); }.error-page span { display: block; max-width: 42ch; margin: auto; color: #e0b9ab; }.error-page div div { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

[data-reveal] { opacity: 0; transform: translateY(26px); } [data-reveal].is-visible { opacity: 1; transform: none; transition: opacity .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms), transform .55s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms); }
[data-words] span { opacity: .2; transition: opacity .4s cubic-bezier(.2,.7,.2,1); }

@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes menu-fade { from { opacity: 0; } }
@keyframes menu-item { from { opacity: 0; transform: translateY(26px); } }
@keyframes caret { 50% { border-color: transparent; } }
@keyframes equalizer { 0%, 100% { transform: scaleY(.3); } 50% { transform: scaleY(1); } }

@media (hover: hover) and (pointer: fine) {
  a:hover { color: var(--color-accent); }.button:hover { transform: translateY(-2px); }.button-accent:hover { background: var(--color-accent-700); color: var(--color-bg); }.button-outline:hover { background: color-mix(in srgb, var(--color-text) 8%, transparent); }.menu-button:hover { background: #f8cfc3; }.menu-links a:hover { color: #f0704f; transform: translateX(12px); }.service-row:hover { transform: translateX(12px); }.stack-card > a:hover { box-shadow: var(--shadow-lg); }.stack-card > a:hover .card-action { color: var(--color-accent); }.process-step:hover { background: color-mix(in srgb, currentColor 7%, transparent); transform: translateX(10px); }.profile-links .text-link:hover { color: #f8e9df; }.reel-controls button:hover { border-color: #f0704f; background: #f0704f; color: #2c0a0d; }
}

@media (max-width: 900px) {
  .service-row { grid-template-columns: 64px minmax(0, 1fr) 32px; }.service-row p { grid-column: 2; }.about-layout, .contact-panel, .project-details .project-content { grid-template-columns: 1fr; }.testimonial-grid { grid-template-columns: 1fr; }.process-step { grid-template-columns: minmax(160px, 30%) minmax(0, 1fr); }.gallery-row { gap: 16px; }
}

@media (max-width: 640px) {
  :root { --gutter: 20px; }.site-nav { padding-block: 12px; }.nav-contact { display: none; }.menu-button { min-width: 82px; padding-inline: 15px; }.menu-foot a:last-child { width: 100%; margin-left: 0; }.hero { padding-top: 64px; padding-bottom: 56px; }.hero h1 { max-width: 12ch; font-size: clamp(34px, 9.5vw, 52px); }.hero-tags { justify-content: center; }.hero-tags .desktop-label { display: none; }.hero-tags .mobile-label { display: inline-block; }.section { padding-top: 64px; padding-bottom: 48px; }.section-heading > p { max-width: 44ch; }.service-row { grid-template-columns: 1fr 32px; gap: 10px 14px; }.service-row > span { grid-column: 1 / -1; }.service-row p { grid-column: 1; }.service-row h3 { font-size: 23px; }.service-row a { grid-column: 2; grid-row: 2; }.stack-deck { gap: 16px; margin-top: 36px; }.stack-card, .stack-card:nth-child(n) { position: static; transform: none !important; filter: none !important; }.stack-card > a { max-height: none; }.card-media, .media-wide, .media-contain { aspect-ratio: 16 / 10; }.media-triptych { grid-template-columns: repeat(2, 1fr); aspect-ratio: 16 / 10; }.media-triptych img:nth-child(3) { display: none; }.card-copy { align-items: flex-start; }.card-number { padding-top: 4px; }.card-tags { width: 100%; }.card-action { width: 100%; margin-left: 0; }.reels-heading, .reels-intro { align-items: flex-start; flex-direction: column; }.reels-intro { width: 100%; margin-left: 0; }.reels-intro > p { max-width: 36ch; }.reel-controls { align-self: flex-end; }.reel-stage { height: clamp(380px, 66vh, 500px); margin-top: 26px; }.reel-card { max-width: calc(100vw - 72px); border-radius: 22px; }.reel-card:not([data-active]) .reel-overlay { opacity: 0; }.reel-overlay { padding: 15px 14px 20px; }.reel-overlay h3 { font-size: 17px; }.reel-meta > p, .reel-audio { display: none; }.reel-sound { width: 44px; height: 44px; }.process-step { grid-template-columns: 1fr; padding-left: 24px; }.process-copy { position: static; }.process-step figure { grid-row: 1; }.process-copy { grid-row: 2; }.process-rail, .process-track::before { left: 0; }.about { padding: 72px 0; }.profile-links { justify-content: flex-start; }.contact-panel { padding: 28px; border-radius: 24px; }.work-cta { border-radius: 24px; }.page-hero { padding-top: 64px; }.project-details { padding-top: 28px; }.gallery-row.cols-2, .gallery-row.cols-3 { grid-template-columns: 1fr; }.gallery-row .gallery-image { aspect-ratio: auto; }.gallery-row .gallery-image img { height: auto; }.gallery-section span { width: 100%; margin-left: 0; }.project-footer nav { align-items: flex-start; flex-direction: column; }.project-footer nav a:last-child { margin-left: 0; text-align: left; }.footer-push { width: 100%; margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }.marquee-track { animation-play-state: paused; } *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }.stack-card { position: static; }.stack-card > a { max-height: none; } [data-reveal] { opacity: 1; transform: none; }
}
