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

:root { --navy:#101a2e; --navy-soft:#172640; --ink:#172034; --gold:#bf9861; --orange:#cf6a3c; --cream:#f5f0e7; --sand:#e7ddcf; --white:#fffdf8; font-family:'DM Sans',sans-serif; color:var(--ink); background:var(--cream); font-synthesis:none; text-rendering:optimizeLegibility; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; min-width:320px; overflow-x:hidden; } button, input, select, textarea { font:inherit; } a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; } h1,h2,h3,p,blockquote,figure { margin-top:0; } .section-pad { padding:clamp(76px,10vw,150px) 6vw; }
.brand { font:600 clamp(25px,2.2vw,32px)/1 'Playfair Display',serif; letter-spacing:0; }.brand span { color:var(--gold); font:500 10px 'DM Mono',monospace; vertical-align:top; margin-left:2px; }
.site-header { width:100%; height:82px; padding:0 4.5vw; display:flex; align-items:center; gap:25px; position:fixed; top:0; z-index:20; color:var(--white); border-bottom:1px solid rgba(255,255,255,.24); transition:background .35s,border .35s, height .35s; }.site-header.is-scrolled { height:66px; background:var(--navy); border-color:rgba(191,152,97,.38); }.desktop-nav { flex:1; display:flex; justify-content:center; gap:clamp(14px,1.65vw,30px); }.desktop-nav a,.nav-contact,.mobile-nav a { font:500 9px/1 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.desktop-nav a { padding:8px 0; opacity:.87; position:relative; }.desktop-nav a:after { content:''; position:absolute; left:0; bottom:2px; width:100%; transform:scaleX(0); transform-origin:right; border-top:1px solid var(--gold); transition:transform .25s; }.desktop-nav a:hover:after { transform:scaleX(1); transform-origin:left; }.nav-contact { color:#f7e3c6; padding:10px 0; border-bottom:1px solid var(--gold); white-space:nowrap; }.nav-contact span { color:var(--gold); font-size:14px; }.menu-toggle,.mobile-nav { display:none; }
.hero { height:max(720px,100vh); min-height:720px; position:relative; overflow:hidden; color:var(--white); background:var(--navy); }.hero-photo { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:center; animation:hero-reveal 1.4s ease-out both; }.hero-scrim { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,18,33,.84) 0%,rgba(10,18,33,.48) 47%,rgba(10,18,33,.1) 100%); }.hero-content { position:relative; z-index:1; min-height:100%; padding:clamp(150px,21vh,220px) 9vw 7vh; display:flex; flex-direction:column; justify-content:space-between; }.eyebrow,.section-kicker { font:500 10px/1.4 'DM Mono',monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); }.eyebrow.light { color:#e9c088; }.hero h1,.display-copy,h2,.quote-section blockquote { font-family:'Playfair Display',serif; font-weight:500; letter-spacing:0; }.hero h1 { max-width:980px; margin:18px 0 48px; font-size:clamp(57px,7.5vw,116px); line-height:.91; }.hero h1 em,h2 em,.display-copy em,.quote-section em { color:#e2ae75; }.hero-lower { display:flex; align-items:flex-end; gap:50px; }.hero-lower>p { width:295px; margin:0; color:#eae9e6; font-size:14px; line-height:1.65; }.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }.button { min-height:45px; padding:14px 17px; border:1px solid transparent; display:inline-flex; justify-content:space-between; align-items:center; gap:28px; font:500 10px/1 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:transform .25s,background .25s,color .25s,border .25s; }.button:hover { transform:translateY(-3px); }.button-gold { background:var(--gold); color:var(--navy); }.button-gold:hover { background:#e2bd87; }.button-ghost { color:var(--white); border-color:rgba(255,255,255,.7); }.button-ghost:hover { background:var(--white); color:var(--navy); }.button-navy { background:var(--navy); color:var(--white); }.hero-signature { position:absolute; bottom:45px; right:4.5vw; writing-mode:vertical-rl; font:500 10px 'DM Mono',monospace; letter-spacing:.11em; color:rgba(255,255,255,.75); }
.manifesto { background:var(--cream); }.section-kicker { display:flex; align-items:center; gap:9px; color:var(--ink); }.section-kicker span { width:38px; border-top:1px solid var(--orange); }.manifesto-grid { margin-top:55px; display:grid; grid-template-columns:minmax(260px,1.08fr) minmax(300px,.92fr); align-items:center; gap:clamp(45px,10vw,160px); }.display-copy { margin-bottom:34px; font-size:clamp(47px,5vw,77px); line-height:1.01; }.manifesto-copy>p:not(.display-copy) { max-width:470px; font-size:16px; line-height:1.7; }.inline-link { margin-top:19px; display:inline-flex; gap:20px; border-bottom:1px solid currentColor; padding-bottom:9px; font:500 10px 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; }.inline-link span { color:var(--orange); font-size:15px; line-height:.6; }.editorial-frame { margin:0; position:relative; aspect-ratio:4/5; max-width:490px; justify-self:end; overflow:hidden; background:var(--navy); }.editorial-frame:before { content:''; position:absolute; z-index:1; inset:18px; border:1px solid rgba(247,235,214,.7); pointer-events:none; }.editorial-frame img { width:100%; height:100%; object-fit:cover; }.editorial-frame figcaption { position:absolute; z-index:2; bottom:32px; left:36px; color:var(--white); font:500 9px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.services { background:var(--sand); }.section-head { display:flex; align-items:end; justify-content:space-between; gap:45px; margin-bottom:55px; }.section-head h2 { margin:13px 0 0; font-size:clamp(48px,5.6vw,84px); line-height:.93; }.section-head>p { max-width:265px; margin:0 7vw 7px 0; font-size:14px; line-height:1.65; }.service-editorial-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:16px; align-items:end; }.service-tile { position:relative; min-height:490px; overflow:hidden; background:var(--navy); color:var(--white); }.service-wide { min-height:625px; }.service-tile>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }.service-tile:hover>img { transform:scale(1.055); }.service-tile:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,19,34,.92),rgba(12,19,34,0) 65%); }.tile-overlay { position:absolute; z-index:1; inset:auto 0 0; padding:30px; }.tile-overlay>span,.service-note>span { color:#edba7e; font:500 10px 'DM Mono',monospace; }.tile-overlay h3,.service-note h3,.catalog-card h3 { margin:17px 0; font:500 clamp(29px,2.7vw,42px)/.97 'Playfair Display',serif; }.tile-overlay p { max-width:260px; margin:0; font-size:13px; line-height:1.55; color:#f2eee6; }.tile-overlay a { position:absolute; right:30px; bottom:34px; color:#f0bd81; font-size:21px; }.service-note { min-height:390px; padding:35px 30px; background:var(--navy); color:var(--white); display:flex; flex-direction:column; position:relative; overflow:hidden; }.service-note h3 { font-size:clamp(31px,3.1vw,46px); }.service-note p { max-width:285px; font-size:14px; line-height:1.55; }.service-note .inline-link { margin-top:auto; color:#f5eadb; width:max-content; }.service-note i { position:absolute; right:22px; top:17px; font:italic 88px 'Playfair Display',serif; color:rgba(191,152,97,.55); }
.wedding-intro { min-height:690px; display:grid; grid-template-columns:1.06fr .94fr; background:var(--navy); color:var(--white); }.wedding-visual { min-height:690px; overflow:hidden; }.wedding-visual img { width:100%; height:100%; object-fit:cover; }.wedding-copy { padding:clamp(80px,10vw,165px) clamp(35px,9vw,145px) 70px; }.wedding-copy h2,.consulting h2,.contact-intro h2 { margin:16px 0 28px; font-size:clamp(51px,5vw,80px); line-height:.94; }.wedding-copy>p:not(.eyebrow) { max-width:360px; color:#e2e5e9; font-size:15px; line-height:1.7; margin-bottom:35px; }
.wedding-catalog { background:var(--cream); }.catalog-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(16,26,46,.25); border-left:1px solid rgba(16,26,46,.25); }.catalog-card { min-height:255px; padding:24px; border-right:1px solid rgba(16,26,46,.25); border-bottom:1px solid rgba(16,26,46,.25); position:relative; transition:background .3s,color .3s; }.catalog-card:hover { background:var(--navy); color:var(--white); }.catalog-number,.catalog-label { display:block; font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.catalog-label { color:var(--orange); margin-top:30px; }.catalog-card h3 { font-size:29px; margin:14px 0; }.catalog-card p { max-width:250px; margin:0; font-size:13px; line-height:1.55; }.card-arrow { position:absolute; right:23px; bottom:21px; color:var(--gold); font-size:20px; }.center-action { padding-top:45px; text-align:center; }
.consulting { background:#263c5c; color:var(--white); }.consulting-top { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:end; }.consulting-top>p { max-width:370px; margin:0 0 10px; color:#e9e7e3; line-height:1.7; font-size:15px; }.process { margin:80px 0 52px; display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid rgba(239,218,181,.48); }.process article { min-height:210px; padding:22px 18px 16px 0; border-right:1px solid rgba(239,218,181,.28); }.process article:not(:first-child) { padding-left:18px; }.process span { color:#e8bd84; font:500 10px 'DM Mono',monospace; }.process h3 { margin:50px 0 11px; font:500 25px 'Playfair Display',serif; }.process p { margin:0; color:#e9ebec; font-size:12px; line-height:1.55; }.outline-link { display:inline-flex; gap:35px; padding:12px 0; border-bottom:1px solid var(--gold); color:var(--white); font:500 10px 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; }.outline-link span { color:#e8bd84; font-size:15px; }
.gallery { background:var(--cream); }.gallery-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; grid-auto-rows:255px; gap:13px; }.gallery-item { position:relative; border:0; padding:0; overflow:hidden; background:var(--navy); cursor:zoom-in; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }.gallery-item:hover img { transform:scale(1.055); }.gallery-item span { position:absolute; inset:auto 14px 14px; color:var(--white); opacity:0; text-align:left; font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; transition:opacity .25s; }.gallery-item:hover span { opacity:1; }.item-1 { grid-row:span 2; }.item-2 { grid-column:span 2; }.item-5 { grid-column:span 2; }.lightbox { width:min(900px,90vw); padding:0; border:0; background:var(--navy); color:var(--white); }.lightbox::backdrop { background:rgba(7,13,23,.86); }.lightbox img { max-height:80vh; width:100%; object-fit:contain; }.lightbox button { width:36px; height:36px; position:absolute; top:10px; right:10px; z-index:1; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:var(--navy); color:var(--white); font-size:23px; cursor:pointer; }.lightbox p { padding:12px 16px; margin:0; font:500 10px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.quote-section { min-height:500px; display:grid; grid-template-columns:1fr 1fr; background:var(--orange); color:var(--white); }.quote-image { min-height:500px; }.quote-image img { width:100%; height:100%; object-fit:cover; }.quote-section blockquote { align-self:center; margin:0; padding:75px 8vw; font-size:clamp(41px,4.7vw,73px); line-height:1.01; }.quote-section em { color:var(--navy); }.testimonials { background:var(--sand); }.testimonial-grid { margin-top:45px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.testimonial-grid article { min-height:310px; padding:30px; border-top:1px solid var(--ink); display:flex; flex-direction:column; }.stars { color:var(--orange); font-size:12px; letter-spacing:3px; }.testimonial-grid blockquote { margin:45px 0 25px; font:500 clamp(23px,2.1vw,32px)/1.13 'Playfair Display',serif; }.testimonial-grid p { margin:auto 0 0; font:500 10px 'DM Mono',monospace; letter-spacing:.04em; text-transform:uppercase; }
.contact-section { display:grid; grid-template-columns:.88fr 1.12fr; padding:clamp(78px,10vw,150px) 9vw; gap:clamp(55px,9vw,140px); background:var(--navy); color:var(--white); }.contact-intro>p:not(.eyebrow) { max-width:340px; color:#e6e7ea; line-height:1.7; font-size:15px; }.contact-details { margin-top:43px; display:flex; flex-direction:column; align-items:flex-start; gap:11px; }.contact-details a { font:500 11px 'DM Mono',monospace; letter-spacing:.07em; border-bottom:1px solid var(--gold); padding-bottom:5px; }.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:23px 18px; }.contact-form label { color:#f2d7b3; font:500 9px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; display:block; color:var(--white); padding:13px 0 10px; border:0; border-bottom:1px solid rgba(255,255,255,.5); border-radius:0; outline:0; background:transparent; font:400 14px 'DM Sans',sans-serif; text-transform:none; letter-spacing:0; }.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--gold); }.contact-form option { color:var(--ink); }.contact-form textarea { resize:vertical; }.form-full { grid-column:1/-1; }.form-action { display:flex; align-items:center; gap:18px; }.form-status { margin:0; color:#e8bd84; font-size:12px; letter-spacing:0; text-transform:none; }.site-footer { padding:55px 4.5vw 25px; display:grid; grid-template-columns:1.3fr .7fr .7fr; gap:35px; background:#0b1323; color:var(--white); }.site-footer>div p { margin:20px 0 0; font-size:13px; line-height:1.55; color:#c3c8d0; }.site-footer nav { display:flex; flex-direction:column; gap:12px; }.site-footer nav a { width:max-content; border-bottom:1px solid transparent; font:500 10px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.site-footer nav a:hover { border-color:var(--gold); }.copyright { grid-column:1/-1; margin:45px 0 0; padding-top:17px; border-top:1px solid rgba(255,255,255,.17); color:#b7bec9; font:400 10px 'DM Mono',monospace; letter-spacing:.08em; }.copyright a { color:#ecc188; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }.reveal.is-visible { opacity:1; transform:none; } @keyframes hero-reveal { from { transform:scale(1.08); } to { transform:scale(1); } }
@media (max-width:1050px) { .desktop-nav { gap:14px; }.desktop-nav a { font-size:8px; }.nav-contact { display:none; }.catalog-grid { grid-template-columns:repeat(3,1fr); }.process { grid-template-columns:repeat(3,1fr); }.process article:nth-child(3n) { border-right:0; }.gallery-grid { grid-auto-rows:210px; }.contact-section { grid-template-columns:1fr; } }
@media (max-width:760px) { .section-pad { padding:78px 24px; }.site-header { height:68px; padding:0 22px; }.site-header.is-scrolled { height:60px; }.desktop-nav { display:none; }.menu-toggle { display:flex; width:37px; height:35px; padding:7px 0; border:0; background:transparent; flex-direction:column; justify-content:center; gap:7px; cursor:pointer; }.menu-toggle span { display:block; width:29px; border-top:1px solid var(--white); transition:transform .25s; }.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-nav { display:none; position:absolute; top:68px; left:0; right:0; padding:25px 24px 32px; background:var(--navy); border-top:1px solid rgba(191,152,97,.3); box-shadow:0 14px 24px rgba(0,0,0,.25); }.mobile-nav.is-open { display:flex; flex-direction:column; gap:20px; }.mobile-nav a { color:#fff; font-size:11px; }.hero { height:760px; min-height:650px; }.hero-photo { object-position:57% center; }.hero-scrim { background:linear-gradient(90deg,rgba(10,18,33,.75),rgba(10,18,33,.19)),linear-gradient(0deg,rgba(10,18,33,.7),transparent 45%); }.hero-content { padding:135px 28px 44px; }.hero h1 { font-size:clamp(51px,15vw,70px); margin-bottom:20px; }.hero-lower { gap:22px; align-items:flex-end; }.hero-lower>p { width:54%; font-size:12px; line-height:1.55; }.hero-actions { width:45%; flex-direction:column; align-items:stretch; }.button { min-height:42px; padding:12px; font-size:8px; gap:9px; }.hero-signature { display:none; }.manifesto-grid,.wedding-intro,.quote-section { grid-template-columns:1fr; }.manifesto-grid { margin-top:40px; gap:40px; }.display-copy { font-size:46px; }.manifesto-copy>p:not(.display-copy) { font-size:15px; }.editorial-frame { width:100%; max-width:none; justify-self:stretch; aspect-ratio:5/6; }.section-head { display:block; margin-bottom:35px; }.section-head h2 { font-size:51px; }.section-head>p { margin:22px 0 0; max-width:330px; }.service-editorial-grid { grid-template-columns:1fr; gap:12px; }.service-tile,.service-wide { min-height:490px; }.service-note { min-height:380px; }.wedding-visual { min-height:390px; }.wedding-copy { padding:74px 28px; }.wedding-copy h2,.consulting h2,.contact-intro h2 { font-size:52px; }.wedding-catalog { padding-left:15px; padding-right:15px; }.wedding-catalog .section-head { padding:0 9px; }.catalog-grid { grid-template-columns:1fr 1fr; }.catalog-card { min-height:245px; padding:18px; }.catalog-card h3 { font-size:25px; }.catalog-label { margin-top:25px; }.consulting-top { grid-template-columns:1fr; gap:20px; }.process { margin:52px 0 38px; grid-template-columns:1fr 1fr; }.process article { min-height:185px; padding:16px 12px 12px 0; }.process article:nth-child(2n) { padding-left:12px; border-right:0; }.process h3 { margin-top:34px; font-size:22px; }.process p { font-size:11px; }.gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:180px; gap:8px; }.item-1,.item-2,.item-5 { grid-column:auto; grid-row:auto; }.item-1 { grid-row:span 2; }.item-2 { grid-column:span 1; }.item-5 { grid-column:span 2; }.gallery-item span { opacity:1; font-size:8px; }.quote-image { min-height:310px; }.quote-section blockquote { padding:65px 28px; font-size:45px; }.testimonial-grid { grid-template-columns:1fr; gap:0; }.testimonial-grid article { min-height:240px; padding:25px 0; }.testimonial-grid blockquote { margin:30px 0; font-size:27px; }.contact-section { padding:78px 28px; gap:55px; }.contact-form { grid-template-columns:1fr; gap:21px; }.form-full { grid-column:auto; }.form-action { flex-wrap:wrap; }.site-footer { padding:48px 25px 24px; grid-template-columns:1fr 1fr; gap:32px 18px; }.site-footer>div { grid-column:1/-1; }.copyright { margin-top:22px; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } .reveal { opacity:1; transform:none; } }
