/* =============================================================================
   THREADS — design system
   A tactile print-room language: calico paper, ink, one thread of cyan.
   Type: Archivo (variable width/weight) + IBM Plex Mono for workshop labels.
   ============================================================================= */

:root {
  --ink: #12151a;
  --ink-2: #1a1f26;
  --ink-3: #242b34;
  --ink-soft: #3c444e;
  --paper: #f4f1e9;
  --paper-2: #ebe6da;
  --paper-3: #ded7c6;
  --thread: #67e8f9;
  --thread-bright: #86f0fd;
  --thread-deep: #0e7490;
  --error: #c92a2a;
  --ok: #2f9e44;

  --font-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);

  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --header-h: 4.5rem;
  --radius-sm: 2px;
  --radius-md: 4px;
}

/* ── Reset & base ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
address { font-style: normal; }
b, strong { font-weight: 700; }
::selection { background: var(--thread); color: var(--ink); }
:focus-visible { outline: 2px solid var(--thread-deep); outline-offset: 3px; }
.on-ink :focus-visible { outline-color: var(--thread); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.container { padding-left: var(--gutter); padding-right: var(--gutter); }
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 10001;
  background: var(--thread); color: var(--ink); padding: .65rem 1rem;
  transform: translateY(-6rem); transition: transform .3s;
}
.skip-link:focus-visible { transform: translateY(0); }

/* ── Type ──────────────────────────────────────────────────────────────── */
.display {
  font-family: var(--font-sans);
  font-weight: 800;
  font-variation-settings: "wdth" 122;
  letter-spacing: -0.015em;
  line-height: 0.92;
  text-transform: uppercase;
  text-wrap: balance;
}
.display-narrow {
  font-family: var(--font-sans);
  font-weight: 700;
  font-variation-settings: "wdth" 88;
  line-height: 1.02;
}
.label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.text-outline { color: transparent; -webkit-text-stroke: 1.5px currentColor; }
.lead { font-size: 1.125rem; line-height: 1.6; }
.muted { opacity: .7; }
.text-center { text-align: center; }

/* ── Print-room motifs ─────────────────────────────────────────────────── */
.halftone {
  background-image: radial-gradient(currentColor 1px, transparent 1.5px);
  background-size: 14px 14px;
}
.stitch-b { border-bottom: 2px dashed rgba(128,128,128,.4); }
.stitch-t { border-top: 2px dashed rgba(128,128,128,.4); }
.on-ink .stitch-b, .on-ink .stitch-t { border-color: rgba(244,241,233,.25); }
.stitch { height: 2px; background: repeating-linear-gradient(90deg, currentColor 0 10px, transparent 10px 17px); opacity: .5; transform-origin: left; }
.js .stitch[data-stitch] { transform: scaleX(0); }
.print-shadow { box-shadow: 8px 8px 0 0 var(--thread); }
.care-label { border: 1px solid rgba(128,128,128,.35); position: relative; }
.care-label::before {
  content: ""; position: absolute; inset: .5rem;
  border: 1px dashed rgba(128,128,128,.3); pointer-events: none;
}
.reg-mark { width: .875rem; height: .875rem; flex: none; }
.eyebrow { display: flex; align-items: center; gap: .625rem; opacity: .7; }
.eyebrow--thread { color: var(--thread); opacity: 1; }

/* Crop marks around image frames */
.crop-marks { position: absolute; inset: -.5rem; pointer-events: none; opacity: .4; }
.crop-marks span { position: absolute; width: 1rem; height: 1rem; border-color: currentColor; border-style: solid; border-width: 0; }
.crop-marks span:nth-child(1) { left: 0; top: 0; border-left-width: 2px; border-top-width: 2px; }
.crop-marks span:nth-child(2) { right: 0; top: 0; border-right-width: 2px; border-top-width: 2px; }
.crop-marks span:nth-child(3) { left: 0; bottom: 0; border-left-width: 2px; border-bottom-width: 2px; }
.crop-marks span:nth-child(4) { right: 0; bottom: 0; border-right-width: 2px; border-bottom-width: 2px; }

/* Marquee */
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track { display: inline-flex; width: max-content; animation: marquee var(--marquee-duration, 30s) linear infinite; }
.marquee__group { display: inline-flex; align-items: center; }

/* Link underline */
.link-underline { position: relative; }
.link-underline::after {
  content: ""; position: absolute; left: 0; bottom: -3px; height: 2px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform .45s var(--ease-out-expo);
}
.link-underline:hover::after, .link-underline:focus-visible::after, .link-underline[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

/* Blur-up images */
.img-blur { background-size: cover; background-position: center; }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  padding: 1rem 1.75rem; font-weight: 700; font-size: .9375rem; letter-spacing: .02em; text-transform: uppercase;
  border-radius: var(--radius-sm); overflow: hidden; isolation: isolate; transition: color .35s var(--ease-out-expo); cursor: pointer;
  white-space: nowrap;
}
.btn > * { position: relative; z-index: 1; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: 0; transform: translateY(101%); transition: transform .45s var(--ease-out-expo); }
.btn:hover::before, .btn:focus-visible::before { transform: translateY(0); }
.btn-thread { background: var(--thread); color: var(--ink); }
.btn-thread::before { background: var(--ink); }
.btn-thread:hover, .btn-thread:focus-visible { color: var(--paper); }
.btn-ink { background: var(--ink); color: var(--paper); }
.btn-ink::before { background: var(--thread); }
.btn-ink:hover, .btn-ink:focus-visible { color: var(--ink); }
.btn-outline { background: transparent; color: currentColor; border: 2px solid rgba(128,128,128,.5); }
.btn-outline::before { background: currentColor; opacity: .08; }
.btn-sm { padding: .6rem 1.1rem; font-size: .8125rem; }
.btn-arrow { width: 1em; height: 1em; transition: transform .35s var(--ease-out-expo); }
.btn:hover .btn-arrow { transform: translate(3px, -3px); }
.btn:disabled { opacity: .6; cursor: default; }
.arrow-icon { width: 1em; height: 1em; }

/* ── Sections ──────────────────────────────────────────────────────────── */
.section { padding-top: 6rem; padding-bottom: 6rem; }
.section--ink { background: var(--ink); color: var(--paper); }
.section--thread { background: var(--thread); color: var(--ink); }
.on-ink { color: var(--paper); }
@media (min-width: 768px) { .section { padding-top: 9rem; padding-bottom: 9rem; } .section--tight { padding-top: 6rem; padding-bottom: 6rem; } }

.sec-head { max-width: 100%; }
.sec-head h1, .sec-head h2 { margin-top: 1.25rem; font-size: clamp(2.4rem, 6.5vw, 5.5rem); }
.sec-head .sec-head__intro { margin-top: 1.5rem; max-width: 36rem; font-size: 1.125rem; line-height: 1.6; opacity: .8; }
.sec-head--center { text-align: center; }
.sec-head--center .eyebrow { justify-content: center; }
.sec-head--center .sec-head__intro { margin-left: auto; margin-right: auto; }
.sec-head--mb { margin-bottom: 4rem; }
@media (min-width: 768px) { .sec-head--mb { margin-bottom: 5rem; } }
.sec-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 4rem; }
.sec-head-row .link-more { display: flex; align-items: center; gap: .5rem; padding-bottom: .5rem; }

/* Reveal states (JS-driven; reduced motion / no-JS see everything) */
.js [data-reveal] { opacity: 0; transform: translateY(28px); }
.js [data-reveal].is-in { opacity: 1; transform: none; transition: opacity .9s var(--ease-out-expo), transition .9s; transition: opacity .9s var(--ease-out-expo), transform .9s var(--ease-out-expo); transition-delay: var(--delay, 0s); }
.js [data-split] .word { display: inline-block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; vertical-align: bottom; }
.js [data-split] .word__inner { display: inline-block; transform: translateY(115%) rotate(2.5deg); opacity: 0; transition: transform .85s var(--ease-out-expo), opacity .6s; transition-delay: var(--delay, 0s); will-change: transform; }
.js [data-split].is-in .word__inner { transform: none; opacity: 1; }

/* ── Header ────────────────────────────────────────────────────────────── */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 1000; color: var(--paper);
  transition: background-color .3s, box-shadow .3s, transform .45s var(--ease-out-expo);
}
.site-header.is-scrolled { background: rgba(18,21,26,.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 1px 0 0 rgba(244,241,233,.14); }
.site-header.is-hidden { transform: translateY(-100%); }
.announce { display: flex; align-items: center; justify-content: center; gap: .75rem; background: var(--thread); color: var(--ink); padding: .5rem 1rem; }
.announce__text { font-family: var(--font-mono); font-size: .8125rem; text-align: center; }
.announce__text a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.announce__close { width: 1.5rem; height: 1.5rem; display: grid; place-items: center; flex: none; }
.announce__close svg { width: .75rem; height: .75rem; }
.announce__close:hover { background: rgba(18,21,26,.1); }
.site-header__row { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); }
.site-header__logo img { height: 1.75rem; width: auto; }
.site-nav { display: none; align-items: center; gap: 2rem; }
.site-nav__link { padding: .5rem 0; opacity: .9; }
.site-nav__link:hover { opacity: 1; }
.site-header__actions { display: flex; align-items: center; gap: .75rem; }
.site-header__cta { padding-left: .75rem; padding-right: .75rem; }
.site-header__cta .btn-arrow { display: none; }
.burger { position: relative; width: 2.75rem; height: 2.75rem; display: flex; align-items: center; justify-content: center; }
.burger span { position: absolute; width: 1.5rem; height: 2px; background: currentColor; transition: transform .3s; }
.burger span:first-child { transform: translateY(-4.5px); }
.burger span:last-child { transform: translateY(4.5px); }
.burger[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }
@media (min-width: 640px) { .site-header__cta { padding-left: 1.1rem; padding-right: 1.1rem; } .site-header__cta .btn-arrow { display: block; } }
@media (min-width: 768px) { .site-header__logo img { height: 2rem; } .site-nav { display: flex; } .burger { display: none; } }

/* Mobile menu */
.menu { position: fixed; inset: 0; z-index: 999; display: flex; flex-direction: column; background: var(--ink); color: var(--paper); clip-path: inset(0 0 100% 0); transition: clip-path .55s var(--ease-in-out-quart); }
.menu[hidden] { display: none; }
.menu.is-open { clip-path: inset(0 0 0 0); }
.menu__nav { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: .5rem; padding-top: var(--header-h); }
.menu__link { padding: .5rem 0; font-size: clamp(2.6rem, 10vw, 4rem); line-height: 1; transform: translateY(40px); opacity: 0; transition: transform .6s var(--ease-out-expo), opacity .6s; transition-delay: calc(.15s + var(--i) * .06s); }
.menu__link[aria-current="page"] { color: var(--thread); }
.menu__cta { margin-top: 1.5rem; align-self: flex-start; transform: translateY(40px); opacity: 0; transition: transform .6s var(--ease-out-expo), opacity .6s; transition-delay: .5s; }
.menu.is-open .menu__link, .menu.is-open .menu__cta { transform: none; opacity: 1; }
.menu__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.menu__social { display: flex; gap: 1.25rem; opacity: .8; }
.menu__email { opacity: .8; }

/* ── Hero ──────────────────────────────────────────────────────────────── */
.hero { position: relative; display: flex; min-height: 100svh; flex-direction: column; justify-content: flex-end; overflow: hidden; background: var(--ink); color: var(--paper); }
.hero__halftone { position: absolute; right: -6rem; top: -6rem; width: 28rem; height: 28rem; transform: rotate(12deg); color: var(--paper); opacity: .08; -webkit-mask-image: radial-gradient(closest-side, #000, transparent); mask-image: radial-gradient(closest-side, #000, transparent); }
.hero__stack { position: absolute; inset: 0; }
.hero__photo { position: absolute; display: none; }
.hero__photo figure { margin: 0; transition: transform .1s linear; }
.hero__photo img { width: 100%; height: auto; }
.hero__photo .label { margin-top: .5rem; display: flex; align-items: center; gap: .5rem; color: rgba(244,241,233,.6); }
.hero__photo .reg-mark { width: .625rem; height: .625rem; }
.hero__photo--1 { right: 5%; top: 11%; width: 21vw; max-width: 22rem; transform: rotate(3deg); }
.hero__photo--2 { right: 25%; top: 24%; width: 13vw; max-width: 15rem; transform: rotate(-5deg); }
.hero__photo--3 { right: 8%; top: 63%; width: 11vw; max-width: 12rem; transform: rotate(8deg); }
.hero__wash { position: absolute; inset: 0; display: none; background: linear-gradient(to top right, var(--ink) 32%, rgba(18,21,26,.45) 60%, transparent); }
.js .hero__photo figure { opacity: 0; transform: translateY(60px); }
.js .hero.is-in .hero__photo figure { opacity: 1; transform: none; transition: opacity 1.1s var(--ease-out-expo), transform 1.1s var(--ease-out-expo); }
.hero.is-in .hero__photo--1 figure { transition-delay: .55s; }
.hero.is-in .hero__photo--2 figure { transition-delay: .69s; }
.hero.is-in .hero__photo--3 figure { transition-delay: .83s; }
@media (min-width: 1024px) { .hero__photo, .hero__wash { display: block; } }
.hero__copy { position: relative; z-index: 10; padding-bottom: 3.5rem; padding-top: calc(var(--header-h) + 3rem); }
.hero__eyebrow { margin-bottom: 1.5rem; }
.hero__title { font-size: clamp(3.2rem, 11.5vw, 10.5rem); }
.hero__title span { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.hero__title span:last-child { padding-bottom: .12em; }
.hero__title i { display: block; font-style: normal; }
.hero__title .accent i { color: var(--thread); }
.js .hero__title i { transform: translateY(112%); opacity: 0; }
.js .hero.is-in .hero__title i { transform: none; opacity: 1; transition: transform 1s var(--ease-out-expo), opacity .8s; }
.hero.is-in .hero__title span:first-child i { transition-delay: .35s; }
.hero.is-in .hero__title span:last-child i { transition-delay: .47s; }
.hero__row { display: flex; flex-direction: column; gap: 2.5rem; margin-top: 2rem; }
.hero__sub { max-width: 28rem; font-size: 1.125rem; line-height: 1.6; color: rgba(244,241,233,.8); }
.hero__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.hero__ctas .btn-outline { color: var(--paper); }
.js .hero__sub, .js .hero__ctas, .js .hero__eyebrow { opacity: 0; transform: translateY(20px); }
.js .hero.is-in .hero__sub, .js .hero.is-in .hero__ctas, .js .hero.is-in .hero__eyebrow { opacity: 1; transform: none; transition: opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo); }
.hero.is-in .hero__eyebrow { transition-delay: .25s; }
.hero.is-in .hero__sub { transition-delay: .7s; }
.hero.is-in .hero__ctas { transition-delay: .8s; }
.hero__cue { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); display: none; flex-direction: column; align-items: center; gap: .5rem; color: rgba(244,241,233,.5); }
.hero__cue i { display: block; width: 1px; height: 2rem; background: currentColor; transform-origin: top; animation: cue 2s ease-in-out infinite; }
@keyframes cue { 0%, 100% { transform: scaleY(.3); } 50% { transform: scaleY(1); } }
@media (min-width: 768px) { .hero__copy { padding-bottom: 5rem; } .hero__row { flex-direction: row; align-items: flex-end; justify-content: space-between; } .hero__cue { display: flex; } }
@media (min-width: 1024px) { .hero__sub { max-width: 32rem; } }

/* ── Ticker ────────────────────────────────────────────────────────────── */
.ticker { background: var(--thread); color: var(--ink); padding: .875rem 0; }
.ticker__item { display: inline-flex; align-items: center; gap: 2.5rem; margin: 0 1.25rem; font-size: 1.25rem; }
.ticker__item svg { width: .75rem; height: .75rem; }
@media (min-width: 768px) { .ticker__item { font-size: 1.5rem; } }

/* ── Work cards & galleries ────────────────────────────────────────────── */
.work-card { position: relative; display: block; }
.work-card__frame { position: relative; overflow: hidden; background: var(--paper-2); }
.work-card__frame img { width: 100%; transition: transform .7s var(--ease-out-expo); }
.work-card:hover .work-card__frame img { transform: scale(1.055); }
.work-card__bar { position: absolute; inset: auto 0 0 0; background: var(--thread); color: var(--ink); padding: .75rem 1rem; transform: translateY(100%); transition: transform .5s var(--ease-out-expo); }
.work-card:hover .work-card__bar, .work-card:focus-visible .work-card__bar { transform: none; }
.work-card__bar p { font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.work-card__meta { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin-top: .75rem; }
.work-card__title { font-size: .9375rem; font-weight: 700; line-height: 1.35; }
.work-card__cat { flex: none; opacity: .6; }
.work-card__client { margin-top: .125rem; font-size: .875rem; opacity: .6; }
.work-card__empty { display: grid; place-items: center; aspect-ratio: 3/4; opacity: .4; }

.gallery { display: grid; gap: 3.5rem 2rem; }
.gallery__col { display: flex; flex-direction: column; gap: 3.5rem; }
@media (min-width: 640px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gallery { grid-template-columns: repeat(3, 1fr); } .gallery__col:nth-child(2) { margin-top: 5rem; } .gallery__col:nth-child(3) { margin-top: 2.25rem; } }
.gallery-cta { margin-top: 5rem; text-align: center; }

.work-grid { display: grid; gap: 3.5rem 2rem; }
@media (min-width: 640px) { .work-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .work-grid { grid-template-columns: repeat(3, 1fr); } .work-grid > li:nth-child(3n+2) { margin-top: 3.5rem; } .work-grid > li:nth-child(3n) { margin-top: 1.75rem; } }
.work-grid > li { transition: opacity .35s, transform .35s var(--ease-out-expo); }
.work-grid > li.is-hidden { display: none; }
.work-grid > li.is-leaving { opacity: 0; transform: scale(.96); }
.work-empty { padding: 5rem 0; text-align: center; font-size: 1.125rem; opacity: .6; }

.filters { display: flex; flex-wrap: wrap; gap: .625rem; margin-bottom: 3.5rem; }

/* Chips (filters + quote form) */
.chip {
  display: inline-flex; align-items: center; gap: .5rem; border: 2px solid rgba(128,128,128,.4); border-radius: var(--radius-sm);
  padding: .65rem 1rem; font-weight: 600; font-size: .9375rem; cursor: pointer; user-select: none;
  transition: background .25s, border-color .25s, color .25s, transform .15s;
}
.chip:hover { border-color: currentColor; }
.chip:active { transform: scale(.97); }
.chip.is-active, .chip[aria-pressed="true"], .chip:has(input:checked) { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.chip:has(input:focus-visible) { outline: 2px solid var(--thread-deep); outline-offset: 3px; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip .label { opacity: .6; }
.chip--static { cursor: default; }

/* ── Service index (homepage) ──────────────────────────────────────────── */
.svc-index { position: relative; }
.svc-index__row { border-top: 1px solid rgba(244,241,233,.15); }
.svc-index__row:last-child { border-bottom: 1px solid rgba(244,241,233,.15); }
.svc-index__link { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0 1.25rem; padding: 1.75rem 0; transition: color .3s; }
.svc-index__link:hover, .svc-index__link:focus-visible { color: var(--thread); }
.svc-index__num { opacity: .5; }
.svc-index__title { font-size: clamp(1.7rem, 4.6vw, 3.4rem); transition: transform .5s var(--ease-out-expo); }
.svc-index__link:hover .svc-index__title { transform: translateX(.75rem); }
.svc-index__summary { margin-top: .5rem; max-width: 32rem; font-size: .9375rem; line-height: 1.4; color: rgba(244,241,233,.6); }
.svc-index__examples { display: none; text-align: right; line-height: 1.7; opacity: .6; }
.svc-index__arrow { display: none; color: rgba(244,241,233,.4); transition: color .3s; }
.svc-index__arrow svg { width: 1.25rem; height: 1.25rem; }
.svc-index__link:hover .svc-index__arrow { color: var(--thread); }
.svc-index__thumb { margin-bottom: 1.75rem; overflow: hidden; }
.svc-index__thumb img { height: 13rem; width: 100%; object-fit: cover; }
.svc-preview { position: absolute; left: 0; top: 0; z-index: 10; width: 18rem; pointer-events: none; display: none; opacity: 0; transform: translate(2rem, -50%) scale(.85) rotate(-4deg); transition: opacity .35s var(--ease-out-expo), transform .35s var(--ease-out-expo); }
.svc-preview.is-on { opacity: 1; transform: translate(2rem, -50%) scale(1); }
.svc-preview img { width: 100%; height: auto; }
@media (min-width: 768px) {
  .svc-index__link { grid-template-columns: 4rem 1fr auto 2.5rem; padding: 2.25rem 0; }
  .svc-index__examples, .svc-index__arrow { display: block; }
  .svc-index__arrow { justify-self: end; }
  .svc-index__thumb { display: none; }
  .svc-preview { display: block; }
  .svc-index__summary { display: none; }
}
@media (min-width: 1024px) { .svc-index__summary { display: block; } }

/* ── Process strip ─────────────────────────────────────────────────────── */
.process { display: grid; gap: 2.5rem; }
.process__step .eyebrow { margin-bottom: 1rem; color: var(--thread); opacity: 1; }
.process__num { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 1px solid currentColor; border-radius: 50%; font-size: .6875rem; }
.process__step h3 { font-size: 1.5rem; }
.process__step p { margin-top: .75rem; font-size: .9375rem; line-height: 1.6; color: rgba(244,241,233,.65); }
@media (min-width: 768px) { .process { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } .process__step h3 { font-size: 1.7rem; } }
.process-rule { margin-bottom: 3rem; color: var(--thread); }

/* ── Values ────────────────────────────────────────────────────────────── */
.values { display: grid; gap: 3.5rem; }
.values__copy p { margin-bottom: 1.25rem; font-size: 1.125rem; line-height: 1.6; opacity: .85; }
.values__copy p:first-child { font-size: 1.25rem; font-weight: 500; }
.why { display: inline-block; margin-top: 2rem; padding: 1.5rem 1.75rem; }
.why .label { margin-bottom: .75rem; opacity: .6; }
.why li, .check-list li { display: flex; align-items: center; gap: .625rem; font-size: .9375rem; font-weight: 600; margin-top: .375rem; }
.why li svg, .check-list li svg { width: .75rem; height: .75rem; flex: none; color: var(--thread-deep); }
.value-row { display: flex; align-items: baseline; gap: 1.5rem; padding: 2rem 0; }
.value-row__num { flex: none; font-size: 3rem; opacity: .3; }
.value-row h3 { font-size: 1.875rem; }
.value-row p { margin-top: .75rem; max-width: 24rem; font-size: 1.0625rem; line-height: 1.6; opacity: .7; }
@media (min-width: 768px) { .value-row { gap: 2.5rem; } .value-row__num { font-size: 3.75rem; } .value-row h3 { font-size: 2.25rem; } }
@media (min-width: 1024px) { .values { grid-template-columns: 5fr 1fr 6fr; } .values__list { grid-column: 3; } }

/* ── Testimonials ──────────────────────────────────────────────────────── */
.quotes figure { border-top: 1px solid rgba(244,241,233,.12); padding: 3rem 0; }
.quotes blockquote { position: relative; }
.quotes blockquote::before { content: "“"; position: absolute; left: -.5rem; top: -2rem; font-family: var(--font-sans); font-weight: 800; font-size: 4.5rem; line-height: 1; color: rgba(103,232,249,.25); }
.quotes blockquote p { font-size: clamp(1.35rem, 3.1vw, 2.3rem); line-height: 1.25; }
.quotes figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-top: 1.5rem; }
.quotes figcaption strong { font-weight: 700; }
.quotes figcaption .label { opacity: .55; }
.stars { display: inline-flex; gap: .25rem; color: var(--thread); }
.stars svg { width: .875rem; height: .875rem; }
.stars svg.is-off { opacity: .25; }
@media (min-width: 768px) { .quotes figure { padding: 4rem 0; } .quotes figure:nth-child(odd) { padding-right: 16%; } .quotes figure:nth-child(even) { padding-left: 16%; } .quotes blockquote::before { left: -2.5rem; } }

/* ── Visit block ───────────────────────────────────────────────────────── */
.visit { display: grid; gap: 3rem; }
.visit__card { height: 100%; padding: 2.25rem 2rem; }
.visit__card > .label { margin-bottom: 1.5rem; opacity: .6; }
.visit__addr1 { font-size: 1.5rem; line-height: 1.1; }
.visit__addr { margin-top: .25rem; font-size: 1.125rem; opacity: .8; }
.visit__hours { margin-top: 2rem; }
.visit__hours div { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid rgba(18,21,26,.1); padding: .5rem 0; }
.visit__hours dt { opacity: .6; }
.visit__hours dd { font-weight: 600; }
.visit__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.postcode { position: relative; display: flex; min-height: 20rem; height: 100%; flex-direction: column; justify-content: space-between; overflow: hidden; background: var(--ink); color: var(--paper); padding: 2rem; }
.postcode__dots { position: absolute; inset: 0; color: var(--paper); opacity: .07; transition: opacity .5s; }
.postcode:hover .postcode__dots { opacity: .12; }
.postcode__top { position: relative; display: flex; align-items: center; justify-content: space-between; }
.postcode__top .reg-mark { width: 1.25rem; height: 1.25rem; color: var(--thread); }
.postcode__top .label { color: rgba(244,241,233,.6); }
.postcode__body { position: relative; }
.postcode__body > .label { margin-bottom: .75rem; color: var(--thread); }
.postcode__code { font-size: clamp(3rem, 8vw, 6rem); line-height: 1; transition: transform .5s var(--ease-out-expo); }
.postcode:hover .postcode__code { transform: translateX(.5rem); }
.postcode__open { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; font-weight: 600; color: rgba(244,241,233,.8); }
.postcode__open svg { width: 1rem; height: 1rem; transition: transform .3s; }
.postcode:hover .postcode__open svg { transform: translate(4px, -4px); }
.visit__note { text-align: center; font-size: .9375rem; opacity: .6; }
.visit__note a { text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 1024px) { .visit { grid-template-columns: 1fr 1fr; } .visit__note { grid-column: 1 / -1; } .visit__addr1 { font-size: 1.875rem; } }

/* ── CTA band ──────────────────────────────────────────────────────────── */
.cta-band { position: relative; overflow: hidden; background: var(--thread); color: var(--ink); }
.cta-band__dots { position: absolute; inset: 0 0 0 auto; width: 33%; color: var(--ink); opacity: .1; -webkit-mask-image: linear-gradient(to left, #000, transparent); mask-image: linear-gradient(to left, #000, transparent); }
.cta-band__inner { position: relative; padding-top: 6rem; padding-bottom: 6rem; }
.cta-band h2 { max-width: 64rem; font-size: clamp(2.6rem, 7.5vw, 6.5rem); }
.cta-band p { margin-top: 1.5rem; max-width: 36rem; font-size: 1.125rem; font-weight: 500; line-height: 1.6; opacity: .8; }
.cta-band__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .cta-band__inner { padding-top: 8rem; padding-bottom: 8rem; } }

/* ── Footer ────────────────────────────────────────────────────────────── */
.footer { position: relative; overflow: hidden; background: var(--ink); color: var(--paper); }
.care-strip { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: 1rem; padding-bottom: 1rem; color: rgba(244,241,233,.7); }
.care-strip__icons { display: none; gap: 1rem; }
.care-strip__icons svg { width: 1.25rem; height: 1.25rem; }
.care-strip__right { display: none; }
@media (min-width: 640px) { .care-strip__icons { display: flex; } }
@media (min-width: 768px) { .care-strip__right { display: block; } }
.footer__grid { display: grid; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; }
.footer__brand img { height: 2.25rem; width: auto; }
.footer__brand p { margin-top: 1.25rem; max-width: 20rem; font-size: .9375rem; line-height: 1.6; color: rgba(244,241,233,.7); }
.footer__social { display: flex; gap: 1.5rem; margin-top: 1.75rem; color: rgba(244,241,233,.8); }
.footer__heading { margin-bottom: 1.25rem; color: var(--thread); }
.footer__address span { display: block; font-size: .9375rem; line-height: 1.6; color: rgba(244,241,233,.8); }
.footer__directions { display: inline-block; margin-top: 1rem; }
.footer__hours div { margin-bottom: .5rem; font-size: .9375rem; color: rgba(244,241,233,.8); }
.footer__hours dt { color: rgba(244,241,233,.5); }
.footer__contact li { margin-bottom: .625rem; font-size: .9375rem; color: rgba(244,241,233,.8); }
.footer__email { word-break: break-all; }
.footer__cta { margin-top: 1.75rem; }
@media (min-width: 768px) { .footer__grid { grid-template-columns: 4fr 3fr 2fr 3fr; } }
.watermark { pointer-events: none; user-select: none; overflow: hidden; }
.watermark p { transform: translateY(18%); text-align: center; font-size: clamp(5rem, 19vw, 19rem); line-height: 1; text-transform: none; color: rgba(244,241,233,.07); }
.watermark p span { color: rgba(103,232,249,.3); }
.footer__legal { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; border-top: 1px solid rgba(244,241,233,.1); padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: .8125rem; color: rgba(244,241,233,.5); }
.footer__legal div { display: flex; gap: 1.5rem; }
.footer__legal a:hover { color: var(--paper); }

/* ── Page header (inner pages) ─────────────────────────────────────────── */
.page-head { position: relative; overflow: hidden; background: var(--ink); color: var(--paper); }
.page-head__dots { position: absolute; right: -5rem; top: 0; width: 20rem; height: 20rem; transform: rotate(12deg); color: var(--paper); opacity: .07; -webkit-mask-image: radial-gradient(closest-side, #000, transparent); mask-image: radial-gradient(closest-side, #000, transparent); }
.page-head__inner { position: relative; padding-top: calc(var(--header-h) + 5rem); padding-bottom: 4rem; }
.page-head h1 { margin-top: 1.25rem; max-width: 64rem; font-size: clamp(2.8rem, 8vw, 7rem); }
.page-head__intro { margin-top: 1.5rem; max-width: 42rem; font-size: 1.125rem; line-height: 1.6; color: rgba(244,241,233,.75); }
@media (min-width: 768px) { .page-head__inner { padding-top: calc(var(--header-h) + 7rem); padding-bottom: 5rem; } }

/* ── Work detail ───────────────────────────────────────────────────────── */
.project-head { background: var(--ink); color: var(--paper); padding-top: calc(var(--header-h) + 5rem); padding-bottom: 3.5rem; }
.breadcrumb { display: flex; align-items: center; gap: .625rem; color: var(--thread); }
.breadcrumb span { color: rgba(244,241,233,.7); }
.project-head h1 { margin-top: 1.25rem; max-width: 56rem; font-size: clamp(2.4rem, 6.5vw, 5.5rem); }
.project-head dl { display: flex; flex-wrap: wrap; gap: 1rem 3rem; margin-top: 2rem; color: rgba(244,241,233,.7); }
.project-head dt { margin-bottom: .25rem; color: var(--thread); }
.project-head dd { color: var(--paper); }
.project-head dd.normal { font-family: var(--font-sans); text-transform: none; letter-spacing: 0; font-size: .9375rem; }
.project { display: grid; gap: 3.5rem; }
.project__images figure { position: relative; margin-bottom: 3rem; }
.project__aside > .label { margin-bottom: 1rem; opacity: .6; }
.project__aside p { font-size: 1.125rem; line-height: 1.6; }
.project__aside .btn { margin-top: 2.5rem; }
@media (min-width: 1024px) { .project { grid-template-columns: 7fr 1fr 4fr; } .project__aside { grid-column: 3; } .project__aside-inner { position: sticky; top: 7rem; } }
.next-project { display: block; border-top: 1px solid var(--paper-3); background: var(--ink); color: var(--paper); padding-top: 3.5rem; padding-bottom: 3.5rem; }
.next-project > .label { margin-bottom: .75rem; color: var(--thread); }
.next-project p.display { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; font-size: clamp(1.8rem, 5vw, 3.6rem); }
.next-project p.display span { transition: transform .5s var(--ease-out-expo); }
.next-project:hover p.display span { transform: translateX(.75rem); }
.next-project svg { width: 2rem; height: 2rem; flex: none; color: var(--thread); }

/* ── Services page ─────────────────────────────────────────────────────── */
.svc-row { padding: 2.5rem 0; }
.svc-row__rule { margin-bottom: 3.5rem; opacity: .5; }
.svc-row__grid { display: grid; gap: 2.5rem; align-items: center; }
.svc-row__img { position: relative; display: block; }
.svc-row__img img { width: 100%; max-height: 32rem; object-fit: cover; }
.svc-row__index { display: flex; align-items: center; gap: .75rem; opacity: .6; }
.svc-row__index .display { font-size: 1.875rem; opacity: .6; }
.svc-row h2 { margin-top: 1rem; font-size: clamp(2rem, 4.5vw, 3.6rem); }
.svc-row h2 a:hover { color: var(--thread-deep); }
.svc-row__summary { margin-top: 1rem; max-width: 36rem; font-size: 1.125rem; line-height: 1.6; opacity: .8; }
.svc-row .check-list { display: grid; gap: .5rem 2rem; max-width: 36rem; margin-top: 1.5rem; }
.svc-row .link-more { display: inline-flex; align-items: center; gap: .5rem; margin-top: 2rem; }
@media (min-width: 640px) { .svc-row .check-list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .svc-row__grid { grid-template-columns: 5fr 1fr 6fr; }
  .svc-row__copy { grid-column: 3; }
  .svc-row--flip .svc-row__img { grid-column: 3 / 4; grid-row: 1; }
  .svc-row--flip .svc-row__copy { grid-column: 1 / 2; grid-row: 1; }
  .svc-row--flip .svc-row__grid { grid-template-columns: 6fr 1fr 5fr; }
}
.svc-detail { display: grid; gap: 3.5rem; }
.svc-detail__img { position: relative; }
.svc-detail__copy p { margin-bottom: 1.25rem; font-size: 1.125rem; line-height: 1.6; opacity: .85; }
.svc-detail__copy .label { margin: 2rem 0 .75rem; opacity: .6; }
.svc-detail__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.svc-detail__box { margin-top: 2.5rem; padding: 1.5rem 1.75rem; }
.svc-detail__box .label { margin: 0 0 .75rem; opacity: .6; }
.svc-detail .btn { margin-top: 2rem; }
@media (min-width: 1024px) { .svc-detail { grid-template-columns: 6fr 1fr 5fr; } .svc-detail__copy { grid-column: 3; } }
.related { padding-top: 5rem; padding-bottom: 5rem; }
.related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 3rem; }
.related__head h2 { font-size: 2rem; }
.related__grid { display: grid; gap: 2rem; }
@media (min-width: 640px) { .related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .related__grid { grid-template-columns: repeat(3, 1fr); } .related__head h2 { font-size: 2.25rem; } }
.also { padding-top: 4rem; padding-bottom: 4rem; }
.also .label { margin-bottom: 1.5rem; opacity: .6; }
.also__chips { display: flex; flex-wrap: wrap; gap: .75rem; }
.also__chips .chip svg { width: .75rem; height: .75rem; }

/* ── Contact ───────────────────────────────────────────────────────────── */
.channels { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--paper-3); background: var(--paper-3); }
.channel { display: flex; height: 100%; flex-direction: column; justify-content: space-between; gap: 2.5rem; background: var(--paper); padding: 2rem; transition: background .3s, color .3s; }
.channel:hover { background: var(--ink); color: var(--paper); }
.channel__top { display: flex; align-items: flex-start; justify-content: space-between; }
.channel__top .label { opacity: .6; }
.channel__top svg { width: 1rem; height: 1rem; opacity: .4; transition: transform .3s, color .3s, opacity .3s; }
.channel:hover .channel__top svg { transform: translate(4px, -4px); color: var(--thread); opacity: 1; }
.channel__value { font-size: 1.25rem; word-break: break-all; }
.channel__note { margin-top: .5rem; font-size: .875rem; opacity: .6; }
@media (min-width: 640px) { .channels { grid-template-columns: repeat(2, 1fr); } .channel__value { font-size: 1.5rem; } }
@media (min-width: 1024px) { .channels { grid-template-columns: repeat(3, 1fr); } }
.contact-cta { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-top: 4rem; background: var(--ink); color: var(--paper); padding: 2rem; }
.contact-cta p.display { font-size: 1.5rem; }
.contact-cta p:not(.display) { margin-top: .5rem; max-width: 28rem; color: rgba(244,241,233,.7); }
@media (min-width: 768px) { .contact-cta { flex-direction: row; align-items: center; padding: 2.5rem; } .contact-cta p.display { font-size: 1.875rem; } }

/* ── Quote page ────────────────────────────────────────────────────────── */
.quote-layout { display: grid; gap: 4rem; }
@media (min-width: 1024px) { .quote-layout { grid-template-columns: 7fr 1fr 4fr; } .quote-layout > aside { grid-column: 3; } }
.steps { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 2rem; margin-bottom: 3rem; }
.steps li { display: flex; align-items: center; gap: .75rem; }
.steps button { display: flex; align-items: center; gap: .625rem; opacity: .35; transition: opacity .3s; }
.steps button.is-done { opacity: .7; }
.steps button.is-done:hover { opacity: 1; }
.steps button.is-current { opacity: 1; }
.steps button:disabled { cursor: default; }
.steps__num { display: grid; place-items: center; width: 2rem; height: 2rem; border: 2px solid currentColor; border-radius: 50%; font-size: .75rem; font-weight: 700; transition: background .3s, color .3s; }
.steps button.is-current .steps__num, .steps button.is-done .steps__num { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.steps__dash { display: none; width: 2.5rem; border-top: 2px dashed rgba(18,21,26,.3); }
@media (min-width: 640px) { .steps__dash { display: block; } }
.form-alert { margin-bottom: 2rem; border-left: 4px solid var(--error); background: rgba(201,42,42,.08); padding: 1rem 1.25rem; font-weight: 600; }
.form-note { margin-top: 2rem; max-width: 36rem; font-size: .875rem; line-height: 1.6; opacity: .6; }
.form-note a { text-decoration: underline; text-underline-offset: 2px; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset[hidden] { display: none; }
legend { padding: 0; margin-bottom: .5rem; font-size: 1.875rem; }
.legend-sub { margin-bottom: 2rem; opacity: .7; }
@media (min-width: 768px) { legend { font-size: 2.25rem; } }
.chip-group { display: flex; flex-wrap: wrap; gap: .625rem; }
.chip-group--wrap { position: relative; }
.form-grid { display: grid; gap: 2rem; margin-top: 2.5rem; }
.form-grid .label { display: block; margin-bottom: 1rem; opacity: .6; }
.form-grid .label.field-label { margin-bottom: .5rem; }
@media (min-width: 768px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .span-2 { grid-column: 1 / -1; } }
.field-input {
  width: 100%; background: transparent; border: 0; border-bottom: 2px solid rgba(18,21,26,.25); border-radius: 0;
  padding: .75rem 0; font: inherit; font-size: 1.0625rem; color: inherit; transition: border-color .3s;
}
.field-input:focus { outline: none; border-bottom-color: var(--thread-deep); }
.field-input::placeholder { color: rgba(18,21,26,.35); }
.field-input[aria-invalid="true"] { border-bottom-color: var(--error); }
textarea.field-input { resize: vertical; }
.field-error { margin-top: .5rem; font-size: .875rem; font-weight: 600; color: var(--error); }
.field-hint { margin-top: .5rem; font-size: .75rem; opacity: .5; }
.file-input { display: block; width: 100%; font-size: .875rem; }
.file-input::file-selector-button { margin-right: 1rem; border: 0; background: var(--ink); color: var(--paper); padding: .625rem 1rem; font: inherit; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.file-list { margin-top: .75rem; font-size: .875rem; opacity: .75; }
.file-list li { display: flex; align-items: center; gap: .5rem; }
.file-list button { text-decoration: underline; text-underline-offset: 2px; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 2.5rem; }
.form-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 2.5rem; opacity: .6; }
.spinner { display: inline-block; width: 1rem; height: 1rem; border: 2px solid var(--ink); border-top-color: transparent; border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.success { margin: 2.5rem auto; max-width: 40rem; text-align: center; }
.success__stamp { display: inline-block; padding: 2rem 2.5rem; transform: rotate(-2deg); }
.success__stamp .label { color: var(--thread-deep); }
.success__stamp .display { margin-top: .75rem; font-size: 2.25rem; }
.success p.lead { margin: 2rem auto 0; max-width: 28rem; opacity: .8; }
.success .label { margin-top: 2rem; opacity: .6; }
.success p strong { display: block; margin-top: .5rem; }
.success a { text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 768px) { .success__stamp .display { font-size: 3rem; } }
.aside-block { margin-top: 2rem; }
.aside-block .label { margin-bottom: .75rem; opacity: .6; }
.aside-block p { font-weight: 600; line-height: 1.7; }
.aside-block a { text-decoration: underline; text-underline-offset: 2px; }

/* ── Privacy / prose ───────────────────────────────────────────────────── */
.prose { max-width: 42rem; font-size: 1.0625rem; line-height: 1.7; }
.prose p { margin-bottom: 1.5rem; }
.prose a { text-decoration: underline; text-underline-offset: 2px; }

/* ── 404 ───────────────────────────────────────────────────────────────── */
.notfound { display: flex; min-height: 100svh; flex-direction: column; align-items: center; justify-content: center; background: var(--ink); color: var(--paper); padding: 1.5rem; text-align: center; }
.notfound .display { margin-top: 1rem; font-size: clamp(4rem, 18vw, 12rem); line-height: 1; }
.notfound p { margin-top: 1rem; max-width: 24rem; font-size: 1.125rem; color: rgba(244,241,233,.7); }
.notfound__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 2.5rem; }

/* ── Custom cursor ─────────────────────────────────────────────────────── */
.cursor { position: fixed; left: 0; top: 0; z-index: 9999; pointer-events: none; display: none; transform: translate(-100px, -100px); }
.cursor__dot { display: grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; background: var(--thread); color: var(--ink); transform: translate(-50%, -50%); transition: width .25s var(--ease-out-expo), height .25s var(--ease-out-expo); font-family: var(--font-mono); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; overflow: hidden; }
.cursor.is-label .cursor__dot { width: 72px; height: 72px; }
.cursor.is-down .cursor__dot { width: 10px; height: 10px; }
@media (pointer: fine) { .js .cursor { display: block; } }

/* ── Reduced motion ────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .marquee__track { animation: none; }
  .hero__cue i { animation: none; }
  .js [data-reveal], .js [data-split] .word__inner, .js .hero__photo figure, .js .hero__title i, .js .hero__sub, .js .hero__ctas, .js .hero__eyebrow { opacity: 1 !important; transform: none !important; transition: none !important; }
  .js .stitch[data-stitch] { transform: none; }
  .cursor { display: none !important; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
html[data-nomotion] .marquee__track { animation: none; }
html[data-nomotion] .cursor { display: none !important; }
html[data-nomotion] [data-reveal], html[data-nomotion] [data-split] .word__inner, html[data-nomotion] .hero__photo figure, html[data-nomotion] .hero__title i, html[data-nomotion] .hero__sub, html[data-nomotion] .hero__ctas, html[data-nomotion] .hero__eyebrow { opacity: 1 !important; transform: none !important; transition: none !important; }
html[data-nomotion] .stitch[data-stitch] { transform: none; }

/* ── Small utilities ───────────────────────────────────────────────────── */
.mt-1 { margin-top: .5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mt-4 { margin-top: 2rem; } .mt-6 { margin-top: 3rem; } .mt-8 { margin-top: 4rem; }
.mb-4 { margin-bottom: 2rem; } .mb-6 { margin-bottom: 3rem; }
