@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
  color-scheme: light;
  --ink: #17140f;
  --ink-soft: #211c15;
  --cream: #f0e4b3;
  --cream-light: #f6edcd;
  --olive: #8d8b3d;
  --red: #8e2017;
  --muted: #5d5745;
  --line: rgba(23, 20, 15, .2);
  --line-light: rgba(246, 237, 205, .3);
  --sans: 'DM Sans', Arial, sans-serif;
  --serif: 'Playfair Display', Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; background: var(--cream-light); color: var(--ink); font: 16px/1.65 var(--sans); }
body::before { position: fixed; z-index: 30; inset: 0; pointer-events: none; content: ''; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E"); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }
.section-wrap { width: min(1200px, calc(100% - 96px)); margin-inline: auto; }
.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; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 50; padding: 10px 15px; background: var(--red); color: var(--cream-light); }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.site-header { height: 84px; padding: 0 48px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 25; background: rgba(246, 237, 205, .96); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.wordmark { display: flex; gap: 11px; align-items: center; }
.logo-coin { width: 35px; height: 50px; position: relative; perspective: 600px; }
.logo-turner { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateY(var(--scroll-spin, 0deg)); transition: transform .08s linear; will-change: transform; }
.logo-face, .logo-side { position: absolute; inset: 0; width: 100%; height: 100%; }
.logo-face { object-fit: contain; backface-visibility: hidden; }
.logo-front { transform: translateZ(4px); }
.logo-back { transform: rotateY(180deg) translateZ(4px); }
.logo-side { background: var(--olive); -webkit-mask: url("assets/mirage-logo.svg") center / 100% 100% no-repeat; mask: url("assets/mirage-logo.svg") center / 100% 100% no-repeat; backface-visibility: hidden; }
.logo-side-red { background: var(--red); }
.logo-side-1 { transform: translateZ(3px); }
.logo-side-2 { transform: translateZ(1.5px); }
.logo-side-3 { transform: translateZ(0); }
.logo-side-4 { transform: translateZ(-1.5px); }
.logo-side-5 { transform: translateZ(-3px); }
.wordmark-text, .footer-brand { font-size: 14px; letter-spacing: .16em; font-weight: 700; line-height: 1.2; }
.wordmark-text span, .footer-brand span { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; letter-spacing: .19em; font-weight: 600; }
.main-nav { display: flex; align-items: center; gap: clamp(12px, 2vw, 27px); }
.main-nav a { font-size: 11px; letter-spacing: .045em; font-weight: 600; color: var(--ink); transition: color .2s ease, background .2s ease; }
.main-nav a:hover { color: var(--red); }
.main-nav .nav-cta { min-height: 42px; padding: 9px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--red); color: var(--red); }
.main-nav .nav-cta:hover { color: var(--cream-light); background: var(--red); }
.menu-toggle { display: none; }
.hero { min-height: 650px; display: grid; grid-template-columns: 1fr .9fr; column-gap: 7%; position: relative; padding-top: 76px; padding-bottom: 92px; align-items: center; }
.hero-copy { position: relative; z-index: 2; padding-bottom: 18px; }
.eyebrow { margin: 0 0 18px; color: var(--red); text-transform: uppercase; font-size: 10px; letter-spacing: .16em; font-weight: 700; }
.eyebrow-dot { display: inline-block; width: 7px; height: 7px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--olive); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.045em; }
.hero h1 { margin: 0 0 25px; font-size: clamp(62px, 8vw, 108px); line-height: .99; }
h1 em, h2 em { color: var(--red); font-weight: 500; }
.hero-lede { max-width: 435px; margin-bottom: 0; color: #373226; font-size: 16px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 28px; margin-top: 30px; }
.button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 23px; padding: 0 19px; border: 0; cursor: pointer; text-transform: uppercase; letter-spacing: .09em; font-size: 10px; font-weight: 700; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-light { color: var(--cream-light); background: var(--red); }
.button-light:hover { background: var(--ink); }
.button-ink { color: var(--cream-light); background: var(--ink); }
.button-ink:hover { background: var(--red); }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--red); text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .1em; transition: color .2s ease; }
.text-link:hover { color: var(--ink); }
.hero-note { display: flex; align-items: center; gap: 13px; margin-top: 46px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; font-size: 10px; line-height: 1.8; }
.note-line { width: 34px; height: 2px; background: var(--olive); }
.hero-art { width: 100%; height: 480px; position: relative; }
.hero-image-placeholder { height: 100%; position: relative; overflow: hidden; background: var(--olive); }
.hero-image-placeholder::before { content: ''; position: absolute; z-index: 1; inset: 10%; border: 1px solid rgba(246, 237, 205, .65); pointer-events: none; }
.hero-image-placeholder::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(23, 20, 15, .58)); pointer-events: none; }
.hero-image-placeholder > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.placeholder-index { position: absolute; z-index: 2; top: 18px; left: 19px; color: var(--cream-light); font-size: 9px; letter-spacing: .16em; font-weight: 700; }
.hero-art-caption { position: absolute; z-index: 2; right: 21px; bottom: 20px; text-align: right; color: var(--cream-light); text-transform: uppercase; letter-spacing: .08em; font-size: 9px; }
.hero-sticker { position: absolute; z-index: 3; left: -35px; bottom: 38px; width: 100px; height: 100px; border-radius: 50%; background: var(--olive); color: var(--ink); display: flex; align-items: center; justify-content: center; gap: 6px; transform: rotate(-9deg); font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 1.35; box-shadow: 5px 5px 0 var(--red); }
.hero-sticker b { font-size: 23px; font-weight: 400; }
.hero-sticker b img { display: block; width: 27px; height: 27px; }
.hero-side-label { position: absolute; top: 0; right: -27px; writing-mode: vertical-rl; color: var(--muted); font-size: 8px; letter-spacing: .16em; }
.hero-bottom { position: absolute; bottom: 23px; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; color: var(--muted); text-transform: uppercase; font-size: 8px; letter-spacing: .12em; }
.scroll-mark { color: var(--red); font-size: 17px; animation: nudge 1.8s ease-in-out infinite; }
.manifesto { padding-top: 125px; padding-bottom: 140px; }
.manifesto-grid { display: grid; grid-template-columns: 1.1fr .7fr; gap: 9%; align-items: end; }
h2 { margin-bottom: 0; font-size: clamp(46px, 6vw, 76px); line-height: 1.06; }
.manifesto-text { padding-bottom: 7px; color: #373226; font-size: 14px; line-height: 1.85; }
.manifesto-text p { margin-bottom: 20px; }
.studio-strip { display: grid; grid-template-columns: 1.05fr .75fr .7fr; gap: 14px; margin-top: 62px; min-height: 245px; }
.studio-photo-placeholder { min-width: 0; position: relative; overflow: hidden; margin: 0; background: var(--olive); }
.studio-photo-placeholder img { width: 100%; height: 100%; min-height: 245px; display: block; object-fit: cover; transition: transform .6s ease, filter .4s ease; }
.studio-photo-placeholder:hover img { transform: scale(1.035); }
.studio-photo-placeholder::before { content: ''; position: absolute; inset: 8%; z-index: 1; border: 1px solid rgba(246, 237, 205, .62); pointer-events: none; }
.studio-photo-two { background: var(--red); }
.studio-photo-two img { object-position: 50% 44%; }
.studio-photo-placeholder figcaption { display: none; }
.studio-strip-note { display: flex; flex-direction: column; justify-content: center; padding: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--cream); }
.flower-doodle { width: 42px; height: 42px; object-fit: contain; }
.studio-strip-note p { margin: 13px 0 18px; font: 600 21px/1.2 var(--serif); color: var(--red); text-shadow: 2px 2px 0 var(--olive); }
.studio-strip-note span:last-child { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.floral-divider { position: relative; z-index: 2; margin: -13px auto 16px; }
.floral-divider img { display: block; width: 100%; height: 50px; object-fit: fill; }
.artists-section { padding: 104px 0 116px; background: var(--red); color: var(--cream-light); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 45px; }
.section-heading h2 { font-size: clamp(45px, 5.6vw, 70px); }
.artists-section .eyebrow, .booking-section .eyebrow { color: var(--cream); }
.artists-section h2 em, .booking-section h2 em { color: var(--cream); }
.heading-aside { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.artists-section .heading-aside { color: rgba(246, 237, 205, .82); }
.artist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.artist-card { min-width: 0; }
.artist-photo-placeholder { height: 400px; display: block; position: relative; overflow: hidden; background: var(--olive); }
.artist-photo-placeholder img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 45%; filter: grayscale(1) contrast(1.04); transition: filter .45s ease, transform .65s cubic-bezier(.2, .7, .25, 1); }
.artist-photo-placeholder:hover img, .artist-photo-placeholder:focus-visible img { filter: grayscale(0) contrast(1); transform: scale(1.035); }
.artist-photo-b { background: var(--ink-soft); }
.artist-photo-placeholder span { position: absolute; bottom: 15px; left: 16px; padding: 6px 8px; font-size: 9px; letter-spacing: .1em; color: var(--cream-light); background: rgba(23, 20, 15, .74); }
.artist-photo-placeholder b { position: absolute; right: 17px; top: 12px; font: 22px var(--serif); color: var(--cream-light); }
.artist-meta { display: flex; align-items: center; justify-content: space-between; padding-top: 18px; }
.artist-meta .eyebrow { margin-bottom: 5px; font-size: 9px; }
.artist-meta h3 { margin: 0; font: clamp(25px, 3vw, 32px)/1.2 var(--serif); }
.circle-arrow { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line-light); border-radius: 50%; transition: color .2s, background .2s; }
.circle-arrow:hover { color: var(--red); background: var(--cream-light); }
.artist-bio { max-width: 465px; color: rgba(246, 237, 205, .88); font-size: 13px; margin: 13px 0 14px; }
.artist-card .text-link { color: var(--cream); }
.artist-card .text-link:hover { color: var(--cream-light); }
.portfolio-section { padding-top: 122px; padding-bottom: 130px; }
.portfolio-tools { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: -12px 0 26px; }
.portfolio-tools > p { max-width: 410px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.portfolio-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.portfolio-filter { min-height: 40px; border: 1px solid rgba(23, 20, 15, .35); border-radius: 0; padding: 8px 13px; color: var(--ink); background: transparent; text-transform: uppercase; letter-spacing: .08em; font-size: 9px; font-weight: 600; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.portfolio-filter:hover, .portfolio-filter.is-active { border-color: var(--red); color: var(--cream-light); background: var(--red); }
.portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.portfolio-card { min-width: 0; margin: 0; overflow: hidden; background: var(--cream); }
.portfolio-card[hidden] { display: none !important; }
.portfolio-photo { aspect-ratio: 4 / 5; position: relative; overflow: hidden; background: var(--cream); }
.portfolio-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2, .7, .25, 1); }
.portfolio-card:hover .portfolio-photo img { transform: scale(1.035); }
.portfolio-age { position: absolute; right: 10px; bottom: 10px; padding: 5px 9px; color: var(--cream-light); background: var(--red); font-size: 9px; font-weight: 700; letter-spacing: .05em; }
.guest-section { overflow: hidden; background: var(--olive); color: var(--ink); }
.guest-inner { min-height: 390px; display: grid; grid-template-columns: .62fr 1.2fr .9fr; align-items: center; gap: 5%; position: relative; padding-top: 48px; padding-bottom: 48px; }
.guest-section .eyebrow { color: var(--red); }
.guest-section h2 em { color: var(--red); }
.guest-copy > p:last-child { max-width: 440px; margin: 21px 0 0; color: #292619; font-size: 13px; }
.guest-mark { font: 220px/.8 var(--serif); color: rgba(246, 237, 205, .58); position: relative; transform: rotate(-10deg); }
.guest-mark .scroll-flower { position: absolute; width: 58px; height: 58px; top: -23px; right: 3px; }
.guest-card { min-height: 184px; padding: 21px; display: flex; flex-direction: column; justify-content: space-between; background: var(--cream-light); border: 1px solid rgba(23, 20, 15, .24); }
.guest-card .eyebrow { margin: 0; }
.guest-card strong { font: 36px var(--serif); }
.guest-card span:last-child { max-width: 230px; color: var(--muted); font-size: 10px; }
.guest-artist { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); padding: 7px 0; }
.guest-artist span { font-size: 11px; }
.guest-artist strong { font: 19px var(--serif); white-space: nowrap; color: var(--red); }
.guest-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 20px; }
.guest-links a { color: var(--red); font-size: 10px; letter-spacing: .05em; font-weight: 700; }
.guest-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.prices-section { padding-top: 120px; padding-bottom: 125px; }
.price-list { border-top: 1px solid var(--line); }
.price-row { display: grid; grid-template-columns: 55px 1fr auto; gap: 15px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.price-number { color: var(--red); font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.price-row h3 { margin: 0 0 4px; font: 22px var(--serif); }
.price-row p { margin: 0; color: var(--muted); font-size: 12px; }
.price-value { color: var(--red); font-size: 11px; font-weight: 700; }
.price-footnote { color: var(--muted); font-size: 10px; margin: 15px 0 0 70px; }
.rules-section { padding-top: 110px; padding-bottom: 120px; }
.rules-draft-note { margin: -16px 0 25px; padding: 13px 16px; border-left: 3px solid var(--red); color: #373226; background: var(--cream); font-size: 11px; line-height: 1.7; }
.rules-list { border-top: 1px solid var(--line); }
.rules-list details { border-bottom: 1px solid var(--line); }
.rules-list summary { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; color: var(--ink); font: 21px/1.35 var(--serif); }
.rules-list summary::-webkit-details-marker { display: none; }
.rules-list summary span { color: var(--red); font: 24px var(--sans); transition: transform .25s ease; }
.rules-list details[open] summary span { transform: rotate(45deg); }
.rule-copy { max-width: 860px; padding: 0 36px 20px 0; color: #373226; font-size: 13px; line-height: 1.8; }
.rule-copy p:last-child, .rule-copy ul { margin-bottom: 0; }
.rule-copy ul { padding-left: 19px; }
.booking-section { padding: 105px 0; background: var(--red); color: var(--cream-light); }
.booking-grid { display: grid; grid-template-columns: .85fr 1fr; gap: 10%; align-items: start; }
.booking-copy h2 { font-size: clamp(43px, 5.8vw, 71px); }
.booking-copy > p:not(.eyebrow) { max-width: 420px; margin: 24px 0; color: rgba(246, 237, 205, .9); font-size: 13px; line-height: 1.8; }
.booking-note { display: flex; gap: 12px; max-width: 390px; border-left: 2px solid var(--cream); padding: 4px 0 4px 14px; color: var(--cream); font-size: 10px; line-height: 1.7; }
.booking-note span { color: var(--cream); font-size: 17px; }
.booking-note p { margin: 0; }
.booking-form { display: grid; gap: 17px; padding: 27px; color: var(--ink); background: var(--cream-light); }
.booking-form label { display: grid; gap: 6px; color: var(--ink); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.booking-form input, .booking-form textarea, .booking-form select { width: 100%; min-height: 43px; border: 0; border-bottom: 1px solid rgba(23, 20, 15, .35); border-radius: 0; padding: 9px 2px; color: var(--ink); background: transparent; font-size: 13px; text-transform: none; letter-spacing: 0; outline: none; }
.booking-form select option { color: var(--ink); }
.booking-form input:focus, .booking-form textarea:focus, .booking-form select:focus { border-color: var(--red); }
.booking-form input::placeholder, .booking-form textarea::placeholder { color: #625b47; opacity: 1; }
.booking-form textarea { resize: vertical; }
.booking-form .button { justify-self: start; margin-top: 4px; }
.form-status { min-height: 20px; margin: -8px 0 0; color: var(--red); font-size: 11px; }
.reviews-section { display: grid; grid-template-columns: 1fr .8fr; gap: 10%; align-items: center; padding-top: 115px; padding-bottom: 115px; }
.reviews-copy h2 { font-size: clamp(42px, 5.4vw, 67px); }
.reviews-copy > p:last-child { max-width: 405px; margin: 20px 0 0; color: #373226; font-size: 13px; }
.reviews-card { padding: 28px; border: 1px solid var(--line); background: var(--cream); }
.google-wordmark { font-weight: 700; font-size: 17px; letter-spacing: -.04em; }
.reviews-card p { max-width: 360px; margin: 13px 0; color: #373226; font-size: 13px; }
.reviews-card .text-link { margin-bottom: 14px; }
.reviews-card small { display: block; color: var(--muted); font-size: 10px; }
.contact-section { padding: 100px 0; background: var(--cream); color: var(--ink); }
.contact-grid { display: grid; grid-template-columns: .8fr 1fr; gap: 10%; align-items: center; }
.contact-copy .eyebrow { color: var(--red); }
.contact-copy h2 { font-size: clamp(47px, 6vw, 75px); }
.contact-copy h2 em { color: var(--red); }
.address { margin: 22px 0 25px; font-size: 15px; line-height: 1.8; }
.map-embed { min-height: 350px; position: relative; overflow: hidden; isolation: isolate; background: var(--cream-light); border: 1px solid rgba(23, 20, 15, .22); box-shadow: 10px 10px 0 var(--olive); }
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 350px; border: 0; filter: saturate(.78) sepia(.08) contrast(.97); }
.map-address-tag { position: absolute; z-index: 2; top: 13px; left: 13px; max-width: calc(100% - 26px); padding: 8px 11px; color: var(--cream-light); background: var(--red); font-size: 9px; font-weight: 700; letter-spacing: .11em; pointer-events: none; }
.map-brand-pin { position: absolute; z-index: 2; left: 50%; top: 50%; width: 54px; height: 67px; display: grid; place-items: center; transform: translate(-50%, -58%); background: var(--cream-light); border: 2px solid var(--red); box-shadow: 0 3px 0 var(--olive), 0 5px 14px rgba(23, 20, 15, .28); pointer-events: none; }
.map-brand-pin::after { position: absolute; content: ''; left: 50%; bottom: -8px; width: 13px; height: 13px; background: var(--cream-light); border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); transform: translateX(-50%) rotate(45deg); }
.map-brand-pin img { width: 27px; height: 40px; object-fit: contain; }
.map-open { position: absolute; z-index: 3; right: 13px; bottom: 13px; min-height: 40px; padding: 9px 12px; display: inline-flex; align-items: center; gap: 10px; color: var(--cream-light); background: var(--ink); font-size: 10px; font-weight: 700; }
.map-open:hover { background: var(--red); }
.site-footer { padding: 34px 0 24px; color: var(--cream-light); background: var(--ink); }
.footer-inner { display: grid; grid-template-columns: 1fr 1fr auto; gap: 19px; align-items: center; }
.footer-brand { font-size: 13px; }
.footer-brand span { color: var(--cream); }
.footer-inner > p { margin: 0; color: var(--cream); font: 15px var(--serif); }
.footer-inner > div { display: flex; flex-wrap: wrap; gap: 10px 18px; font-size: 10px; color: var(--cream-light); }
.footer-inner > div a:hover { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.footer-inner small { grid-column: 1 / -1; border-top: 1px solid var(--line-light); padding-top: 14px; color: var(--cream); font-size: 9px; letter-spacing: .08em; }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .65s ease, transform .65s cubic-bezier(.2, .7, .25, 1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.scroll-flower { transform: rotate(var(--flower-turn, 0deg)); transform-origin: center; transition: transform .08s linear; }
@keyframes nudge { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

@media (max-width: 1080px) {
  .section-wrap { width: min(100% - 64px, 940px); }
  .site-header { padding-inline: 30px; }
  .main-nav { gap: 13px; }
  .main-nav a { font-size: 10px; }
  .hero { grid-template-columns: 1fr .9fr; gap: 5%; }
  .hero h1 { font-size: clamp(58px, 7.8vw, 86px); }
  .hero-art { height: 420px; }
  .guest-inner { grid-template-columns: .4fr 1fr 1fr; gap: 4%; }
  .guest-mark { font-size: 160px; }
}
@media (max-width: 820px) {
  html { scroll-padding-top: 76px; }
  .section-wrap { width: min(100% - 48px, 700px); }
  .site-header { height: 72px; padding-inline: 24px; }
  .menu-toggle { display: flex; width: 44px; height: 44px; padding: 11px 9px; flex-direction: column; justify-content: center; gap: 6px; border: 1px solid var(--line); color: var(--ink); background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { height: 2px; width: 100%; background: currentColor; transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .main-nav { position: absolute; display: none; top: 71px; left: 0; right: 0; padding: 14px 24px 22px; background: var(--cream-light); border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 0; box-shadow: 0 14px 20px rgba(23, 20, 15, .12); }
  .main-nav.is-open { display: flex; }
  .main-nav a { min-height: 46px; display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
  .main-nav .nav-cta { justify-content: center; margin-top: 12px; padding: 10px 14px; border: 1px solid var(--red); }
  .hero { min-height: unset; grid-template-columns: 1fr .88fr; gap: 26px; padding-top: 62px; padding-bottom: 90px; }
  .hero h1 { font-size: clamp(55px, 8.7vw, 72px); }
  .hero-lede { font-size: 14px; }
  .hero-art { height: 360px; }
  .hero-sticker { left: -24px; width: 82px; height: 82px; font-size: 8px; }
  .hero-note { margin-top: 32px; }
  .manifesto { padding-top: 92px; padding-bottom: 100px; }
  .manifesto-grid { grid-template-columns: 1fr .85fr; gap: 35px; }
  .studio-strip { grid-template-columns: 1fr 1fr; min-height: 210px; }
  .studio-photo-placeholder img { min-height: 210px; }
  .studio-strip-note { display: none; }
  .artists-section { padding: 82px 0 88px; }
  .artist-grid { gap: 18px; }
  .artist-photo-placeholder { height: 315px; }
  .artist-meta h3 { font-size: 26px; }
  .portfolio-section { padding-top: 88px; padding-bottom: 95px; }
  .portfolio-tools { align-items: flex-start; flex-direction: column; margin-top: -10px; }
  .portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .guest-inner { min-height: 0; grid-template-columns: .5fr 1fr; gap: 22px 6%; padding-top: 65px; padding-bottom: 65px; }
  .guest-mark { grid-row: span 2; font-size: 150px; }
  .guest-card { grid-column: 2; }
  .prices-section, .rules-section { padding-top: 88px; padding-bottom: 94px; }
  .booking-section { padding: 80px 0; }
  .booking-grid { grid-template-columns: 1fr 1fr; gap: 7%; }
  .booking-form { padding: 20px; }
  .reviews-section { padding-top: 90px; padding-bottom: 90px; gap: 7%; }
  .contact-section { padding: 78px 0; }
  .contact-grid { grid-template-columns: .8fr 1fr; gap: 7%; }
  .map-embed, .map-embed iframe { min-height: 320px; }
  .footer-inner { grid-template-columns: 1fr auto; }
  .footer-inner > p { grid-column: 1; }
  .footer-inner > div { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; gap: 8px; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 68px; }
  .section-wrap { width: calc(100% - 38px); }
  .site-header { height: 66px; padding-inline: 18px; }
  .logo-coin { width: 29px; height: 42px; }
  .wordmark-text { font-size: 12px; }
  .wordmark-text span { font-size: 7px; }
  .main-nav { top: 65px; padding-inline: 19px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; gap: 26px; padding-top: 48px; padding-bottom: 79px; }
  .hero h1 { font-size: clamp(56px, 16vw, 80px); }
  .hero-lede { max-width: 390px; font-size: 14px; }
  .hero-actions { gap: 14px 20px; }
  .hero-note { margin-top: 28px; }
  .hero-art { margin: 0 0 0 12px; width: calc(100% - 12px); height: min(105vw, 420px); }
  .hero-side-label { right: -15px; }
  .hero-sticker { left: -16px; bottom: 24px; }
  .hero-bottom { bottom: 16px; font-size: 7px; letter-spacing: .06em; gap: 8px; }
  .hero-bottom span:first-child { max-width: 130px; }
  .hero-bottom span:last-child { text-align: right; }
  .manifesto { padding-top: 74px; padding-bottom: 82px; }
  .manifesto-grid { grid-template-columns: 1fr; gap: 20px; }
  h2 { font-size: clamp(43px, 12vw, 58px); }
  .manifesto-text { font-size: 13px; }
  .studio-strip { grid-template-columns: 1fr 1fr; min-height: 170px; gap: 8px; margin-top: 30px; }
  .studio-photo-placeholder img { min-height: 170px; }
  .floral-divider { margin-top: -8px; margin-bottom: 8px; }
  .floral-divider img { height: 36px; }
  .artists-section { padding: 70px 0 78px; }
  .section-heading { display: block; margin-bottom: 29px; }
  .section-heading .heading-aside { margin-top: 15px; }
  .artist-grid { grid-template-columns: 1fr; gap: 38px; }
  .artist-photo-placeholder { height: min(112vw, 440px); }
  .artist-meta h3 { font-size: 29px; }
  .artist-bio { font-size: 13px; }
  .portfolio-section { padding-top: 72px; padding-bottom: 80px; }
  .portfolio-tools { gap: 17px; margin-bottom: 19px; }
  .portfolio-filter { min-height: 40px; padding: 8px 10px; font-size: 8px; }
  .portfolio-grid { gap: 10px; }
  .portfolio-photo { aspect-ratio: 4 / 5; }
  .portfolio-age { right: 6px; bottom: 6px; padding: 4px 6px; font-size: 8px; }
  .guest-inner { grid-template-columns: 1fr; gap: 15px; padding-top: 60px; padding-bottom: 60px; }
  .guest-mark { display: none; }
  .guest-section h2 { font-size: clamp(42px, 11vw, 56px); }
  .guest-card { grid-column: auto; margin-top: 8px; }
  .prices-section, .rules-section { padding-top: 73px; padding-bottom: 78px; }
  .price-row { grid-template-columns: 31px 1fr; gap: 10px; padding: 17px 0; }
  .price-row h3 { font-size: 20px; }
  .price-row p { font-size: 11px; }
  .price-value { grid-column: 2; font-size: 10px; }
  .price-footnote { margin-left: 0; line-height: 1.65; }
  .rules-draft-note { margin-top: -9px; font-size: 10px; }
  .rules-list summary { min-height: 59px; font-size: 18px; }
  .rule-copy { padding: 0 4px 18px 0; font-size: 12px; }
  .booking-section { padding: 72px 0; }
  .booking-grid { grid-template-columns: 1fr; gap: 28px; }
  .booking-copy > p:not(.eyebrow) { font-size: 13px; }
  .booking-form { padding: 19px 16px; gap: 15px; }
  .booking-form .button { width: 100%; }
  .reviews-section { grid-template-columns: 1fr; gap: 25px; padding-top: 72px; padding-bottom: 72px; }
  .contact-section { padding: 72px 0 83px; }
  .contact-grid { grid-template-columns: 1fr; gap: 29px; }
  .map-embed, .map-embed iframe { min-height: 310px; }
  .map-embed { box-shadow: 6px 6px 0 var(--olive); }
  .footer-inner { grid-template-columns: 1fr; gap: 13px; }
  .footer-inner > p, .footer-inner > div { grid-column: auto; grid-row: auto; }
  .footer-inner > div { flex-direction: row; }
  .footer-inner small { margin-top: 4px; }
}
@media (max-width: 380px) {
  .section-wrap { width: calc(100% - 30px); }
  .site-header { padding-inline: 14px; }
  .hero h1 { font-size: 54px; }
  .hero-actions .button { padding-inline: 13px; gap: 12px; }
  .hero-actions { gap: 12px; }
  .hero-bottom { font-size: 6px; }
  .portfolio-filters { gap: 6px; }
  .portfolio-filter { padding-inline: 8px; letter-spacing: .04em; }
}
@media (hover: none) {
  .artist-photo-placeholder img { filter: grayscale(1) contrast(1.04); }
  .artist-photo-placeholder:active img { filter: grayscale(0) contrast(1); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Updated studio artwork and portfolio */
.hero-sticker { background: transparent; box-shadow: none; transform: none; }
.hero-flower { width: 92px; height: 92px; animation: flower-spin 18s linear infinite; }
@keyframes flower-spin { to { transform: rotate(360deg); } }
.studio-strip-note p { text-shadow: none; color: var(--ink); }
.portfolio-artist-title { margin: 34px 0 16px; font: 28px/1.2 var(--serif); }
.client-projects { margin-top: 88px; }
.client-projects h3 { max-width: 700px; margin: 0 0 20px; font: 500 clamp(32px, 4vw, 50px)/1.13 var(--serif); }
.client-projects h3 em { color: var(--red); font-weight: 500; }
.client-projects > p:not(.eyebrow) { max-width: 680px; color: var(--muted); font-size: 14px; }
.client-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 14px; margin-top: 28px; }
.client-gallery figure { margin: 0; min-width: 0; height: 290px; overflow: hidden; }
.client-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; }
.client-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.map-embed { border: 0; box-shadow: none; background: var(--cream); }
.map-embed iframe { mask-image: radial-gradient(ellipse 72% 72% at 50% 50%, #000 48%, transparent 100%); -webkit-mask-image: radial-gradient(ellipse 72% 72% at 50% 50%, #000 48%, transparent 100%); }
@media (max-width: 820px) { .client-gallery { grid-template-columns: 1fr 1fr; } .client-pair { grid-column: 1 / -1; } }
@media (max-width: 600px) { .client-projects { margin-top: 60px; } .client-gallery { gap: 9px; } .client-gallery figure { height: 200px; } .client-gallery .client-pair { height: 245px; } .map-embed { box-shadow: none; } }
@media (prefers-reduced-motion: reduce) { .hero-flower { animation: none; } }


/* Portfolio details */
.floral-divider img { height: auto; object-fit: contain; }
.client-gallery figure { height: 400px; }
.client-gallery .client-pair { position: relative; display: block; }
.client-pair img:last-child { width: 100%; height: 100%; object-fit: cover; object-position: 35% 48%; }
.client-pair img:first-child { position: absolute; z-index: 1; right: 12px; bottom: 12px; width: 34%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: 70% 70%; border: 4px solid var(--cream-light); box-shadow: 0 4px 16px rgba(23,20,15,.25); }
@media (max-width: 820px) { .client-gallery figure { height: 310px; } .client-gallery .client-pair { height: 400px; } }
@media (max-width: 600px) { .client-gallery figure { height: 230px; } .client-gallery .client-pair { height: 360px; } .client-pair img:first-child { width: 38%; right: 9px; bottom: 9px; } }


/* Original flower strip: crop the supplied artwork without redrawing it. */
.floral-divider { position: relative; aspect-ratio: 4858 / 555; overflow: hidden; }
.floral-divider img { position: absolute; top: 0; left: 0; width: 111.84%; max-width: none; height: auto; transform: translate(-4.325%, -50.1%); filter: url(#flower-olive); }
.client-gallery img[src$="DSCF9178.jpg"] { object-position: 80% 50%; }

.floral-divider { transform: rotate(-0.58deg); transform-origin: center; }

.booking-email { max-width: 400px; margin-top: 30px; }
.booking-email p { margin: 0 0 10px; color: var(--cream-light); font-size: 13px; line-height: 1.7; }
.booking-email-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--cream-light); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 5px; }
.booking-email-link:hover { color: var(--cream); }
.booking-email small { display: block; margin-top: 2px; color: var(--cream); font-size: 11px; overflow-wrap: anywhere; }


.language-switch { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.language-switch a { display: grid; place-items: center; min-width: 30px; min-height: 44px; }
.language-switch a[aria-current="page"] { color: var(--red); }
@media (max-width: 820px) { .language-switch { margin-left: auto; margin-right: 12px; } }


/* Keep rendering light and reduce work while scrolling. */
:root { color-scheme: only light; }
body::before { display: none; }
.site-header { background: var(--cream-light); backdrop-filter: none; }
.floral-divider img { position: static; width: 100%; max-width: 100%; height: auto; transform: none; filter: url(#flower-olive); }
.client-gallery img[src$="client-fingers-opt.webp"] { object-position: 80% 50%; }


.portfolio-artist-title { display:flex; align-items:center; gap:14px; scroll-margin-top:110px; }
.portfolio-artist-title img { width:52px; height:52px; border-radius:50%; object-fit:cover; object-position:50% 30%; }
.artist-meta h3 a { color:inherit; text-decoration:none; }
.artist-meta h3 a:hover { color:var(--red); }
.price-cta { margin-top:28px; }
.booking-form label.consent { display:flex; align-items:flex-start; text-transform:none; letter-spacing:0; font-size:12px; line-height:1.5; font-weight:400; }
.booking-form .consent input { width:18px; min-height:18px; flex:0 0 18px; accent-color:var(--red); }
.image-open { display:block; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.artist-photo-placeholder { cursor:zoom-in; }
.artist-instagram { display:inline-block; margin-top:12px; font-size:11px; color:inherit; }
.image-viewer { border:0; padding:0; background:transparent; max-width:95vw; max-height:95dvh; overflow:visible; }
.image-viewer::backdrop { background:rgba(20,18,13,.92); }
.image-viewer img { display:block; max-width:90vw; max-height:86dvh; object-fit:contain; }
.viewer-close { position:absolute; top:-12px; right:-12px; width:42px; height:42px; border:0; border-radius:50%; background:var(--cream-light); color:var(--ink); font-size:28px; cursor:pointer; }
/* Olive navigation, red enquiry actions. */
.text-link, .portfolio-filter { color:#555523; }
.portfolio-filter { border-color:var(--olive); background:transparent; }
.portfolio-filter.is-active, .portfolio-filter:hover { background:var(--olive); border-color:var(--olive); color:var(--ink); }
a[href="#booking"].button, .main-nav .nav-cta, .circle-arrow[href="#booking"] { background:var(--red); color:var(--cream-light); border-color:var(--red); }
.scroll-mark { animation:none; color:var(--olive); }
.hero { grid-template-columns:1.1fr .9fr; padding-top:38px; min-height:740px; }
.hero-art { height:min(74vh,720px); min-height:480px; width:auto; aspect-ratio:9/16; justify-self:center; }
.hero-video { display:block; width:100%; height:100%; object-fit:cover; }
.hero-image-placeholder::before { display:none; }
.video-toggle { position:absolute; z-index:4; top:15px; right:15px; padding:9px 12px; border:1px solid var(--olive); background:var(--cream-light); color:var(--ink); font-size:11px; cursor:pointer; }
.price-value .button { white-space:normal; text-align:center; max-width:290px; line-height:1.5; padding-block:12px; }
.client-gallery .client-collage { display:block; }
.client-gallery .client-collage img { object-fit:contain; background:var(--cream); }
body.viewer-open { overflow:hidden; }
.image-viewer img { max-height:78dvh; }
.viewer-controls { display:flex; justify-content:center; align-items:center; gap:24px; margin-top:10px; color:var(--cream-light); }
.viewer-controls[hidden] { display:none; }
.viewer-controls button { width:44px; height:44px; border:1px solid var(--olive); background:var(--olive); color:var(--ink); font-size:28px; cursor:pointer; }
.viewer-controls button:disabled { opacity:.25; cursor:default; }
@media(max-width:700px){.hero { grid-template-columns:1fr; padding-top:35px; }.hero-art { height:auto; min-height:0; width:min(100%,390px); margin-top:25px; }.price-value .button { font-size:9px; }.hero h1 { font-size:clamp(48px,12vw,72px); }}
@media(min-width:701px) and (max-width:1000px){.hero{grid-template-columns:1fr;padding-top:40px;}.hero-copy{max-width:620px;}.hero h1{font-size:76px;}.hero-art{width:min(100%,390px);height:auto;min-height:0;margin-top:24px;}.hero-side-label{right:-18px;}}
.form-honeypot { display:none; }
.attachment-fields { min-width:0; margin:0; padding:16px; border:1px solid var(--line); display:grid; gap:12px; }
.attachment-fields legend { font-size:12px; font-weight:700; }
.attachment-fields p,.form-privacy { font-size:11px; line-height:1.6; margin:0; }
.form-privacy a { text-decoration:underline; }
.booking-form input[type="file"] { max-width:100%; font-size:11px; border:0; }
.booking-form input[type="file"]::file-selector-button { border:1px solid var(--olive); background:var(--cream); padding:8px; margin-right:8px; color:var(--ink); cursor:pointer; }
.booking-form button:disabled { opacity:.65; cursor:wait; transform:none; }
.thank-you { max-width:760px; padding-block:12vh; }
.thank-you h1 { font-size:clamp(40px,7vw,76px); line-height:1.1; }
.thank-you .eyebrow { margin-top:50px; }
@media (min-width:1001px) {
 .hero { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); column-gap:3%; min-height:650px; padding-top:38px; padding-bottom:70px; }
 .hero-art { width:min(100%,480px); height:min(65vh,600px); min-height:450px; aspect-ratio:auto; justify-self:end; }
}
.video-toggle { color:#fff; background:rgba(23,20,15,.28); border:1px solid rgba(255,255,255,.35); opacity:.72; text-shadow:0 1px 3px #17140f; transition:opacity .2s ease,background .2s ease; }
.video-toggle:hover,.video-toggle:focus-visible { opacity:1; background:rgba(23,20,15,.78); }
@media (hover:none) { .video-toggle { opacity:1; background:rgba(23,20,15,.55); } }
