:root { --cream:#f0eae4; --paper:#faf8f5; --ink:#12110f; --muted:#6d6761; --line:#d8d0c8; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; } a { color:inherit; text-decoration:none; }
.nav { height:82px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:5; background:rgba(240,234,228,.94); backdrop-filter:blur(10px); border-bottom:1px solid transparent; }
.logo { font-size:1.15rem; font-weight:700; letter-spacing:-.08em; }.logo span { font-family:Georgia,serif; font-size:1.65em; }.nav nav { display:flex; gap:2rem; font-size:.84rem; }.nav nav a { transition:opacity .2s; }.nav nav a:hover { opacity:.5; }.menu-toggle { display:none; }
.hero { min-height:calc(100vh - 82px); padding:6vw 5vw 5vw; display:grid; grid-template-columns:1.1fr .9fr; gap:4vw; align-items:end; }.hero-copy { padding-bottom:2vw; }.eyebrow { margin:0 0 1.25rem; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }.hero h1,.statement h2,.section-heading h2,.about h2,.contact h2 { margin:0; font-size:clamp(4.3rem,9.3vw,10rem); line-height:.82; letter-spacing:-.09em; font-weight:700; }.hero h1 em,.statement h2 em,.section-heading h2 em,.about h2 em,.contact h2 em { font-family:"Playfair Display",Georgia,serif; font-weight:500; letter-spacing:-.07em; }.intro { max-width:32rem; margin:3.5rem 0 1.6rem; font-size:clamp(1.1rem,1.55vw,1.55rem); line-height:1.35; }.text-link { display:inline-flex; gap:.9rem; align-items:center; font-size:.94rem; border-bottom:1px solid; padding-bottom:.28rem; }.text-link span { font-size:1.3em; }
.screenshot-crop { background-size:100% auto; background-repeat:no-repeat; background-color:#d3cbc2; }.hero-photo { height:min(70vw,720px); border-radius:12rem 12rem 0 0; }.crop-hero { background-image:url("assets/hero-reference.png"); background-position:center 64%; background-size:125% auto; }
.statement { background:var(--paper); padding:12vw 15vw; display:grid; grid-template-columns:.75fr 1.25fr; gap:5vw; }.statement h2 { font-size:clamp(3rem,6.6vw,7rem); }.statement > p:last-child { grid-column:2; max-width:34rem; margin:2.5rem 0 0; line-height:1.5; font-size:1.15rem; }
.work { padding:12vw 5vw; }.section-heading { padding:0 0 8vw 17vw; }.section-heading h2 { font-size:clamp(3.8rem,8.5vw,9rem); }.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2vw; align-items:start; }.work-card { display:grid; gap:1.4rem; }.work-card:nth-child(2) { margin-top:8vw; }.work-card:nth-child(3) { margin-top:3vw; }.work-card .screenshot-crop { height:32vw; min-height:340px; border-radius:9rem 9rem 0 0; }.work-card.family .screenshot-crop { border-radius:0; }.work-card p { margin:0 0 .4rem; font-size:.72rem; }.work-card h3 { margin:0 0 .35rem; font-size:2rem; letter-spacing:-.06em; }.work-card span { color:var(--muted); display:block; max-width:18rem; line-height:1.4; }.crop-family { background-image:url("assets/family-reference.png"); background-position:center 25%; background-size:115% auto; }.crop-couples { background-image:url("assets/couples-reference.png"); background-position:center 30%; background-size:106% auto; }.crop-portraits { background-image:url("assets/portraits-reference.png"); background-position:center 31%; background-size:110% auto; }
.about { background:var(--paper); padding:10vw 12vw; display:grid; grid-template-columns:.85fr 1fr; gap:10vw; align-items:center; }.crop-about { height:min(52vw,720px); border-radius:11rem 0 11rem 0; background-image:url("assets/about-reference.png"); background-position:center 17%; background-size:100% auto; }.about h2 { font-size:clamp(4rem,7vw,7rem); }.about-copy > p:not(.eyebrow) { max-width:33rem; font-size:1.08rem; line-height:1.55; margin:2rem 0; }
.contact { padding:14vw 15vw 12vw; }.contact h2 { font-size:clamp(4rem,9vw,9rem); }.contact-text { max-width:38rem; font-size:1.25rem; line-height:1.5; margin:3rem 0; }.email { display:inline-flex; gap:1rem; align-items:baseline; font-size:clamp(1.25rem,2.5vw,2.65rem); letter-spacing:-.055em; border-bottom:1px solid; padding-bottom:.3rem; overflow-wrap:anywhere; }.email span { font-size:.8em; } footer { border-top:1px solid var(--line); padding:2.2rem 5vw; display:flex; justify-content:space-between; align-items:center; font-size:.76rem; } footer p { margin:0; color:var(--muted); }
@media (max-width:760px) { .nav { height:68px; padding:0 1.5rem; }.nav nav { position:absolute; display:none; top:68px; left:0; right:0; flex-direction:column; gap:1.2rem; padding:1.5rem; background:var(--cream); border-bottom:1px solid var(--line); }.nav nav.open { display:flex; }.menu-toggle { display:flex; align-items:center; gap:.6rem; background:none; border:0; font:inherit; font-size:.82rem; padding:0; }.menu-toggle span,.menu-toggle span:before { width:19px; height:1px; background:var(--ink); display:block; content:""; }.menu-toggle span:before { transform:translateY(5px); }.hero { min-height:auto; padding:4rem 1.5rem 0; display:block; }.hero h1 { font-size:clamp(4rem,19vw,6.5rem); }.intro { margin:2.25rem 0 1.5rem; }.hero-photo { margin-top:4rem; height:115vw; border-radius:7rem 7rem 0 0; background-size:145% auto; background-position:center 58%; }.statement { padding:6rem 1.5rem; display:block; }.statement h2 { font-size:3.6rem; }.statement > p:last-child { margin-top:2.25rem; }.work { padding:6rem 1.5rem; }.section-heading { padding:0 0 4rem; }.section-heading h2 { font-size:4rem; }.work-grid { display:block; }.work-card,.work-card:nth-child(2),.work-card:nth-child(3) { margin:0 0 4.5rem; }.work-card .screenshot-crop { height:115vw; min-height:0; }.work-card h3 { font-size:2.25rem; }.about { padding:6rem 1.5rem; display:flex; flex-direction:column; gap:3rem; align-items:stretch; }.crop-about { height:123vw; border-radius:8rem 0 8rem 0; }.about h2 { font-size:4.3rem; }.contact { padding:7rem 1.5rem; }.contact h2 { font-size:4rem; }.contact-text { margin:2rem 0; font-size:1.1rem; } footer { padding:1.5rem; flex-wrap:wrap; gap:1rem; } footer p { order:3; width:100%; } }

/* Original photographs extracted from the supplied Canva export. */
.screenshot-crop { background-size:cover; background-position:center; }
.crop-hero { background-image:url("assets/photos/hero.png"); }
.crop-family { background-image:url("assets/photos/family.png"); }
.crop-couples { background-image:url("assets/photos/couples.png"); }
.crop-portraits { background-image:url("assets/photos/portraits.png"); }
.crop-about { background-image:url("assets/photos/about.png"); }
.contact-photo { height:min(30vw,410px); max-width:620px; margin:5rem 0 0 auto; border-radius:9rem 9rem 9rem 0; background:url("assets/photos/contact.png") center/cover no-repeat; }
@media (max-width:760px) { .contact-photo { height:67vw; margin-top:3.5rem; border-radius:6rem 6rem 6rem 0; } }

/* High-resolution portfolio originals supplied September 30, 2026. */
.crop-hero { background-image:url("assets/photos/hero-hires.jpg"); background-position:center 45%; }
.crop-family { background-image:url("assets/photos/family-hires.jpg"); background-position:center 51%; }
.crop-couples { background-image:url("assets/photos/couples-hires.jpg"); background-position:center; }
.crop-portraits { background-image:url("assets/photos/people-hires.jpg"); background-position:center 40%; }
