:root{--paper:#fcfcfc;--ink:#242128;--muted:#69646e;--purple:#50219d;--brand-purple:#50219d;--brand-hover:#401a7e;--line:#dedbe1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--purple);outline-offset:6px}p{margin:0 0 1.4rem}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12;margin:0 0 1.3rem}h1{font-size:clamp(3.2rem,6.5vw,6.8rem);letter-spacing:-.045em}h2{font-size:clamp(2.3rem,4vw,4rem);letter-spacing:-.03em}h3{font-size:1.8rem}em{color:var(--purple);font-weight:400}.draft-note{text-align:center;background:#eee9f5;color:var(--purple);padding:.45rem 1rem;font-size:.75rem;letter-spacing:.12em}.site-header{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:2rem 5vw;border-bottom:1px solid var(--line);gap:2rem}.brand{font-family:Georgia,serif;letter-spacing:.07em;font-size:1.8rem;line-height:1.1;white-space:nowrap}.brand span{display:block;font: .75rem/1.7 Arial,sans-serif;letter-spacing:.32em;text-align:center;margin-top:.45rem}.site-header nav{display:flex;gap:2.1rem;font-size:.9rem}.site-header nav a{padding:.3rem 0;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--purple);border-bottom-color:var(--purple)}main{max-width:1440px;margin:auto}.eyebrow{font-size:.8rem;letter-spacing:.17em;font-weight:600;color:var(--purple);margin-bottom:1.5rem}.lead{font-size:1.1rem;max-width:40rem;color:var(--muted);line-height:1.8}.hero{padding:4.5rem 5vw 6rem;display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}.hero-copy{padding:2rem 0}.hero .lead{max-width:25rem;margin:1.7rem 0 2rem}.button{background:var(--brand-purple);color:white;display:inline-flex;gap:2.5rem;align-items:center;padding:1rem 1.7rem;font-size:.9rem}.button:hover{background:var(--brand-hover)}.photo-slot{min-height:320px;background:#e8e5ed;border:1px solid #ded9e8;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:1.5rem;color:#706677}.photo-slot span{font:italic 1.4rem Georgia,serif}.photo-slot small{font-size:.75rem;letter-spacing:.14em;margin-top:.7rem}.hero-photo{height:650px;max-height:70vh;background:#e3dded}.work{padding:4rem 5vw 6rem;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.section-heading p{color:var(--muted)}.section-heading .eyebrow{color:var(--purple)}.work-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem}.work-grid>a:nth-child(2){padding-top:5rem}.work-grid .photo-slot{height:410px}.work-grid h3{margin-top:1.2rem;font-size:1.65rem;display:flex;justify-content:space-between}.work-grid h3 span{font: .85rem Arial;color:var(--purple)}.closing{text-align:center;padding:6rem 2rem;background:#f0edf6}.closing h2{margin-bottom:2rem}footer{max-width:1440px;margin:auto;padding:3rem 5vw;display:flex;align-items:center;justify-content:space-between;gap:2rem;color:var(--muted)}footer .brand{color:var(--ink);font-size:1.4rem}footer p{font-size:.85rem;margin:0}.page-intro{padding:5rem 5vw 3rem;max-width:1150px}.page-intro h1{font-size:clamp(3.2rem,6vw,6rem)}.category-nav{display:flex;gap:2rem;margin:0 5vw 3rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--purple)}.gallery-section{padding:2rem 5vw 5rem}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}.gallery .wide{grid-column:span 2;min-height:440px}.service-list{padding:0 5vw 3rem}.service-list article{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 3fr;gap:2rem;padding:3.5rem 0}.service-number{color:var(--purple);font-size:1rem}.service-list article p{max-width:40rem;color:var(--muted)}.text-link{color:var(--purple);border-bottom:1px solid var(--purple);padding-bottom:.35rem}.note{margin:0 5vw 5rem;padding:2.5rem;background:#f0edf6;max-width:900px}.note p{margin:0;max-width:45rem}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding:1rem 5vw 6rem;align-items:center}.about-photo{height:580px}.about-grid p{color:var(--muted)}.about-grid .eyebrow{color:var(--purple)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;padding:1rem 5vw 6rem}.contact-details>a{display:block;width:fit-content;margin-bottom:1rem}.contact-details .email{font-size:clamp(1rem,2vw,1.5rem);overflow-wrap:anywhere}.contact-details p{margin-top:2rem}.contact-note{padding:2.8rem;background:#f0edf6}.contact-note h2{font-size:2.3rem}.contact-note ul{padding-left:1.25rem;margin-bottom:2rem}.small{font-size:.85rem;margin:1rem 0 0;color:var(--muted)}.skip{position:absolute;top:-100px;background:white;padding:1rem;z-index:10}.skip:focus{top:0}@media(max-width:760px){.site-header{flex-direction:column;gap:1.5rem;padding:1.8rem 5vw}.site-header nav{gap:1.15rem;flex-wrap:wrap;justify-content:center}.hero{grid-template-columns:1fr;padding-top:2rem;gap:1rem}.hero h1{font-size:clamp(3.4rem,12vw,5rem)}.hero-photo{height:440px;max-height:none}.section-heading{display:block}.work-grid{grid-template-columns:1fr;gap:2rem}.work-grid>a:nth-child(2){padding-top:0}.work-grid .photo-slot{height:350px}.work{padding-top:3rem}.closing{padding:4rem 5vw}footer{flex-direction:column;text-align:center;padding:2.5rem 5vw;gap:1.4rem}.page-intro{padding-top:3rem}.service-list article{grid-template-columns:2rem 1fr;gap:1rem;padding:2.5rem 0}.gallery{gap:1rem}.gallery .photo-slot{min-height:250px}.gallery .wide{min-height:320px}.gallery .photo-slot span{font-size:1.1rem}.gallery .photo-slot small{font-size:.75rem;letter-spacing:.03em}.about-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}.about-photo{height:400px}.contact-note{padding:2rem}.note{padding:2rem}.draft-note{font-size:.75rem;letter-spacing:.04em}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.photograph{margin:0;min-width:0;overflow:hidden}.photograph img{display:block;width:100%;height:auto}.photograph.hero-photo{height:auto;max-height:none;background:transparent}.photograph.hero-photo img{object-fit:contain}.work-grid .photograph img{aspect-ratio:3/2;object-fit:cover}.gallery{align-items:start}.gallery .photograph.wide{grid-column:span 2}.gallery .photograph img{height:auto;object-fit:contain}.about-grid.text-only{display:block;max-width:920px}.about-grid.text-only>div{border-top:1px solid var(--line);padding-top:3rem}@media(max-width:760px){.gallery{grid-template-columns:1fr}.gallery .photograph.wide{grid-column:auto}.photograph.hero-photo{height:auto}}
/* A second header row keeps the theme control directly beneath Services. */
.site-header nav{display:grid;grid-template-columns:repeat(5,max-content);column-gap:2.1rem;row-gap:.7rem;align-items:center}
.theme-toggle{grid-column:3;grid-row:2;justify-self:center;display:inline-flex;align-items:center;gap:.45rem;border:0;padding:.2rem 0;background:transparent;color:var(--ink);font:inherit;font-size:.875rem;white-space:nowrap;cursor:pointer}
.theme-toggle:focus-visible{outline:3px solid var(--purple);outline-offset:5px}
.theme-track{display:inline-flex;align-items:center;width:1.9rem;height:1.1rem;padding:.15rem;border-radius:2rem;background:#77717d}
.theme-track>span{display:block;width:.8rem;height:.8rem;border-radius:50%;background:#eee}
.theme-toggle[aria-checked="true"] .theme-track{background:var(--brand-purple)}
.theme-toggle[aria-checked="true"] .theme-track>span{transform:translateX(.8rem)}
html[data-theme="dark"]{color-scheme:dark;--paper:#17151b;--ink:#d0cdd3;--muted:#b1aab9;--purple:#ad86e6;--line:#413947}
html[data-theme="dark"] .closing,html[data-theme="dark"] .note,html[data-theme="dark"] .contact-note{background:#231e2c}
html[data-theme="dark"] .draft-note{background:#291f38;color:var(--purple)}
html[data-theme="dark"] .button{background:var(--brand-purple);color:#e0dce5}
html[data-theme="dark"] .button:hover{background:var(--brand-hover)}
html[data-theme="dark"] .skip{background:#231e2c;color:var(--ink)}
@media(max-width:760px){.site-header nav{column-gap:clamp(.65rem,2.8vw,1.15rem);row-gap:.6rem}.theme-toggle{font-size:.875rem}}
@media(max-width:350px){.site-header nav{grid-template-columns:repeat(3,max-content)}.theme-toggle{grid-column:3;grid-row:2}.site-header nav>a:nth-child(4){grid-column:1;grid-row:2}.site-header nav>a:nth-child(5){grid-column:2;grid-row:2}}
/* Simple corner lines using the shared theme accent. */
:root{--frame-gutter:76px}
body{padding-inline:var(--frame-gutter)}
.gothic-frame{position:fixed;inset:6px;z-index:5;pointer-events:none}
.frame-corner{position:absolute;width:207px;height:207px;border-top:6px solid var(--purple);border-left:6px solid var(--purple)}
.top-left{top:0;left:0}
.top-right{top:0;right:0;transform:scaleX(-1)}
.bottom-right{bottom:0;right:0;transform:scale(-1)}
.bottom-left{bottom:0;left:0;transform:scaleY(-1)}

@media(max-width:760px){:root{--frame-gutter:36px}.gothic-frame{inset:3px}.frame-corner{width:98.9px;height:98.9px}.site-header nav{column-gap:clamp(.45rem,2vw,1rem)}}
@media(max-width:430px){.site-header nav{grid-template-columns:repeat(3,max-content)}.theme-toggle{grid-column:3;grid-row:2}.site-header nav>a:nth-child(4){grid-column:1;grid-row:2}.site-header nav>a:nth-child(5){grid-column:2;grid-row:2}.hero h1{font-size:clamp(2.6rem,11vw,3.4rem)}}
@media print{body{padding-inline:0}.gothic-frame{display:none}}
.service-list article .package-price{color:var(--purple);font-size:1.5rem;margin-bottom:1.25rem}
.package-details{padding-left:1.2rem;margin:0 0 1.5rem;color:var(--ink)}
.package-details li{margin-bottom:.35rem}
.contact-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.copy-email{font:inherit;font-size:.9rem;color:var(--purple);background:transparent;border:1px solid var(--purple);padding:.9rem 1.1rem;cursor:pointer}
.copy-email:focus-visible{outline:3px solid var(--purple);outline-offset:4px}
.contact-actions .text-link{font-size:.9rem}
.copy-status:empty{display:none}
.gallery-invite{margin-top:2.5rem;padding:2rem 0;border-top:1px solid var(--line)}
.gallery-invite p{color:var(--muted)}
.wedding-back{padding:0 5vw 2rem}
.wedding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:0 5vw 5rem;align-items:start}
.wedding-tile{display:block;overflow:hidden;background:var(--paper)}
.wedding-tile img{display:block;width:100%;height:auto}
.photo-dialog{border:0;padding:1rem;background:#17151b;color:#d0cdd3;width:96vw;max-width:1600px;height:94dvh;max-height:96dvh}
.photo-dialog[open]{display:flex;flex-direction:column}
.photo-dialog::backdrop{background:rgba(0,0,0,.9)}
.viewer-bar,.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-shrink:0}
.viewer-bar p,.viewer-controls p{margin:0;font-size:.875rem}
.photo-dialog button{font:inherit;font-size:.9rem;padding:.7rem 1rem;background:#281f36;color:#e0dce5;border:1px solid #ad86e6;cursor:pointer}
.photo-dialog button:focus-visible{outline:3px solid #ad86e6;outline-offset:2px}
.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:1rem 0}
.viewer-image{display:block;max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain}
.viewer-open{overflow:hidden}
@media(max-width:900px){.wedding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.wedding-grid{grid-template-columns:1fr}.viewer-status{max-width:40%;font-size:.75rem}.photo-dialog{padding:.65rem}.photo-dialog button{padding:.65rem}}
/* Display the original embedded card artwork, centered on the brand mark. */
.brand-art{position:relative;display:block;width:218px;aspect-ratio:1.85;flex-shrink:0;overflow:hidden;background:#090909;border-radius:3px}
.brand-art img{position:absolute;display:block;max-width:none;width:220%;height:auto;left:50%;top:50%;transform:translate(-50%,-50%)}
footer .brand-art{width:176px}
@media(max-width:760px){.brand-art{width:200px}footer .brand-art{width:176px}}

/* Keep the footer logo at the true horizontal center. */
footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
footer .brand-art{justify-self:center}
footer p:last-child{justify-self:end;text-align:right}
@media(max-width:760px){footer{grid-template-columns:1fr}footer p:last-child{justify-self:center;text-align:center}}

/* Let the existing content fill more of the desktop canvas. */
@media(min-width:761px){
 main,.site-header,footer{max-width:1680px}
 .site-header,footer{padding-inline:3vw}
 .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:3vw;padding:3rem 3vw 4rem}
 .hero-copy{padding:1rem 0}
 .hero h1{font-size:clamp(2.7rem,4.8vw,6rem)}
 .hero .lead{max-width:30rem}
 .work{padding:3rem 3vw 4rem}
 .gallery-section{padding-inline:3vw}
 .wedding-grid{padding-inline:3vw}
 .service-list{padding-inline:3vw}
 .closing{padding-block:4rem}
}

/* Keep navigation usable in portrait tablets and phone landscape views. */
@media(min-width:761px) and (max-width:1024px){
 .site-header{flex-direction:column;gap:1.25rem}
}
/* Keep the full page within the phone viewport without hiding overflow. */
@media(max-width:760px){
 :root{--frame-gutter:18px}
 .site-header{padding-block:1.5rem;gap:1rem}
 .site-header nav{width:100%;max-width:32rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .5rem}
 .site-header nav a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;white-space:normal;overflow-wrap:anywhere;text-align:center}
 .site-header nav>a:nth-child(4){grid-column:1;grid-row:2}
 .site-header nav>a:nth-child(5){grid-column:2;grid-row:2}
 .theme-toggle{grid-column:3;grid-row:2;justify-self:stretch;justify-content:center;min-width:0;min-height:44px;flex-wrap:wrap;white-space:normal;line-height:1.25;text-align:center}
 .theme-track{flex-shrink:0}
 .brand-art{max-width:100%}
 .hero,.work-grid,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}
 .hero-copy,.work-grid>a,.about-grid>div,.contact-grid>div,.service-list article>div{min-width:0}
 .hero h1,.page-intro h1{font-size:clamp(2rem,9vw,3.5rem);overflow-wrap:anywhere}
 h2,h3,.lead,.contact-details a,.copy-status{overflow-wrap:anywhere}
 .hero{padding-bottom:3rem}
 .hero-copy{padding:1rem 0}
 .category-nav{flex-wrap:wrap;gap:.5rem 1.25rem}
 .category-nav a,.text-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere}
 .button{max-width:100%;gap:1rem;padding:.9rem 1rem;min-height:44px;overflow-wrap:anywhere}
 .button>span{flex-shrink:0}
 .contact-note,.note{padding:1.25rem}
 .contact-actions{align-items:stretch}
 .contact-actions .button,.contact-actions .copy-email{justify-content:center;text-align:center}
 .copy-email{max-width:100%;min-height:44px;white-space:normal;overflow-wrap:anywhere}
 .gallery .photograph.wide{min-height:0}
 footer{justify-items:center}
 footer p{max-width:100%;overflow-wrap:anywhere}
 .viewer-bar,.viewer-controls{flex-wrap:wrap;gap:.5rem}
 .viewer-status{overflow-wrap:anywhere}
 .photo-dialog button{min-height:44px;white-space:normal}
}
@media(max-width:540px){
 .service-list article{grid-template-columns:minmax(0,1fr);gap:.75rem}
 .theme-toggle{flex-direction:column;gap:.2rem;padding:.35rem 0}
}

/* Preserve full event-photo framing, with the group portrait leading. */
.event-gallery .event-lead{grid-column:1/-1;width:100%;max-width:760px;justify-self:center}
@media(max-width:760px){.event-gallery .event-lead{grid-column:auto}}
