@font-face {
  font-family:DM Sans;
  src:url('assets/DMSans-Regular.ttf') format('truetype');
  font-weight:400;
  font-display:swap;
}

@font-face {
  font-family:DM Sans;
  src:url('assets/DMSans_18pt-SemiBold.ttf') format('truetype');
  font-weight:600;
  font-display:swap;
}

@font-face {
  font-family:DM Sans;
  src:url('assets/DMSans_18pt-Bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap;
}

@font-face {
  font-family:DM Sans;
  src:url('assets/DMSans-Medium.ttf') format('truetype');
  font-weight:500;
  font-display:swap;
}

@font-face {
  font-family:Space Grotesk;
  src:url('assets/SpaceGrotesk-Medium.ttf') format('truetype');
  font-weight:500;
  font-display:swap;
}

@font-face {
  font-family:Space Grotesk;
  src:url('assets/SpaceGrotesk-Bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap;
}

/* Legal pages use the shared type and spacing scales. */
.legal-links {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  font-size:var(--type-label);
}
.legal-links a { color:var(--muted); }
.legal-links a:hover,.legal-links a[aria-current="page"] {
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:4px;
}
.legal-content {
  width:min(760px,calc(100% - 48px));
  margin-inline:auto;
  padding-block:var(--space-section);
  overflow-wrap:anywhere;
}
.legal-content .eyebrow { color:var(--accent); margin-bottom:var(--space-5); }
.legal-content h1 { font-size:var(--type-section-heading); letter-spacing:-2px; }
.legal-date { color:var(--muted); margin-top:var(--space-5); font-size:var(--type-small); }
.legal-content section { margin-top:var(--space-7); }
.legal-content h2 { font-size:var(--type-card-heading); letter-spacing:-.6px; margin-bottom:var(--space-5); }
.legal-content section p { color:var(--muted); }
.legal-content section p + p { margin-top:var(--space-4); }
.legal-content a { text-decoration:underline; text-underline-offset:4px; }
.legal-content a:hover { color:var(--text); }
.footer-bar { flex-wrap:wrap; }
@media(max-width:650px) {
  .legal-content { padding-block:var(--space-8); }
}

:root {
  color-scheme:dark;
  --bg:#000000;
  --panel:#1c1c1c;
  --text:#f1f0e9;
  --muted:#a4a49e;
  --line:#353532;
  --accent:#e90000;
  /* Shared type scale and spacing rhythm. Hero sizes stay distinct. */
  --type-label:0.875rem;
  --type-small:0.875rem;
  --type-body:1rem;
  --type-lead:1.25rem;
  --type-card-heading:1.5rem;
  --type-price-heading:2.25rem;
  --type-section-heading:clamp(2.125rem, 4vw, 3.5rem);
  --type-hero:clamp(1.125rem, 6.5vw, 5.75rem);
  --leading-body:1.6;
  --leading-heading:1.1;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-section:96px;
  --space-section-large:160px;
  --radius-card:16px;
  --radius-field:4px;
  --radius-pill:999px;
  --card-padding:var(--space-6);
  --button-font-size:var(--type-body);
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:105px;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:var(--type-body)/var(--leading-body) 'DM Sans',sans-serif;
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}

button,a,summary {
  touch-action:manipulation;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:6px;
}

button {
  cursor:pointer;
}

img {
  display:block;
  max-width:100%;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  font-weight:600;
  line-height:var(--leading-heading);
}

h2 {
  font-size:var(--type-section-heading);
  letter-spacing:-2px;
}

h3 {
  font-size:var(--type-card-heading);
  letter-spacing:-.6px;
}

.wrap {
  width:min(1280px,calc(100% - 96px));
  margin-inline:auto;
}

.muted {
  color:var(--muted);
}

.serif {
  font-family:Georgia,serif;
  font-weight:400;
  font-style:italic;
}

.eyebrow,.hero-preheadline {
  color:var(--accent);
  font-size:var(--type-small);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.button,.gallery-more,.intake-actions button,.artwork-details {
  border-radius:var(--radius-pill);
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--button-font-size);
  font-weight:700;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-5);
  background:var(--accent);
  color:#fff;
  padding:var(--space-3) var(--space-5);
  border:1px solid var(--accent);
  border-radius:var(--radius-pill);
  font-size:var(--button-font-size);
  transition:background-color .2s, border-color .2s, color .2s;
}

.button-small {
  padding:8px 17px;
  gap:25px;
  border-radius:var(--radius-pill);
}

.button-outline {
  background:transparent;
  color:var(--text);
  border-color:#50504a;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  font-size:var(--type-small);
}

.text-link:hover {
  color:var(--accent);
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:100;
  background:var(--accent);
  color:#111;
  padding:10px;
}

.skip-link:focus {
  top:10px;
}

.site-header {
  height:88px;
  padding:0 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  position:sticky;
  isolation:isolate;
  top:0;
  z-index:20;
  background:#000000;
  backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:height .2s, background-color .2s, border-color .2s, box-shadow .2s;
}

.site-header.is-scrolled {
  height:68px;
  background:rgba(18, 18, 18, .66);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  backdrop-filter:blur(22px) saturate(150%);
  border-bottom-color:rgba(255, 255, 255, .12);
  box-shadow:inset 0 1px rgba(255, 255, 255, .06), 0 8px 30px rgba(0, 0, 0, .18);
}

.site-header.is-scrolled .header-grid {
  visibility:hidden;
}

.wordmark {
  display:inline-flex;
  align-items:center;
  font-family:'Space Grotesk',sans-serif;
  font-size:1.875rem;
  font-weight:700;
  letter-spacing:-1.8px;
  line-height:1;
}

.wordmark img {
  width:auto;
  height:.714em;
  max-width:none;
}

.site-header nav,
.site-header .button {
  font-family:'Space Grotesk',sans-serif;
  font-weight:500;
  font-size:var(--type-body);
}

.site-header .button {
  color:#fff;
  font-weight:700;
}

.site-header nav {
  display:flex;
  gap:32px;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  margin:0;
  color:#c6c6be;
}

.site-header nav a:hover {
  color:var(--accent);
}

.mobile-menu-toggle,
.mobile-hero-cta {
  display:none;
}

.mobile-menu {
  display:none;
}

.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:140px 18px 120px;
  text-align:center;
}

.hero-grid,
.header-grid,
.footer-grid {
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  width:100%;
  height:100%;
}

.hero-grid {
  mask-image:linear-gradient(to bottom, #000, #000 65%, transparent);
}

.header-grid {
  mask-image:linear-gradient(to bottom, transparent, #000);
}

.hero-preheadline {
  margin-bottom:var(--space-5);
}

.hero h1 {
  position:relative;
  font-size:var(--type-hero);
  line-height:.99;
  letter-spacing:-.035em;
  white-space:nowrap;
  margin:0 auto;
}

.hero-bottom {
  margin-top:var(--space-4);
}

.hero-bottom p {
  font-size:var(--type-lead);
  color:var(--muted);
}

.work.wrap {
  width:min(1800px,calc(100% - 32px));
}

.gallery-shell {
  position:relative;
}

.gallery {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--space-4);
}

.gallery-reveal {
  position:relative;
  margin-top:-220px;
  height:300px;
  display:grid;
  place-items:end center;
  padding-bottom:24px;
  background:linear-gradient(to bottom, transparent, rgba(0, 0, 0, .88) 55%, #000 74%);
  pointer-events:none;
}

.gallery-reveal[hidden] {
  display:none;
}

.gallery-more {
  pointer-events:auto;
  border:1px solid transparent;
  background:#fff;
  color:#111;
  padding:var(--space-3) var(--space-5);
  transition:background-color .2s, border-color .2s, color .2s;
}

.gallery-placeholder {
  aspect-ratio:3 / 4;
  border:1px solid #252424;
  border-radius:25px;
  background:var(--panel);
}

.artwork {
  display:block;
  position:relative;
  padding:0;
  border:1px solid #252424;
  width:100%;
  background:#222;
  border-radius:25px;
  overflow:hidden;
}

.artwork img {
  width:100%;
  height:auto;
  transition:filter .3s ease;
}

.artwork:hover img,
.artwork:focus-visible img {
  filter:blur(5px);
}

.artwork-overlay {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(0, 0, 0, .78);
  opacity:0;
  transition:opacity .3s ease;
}

.artwork-details {
  padding:12px 20px;
  border:1px solid rgba(255, 255, 255, .7);
  border-radius:999px;
  color:#fff;
  transform:translateY(8px);
  transition:transform .3s ease;
}

.artwork:hover .artwork-overlay,
.artwork:focus-visible .artwork-overlay {
  opacity:1;
}

.artwork:hover .artwork-details,
.artwork:focus-visible .artwork-details {
  transform:translateY(0);
}

.expand {
  position:absolute;
  right:16px;
  bottom:16px;
  background:#151515dc;
  color:white;
  border:1px solid #ffffff40;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:1.3125rem;
}

.work-card figcaption {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:15px;
  padding:21px 0;
}

.work-card h3 {
  font-size:1.1875rem;
  letter-spacing:-.3px;
}

.work-card figcaption p {
  font-size:var(--type-small);
  color:var(--muted);
  margin-top:6px;
}

.work-type {
  font-size:var(--type-small);
  text-transform:uppercase;
  letter-spacing:.8px;
  color:var(--muted);
  padding-top:4px;
}

.disclosure,.fine-print {
  font-size:var(--type-label);
  color:var(--muted);
}

.work>.disclosure {
  margin-top:4px;
}

.section {
  padding-top:var(--space-section);
  padding-bottom:var(--space-2);
}

#pricing {
  padding-top:var(--space-section-large);
}

.section-heading {
  margin-bottom:var(--space-7);
}

#process .section-heading, #pricing .section-heading {
  text-align:center;
}

#pricing-title {
  max-width:600px;
  margin-inline:auto;
}

.section-heading .eyebrow,.apply .eyebrow,.faq-section .eyebrow {
  margin-bottom:var(--space-5);
  color:var(--accent);
}

.process-grid {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-6);
}

.process-grid li {
  border-top:1px solid var(--line);
  padding-top:var(--space-5);
}

.step {
  color:var(--muted);
  font-size:var(--type-label);
}

.process-grid h3 {
  margin:var(--space-6) 0 var(--space-4);
}

.process-grid p {
  color:var(--muted);
  font-size:var(--type-body);
  max-width:340px;
}

.split {
  display:flex;
  justify-content:space-between;
  align-items:end;
}

.split>p {
  font-size:0.875rem;
  color:var(--muted);
  padding-bottom:4px;
}

.pricing-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-5);
  max-width:1080px;
  margin-inline:auto;
}

.price-card {
  display:flex;
  flex-direction:column;
  background:#111;
  padding:var(--card-padding);
  min-height:448px;
  border:1px solid #252424;
  border-radius:var(--radius-card);
}

.price-card h3 {
  font-size:var(--type-price-heading);
  letter-spacing:-1.3px;
}

.price-card .package-description {
  color:var(--muted);
  font-size:var(--type-small);
  margin-top:var(--space-1);
}

.price-card .package-price {
  color:var(--text);
  font-size:var(--type-card-heading);
  font-weight:700;
  letter-spacing:-.8px;
  margin-top:var(--space-5);
}

.price-card ul {
  list-style:none;
  padding:0;
  margin:var(--space-5) 0 var(--space-6);
  font-size:var(--type-small);
  color:var(--muted);
}

.price-card li {
  display:flex;
  margin:var(--space-1) 0;
}

.price-card li:before {
  content:'•';
  color:var(--muted);
  margin-right:var(--space-3);
}

.price-footer {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-2);
  margin-top:auto;
}

.price-footer > span {
  color:var(--muted);
  font-size:var(--type-label);
  text-align:center;
}

.price-footer .button {
  width:100%;
  border-radius:999px;
  color:#fff;
  font-weight:700;
}

.fine-print {
  max-width:540px;
  margin:var(--space-6) auto 0;
  text-align:center;
}

.apply {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:90px;
  padding-top:130px;
}

.apply h2 .serif {
  color:var(--accent);
}

.apply-intro>p:not(.eyebrow) {
  color:var(--muted);
  font-size:0.875rem;
  margin-top:25px;
  max-width:320px;
}

.apply-intro .form-note {
  font-size:var(--type-small)!important;
  line-height:1.7;
}

.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

label {
  display:block;
  font-size:var(--type-small);
  margin-bottom:20px;
}

input,select,textarea {
  display:block;
  width:100%;
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--line);
  border-radius:var(--radius-field);
  padding:var(--space-3) var(--space-4);
  margin-top:var(--space-2);
  font-size:var(--type-body);
  outline:none;
}

input:focus,select:focus,textarea:focus {
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent);
}

input::placeholder,textarea::placeholder {
  color:#898982;
}

textarea {
  resize:vertical;
  min-height:125px;
}

.form-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.form-bottom>span {
  font-size:var(--type-small);
  color:var(--muted);
  max-width:140px;
}

#form-status {
  font-size:var(--type-small);
  color:var(--accent);
  margin-top:16px;
}

.faq-section {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--space-7);
  margin-top:35px;
  padding-bottom:8px;
}

.faq-section > div:first-child {
  text-align:center;
}

#faq-title {
  max-width:500px;
  margin-inline:auto;
}

.faq-list {
  border-top:1px solid var(--line);
  width:min(100%, 760px);
  margin-inline:auto;
}

details {
  border-bottom:1px solid var(--line);
}

summary {
  cursor:pointer;
  list-style:none;
  font-size:var(--type-body);
  padding:var(--space-5) var(--space-6) var(--space-5) 0;
  position:relative;
}

summary::-webkit-details-marker {
  display:none;
}

summary:after {
  content:'+';
  position:absolute;
  right:2px;
  color:var(--muted);
  font-size:1.375rem;
  top:17px;
}

details[open] summary:after {
  content:'−';
}

details p {
  color:var(--muted);
  font-size:var(--type-body);
  padding:0 var(--space-6) var(--space-5) 0;
}

.footer-scene {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}

.footer-grid {
  mask-image:linear-gradient(to bottom, transparent, #000 35%);
}

.footer-bar {
  border-top:1px solid var(--line);
  padding:32px 0 38px;
  display:flex;
  align-items:center;
  gap:30px;
}

.footer-bar .wordmark {
  font-size:1.5625rem;
}

.footer-bar p,.footer-bar>span {
  font-size:var(--type-small);
  color:var(--muted);
}

.footer-socials {
  display:flex;
  align-items:center;
  margin-left:auto;
}

.footer-socials a {
  display:grid;
  place-items:center;
  width:36px;
  height:44px;
}

.footer-socials img {
  width:20px;
  height:20px;
  filter:invert(1);
  transition:opacity .2s;
}

.footer-socials a:hover img {
  opacity:.7;
}

.footer-bar .text-link {
  font-size:var(--type-small);
}

dialog {
  background:#151515;
  color:var(--text);
  border:1px solid #252424;
  border-radius:8px;
  padding:0;
  max-width:1120px;
  width:calc(100% - 32px);
  max-height:calc(100dvh - 144px);
  overflow:hidden;
  opacity:0;
  transition:opacity .24s ease;
}

dialog.is-visible {
  opacity:1;
}

dialog::backdrop {
  background:rgba(0, 0, 0, 0);
  backdrop-filter:blur(0);
  transition:background-color .24s ease, backdrop-filter .24s ease;
}

dialog.is-visible::backdrop {
  background:rgba(0, 0, 0, .82);
  backdrop-filter:blur(8px);
}

.dialog-layout {
  display:grid;
  grid-template-columns:minmax(0, 63fr) minmax(0, 37fr);
  height:min(820px, calc(100dvh - 144px));
  overflow:hidden;
  border-radius:7px;
  transform:translateY(12px) scale(.99);
  transition:transform .24s ease;
}

dialog.is-visible .dialog-layout {
  transform:translateY(0) scale(1);
}

.dialog-art {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:0;
  padding:24px;
  background:#090909;
}

.dialog-copy {
  min-width:0;
  min-height:0;
  overflow-y:auto;
  padding:32px 36px;
  scrollbar-width:thin;
  scrollbar-color:#444 #151515;
}

.dialog-copy::-webkit-scrollbar {
  width:6px;
}

.dialog-copy::-webkit-scrollbar-track {
  background:#151515;
}

.dialog-copy::-webkit-scrollbar-thumb {
  background:#444;
  border-radius:999px;
}

.dialog-copy::-webkit-scrollbar-button {
  display:none;
}

#close-dialog {
  position:fixed;
  top:18px;
  right:24px;
  z-index:1;
  background:#151515e8;
  border:1px solid var(--line);
  color:var(--text);
  padding:9px 15px;
  border-radius:999px;
  font-size:var(--type-small);
}

#dialog-title {
  font-size:2rem;
  letter-spacing:-1.4px;
  margin-bottom:30px;
}

#dialog-image {
  width:100%;
  height:100%;
  object-fit:contain;
}

#dialog-caption > div {
  margin-bottom:20px;
}

#dialog-caption span {
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:var(--type-small);
  letter-spacing:.05em;
  text-transform:uppercase;
}

#dialog-caption p {
  font-size:0.875rem;
  line-height:1.6;
}

.dialog-copy .disclosure {
  border-top:1px solid var(--line);
  padding-top:18px;
  line-height:1.6;
}

@media(min-width:1600px) {
  .site-header {
    padding-inline:calc((100vw - 1280px)/2);
  }
}

@media(max-width:1250px) {
  .gallery {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:1000px) {
  .pricing-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .gallery {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .wrap {
    width:calc(100% - 64px);
  }
  .site-header {
    padding-inline:32px;
  }
  .apply,.faq-section {
    gap:40px;
  }
  .price-card {
    padding:var(--card-padding);
  }
  .price-footer {
    align-items:start;
    flex-direction:column;
  }
  .process-grid {
    gap:var(--space-5);
  }
  .process-grid h3 {
    font-size:1.25rem;
  }
  .form-bottom {
    align-items:start;
    flex-direction:column;
  }
  .form-bottom>span {
    max-width:none;
  }
  .footer-bar p {
    display:none;
  }
}

@media(max-width:800px) {
  .site-header nav {
    gap:16px;
  }
}

@media(max-width:650px) {
  :root {
    --type-section-heading:2.25rem;
    --type-price-heading:1.75rem;
    --space-section:72px;
    --space-section-large:112px;
    --card-padding:var(--space-5);
  }
  .work.wrap {
    width:calc(100% - 36px);
  }
  html {
    scroll-padding-top:90px;
  }
  .wrap {
    width:calc(100% - 36px);
  }
  .site-header {
    height:74px;
    padding-inline:18px;
    gap:12px;
  }
  .site-header.is-scrolled {
    height:60px;
  }
  .site-header .wordmark {
    font-size:1.5625rem;
  }
  .js .site-header > nav,
  .js .site-header > .button {
    display:none;
  }
  .js .mobile-menu-toggle {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:5px;
    width:44px;
    height:44px;
    padding:4px;
    border:0;
    background:none;
  }
  .mobile-menu-toggle span {
    display:block;
    height:3px;
    width:32px;
    background:#fff;
  }
  .mobile-menu-toggle span:last-child {
    width:16px;
  }
  .mobile-menu[open] {
    display:flex;
  }
  .mobile-menu {
    position:fixed;
    inset:0;
    width:100%;
    max-width:none;
    height:100dvh;
    max-height:none;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    overflow-y:auto;
    background:#000;
    color:#fff;
  }
  .mobile-menu-close {
    position:absolute;
    top:20px;
    right:24px;
    width:44px;
    height:44px;
    padding:0;
    border:0;
    background:none;
    color:#fff;
    font-size:2rem;
    font-weight:400;
    line-height:1;
  }
  .mobile-menu-close::before,
  .mobile-menu-close::after {
    content:'';
    position:absolute;
    left:6px;
    top:20px;
    width:32px;
    height:3px;
    background:#fff;
  }
  .mobile-menu-close::before {
    transform:rotate(45deg);
  }
  .mobile-menu-close::after {
    transform:rotate(-45deg);
  }
  .mobile-menu-content {
    width:100%;
    min-height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:80px 20px;
  }
  .mobile-monogram {
    display:flex;
    align-items:center;
    justify-content:center;
    height:64px;
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:4rem;
    letter-spacing:-4px;
    line-height:1;
    margin-bottom:76px;
  }
  .mobile-monogram img {
    width:auto;
    height:.714em;
  }
  .mobile-menu-content nav {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:26px;
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:1.125rem;
  }
  .mobile-menu-cta,
  .mobile-hero-cta {
    color:#fff;
    border-radius:999px;
    font-family:'Space Grotesk',sans-serif;
    font-size:1rem;
    font-weight:700;
  }
  .mobile-menu-cta {
    margin-top:72px;
  }
  .mobile-socials {
    display:flex;
    justify-content:center;
    gap:2px;
    margin-top:48px;
  }
  .mobile-socials a {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
  }
  .mobile-socials img {
    width:28px;
    height:28px;
    filter:invert(1);
    transition:opacity .2s;
  }
  .mobile-socials a:hover img {
    opacity:.7;
  }
  .hero {
    padding-top:40px;
    padding-bottom:64px;
  }
  .hero-preheadline {
    margin-bottom:var(--space-5);
  }
  .hero h1 {
    max-width:360px;
    font-size:clamp(2rem, 10.5vw, 2.75rem);
    line-height:1.05;
    white-space:normal;
  }
  .hero-bottom {
    margin-top:16px;
  }
  .hero-bottom p {
    font-size:var(--type-body);
    max-width:300px;
    margin-inline:auto;
    line-height:1.3;
  }
  .mobile-hero-cta {
    display:inline-flex;
    margin-top:26px;
    padding:10px 22px;
  }
  .gallery {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--space-3);
  }
  .artwork,
  .gallery-placeholder {
    border-radius:15px;
  }
  .work-card figcaption {
    padding:17px 0;
  }
  .work>.disclosure {
    line-height:1.7;
    font-size:var(--type-small);
  }
  .section {
    padding-top:var(--space-section);
  }
  #pricing {
    padding-top:var(--space-section-large);
  }
  .section-heading {
    margin-bottom:var(--space-6);
  }
  h2 {
    font-size:var(--type-section-heading);
    letter-spacing:-1.6px;
  }
  .process-grid {
    grid-template-columns:1fr;
    gap:var(--space-6);
  }
  .process-grid h3 {
    margin:var(--space-4) 0 var(--space-3);
    font-size:var(--type-card-heading);
  }
  .process-grid p {
    max-width:none;
  }
  .split {
    display:block;
  }
  .split>p {
    margin-top:22px;
  }
  .pricing-grid {
    grid-template-columns:1fr;
    gap:var(--space-4);
  }
  .price-card {
    padding:var(--card-padding);
  }
  .price-card h3 {
    font-size:var(--type-price-heading);
  }
  .price-footer {
    align-items:center;
  }
  .price-footer .button {
    font-size:var(--button-font-size);
    padding:var(--space-3);
    gap:var(--space-3);
  }
  .apply,.faq-section {
    grid-template-columns:1fr;
    gap:32px;
  }
  .apply-intro>p:not(.eyebrow) {
    max-width:none;
  }
  .apply-intro .form-note {
    max-width:340px!important;
  }
  .field-row {
    gap:12px;
  }
  .form-bottom {
    flex-direction:column-reverse;
    gap:12px;
  }
  .form-bottom .button {
    width:100%;
  }
  .faq-section {
    margin-top:0;
    padding-bottom:65px;
  }
  summary {
    font-size:var(--type-body);
  }
  .footer-bar {
    flex-wrap:wrap;
    gap:22px;
    padding-bottom:28px;
  }
  .footer-bar>span {
    font-size:var(--type-small);
  }
  .footer-bar .text-link {
    margin-left:auto;
  }
  dialog {
    overflow-y:auto;
  }
  .dialog-layout {
    display:block;
    height:auto;
  }
  .dialog-art {
    max-height:65dvh;
    padding:16px;
  }
  #dialog-image {
    width:auto;
    max-height:calc(65dvh - 32px);
  }
  .dialog-copy {
    overflow:visible;
    padding:26px 22px;
  }
  #close-dialog {
    right:14px;
  }
}

@media(max-width:400px) {
  .site-header {
    padding-inline:10px;
    gap:8px;
  }
  .site-header nav {
    gap:8px;
  }
  .site-header .button {
    padding-inline:10px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
  }
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

.intake-callout {
  text-align:center;
  padding-bottom:80px;
}

.intake-callout .eyebrow {
  color:var(--accent);
  margin-bottom:var(--space-5);
}

.intake-callout > p:not(.eyebrow) {
  color:var(--muted);
  margin:var(--space-5) 0;
  font-size:var(--type-body);
}

.intake-callout .button {
  border-radius:999px;
  color:#fff;
}

.intake-modal {
  width:min(640px, calc(100% - 32px));
  max-width:640px;
  max-height:calc(100dvh - 144px);
  padding:var(--space-6) var(--space-7);
  overflow-y:auto;
  border-radius:var(--radius-card);
  background:#111;
  scrollbar-width:thin;
  scrollbar-color:#444 #111;
}

.intake-modal:focus, .mobile-menu:focus {
  outline:none;
}

.intake-close {
  position:fixed;
  top:18px;
  right:24px;
  z-index:1;
  border:1px solid var(--line);
  border-radius:999px;
  background:#151515e8;
  color:var(--text);
  font-size:var(--type-small);
  padding:9px 15px;
}

.intake-progress {
  display:flex;
  gap:5px;
  margin-bottom:40px;
}

.intake-progress[hidden], .intake-success[hidden] { display:none; }

.intake-modal.is-complete {
  padding-top:72px;
  padding-bottom:80px;
}

.intake-success {
  text-align:center;
  padding-top:24px;
}

.intake-success-message, .intake-social-label {
  color:var(--muted);
  font-size:var(--type-body);
}

.intake-social-label {
  margin-top:48px;
}

.intake-socials {
  display:flex;
  justify-content:center;
  gap:4px;
  margin-top:20px;
}

.intake-socials a {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
}

.intake-socials img {
  width:31px;
  height:31px;
  filter:invert(1);
  transition:opacity .2s;
}

.intake-socials a:hover img {
  opacity:.7;
}

.intake-social-handle {
  margin-top:12px;
  font-size:1.25rem;
  font-weight:700;
}

.intake-progress span {
  height:5px;
  flex:1;
  border-radius:999px;
  background:#242424;
  transition:background-color .2s;
}

.intake-progress .is-complete {
  background:var(--accent);
}

.intake-modal > .eyebrow {
  color:var(--accent);
  text-align:center;
  margin-bottom:var(--space-5);
}

#intake-title {
  font-size:var(--type-price-heading);
  text-align:center;
  letter-spacing:-1px;
  line-height:1.12;
}

.intake-step-status {
  font-size:var(--type-label);
  color:var(--muted);
  margin:14px 0 30px;
  text-align:center;
}

.intake-modal fieldset {
  border:0;
  padding:0;
  margin:0;
}

.intake-modal label,
.intake-field-label {
  font-size:var(--type-label);
  color:#c3c3be;
}

.intake-modal input,
.intake-modal select,
.intake-modal textarea {
  padding:var(--space-4);
  font-size:var(--type-body);
  background:#202020;
}

.intake-volume {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:35px;
  margin:24px 0;
}

.intake-volume output {
  font-size:4rem;
  font-weight:700;
  line-height:1;
  min-width:115px;
  text-align:center;
}

.intake-volume button {
  border:1px solid var(--line);
  background:none;
  color:var(--text);
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:1.5rem;
}

.intake-modal input[type=range] {
  padding:0;
  border:0;
  box-shadow:none;
  accent-color:var(--accent);
  background:none;
  height:28px;
  cursor:pointer;
}

.range-endpoints {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:var(--type-small);
}

.intake-choices {
  display:grid;
  gap:10px;
  margin-top:14px;
}

.intake-modal .intake-campaigns {
  margin-bottom:20px;
}

.intake-choices-inline {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.intake-choices label {
  display:flex;
  align-items:center;
  gap:var(--space-3);
  background:#202020;
  border:1px solid var(--line);
  border-radius:5px;
  padding:var(--space-3) var(--space-4);
  margin:0;
  font-size:var(--type-small);
  cursor:pointer;
}

.intake-choices label:has(input:checked) {
  border-color:var(--accent);
}

.intake-choices input[type=radio] {
  width:18px;
  height:18px;
  padding:0;
  margin:0;
  accent-color:var(--accent);
  flex-shrink:0;
}

.intake-actions {
  display:flex;
  justify-content:flex-end;
  gap:var(--space-3);
  margin-top:var(--space-6);
}

.intake-actions button {
  padding:var(--space-3) var(--space-5);
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  background:none;
  color:var(--text);
  font-weight:700;
  font-size:var(--button-font-size);
}

.intake-actions .intake-next {
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}

.intake-modal button:disabled {
  opacity:.35;
  cursor:default;
}

#intake-result {
  color:var(--text);
  font-size:var(--type-small);
  margin-top:16px;
}

.thank-you-page {
  min-height:100dvh;
  padding:32px 48px;
  display:flex;
  flex-direction:column;
}

.thank-you-content {
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:50px 0 100px;
}

.thank-you-content .eyebrow {
  color:var(--accent);
  margin-bottom:20px;
}

.thank-you-content h1 {
  font-size:clamp(3rem, 8vw, 5.75rem);
  letter-spacing:-.04em;
}

.thank-you-content > p:not(.eyebrow) {
  color:var(--muted);
  margin:20px 0 30px;
}

.thank-you-content .button {
  color:#fff;
  border-radius:999px;
}

@media(max-width:650px) {
  .thank-you-page {
    padding:24px 18px;
  }
  .intake-modal {
    padding:var(--space-5);
    width:calc(100% - 24px);
    max-height:calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  }
  .intake-close {
    right:14px;
  }
  #intake-title {
    font-size:var(--type-price-heading);
  }
  .intake-modal .field-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .intake-progress {
    margin-bottom:var(--space-4);
  }
  .intake-modal > .eyebrow {
    margin-bottom:var(--space-4);
  }
  .intake-step-status {
    margin:var(--space-2) 0 var(--space-4);
  }
  .intake-modal label {
    margin-bottom:var(--space-3);
  }
  .intake-actions {
    margin-top:var(--space-4);
  }
  .intake-actions button {
    padding:var(--space-3) var(--space-5);
  }
}

.button:hover,
.gallery-more:hover,
.intake-actions button:hover:enabled {
  background:transparent;
  border-color:#fff;
  color:#fff;
}


.category-select { position:relative; }
.intake-modal .category-select > select.visually-hidden { padding:0; }
.category-trigger {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:56px;
  padding:var(--space-4);
  text-align:left;
  background:#202020;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:var(--radius-field);
}
.category-trigger:focus-visible,.category-trigger[aria-expanded="true"],.category-trigger[aria-invalid="true"] {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent);
}
.category-arrow {
  flex:none;
  width:8px;
  height:8px;
  margin-left:var(--space-4);
  margin-right:var(--space-1);
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.category-options {
  position:absolute;
  z-index:5;
  bottom:calc(100% + 8px);
  left:0;
  right:0;
  max-height:240px;
  overflow-y:auto;
  background:#202020;
  border:1px solid #484848;
  border-radius:var(--radius-field);
  box-shadow:0 12px 30px rgba(0,0,0,.45);
  padding:var(--space-2);
  scrollbar-color:#555 #202020;
}
.category-options[hidden] { display:none; }
.category-options [role="option"] {
  padding:var(--space-3) var(--space-4);
  border-radius:var(--radius-field);
  color:var(--text);
  cursor:pointer;
  font-size:var(--type-body);
}
.category-options [role="option"]:hover,
.category-options [role="option"].is-active { background:#3a2929; color:#fff; }
.category-options [aria-selected="true"] { color:#ff7777; }
.category-error { color:#ff7777; font-size:var(--type-small); margin-top:var(--space-2); }
