*,*::before,*::after{box-sizing:border-box}:root{--bg:#0f1b2d;--bg-alt:#0c1626;--bg-deep:#080e18;--white:#ffffff;--white-90:rgba(255,255,255,.9);--white-80:rgba(255,255,255,.8);--white-70:rgba(255,255,255,.7);--white-60:rgba(255,255,255,.6);--white-50:rgba(255,255,255,.5);--white-40:rgba(255,255,255,.4);--white-30:rgba(255,255,255,.3);--white-20:rgba(255,255,255,.2);--white-10:rgba(255,255,255,.1);--white-05:rgba(255,255,255,.05);--font-serif:'Cormorant Garamond', Georgia, serif;--font-sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--container:1280px;--container-medium:1024px;--container-narrow:768px}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white-90);font-family:var(--font-sans);font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em;margin:0}p{margin:0}ul{margin:0;padding:0;list-style:none}button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit}input,select,textarea{font-family:inherit;font-size:1rem;color:inherit}::selection{background:var(--white-20);color:var(--white)}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 1.5rem}.container-medium{max-width:var(--container-medium)}.container-narrow{max-width:var(--container-narrow)}.text-center{text-align:center}.mt-12{margin-top:3rem}.mb-16{margin-bottom:4rem}.mb-8{margin-bottom:2rem}.hide-mobile{display:none}@media (min-width:768px){.hide-mobile{display:inline-block}}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-main{flex-grow:1;display:flex;flex-direction:column;padding-top:5rem}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;padding:1.5rem 0;border-bottom:1px solid #fff0;background:#fff0;transition:background-color .5s ease,padding .5s ease,backdrop-filter .5s ease,border-color .5s ease}.site-header.is-scrolled{background:rgb(15 27 45 / .9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--white-05);padding:1rem 0}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-left,.nav-right{display:none;gap:2rem;align-items:center;flex:1}.nav-right{justify-content:flex-end}@media (min-width:768px){.nav-left,.nav-right{display:flex}}.nav-link{font-size:.8125rem;text-transform:uppercase;letter-spacing:.18em;color:var(--white-50);transition:color .3s ease;white-space:nowrap}.nav-link:hover,.nav-link.is-active{color:var(--white)}.nav-logo{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.15em;color:var(--white);text-align:center;white-space:nowrap}@media (min-width:768px){.nav-logo{font-size:1.75rem}}.nav-logo img{max-height:48px;width:auto;margin:0 auto}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--white-80);position:relative}@media (min-width:768px){.mobile-menu-toggle{display:none}}.icon-menu,.icon-close{position:absolute;width:22px;height:16px}.icon-menu::before,.icon-menu::after,.icon-menu span,.icon-close::before,.icon-close::after{content:'';position:absolute;left:0;width:100%;height:2px;background:currentColor}.icon-menu::before{top:0}.icon-menu::after{bottom:0}.icon-menu{border-top:2px solid currentColor;border-bottom:2px solid currentColor;height:14px}.icon-menu::before,.icon-menu::after{display:none}.icon-close{display:none}.icon-close::before,.icon-close::after{top:50%;transform-origin:center}.icon-close::before{transform:translateY(-50%) rotate(45deg)}.icon-close::after{transform:translateY(-50%) rotate(-45deg)}.mobile-menu-toggle[aria-expanded="true"] .icon-menu{display:none}.mobile-menu-toggle[aria-expanded="true"] .icon-close{display:block}.mobile-menu{position:fixed;top:72px;left:0;right:0;bottom:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;transform:translateY(-100%);transition:transform .5s ease-in-out}.mobile-menu.is-open{transform:translateY(0)}@media (min-width:768px){.mobile-menu{display:none}}.mobile-nav-link{font-family:var(--font-serif);font-size:1.875rem;letter-spacing:.1em;color:var(--white-50);transition:color .3s ease}.mobile-nav-link:hover,.mobile-nav-link.is-active{color:var(--white)}body.mobile-menu-is-open{overflow:hidden}.site-footer{padding:5rem 0;margin-top:auto;border-top:1px solid var(--white-05)}.footer-inner{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:2rem;text-align:center}@media (min-width:768px){.footer-inner{flex-direction:row;text-align:left}}.footer-name{font-size:1.5rem;letter-spacing:.15em;color:var(--white);margin-bottom:.5rem}.footer-role{font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:var(--white-50)}.footer-links{display:flex;gap:2rem}.footer-link{font-size:.8125rem;text-transform:uppercase;letter-spacing:.18em;color:var(--white-50);transition:color .3s ease}.footer-link:hover{color:var(--white)}.footer-copy{font-size:.75rem;letter-spacing:.05em;color:var(--white-30)}@media (min-width:768px){.footer-copy{text-align:right}}.btn{display:inline-block;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;transition:all .3s ease;cursor:pointer;border:1px solid #fff0}.btn-outline{color:var(--white);border-color:var(--white-40);padding:1rem 2rem}.btn-outline:hover{background:var(--white);color:var(--bg)}.btn-outline-strong{color:var(--white);border-color:var(--white);padding:1.25rem 2.5rem}.btn-outline-strong:hover{background:var(--white);color:var(--bg)}.btn-ghost{color:var(--white-60);padding:1rem}.btn-ghost:hover{color:var(--white)}.btn-solid{background:var(--white);color:var(--bg);padding:1.25rem 2.5rem;font-weight:500;border:none}.btn-solid:hover{background:var(--white-90)}.btn-submit{width:100%;height:3.5rem;padding:0 2.5rem}@media (min-width:768px){.btn-submit{width:auto}}.link-underline{display:inline-block;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;color:var(--white-50);border-bottom:1px solid var(--white-20);padding-bottom:.5rem;transition:color .3s ease,border-color .3s ease}.link-underline:hover{color:var(--white);border-color:var(--white)}.section{padding:6rem 1.5rem;background:var(--bg)}.section-alt{background:var(--bg-alt);padding:6rem 1.5rem}.section-tight{padding:3rem 1.5rem}.section-bordered{border-top:1px solid var(--white-05);border-bottom:1px solid var(--white-05)}.section-cta{padding:8rem 1.5rem;background:var(--bg-deep);position:relative}.section-title{font-size:1.875rem;color:var(--white);letter-spacing:.02em}@media (min-width:768px){.section-title{font-size:2.25rem}}.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:4rem}.hero-section{position:relative;height:100vh;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-section--short{height:70vh}@media (min-width:768px){.hero-section--short{height:80vh}}.hero-media{position:absolute;inset:0;z-index:0}.hero-image{width:100%;height:100%;object-fit:cover;opacity:.6}.hero-image--light{opacity:.5}.hero-gradient{position:absolute;inset:0;background:linear-gradient(to bottom,rgb(15 27 45 / .4),transparent,var(--bg))}.hero-gradient--light{background:linear-gradient(to bottom,rgb(15 27 45 / .2),transparent,var(--bg))}.hero-content{position:relative;z-index:10;text-align:center;padding:0 1.5rem;display:flex;flex-direction:column;align-items:center}.hero-title{font-size:3rem;letter-spacing:.1em;color:var(--white);margin-bottom:1.5rem;text-transform:uppercase}@media (min-width:768px){.hero-title{font-size:4.5rem}}@media (min-width:1024px){.hero-title{font-size:6rem}}.hero-title--sm{font-size:3rem;text-transform:none}@media (min-width:768px){.hero-title--sm{font-size:4.5rem}}.hero-divider{width:1px;height:4rem;background:var(--white-30);margin:0 auto 1.5rem}.hero-divider--center{margin-bottom:3rem}.hero-subtitle{color:var(--white-80);font-size:.875rem;text-transform:uppercase;letter-spacing:.2em;font-weight:300;max-width:32rem;line-height:1.7}@media (min-width:768px){.hero-subtitle{font-size:1rem}}.hero-actions{margin-top:2.5rem;display:flex;gap:1.5rem}.hero-scroll-cue{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);width:1px;height:4rem;background:linear-gradient(to bottom,var(--white-50),transparent)}.philosophy-quote,.mariage-lead{font-size:1.125rem;color:var(--white-70);line-height:1.75;font-weight:300;font-style:italic;font-family:var(--font-serif);margin-top:3rem}@media (min-width:768px){.philosophy-quote,.mariage-lead{font-size:1.25rem}}.mariage-lead{color:var(--white-80);font-style:normal;margin-top:0;margin-bottom:2rem}.mariage-lead:last-child{margin-bottom:0}.featured-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}@media (min-width:768px){.featured-grid{grid-template-columns:repeat(4,1fr)}}.featured-item{position:relative;overflow:hidden;background:var(--bg);aspect-ratio:1 / 1}.featured-item.is-portrait{aspect-ratio:3 / 4}.featured-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.featured-item:hover img{transform:scale(1.05)}.featured-overlay{position:absolute;inset:0;background:rgb(0 0 0 / .4);opacity:0;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}.featured-item:hover .featured-overlay{opacity:1}.featured-overlay span{font-family:var(--font-serif);color:var(--white);font-size:1.25rem;letter-spacing:.1em}.services-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width:768px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr)}}.service-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem;border:1px solid var(--white-05);transition:border-color .3s ease}.service-card:hover{border-color:var(--white-20)}.service-title{font-size:1.5rem;color:var(--white);margin-bottom:1rem;letter-spacing:.05em;transition:color .3s ease}.service-card:hover .service-title{color:var(--white-80)}.service-desc{color:var(--white-50);font-size:.875rem;font-weight:300;margin-bottom:2rem;line-height:1.7;flex-grow:1}.service-line{width:2rem;height:1px;background:var(--white-20);transition:all .5s ease}.service-card:hover .service-line{background:var(--white);width:4rem}.cta-title{font-size:2.5rem;color:var(--white);margin-bottom:1rem;letter-spacing:.02em}@media (min-width:768px){.cta-title{font-size:3rem}}.cta-text{color:var(--white-60);margin-bottom:2.5rem;font-weight:300}.page-portfolio{width:100%;background:var(--bg);min-height:100vh;padding:3rem 0 8rem}.portfolio-header{margin-bottom:5rem}.page-title{font-size:3rem;color:var(--white);margin-bottom:2rem;letter-spacing:.05em}@media (min-width:768px){.page-title{font-size:3.75rem}}.page-title--left{text-align:left;margin-bottom:2rem}.portfolio-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}@media (min-width:768px){.portfolio-filters{gap:2.5rem}}.filter-btn{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--white-40);padding-bottom:.5rem;border-bottom:1px solid #fff0;transition:all .3s ease}.filter-btn:hover{color:var(--white-80)}.filter-btn.is-active{color:var(--white);border-bottom-color:var(--white)}.portfolio-grid{column-count:2;column-gap:.5rem}@media (min-width:768px){.portfolio-grid{column-count:3}}@media (min-width:1024px){.portfolio-grid{column-count:4}}.portfolio-item{position:relative;overflow:hidden;background:var(--bg-alt);break-inside:avoid;margin-bottom:.5rem}.portfolio-item img{width:100%;height:auto;object-fit:cover;transition:transform 1s ease}.portfolio-item:hover img{transform:scale(1.03)}.portfolio-item.is-hidden{display:none}.portfolio-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgb(15 27 45 / .8),transparent 60%);opacity:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;transition:opacity .5s ease}.portfolio-item:hover .portfolio-overlay{opacity:1}.portfolio-cat{color:var(--white-70);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;margin-bottom:.25rem}.portfolio-alt{color:var(--white);font-family:var(--font-serif);font-size:1.125rem;letter-spacing:.02em}.portfolio-empty{text-align:center;padding:5rem 0;color:var(--white-50);font-style:italic;font-family:var(--font-serif)}.mariage-gallery{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width:768px){.mariage-gallery{grid-template-columns:repeat(2,1fr)}}.mariage-gallery-item{aspect-ratio:3 / 4;overflow:hidden;position:relative}@media (min-width:768px){.mariage-gallery-item{aspect-ratio:auto}}.mariage-gallery-item--offset{margin-top:0}@media (min-width:768px){.mariage-gallery-item--offset{margin-top:6rem}}.mariage-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}.mariage-gallery-item:hover img{transform:scale(1.05)}.mariage-services{display:grid;grid-template-columns:1fr;gap:3rem}@media (min-width:768px){.mariage-services{grid-template-columns:repeat(2,1fr);gap:6rem}}.mariage-service{position:relative;padding-left:2rem;border-left:1px solid var(--white-10)}.mariage-service::before{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:var(--white-30);left:-4.5px;top:.5rem}.mariage-service-title{font-size:1.5rem;color:var(--white);margin-bottom:1rem}.mariage-service-desc{color:var(--white-60);font-weight:300;line-height:1.7}.mariage-cta-text{color:var(--white-70);margin-bottom:3rem;font-weight:300}.page-about{width:100%;background:var(--bg);min-height:100vh;padding:6rem 0 8rem}.about-grid{display:flex;flex-direction:column;align-items:center;gap:4rem}@media (min-width:1024px){.about-grid{flex-direction:row;align-items:center;gap:6rem}}.about-portrait{width:100%}@media (min-width:1024px){.about-portrait{width:41.6667%}}.portrait-frame{position:relative;aspect-ratio:3 / 4;overflow:hidden}.portrait-img{width:100%;height:100%;object-fit:cover;filter:grayscale(30%);transition:filter .7s ease}.portrait-frame:hover .portrait-img{filter:grayscale(0%)}.portrait-border{position:absolute;inset:1rem;border:1px solid var(--white-10);pointer-events:none}.about-content{width:100%}@media (min-width:1024px){.about-content{width:58.3333%}}.about-text{display:flex;flex-direction:column;gap:1.5rem;color:var(--white-70);font-weight:300;line-height:1.75;font-size:1.125rem}.about-meta{margin-top:3rem;padding-top:3rem;border-top:1px solid var(--white-10);display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width:768px){.about-meta{grid-template-columns:repeat(2,1fr)}}.meta-title{color:var(--white);font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;margin-bottom:1rem;font-family:var(--font-sans);font-weight:500}.meta-list{display:flex;flex-direction:column;gap:.5rem;color:var(--white-50);font-size:.875rem;font-weight:300}.about-banner{margin-top:4rem}.about-banner img{width:100%;height:12rem;object-fit:cover;opacity:.5;filter:grayscale(100%);transition:all .5s ease}.about-banner img:hover{opacity:1;filter:grayscale(0%)}.page-contact{width:100%;background:var(--bg);min-height:100vh;padding:6rem 0 8rem}.contact-intro{margin-bottom:4rem}.contact-lead{color:var(--white-60);font-weight:300;max-width:36rem;margin:0 auto}.contact-grid{display:grid;grid-template-columns:1fr;gap:4rem}@media (min-width:1024px){.contact-grid{grid-template-columns:repeat(12,1fr);gap:4rem}}.contact-info{display:flex;flex-direction:column;gap:3rem}@media (min-width:1024px){.contact-info{grid-column:span 4}}.contact-info-text{color:var(--white-70);font-weight:300;margin-bottom:.5rem;line-height:1.6}@media (min-width:1024px){.contact-form-wrap{grid-column:span 8}}.form-notice{padding:1rem 1.5rem;margin-bottom:2rem;font-size:.875rem;border:1px solid}.form-notice--success{border-color:rgb(74 222 128 / .4);color:#86efac;background:rgb(74 222 128 / .05)}.form-notice--error{border-color:rgb(248 113 113 / .4);color:#fca5a5;background:rgb(248 113 113 / .05)}.contact-form{display:flex;flex-direction:column;gap:2rem}.form-row{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width:768px){.form-row{grid-template-columns:repeat(2,1fr)}}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{color:var(--white-70);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.form-field input,.form-field select,.form-field textarea{background:#fff0;border:1px solid var(--white-10);color:var(--white);height:3rem;padding:0 1rem;border-radius:0;outline:none;transition:border-color .2s ease;width:100%;appearance:none}.form-field textarea{height:auto;min-height:150px;padding:.75rem 1rem;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--white-40)}.form-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='white' opacity='0.4'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1rem;padding-right:2.5rem}.form-field select option{background:var(--bg-alt);color:var(--white)}.form-field input[type="date"]{color-scheme:dark}.form-error{display:none;color:#f87171;font-size:.8125rem}.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:#f87171}.form-field.has-error .form-error{display:block}.btn-submit[disabled]{opacity:.6;cursor:not-allowed}.page-generic{padding:8rem 0;background:var(--bg);min-height:60vh}.generic-content{color:var(--white-70);font-weight:300;line-height:1.8}.generic-content p{margin-bottom:1.5rem}.generic-content a{text-decoration:underline;text-underline-offset:3px}.page-404{padding:10rem 0;min-height:60vh;display:flex;align-items:center}.notfound-title{font-size:6rem;color:var(--white);margin-bottom:1rem}.notfound-text{color:var(--white-60);margin-bottom:2.5rem;font-weight:300}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}