:root {
  --black: #090909;
  --black-soft: #11110f;
  --white: #f7f7f3;
  --paper: #efeee8;
  --ink: #10100f;
  --gray: #a7a69f;
  --line-dark: rgba(255, 255, 255, .18);
  --line-light: rgba(16, 16, 15, .2);
  --gutter: clamp(22px, 4.5vw, 76px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: Inter, "Helvetica Neue", Arial, sans-serif; font-size: 16px; letter-spacing: 0; }
body.menu-open, body.dialog-open { overflow: hidden; }
button, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

.page-intro { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; background: var(--black); transition: opacity .75s ease, visibility .75s ease; }
.page-intro img { width: min(390px, 62vw); }
body.loaded .page-intro { opacity: 0; visibility: hidden; }

.site-header { position: fixed; z-index: 40; inset: 0 0 auto; height: 86px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--gutter); border-bottom: 1px solid transparent; transition: height .3s ease, background .3s ease, border-color .3s ease; }
.site-header.scrolled { height: 70px; background: rgba(9, 9, 9, .92); border-color: rgba(255,255,255,.11); backdrop-filter: blur(16px); }
.header-brand { width: clamp(168px, 16vw, 215px); }
.desktop-nav { display: flex; gap: clamp(20px, 2.6vw, 40px); }
.desktop-nav a, .header-phone { position: relative; color: rgba(255,255,255,.78); font-size: 12px; }
.desktop-nav a::after { position: absolute; content: ""; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--white); transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 22px; }
.header-book { min-width: 76px; height: 39px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid rgba(255,255,255,.62); background: transparent; transition: background .2s ease, color .2s ease; }
.header-book:hover { background: var(--white); color: var(--black); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 11px 6px; border: 0; background: none; }
.menu-toggle span { display: block; width: 30px; height: 1px; margin: 7px 0; background: white; transition: transform .25s 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); }

.mobile-menu { position: fixed; z-index: 35; inset: 0; display: none; flex-direction: column; justify-content: center; padding: 104px var(--gutter) 32px; background: var(--black); transform: translateY(-102%); transition: transform .45s cubic-bezier(.22,.8,.2,1); }
.mobile-menu.open { transform: translateY(0); }
.mobile-menu nav { display: grid; gap: 14px; }
.mobile-menu nav a, .mobile-menu nav button { width: fit-content; padding: 0; border: 0; background: none; font-size: clamp(32px, 9vw, 56px); font-weight: 450; text-align: left; }
.mobile-menu-foot { display: flex; justify-content: space-between; gap: 30px; margin-top: auto; color: var(--gray); font-size: 12px; }
.mobile-menu-foot p { margin: 0; }

.hero { position: relative; min-height: 92svh; overflow: hidden; }
.hero-image { position: absolute; inset: -5%; background: #262c23 url("../milk-honey/55.webp") center 52% / cover no-repeat; will-change: transform; }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.5) 38%, rgba(0,0,0,.04) 72%), linear-gradient(0deg, rgba(0,0,0,.48), transparent 43%); }
.hero-copy { position: absolute; z-index: 1; left: var(--gutter); bottom: clamp(72px, 10vh, 116px); width: min(715px, calc(100vw - 44px)); }
.overline, .section-label { text-transform: uppercase; font-size: 10px; letter-spacing: .15em; }
.overline { margin: 0 0 19px; }
.hero h1 { max-width: 720px; margin: 0; font-size: clamp(50px, 6.7vw, 104px); line-height: .91; font-weight: 470; }
.hero h1 em, .standard-lead em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.hero-support { max-width: 520px; margin: 24px 0 0; color: rgba(255,255,255,.78); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 30px; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid currentColor; background: transparent; font-weight: 600; font-size: 12px; transition: background .2s ease, color .2s ease; }
.button-light { background: var(--white); color: var(--black); border-color: var(--white); }
.button-light:hover { background: transparent; color: var(--white); }
.button-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.button-dark:hover { background: transparent; color: var(--ink); }
.arrow-link { display: inline-flex; align-items: center; gap: 18px; padding: 0 0 7px; border: 0; border-bottom: 1px solid rgba(16,16,15,.45); background: transparent; font-size: 12px; }
.arrow-link-light { color: white; border-color: rgba(255,255,255,.55); }
.arrow-link span { transition: transform .2s ease; }
.arrow-link:hover span { transform: translate(3px, -3px); }
.hero-credit { position: absolute; right: var(--gutter); bottom: 27px; margin: 0; color: rgba(255,255,255,.55); text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }
.hero-scroll { position: absolute; left: 50%; bottom: 18px; width: 1px; height: 42px; overflow: hidden; background: rgba(255,255,255,.28); }
.hero-scroll span { position: absolute; inset: 0; background: white; animation: scrollCue 2s ease-in-out infinite; }

.light-section { background: var(--paper); color: var(--ink); }
.dark-section { background: var(--black); color: var(--white); }
.work-intro, .standard, .signature, .assets-section, .process, .booking-close { padding: clamp(88px, 11vw, 170px) var(--gutter); }
.section-label { display: flex; gap: 18px; color: #6c6b66; }
.section-label span { color: #aaa9a3; }
.statement-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(245px, .55fr); align-items: end; gap: 9vw; margin-top: 46px; }
.display-serif { max-width: 1050px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(43px, 6.4vw, 96px); line-height: .98; font-weight: 400; }
.statement-side p { margin: 0 0 36px; color: #575650; line-height: 1.7; }

.portfolio-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 38px); padding: 0 var(--gutter) clamp(110px, 14vw, 210px); }
.portfolio-item { margin: 0; }
.image-shell { overflow: hidden; background: #d8d7d0; }
.portfolio-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.portfolio-item:hover img { transform: scale(1.018); }
.portfolio-item figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 10px; color: #65645f; text-transform: uppercase; font-size: 9px; letter-spacing: .08em; }
.portfolio-main { grid-column: 1 / 9; }
.portfolio-main .image-shell { aspect-ratio: 1.46; }
.portfolio-pool { grid-column: 9 / 13; margin-top: 11vw; }
.portfolio-pool .image-shell { aspect-ratio: .71; }
.portfolio-bedroom { grid-column: 1 / 5; margin-top: 1vw; }
.portfolio-bedroom .image-shell { aspect-ratio: .82; }
.portfolio-game { grid-column: 5 / 13; margin-top: 9vw; }
.portfolio-game .image-shell { aspect-ratio: 1.45; }
.portfolio-close { grid-column: 8 / 13; margin-top: 4vw; }
.portfolio-close p { max-width: 440px; color: #575650; line-height: 1.65; }

.standard .section-label { color: #777670; }
.standard-lead { max-width: 1040px; margin: clamp(64px, 8vw, 108px) 0 clamp(72px, 8vw, 112px); font-size: clamp(54px, 7.1vw, 112px); line-height: .91; font-weight: 450; }
.standard-lines { border-top: 1px solid var(--line-dark); }
.standard-line { display: grid; grid-template-columns: 54px minmax(230px, .7fr) 1fr; gap: 28px; align-items: center; min-height: 112px; border-bottom: 1px solid var(--line-dark); }
.standard-line > span { color: #61615d; font-size: 10px; }
.standard-line strong { font-size: clamp(20px, 2vw, 28px); font-weight: 480; }
.standard-line p { max-width: 560px; margin: 0; color: var(--gray); line-height: 1.55; }

.signature-heading { max-width: 1100px; }
.signature-name { margin: 50px 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(24px, 3vw, 42px); font-style: italic; }
.signature-heading h2 { max-width: 1050px; margin: 0; font-size: clamp(51px, 7.3vw, 112px); line-height: .9; font-weight: 470; }
.signature-layout { display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(44px, 7vw, 110px); align-items: start; margin-top: clamp(70px, 9vw, 130px); }
.signature-image { aspect-ratio: 1.16; overflow: hidden; }
.signature-image img { height: 100%; object-fit: cover; }
.offer-copy { margin: 0 0 42px; color: #4f4e49; font-size: 18px; line-height: 1.65; }
.included-list { margin: 0; padding: 0; border-top: 1px solid var(--line-light); list-style: none; }
.included-list li { display: grid; grid-template-columns: 74px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line-light); line-height: 1.45; }
.included-list span { color: #73726c; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-tool { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; margin-top: 42px; padding: 28px 0; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.price-tool label, .dialog-content label { display: block; margin-bottom: 11px; color: #66655f; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-tool select, .dialog-content select { width: 100%; min-height: 44px; padding: 0 36px 0 0; border: 0; border-radius: 0; border-bottom: 1px solid #85847d; background: transparent; color: var(--ink); }
.price-result { text-align: right; }
.price-result span { display: block; margin-bottom: 4px; color: #66655f; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-result strong { font-size: clamp(35px, 4vw, 56px); font-weight: 480; }
.scale-note { margin: 14px 0 32px; color: #74736d; font-size: 11px; }

.story-section { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 850px; }
.story-visual { position: relative; min-height: 750px; overflow: hidden; }
.story-visual img { height: 100%; object-fit: cover; }
.story-visual p { position: absolute; left: 24px; bottom: 20px; margin: 0; color: rgba(255,255,255,.76); text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.story-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 130px) var(--gutter); }
.story-content h2 { margin: 48px 0 20px; font-size: clamp(42px, 5vw, 78px); line-height: .97; font-weight: 470; }
.story-intro { max-width: 430px; margin: 0 0 48px; color: var(--gray); line-height: 1.65; }
.enhancement-list { border-top: 1px solid var(--line-dark); }
.enhancement-list button, .enhancement-list a { width: 100%; display: grid; grid-template-columns: 1fr auto 20px; gap: 20px; align-items: center; min-height: 82px; padding: 0; border: 0; border-bottom: 1px solid var(--line-dark); background: transparent; color: inherit; text-align: left; }
.enhancement-list button:hover, .enhancement-list a:hover { padding-left: 10px; background: rgba(255,255,255,.035); }
.enhancement-list span { display: grid; gap: 7px; }
.enhancement-list b { font-size: 17px; font-weight: 500; }
.enhancement-list small { color: #85847f; }
.enhancement-list strong { font-size: 18px; font-weight: 470; }
.enhancement-list i, .asset-rows i { font-style: normal; transition: transform .2s ease; }
.enhancement-list button:hover i, .enhancement-list a:hover i, .asset-rows button:hover i { transform: translate(3px, -3px); }
.pairing-note { color: #777670; font-size: 11px; }

.assets-heading { display: grid; grid-template-columns: 1fr minmax(240px, .42fr); gap: 8vw; align-items: end; margin: 46px 0 70px; }
.assets-heading h2 { max-width: 800px; margin: 0; font-size: clamp(43px, 5vw, 74px); line-height: .98; font-weight: 470; }
.assets-heading p { margin: 0; color: #575650; line-height: 1.65; }
.asset-rows { border-top: 1px solid var(--line-light); }
.asset-rows button { width: 100%; display: grid; grid-template-columns: 1fr 1fr auto 24px; gap: 22px; align-items: center; min-height: 88px; padding: 0; border: 0; border-bottom: 1px solid var(--line-light); background: transparent; color: var(--ink); text-align: left; transition: padding .2s ease, background .2s ease; }
.asset-rows button:hover { padding: 0 12px; background: rgba(0,0,0,.035); }
.asset-rows button > span { font-size: 20px; }
.asset-rows small { color: #686761; }
.asset-rows strong { font-size: 19px; font-weight: 500; }

.process .section-label { color: #777670; }
.process-head { display: grid; grid-template-columns: 1.25fr .45fr; gap: 8vw; align-items: end; margin: 50px 0 clamp(80px, 10vw, 145px); }
.process-head h2 { margin: 0; font-size: clamp(55px, 8vw, 120px); line-height: .9; font-weight: 470; }
.process-head p { margin: 0; color: var(--gray); line-height: 1.65; }
.process-arc { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 4vw, 70px); padding-top: 83px; }
.arc-line { position: absolute; top: 0; left: 3%; width: 94%; height: 155px; border: 1px solid rgba(255,255,255,.26); border-bottom: 0; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.process-step { position: relative; background: var(--black); padding-top: 12px; }
.process-step::before { position: absolute; content: ""; top: -8px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--white); }
.process-step span { color: #6d6c67; font-size: 10px; }
.process-step strong { display: block; margin: 20px 0 13px; font-size: 25px; font-weight: 480; }
.process-step p { margin: 0; color: var(--gray); font-size: 13px; line-height: 1.6; }
.staging-note { max-width: 760px; margin: clamp(75px, 9vw, 130px) 0 0 auto; padding-top: 22px; border-top: 1px solid var(--line-dark); color: var(--gray); line-height: 1.65; }
.staging-note span { display: block; margin-bottom: 9px; color: var(--white); text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }

.manager-section { position: relative; min-height: 82svh; overflow: hidden; }
.manager-image { position: absolute; inset: 0; background: #24221e url("../milk-honey/4.webp") center 48% / cover no-repeat; }
.manager-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.33) 58%, rgba(0,0,0,.08)); }
.manager-copy { position: absolute; left: var(--gutter); top: 50%; width: min(900px, calc(100% - (var(--gutter) * 2))); transform: translateY(-50%); }
.manager-copy h2 { max-width: 900px; margin: 0; font-size: clamp(49px, 6.5vw, 96px); line-height: .92; font-weight: 470; }
.manager-copy > p:not(.overline) { max-width: 470px; margin: 28px 0 34px; color: rgba(255,255,255,.78); line-height: 1.6; }

.authorship { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 760px; }
.authorship-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 10vw, 155px) var(--gutter); }
.authorship-copy blockquote { margin: 68px 0 25px; color: #6a6963; font-family: Georgia, "Times New Roman", serif; font-size: clamp(22px, 2.4vw, 36px); font-style: italic; }
.authorship-copy h2 { max-width: 650px; margin: 0; font-size: clamp(39px, 4.7vw, 72px); line-height: .98; font-weight: 470; }
.authorship-copy > p { max-width: 530px; margin: 28px 0 38px; color: #575650; line-height: 1.7; }
.authorship-copy .arrow-link { width: fit-content; }
.authorship-image { min-height: 650px; overflow: hidden; }
.authorship-image img { height: 100%; object-fit: cover; }

.booking-close { min-height: 650px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.booking-close h2 { max-width: 1080px; margin: 0 0 44px; font-size: clamp(52px, 7vw, 104px); line-height: .92; font-weight: 470; }
.closing-signature { width: clamp(190px, 19vw, 285px); height: auto; margin-top: 28px; opacity: .72; }

footer { padding: clamp(70px, 8vw, 120px) var(--gutter) 30px; border-top: 1px solid var(--line-dark); background: var(--black-soft); }
.footer-brand { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 55px; border-bottom: 1px solid var(--line-dark); }
.footer-brand img { width: clamp(225px, 30vw, 450px); }
.footer-brand a { font-size: clamp(19px, 2vw, 28px); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 45px; padding: 44px 0 70px; color: var(--gray); font-size: 12px; line-height: 1.7; }
.footer-grid p { margin: 0; }
.footer-grid small { color: #6c6b66; }
.footer-grid nav { display: grid; gap: 7px; }
.footer-grid a { color: var(--white); }
.footer-legal { display: flex; justify-content: space-between; color: #5f5e59; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }

.booking-dialog { position: relative; width: min(720px, calc(100vw - 30px)); max-height: calc(100svh - 30px); margin: auto; padding: 0; border: 1px solid #383834; border-radius: 0; background: var(--black); color: var(--white); }
.booking-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(9px); }
.dialog-close { position: absolute; z-index: 2; top: 12px; right: 14px; width: 44px; height: 44px; border: 0; background: transparent; font-size: 31px; font-weight: 200; }
.dialog-content { padding: clamp(50px, 7vw, 84px); }
.dialog-content h2 { margin: 0 0 17px; font-size: clamp(39px, 6vw, 67px); line-height: .95; font-weight: 470; }
.dialog-content > p { color: var(--gray); line-height: 1.6; }
.dialog-content label { margin-top: 36px; color: var(--gray); }
.dialog-content select { min-height: 52px; color: var(--white); border-color: #72716c; }
.dialog-content option { background: var(--black); color: white; }
.dialog-continue { width: 100%; gap: 16px; margin-top: 28px; }
.dialog-help { margin: 24px 0 0; font-size: 12px; }
.dialog-help a { color: var(--white); border-bottom: 1px solid #777; }

.booking-router { width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: 0; border: 0; background: var(--black); color: var(--white); }
.booking-router::backdrop { background: var(--black); }
.router-close { position: fixed; z-index: 3; top: 22px; right: 24px; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.18); color: white; font-size: 31px; font-weight: 200; }
.router-heading { position: absolute; z-index: 2; top: 28px; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.router-heading .overline { margin: 0; color: rgba(255,255,255,.7); }
.router-grid { display: grid; grid-template-columns: 1fr 1fr; height: 100%; }
.router-choice { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; min-width: 0; padding: clamp(70px, 8vw, 128px) var(--gutter); border: 0; border-radius: 0; color: inherit; text-align: left; overflow: hidden; }
.router-choice::before { position: absolute; content: ""; inset: 0; transition: transform .7s cubic-bezier(.2,.75,.2,1); }
.router-choice:hover::before { transform: scale(1.018); }
.router-choice > * { position: relative; z-index: 1; }
.router-choice span { text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.router-choice strong { max-width: 620px; margin: 22px 0; font-size: clamp(43px, 5vw, 78px); line-height: .95; font-weight: 470; }
.router-choice p { max-width: 430px; margin: 0 0 34px; line-height: 1.6; }
.router-choice b { display: inline-flex; gap: 18px; padding-bottom: 8px; border-bottom: 1px solid currentColor; font-size: 12px; }
.router-choice i { font-style: normal; }
.router-housefly { background: #f2f1eb; color: #111; }
.router-housefly::before { background: linear-gradient(160deg, rgba(255,255,255,.72), transparent 55%); }
.router-housefly p { color: #5d5c56; }
.router-capone { background: #181916; }
.router-capone::before { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.15)), url("../milk-honey/55.webp") center / cover no-repeat; }
.router-capone p { color: rgba(255,255,255,.76); }

/* Interior pages */
.page-hero { position: relative; min-height: 76svh; display: flex; align-items: flex-end; overflow: hidden; background: #171714; }
.page-hero-media, .page-hero-wash { position: absolute; inset: 0; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-wash { background: linear-gradient(90deg, rgba(0,0,0,.8), rgba(0,0,0,.3) 58%, rgba(0,0,0,.08)), linear-gradient(0deg, rgba(0,0,0,.58), transparent 48%); }
.page-hero-content { position: relative; z-index: 1; width: 100%; padding: 150px var(--gutter) clamp(62px, 8vw, 110px); }
.page-hero-content h1 { max-width: 1080px; margin: 0; font-size: clamp(55px, 8.2vw, 126px); line-height: .88; font-weight: 470; }
.page-hero-content h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.page-hero-content > p:not(.overline) { max-width: 560px; margin: 28px 0 0; color: rgba(255,255,255,.78); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.65; }
.page-hero-credit { position: absolute; z-index: 1; right: var(--gutter); bottom: 28px; margin: 0; color: rgba(255,255,255,.56); text-transform: uppercase; font-size: 9px; letter-spacing: .11em; }
.page-section { padding: clamp(90px, 11vw, 170px) var(--gutter); }
.page-section.light-section + .page-section.light-section { padding-top: 0; }
.intro-pair { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); gap: 9vw; align-items: end; }
.intro-pair h2 { max-width: 950px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 6.2vw, 92px); line-height: .98; font-weight: 400; }
.intro-pair > div > p { margin: 0 0 34px; color: #575650; line-height: 1.7; }
.dark-section .intro-pair > div > p { color: var(--gray); }
.eyebrow-line { display: flex; gap: 18px; margin-bottom: 44px; color: #777670; text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.eyebrow-line span { color: #aaa9a3; }
.project-index { background: var(--paper); color: var(--ink); }
.project-row { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(35px, 6vw, 100px); align-items: center; padding: clamp(45px, 6vw, 90px) 0; border-top: 1px solid var(--line-light); }
.project-row:last-child { border-bottom: 1px solid var(--line-light); }
.project-row:nth-child(even) .project-media { order: 2; }
.project-media { position: relative; aspect-ratio: 1.43; overflow: hidden; }
.project-media img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.project-row:hover .project-media img { transform: scale(1.015); }
.project-copy .overline { color: #73726c; }
.project-copy h2 { margin: 0 0 20px; font-size: clamp(43px, 5.7vw, 82px); line-height: .94; font-weight: 470; }
.project-copy p { max-width: 470px; margin: 0 0 32px; color: #575650; line-height: 1.65; }
.project-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.project-meta div { min-height: 108px; padding: 26px; border-right: 1px solid var(--line-dark); }
.project-meta div:last-child { border-right: 0; }
.project-meta span { display: block; margin-bottom: 12px; color: #777670; text-transform: uppercase; font-size: 9px; letter-spacing: .11em; }
.project-meta strong { font-size: 17px; font-weight: 470; }
.project-statement { max-width: 1080px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6.3vw, 94px); line-height: .98; font-weight: 400; }
.gallery-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(15px, 2vw, 30px); padding: 0 var(--gutter) clamp(90px, 11vw, 170px); background: var(--paper); }
.gallery-mosaic figure { margin: 0; overflow: hidden; }
.gallery-mosaic img { height: 100%; object-fit: cover; }
.gallery-mosaic .g-wide { grid-column: span 8; aspect-ratio: 1.5; }
.gallery-mosaic .g-tall { grid-column: span 4; aspect-ratio: .72; }
.gallery-mosaic .g-half { grid-column: span 6; aspect-ratio: 1.2; }
.gallery-mosaic .g-full { grid-column: 1 / -1; aspect-ratio: 1.8; }
.gallery-mosaic .offset { margin-top: 9vw; }
.story-chapter { padding: clamp(90px, 11vw, 170px) var(--gutter); }
.story-chapter-head { display: grid; grid-template-columns: minmax(140px, .35fr) minmax(0, 1.65fr); gap: clamp(45px, 8vw, 130px); align-items: start; margin-bottom: clamp(60px, 8vw, 120px); }
.story-chapter-index { margin: 9px 0 0; color: #777670; text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.story-chapter-head h2 { max-width: 980px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(43px, 6vw, 88px); line-height: .97; font-weight: 400; }
.story-chapter-head div > p { max-width: 650px; margin: 32px 0 0; color: #575650; font-size: 17px; line-height: 1.72; }
.dark-section .story-chapter-head div > p { color: var(--gray); }
.story-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(15px, 2vw, 30px); align-items: start; }
.story-gallery figure { margin: 0; overflow: hidden; }
.story-gallery img { height: 100%; object-fit: cover; }
.story-eight { grid-column: span 8; aspect-ratio: 1.48; }
.story-four { grid-column: span 4; aspect-ratio: .76; }
.story-six { grid-column: span 6; aspect-ratio: 1.18; }
.story-full { grid-column: 1 / -1; aspect-ratio: 1.78; }
.story-offset { margin-top: 8vw !important; }
.story-offset-small { margin-top: 4vw !important; }
.next-story { padding: 0 var(--gutter); }
.next-story a { display: flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 170px; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); color: var(--ink); }
.next-story span { display: flex; flex-direction: column; gap: 12px; }
.next-story small { color: #777670; text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }
.next-story strong { font-size: clamp(28px, 4vw, 54px); font-weight: 470; }
.next-story i { font-size: 28px; font-style: normal; transition: transform .25s ease; }
.next-story a:hover i { transform: translate(4px, -4px); }
.film-pair { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.film-panel { border-top: 1px solid var(--line-dark); padding-top: 18px; }
.film-panel header { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.film-panel h3 { margin: 0; font-size: clamp(25px, 3vw, 42px); font-weight: 470; }
.film-panel header span { color: var(--gray); font-size: 12px; }
.video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #1b1b19; }
.video-frame.vertical { max-width: 420px; aspect-ratio: 9 / 16; margin-left: auto; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.service-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: clamp(50px, 9vw, 140px); align-items: start; }
.service-intro h2 { margin: 0; font-size: clamp(49px, 6.5vw, 98px); line-height: .94; font-weight: 470; }
.service-intro-copy p { color: #575650; font-size: 17px; line-height: 1.7; }
.service-intro-copy p:first-child { margin-top: 0; }
.dark-section .service-intro-copy p { color: var(--gray); }
.feature-rows { margin-top: clamp(65px, 8vw, 110px); border-top: 1px solid var(--line-light); }
.dark-section .feature-rows { border-color: var(--line-dark); }
.feature-row { display: grid; grid-template-columns: 50px minmax(230px, .65fr) 1fr; gap: 28px; align-items: start; padding: 30px 0; border-bottom: 1px solid var(--line-light); }
.dark-section .feature-row { border-color: var(--line-dark); }
.feature-row > span { color: #777670; font-size: 10px; }
.feature-row h3 { margin: 0; font-size: clamp(21px, 2.2vw, 30px); font-weight: 480; }
.feature-row p { max-width: 620px; margin: 0; color: #575650; line-height: 1.65; }
.dark-section .feature-row p { color: var(--gray); }
.pricing-board { display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1.15fr); gap: clamp(48px, 8vw, 120px); align-items: start; }
.pricing-board h2 { max-width: 650px; margin: 0; font-size: clamp(47px, 6.3vw, 92px); line-height: .94; font-weight: 470; }
.pricing-board .signature-offer { max-width: 620px; }
.enhancement-board { border-top: 1px solid var(--line-dark); }
.enhancement-board article { display: grid; grid-template-columns: 1fr minmax(280px, .65fr) auto; gap: 28px; align-items: center; min-height: 116px; border-bottom: 1px solid var(--line-dark); }
.enhancement-board h3 { margin: 0; font-size: clamp(21px, 2.4vw, 32px); font-weight: 480; }
.enhancement-board p { margin: 0; color: var(--gray); line-height: 1.55; }
.enhancement-board strong { font-size: clamp(23px, 2.5vw, 34px); font-weight: 470; white-space: nowrap; }
.utility-board { border-top: 1px solid var(--line-light); }
.utility-board article { display: grid; grid-template-columns: 1fr 1fr auto; gap: 24px; align-items: center; min-height: 88px; border-bottom: 1px solid var(--line-light); }
.utility-board h3 { margin: 0; font-size: 20px; font-weight: 500; }
.utility-board p { margin: 0; color: #686761; }
.utility-board strong { font-size: 19px; font-weight: 500; white-space: nowrap; }
.manager-lead { max-width: 1050px; margin: 0; font-size: clamp(52px, 7.5vw, 112px); line-height: .91; font-weight: 470; }
.manager-lead em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.manager-path { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(75px, 9vw, 130px); border-top: 1px solid var(--line-dark); }
.manager-path article { min-height: 260px; padding: 30px clamp(20px, 3vw, 45px) 30px 0; border-right: 1px solid var(--line-dark); }
.manager-path article + article { padding-left: clamp(20px, 3vw, 45px); }
.manager-path article:last-child { border-right: 0; }
.manager-path span { color: #777670; font-size: 10px; }
.manager-path h3 { margin: 55px 0 18px; font-size: 25px; font-weight: 480; }
.manager-path p { margin: 0; color: var(--gray); line-height: 1.65; }
.quote-band { display: grid; grid-template-columns: 1fr .42fr; gap: 8vw; align-items: end; }
.quote-band blockquote { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6.2vw, 92px); line-height: .98; }
.quote-band p { margin: 0; color: var(--gray); line-height: 1.7; }
.city-sections { border-top: 1px solid var(--line-light); }
.city-section { display: grid; grid-template-columns: 220px 1fr; gap: clamp(35px, 8vw, 130px); padding: 48px 0; border-bottom: 1px solid var(--line-light); }
.city-section h3 { margin: 0; font-size: 24px; font-weight: 500; }
.city-section p { max-width: 760px; margin: 0; color: #575650; line-height: 1.7; }
.faq-list { border-top: 1px solid var(--line-light); }
.faq-list details { border-bottom: 1px solid var(--line-light); }
.faq-list summary { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; min-height: 84px; cursor: pointer; font-size: clamp(18px, 2vw, 25px); list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; color: #777670; font-size: 25px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 780px; margin: -4px 0 28px; color: #575650; line-height: 1.7; }
.book-page { min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; background: var(--black); }
.book-choice { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(110px, 10vw, 160px) var(--gutter) clamp(65px, 8vw, 110px); overflow: hidden; }
.book-choice > * { position: relative; z-index: 1; }
.book-choice h1, .book-choice h2 { max-width: 650px; margin: 16px 0 22px; font-size: clamp(48px, 6.2vw, 92px); line-height: .92; font-weight: 470; }
.book-choice p { max-width: 450px; margin: 0 0 34px; line-height: 1.65; }
.book-housefly { background: var(--paper); color: var(--ink); }
.book-housefly p { color: #575650; }
.book-capone { color: white; }
.book-capone::before { position: absolute; content: ""; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.82), rgba(0,0,0,.16)), url("../milk-honey/55.webp") center / cover no-repeat; }
.book-back { position: fixed; z-index: 3; top: 24px; left: var(--gutter); color: white; font-size: 12px; }
.book-page-mark { position: fixed; z-index: 3; top: 22px; left: 50%; width: 190px; transform: translateX(-50%); }
.not-found { min-height: 100svh; display: grid; place-items: center; padding: 100px var(--gutter); text-align: center; }
.not-found strong { display: block; color: #5e5d58; font-size: clamp(90px, 18vw, 260px); line-height: .8; font-weight: 450; }
.not-found h1 { margin: 35px 0 18px; font-size: clamp(38px, 5vw, 70px); font-weight: 470; }
.not-found p { max-width: 500px; margin: 0 auto 35px; color: var(--gray); line-height: 1.65; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.75,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.intro-reveal { opacity: 0; transform: translateY(19px); }
body.loaded .intro-reveal { opacity: 1; transform: translateY(0); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.75,.2,1); }
body.loaded .intro-reveal:nth-child(2) { transition-delay: .12s; }
body.loaded .intro-reveal:nth-child(3) { transition-delay: .22s; }
body.loaded .intro-reveal:nth-child(4) { transition-delay: .32s; }
body.loaded .intro-reveal:nth-child(5) { transition-delay: .42s; }
@keyframes scrollCue { 0% { transform: translateY(-100%); } 55%, 100% { transform: translateY(100%); } }

@media (max-width: 1050px) {
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .menu-toggle, .mobile-menu { display: flex; }
  .header-phone, .header-book { display: none; }
  .signature-layout { grid-template-columns: 1fr; }
  .signature-image { aspect-ratio: 1.55; }
  .story-section { grid-template-columns: 1fr; }
  .story-visual { min-height: 62svh; }
  .story-content { min-height: 720px; }
  .authorship { grid-template-columns: 1fr; }
  .authorship-image { min-height: 60svh; }
  .project-row { grid-template-columns: 1fr; }
  .project-row:nth-child(even) .project-media { order: 0; }
  .film-pair { grid-template-columns: 1fr; }
  .video-frame.vertical { margin: 0; }
  .service-intro, .pricing-board { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .site-header { height: 72px; }
  .header-brand { width: 176px; }
  .hero { min-height: 93svh; }
  .hero-image { background-position: 59% center; }
  .hero-wash { background: linear-gradient(0deg, rgba(0,0,0,.84), rgba(0,0,0,.2) 72%, rgba(0,0,0,.35)); }
  .hero-copy { bottom: 62px; }
  .hero h1 { font-size: clamp(46px, 13.8vw, 72px); }
  .hero-support { max-width: 390px; font-size: 14px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .hero-actions .button { width: 100%; }
  .hero-credit, .hero-scroll { display: none; }
  .statement-grid, .assets-heading, .process-head { grid-template-columns: 1fr; gap: 30px; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-main, .portfolio-pool, .portfolio-bedroom, .portfolio-game, .portfolio-close { grid-column: 1; margin-top: 18px; }
  .portfolio-main .image-shell, .portfolio-game .image-shell { aspect-ratio: 1.05; }
  .portfolio-pool .image-shell, .portfolio-bedroom .image-shell { aspect-ratio: .83; }
  .standard-line { grid-template-columns: 35px 1fr; padding: 26px 0; }
  .standard-line p { grid-column: 2; }
  .signature-heading h2 { font-size: clamp(47px, 14vw, 76px); }
  .signature-image { aspect-ratio: .92; }
  .price-tool { grid-template-columns: 1fr; }
  .price-result { display: flex; justify-content: space-between; align-items: end; text-align: left; }
  .asset-rows button { grid-template-columns: 1fr auto 18px; padding: 20px 0; }
  .asset-rows small { grid-column: 1; grid-row: 2; }
  .asset-rows strong { grid-column: 2; grid-row: 1 / 3; }
  .asset-rows i { grid-column: 3; grid-row: 1 / 3; }
  .process-arc { grid-template-columns: 1fr 1fr; gap: 52px 24px; padding-top: 0; }
  .arc-line { display: none; }
  .process-step { padding-top: 18px; border-top: 1px solid var(--line-dark); }
  .process-step::before { top: -4px; }
  .manager-section { min-height: 720px; }
  .manager-image { background-position: 58% center; }
  .manager-wash { background: linear-gradient(0deg, rgba(0,0,0,.84), rgba(0,0,0,.2) 78%); }
  .manager-copy { top: auto; bottom: 70px; transform: none; width: calc(100% - 44px); }
  .manager-copy h2 { font-size: clamp(47px, 13vw, 74px); }
  .router-heading { top: 24px; left: var(--gutter); transform: none; }
  .router-grid { grid-template-columns: 1fr; }
  .router-choice { min-height: 50svh; padding-top: 64px; padding-bottom: 42px; }
  .router-choice strong { margin: 13px 0; font-size: clamp(34px, 9vw, 52px); }
  .router-choice p { margin-bottom: 21px; font-size: 13px; }
  .router-housefly { justify-content: flex-end; }
  .router-capone { justify-content: center; }
  .footer-brand { align-items: flex-start; flex-direction: column; gap: 30px; }
  .footer-grid { grid-template-columns: 1fr; }
  .page-hero { min-height: 72svh; }
  .page-hero-content h1 { font-size: clamp(48px, 13vw, 76px); }
  .page-hero-credit { display: none; }
  .intro-pair { grid-template-columns: 1fr; gap: 34px; }
  .project-meta { grid-template-columns: 1fr 1fr; }
  .project-meta div:nth-child(2) { border-right: 0; }
  .project-meta div:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
  .gallery-mosaic { grid-template-columns: 1fr; }
  .gallery-mosaic .g-wide, .gallery-mosaic .g-tall, .gallery-mosaic .g-half, .gallery-mosaic .g-full { grid-column: 1; aspect-ratio: 1.05; }
  .gallery-mosaic .g-tall { aspect-ratio: .82; }
  .gallery-mosaic .offset { margin-top: 0; }
  .story-chapter-head { grid-template-columns: 1fr; gap: 26px; }
  .story-gallery { grid-template-columns: 1fr; }
  .story-eight, .story-four, .story-six, .story-full { grid-column: 1; aspect-ratio: 1.05; }
  .story-four { aspect-ratio: .84; }
  .story-offset, .story-offset-small { margin-top: 0 !important; }
  .next-story a { min-height: 140px; }
  .feature-row { grid-template-columns: 34px 1fr; }
  .feature-row p { grid-column: 2; }
  .enhancement-board article { grid-template-columns: 1fr auto; padding: 24px 0; }
  .enhancement-board p { grid-column: 1; }
  .enhancement-board strong { grid-column: 2; grid-row: 1 / 3; }
  .utility-board article { grid-template-columns: 1fr auto; padding: 22px 0; }
  .utility-board p { grid-column: 1; }
  .utility-board strong { grid-column: 2; grid-row: 1 / 3; }
  .manager-path { grid-template-columns: 1fr; }
  .manager-path article, .manager-path article + article { min-height: 0; padding: 28px 0 38px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .manager-path h3 { margin-top: 25px; }
  .quote-band { grid-template-columns: 1fr; gap: 35px; }
  .city-section { grid-template-columns: 1fr; gap: 18px; }
  .book-page { grid-template-columns: 1fr; }
  .book-choice { min-height: 56svh; }
  .book-page-mark { left: auto; right: var(--gutter); width: 165px; transform: none; }
}

@media (max-width: 440px) {
  .mobile-menu-foot { flex-direction: column; }
  .display-serif { font-size: 42px; }
  .standard-lead { font-size: 58px; }
  .enhancement-list button, .enhancement-list a { grid-template-columns: 1fr auto 16px; gap: 10px; }
  .enhancement-list small { max-width: 190px; }
  .asset-rows button > span { font-size: 17px; }
  .asset-rows strong { font-size: 16px; }
  .process-arc { grid-template-columns: 1fr; }
  .booking-close h2 { font-size: 53px; }
  .project-meta { grid-template-columns: 1fr; }
  .project-meta div { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .project-meta div:last-child { border-bottom: 0; }
  .enhancement-board article, .utility-board article { grid-template-columns: 1fr; }
  .enhancement-board p, .enhancement-board strong, .utility-board p, .utility-board strong { grid-column: 1; grid-row: auto; }
  .book-choice { min-height: 62svh; }
  .book-page-mark { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
