/* Mobile pages use the document scroll. Glass belongs to the controls. */
.mobile-page-title,.more-toggle .menu-label,.photo-carousel-controls{display:none}
.story-slide-images .story-slide{transition-duration:var(--story-fade,2.5s)}
.window-body .wedding-banner .wedding-location{font-size:11px;line-height:1.6;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:0 0 16px}
.window-body .contact-form .contact-preview-notice{margin:0;padding:14px 16px;border:1px solid #ffffffc4;border-radius:16px;background:#ffffff80;color:#55534b;font-size:12px;line-height:1.7;text-align:left}
.contact-preview-notice a{text-decoration:underline;text-underline-offset:3px}
.legal-details a:not(.button){text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.window-body .legal-details h2{font-size:24px;margin-top:32px;margin-bottom:14px}
.window-body .legal-details h2:first-child{margin-top:0}
.legal-details>.button{margin-top:20px}
@media(min-width:961px){
 .content-window:has(.legal-details){width:min(1080px,calc(100vw - 80px));bottom:auto;height:auto;background:linear-gradient(125deg,#fffef9ed,#f4f2ebd9)}
 .content-window:has(.legal-details) .window-bar{min-height:52px;padding:16px 18px 0;border-bottom:0;background:none;justify-content:flex-end}
 .content-window:has(.legal-details) .window-title{display:none}
 .window-body .legal-page:has(.legal-details){display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:56px;padding:32px 48px 48px;min-height:0}
 .window-body .legal-page:has(.legal-details) .page-intro{padding:0;max-width:none}
 .window-body .legal-page:has(.legal-details) .page-intro h1{margin-bottom:20px;font-size:52px}
 .window-body .legal-page:has(.legal-details) .page-intro .lead{max-width:280px;font-size:15px;line-height:1.75;color:#68665e}
 .window-body .reading.legal-details{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:32px;align-content:start;max-width:none;margin:0;padding:4px 0 0;min-width:0}
 .window-body .legal-details h2{margin:0 0 14px;font-size:11px;line-height:1.5;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#706e65}
 .window-body .legal-details p{margin:0;font-size:15px;line-height:1.8;color:#45463f}
 .legal-details p strong{font-size:18px;font-weight:500;color:#30352f}
 .legal-details h2:nth-of-type(1){grid-column:1;grid-row:1}
 .legal-details p:nth-of-type(1){grid-column:1;grid-row:2}
 .legal-details h2:nth-of-type(2){grid-column:2;grid-row:1}
 .legal-details p:nth-of-type(2){grid-column:2;grid-row:2}
 .window-body .legal-details h2:nth-of-type(3){grid-column:1/-1;grid-row:3;margin-top:28px;padding-top:24px;border-top:1px solid #373b3021}
 .legal-details p:nth-of-type(3){grid-column:1/-1;grid-row:4}
 .window-body .legal-details>.button{grid-column:1/-1;grid-row:5;justify-self:start;min-height:44px;margin-top:28px;padding:11px 18px;border:1px solid #fff;border-radius:99px;background:#ffffff9c;box-shadow:inset 0 1px 0 #fff,0 3px 14px #302d2209;color:#363c32;font-size:12px}
 .window-body .legal-details>.button:hover{background:#fff}
}
@media(min-width:961px) and (max-width:1150px){
 .window-body .legal-page:has(.legal-details){gap:36px;padding-inline:36px}
 .window-body .reading.legal-details{column-gap:24px}
}
@media(max-width:600px){
 :root{--mobile-bottom:calc(32px + env(safe-area-inset-bottom,0px));--mobile-top:calc(82px + env(safe-area-inset-top,0px))}
 body.window-open{height:auto;min-height:100svh;overflow-y:auto;background:#f6f4f0}
 html:has(body.window-open){scrollbar-width:none}
 html:has(body.window-open)::-webkit-scrollbar{width:0;display:none}
 .window-open #main{display:none}
 .window-open .content-window[open]{position:relative;inset:auto;transform:none;translate:none;scale:none;display:block;margin:0;width:100%;height:auto;min-height:100svh;max-height:none;border:0;border-radius:0;box-shadow:none;overflow:visible;background:#f6f4f0;backdrop-filter:none;-webkit-backdrop-filter:none;animation:none}
 .window-open .content-window .window-bar{display:none}
 .window-open .content-window .window-body{overflow:visible;overscroll-behavior:auto;min-height:100svh;padding-top:var(--mobile-top);padding-bottom:var(--mobile-bottom)}
 .window-open .content-window:has(.service-banner,.wedding-banner) .window-body{padding-top:0;padding-bottom:var(--mobile-bottom)}
 .window-open .site-header:before{display:none}
 .site-header{position:fixed;height:var(--mobile-top);padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;gap:12px;align-items:flex-start;pointer-events:none}
 .site-header>*{pointer-events:auto}
 .site-header .brand{width:48px;height:48px;flex:none}
 .site-header .brand-bubble{width:48px;height:48px}
 body:not(.window-open) .site-header .mobile-service-close{display:none}
 body:not(.window-open) .site-header .brand{display:none}
 .window-open .site-header .brand{display:none}
 .window-open .site-header .mobile-service-close{position:static;display:grid;place-items:center;width:48px;height:48px;flex:none;padding:0;margin:0;border:1px solid #ffffffd9;border-radius:50%;font-size:0;color:#34342f;background:linear-gradient(135deg,#ffffffe0,#ffffff8c);box-shadow:inset 0 1px 1px #fff,0 4px 18px #25221c15;backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%)}
 .mobile-service-close:after{content:'←';font-size:24px;line-height:1}
 .window-open .mobile-page-title{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;max-width:230px;height:48px;flex:1;margin:0 auto;padding:0 18px;border:1px solid #ffffffcf;border-radius:99px;color:#34342f;background:linear-gradient(135deg,#ffffffe0,#ffffff8c);box-shadow:inset 0 1px 1px #fff,0 4px 18px #25221c15;backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);font-size:14px;font-weight:500}
 .mobile-page-title:after{content:'↑';font-size:15px;font-weight:400;opacity:.7}
 .menu-toggle.more-toggle{position:static;order:-2;margin:0;flex:none;display:flex!important;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #ffffffcf;border-radius:50%;color:#34342f;background:linear-gradient(135deg,#ffffffe0,#ffffff8c);box-shadow:inset 0 1px 1px #fff,0 4px 18px #25221c15;backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%)}
 .more-toggle svg{width:24px;height:24px}
 .more-toggle .menu-label{display:none}
 .site-header .menu-toggle.more-toggle{width:76px;height:56px;flex-direction:row;gap:6px;border-radius:99px}
 .window-open .site-header .mobile-service-close,.window-open .mobile-page-title{display:none}
 .window-open .site-header .mobile-service-close{order:2}
 .site-header .more-nav{top:calc(76px + env(safe-area-inset-top,0px));left:16px;right:auto;width:min(280px,calc(100vw - 32px));max-height:calc(100svh - 96px - env(safe-area-inset-top,0px));overflow-y:auto;background:#f8f6f0ed;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
 .more-nav a{min-height:48px;font-size:16px}
 .mobile-dock{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto;left:104px;right:16px;transform:none;width:auto;max-width:none;height:56px;padding:5px;gap:2px;border:1px solid #ffffffd9;border-radius:999px;background:linear-gradient(145deg,#ffffffb8,#f7f5ef80);box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px #ffffff80,0 8px 28px #322e271f;backdrop-filter:blur(26px) saturate(160%);-webkit-backdrop-filter:blur(26px) saturate(160%);z-index:70}
 .mobile-dock a,.mobile-dock a[aria-current=page]{display:flex;flex:1;min-width:44px;width:0;height:44px;gap:0;padding:0;border-radius:999px;color:#4b4942}
 .mobile-dock a .nav-label,.mobile-dock a[aria-current=page] .nav-label{display:none}
 .mobile-dock svg{width:22px;height:22px}
 .mobile-dock a[aria-current=page]{color:#252b25;background:linear-gradient(140deg,#fffffff2,#ffffff9e);box-shadow:inset 0 1px 0 #fff,0 2px 8px #342e2315}
 .window-body{--type-body:#4c4a43;--type-secondary:#68655d;--wedding-muted:#4c4a43}
 .window-body :is(.service-page,.wedding-page,.process-page,.reading,.story-layout,.statement,.empty-editorial) p{font-size:16px;line-height:1.75;color:#4c4a43}
 .window-body .service-intro,.window-body .wedding-story,.window-body .service-section-heading{text-align:left}
 .window-body .service-intro .service-intro-lead{font-size:16px;line-height:1.75}
 .window-body .service-banner-copy>p{font-size:11px;line-height:1.6;letter-spacing:.06em;color:#fff;max-width:none}
 .window-body :is(.service-kicker,.eyebrow,.window-title){color:#68655d;font-size:11px;line-height:1.6}
 .service-row-copy small,.service-personal small,.wedding-chapter-title small{color:#68655d;font-size:12px;line-height:1.6}
 .service-rows summary,.wedding-chapters summary{min-height:76px}
 .service-rows .service-expand,.wedding-expand{width:32px;height:32px;background:#fff;border:1px solid #dedbd3;color:#514f47}
 .service-page .service-section-nav{gap:6px;justify-content:stretch;padding:12px 16px;background:#efede6;border-bottom:1px solid #e4e0d7}
 .service-section-nav a{flex:1;min-width:0;min-height:48px;justify-content:center;padding:6px 4px;font-size:12px;line-height:1.35;gap:4px;text-align:center;color:#4c4a43;border-radius:15px}
 .service-section-nav a:last-child{color:#fff;background:#3e443b;border:1px solid #3e443b;font-weight:500}
 .service-section-nav a:first-child>span{display:none}
 .service-page :is(section,[id]),.window-body :is(section,[id]){scroll-margin-top:calc(var(--mobile-top) + 12px)}
 .service-inquiry .inquiry-process-link{background:linear-gradient(130deg,#fff,#eeece3d9);border:1px solid #fff;box-shadow:inset 0 1px 0 #fff,0 4px 20px #302d2209;backdrop-filter:none;-webkit-backdrop-filter:none}
 .service-inquiry .inquiry-process-copy small{color:#646158}
 .contact-field>span{font-size:14px;color:#403f39}
 .contact-field small{font-size:12px;color:#68655d}
 .contact-field input,.contact-field textarea{background:#fff;border:1px solid #d6d2c8;color:#34352f;font-size:16px;min-height:52px;scroll-margin-block:calc(var(--mobile-top) + 16px) calc(var(--mobile-bottom) + 16px)}
 .contact-field input::placeholder,.contact-field textarea::placeholder{color:#77746b}
 .contact-submit-row p,.contact-form .contact-demo-hint{font-size:12px;line-height:1.65;color:#656259}
 .service-page .service-preview-notice{background:#eeece5;border:1px solid #dfdcd2;color:#514f46;font-size:13px}
 .contact-submit{min-height:52px;font-size:14px}
 .contact-form-card{border:1px solid #fff;background:linear-gradient(130deg,#ffffffc9,#efede6b3);box-shadow:inset 0 1px 0 #fff,0 4px 20px #302d2209;backdrop-filter:none;-webkit-backdrop-filter:none}
 .photo-carousel{display:flex!important;gap:12px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:16px;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;padding:8px 16px!important;margin-inline:calc(-1 * var(--service-inset,24px))!important;cursor:grab}
 .photo-carousel::-webkit-scrollbar{display:none}
 .photo-carousel:focus-visible{outline:2px solid #777969;outline-offset:4px;border-radius:20px}
 .photo-carousel.is-dragging{scroll-snap-type:none;cursor:grabbing}
 .photo-carousel figure,.photo-carousel figure:first-child,.photo-carousel figure:nth-child(2){flex:0 0 calc(100% - 36px);grid-column:auto!important;aspect-ratio:4/5!important;max-height:62svh;scroll-snap-align:center;scroll-snap-stop:normal;border-radius:22px}
 .photo-carousel img{height:100%;user-select:none;-webkit-user-drag:none;pointer-events:none;transform:none!important}
 .photo-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;min-height:50px}
 .carousel-hint{font-size:12px;line-height:1.5;color:#68655d}
 .carousel-actions{display:flex;align-items:center;gap:4px;border-radius:99px;padding:3px;background:linear-gradient(135deg,#fff,#efede2c9);box-shadow:inset 0 1px 0 #fff,0 3px 14px #302d2209;backdrop-filter:none;-webkit-backdrop-filter:none}
 .carousel-actions button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#35392f;font-size:21px}
 .carousel-actions button:disabled{opacity:.3;cursor:default}
 .carousel-position{min-width:38px;text-align:center;font-size:12px;color:#56544b;font-variant-numeric:tabular-nums}
 .home-hero,.wedding-story-slideshow{touch-action:pan-y pinch-zoom}
 .home-hero img,.wedding-story-slideshow img{user-select:none;-webkit-user-drag:none;pointer-events:none}
 .background-controls.photo-dock{--thumb:36px;left:16px;right:16px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:none;width:auto;max-width:none;height:56px;gap:4px;padding:4px 5px;border:1px solid #ffffffbf;border-radius:999px;background:linear-gradient(145deg,#ffffff8c,#ffffff40);box-shadow:inset 0 1px 0 #ffffffdb,0 4px 18px #00000012;backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}
 .photo-dock .scene-strip{display:flex;flex:1;min-width:0;height:46px;gap:2px;padding:1px 3px;scroll-padding-inline:3px;overflow-x:auto;overflow-y:hidden}
 .photo-dock button.scene-choice{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border:0;box-shadow:none;transform:none;background:none}
 .photo-dock .scene-choice img{width:36px;height:36px;box-shadow:0 0 0 1px #ffffff8c,0 1px 4px #0002;transition:box-shadow .2s,transform .2s}
 .photo-dock .scene-choice[aria-pressed=true]{transform:none;box-shadow:none}
 .photo-dock .scene-choice:hover,.photo-dock .scene-choice:has(+.scene-choice:hover),.photo-dock .scene-choice:hover+.scene-choice{transform:none}
 .photo-dock .scene-choice[aria-pressed=true] img{box-shadow:0 0 0 2px #fff,0 2px 6px #0003;transform:scale(1.05)}
 .photo-dock .scene-choice[aria-pressed=true]:after{display:none}
 .photo-dock button:focus-visible{outline-offset:-2px}
 .photo-dock button.scene-arrow{display:none!important}
 .photo-dock button.scene-pause{width:44px;height:44px;padding:0;border:0;border-left:1px solid #ffffff80;border-radius:0 99px 99px 0;opacity:1;color:#34342f;background:none;box-shadow:none}
 .photo-dock .scene-pause svg{width:15px;height:15px}
 .story-slide-controls{padding:4px 8px}
 .story-slide-controls button{min-width:44px;min-height:44px}
 .service-related{padding-bottom:24px}
 .service-portfolio .service-section-heading>p:empty{display:none}
}
@media(max-width:360px){
 .site-header{padding-left:12px;padding-right:12px;gap:8px}
 .mobile-dock{left:100px;right:12px;width:auto}
 .service-section-nav a{font-size:11px}
 .carousel-hint{max-width:110px}
}
@supports not (backdrop-filter:blur(1px)){
 @media(max-width:600px){.mobile-dock,.background-controls.photo-dock,.window-open .mobile-page-title,.menu-toggle.more-toggle,.window-open .site-header .mobile-service-close{background:#f7f5ef}}
}
@media(prefers-reduced-transparency:reduce){
 @media(max-width:600px){.mobile-dock,.background-controls.photo-dock,.window-open .mobile-page-title,.menu-toggle.more-toggle,.window-open .site-header .mobile-service-close{background:#f7f5ef;backdrop-filter:none;-webkit-backdrop-filter:none}}
}
