:root { --page-gutter:clamp(18px,2.95vw,56px); }
body > main, main article, main section, main figure { min-width:0; }
body > footer { gap:12px 24px; flex-wrap:wrap; }
.contact-page { width:100%; max-width:820px; margin-inline:auto; overflow:visible; flex:1; padding:clamp(24px,4vh,50px) var(--page-gutter) 36px; }
.contact-details { gap:clamp(24px,6vw,100px); }
.contact-details a,.memory-copy a,.legal-page a { overflow-wrap:anywhere; }
html:has(.contact-page),body:has(.contact-page) { height:auto; overflow:visible; }
body:has(.contact-page) { min-height:100svh; display:flex; flex-direction:column; }
body:has(.contact-page)>header,body:has(.contact-page)>footer { flex-shrink:0; }
.contact-form { display:flow-root; }
.contact-form textarea { min-height:90px; }
.contact-form input,.contact-form textarea { font-size:16px; }
.film-lightbox .film-frame { width:min(1200px,94vw,156vh); }
.lightbox .close,.lightbox .nav { min-width:44px; min-height:44px; z-index:10; }
@media(max-width:1099px) {
 :root { --page-gutter:clamp(24px,5.4vw,32px); }
 body>header { position:relative; height:80px; padding:0 var(--page-gutter); z-index:20; }
 body>header .site-title { font-size:23px; }
 .image-stream { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:auto; margin:44px var(--page-gutter) 0; gap:36px 20px; }
 .image-stream figure:nth-child(n) { margin:0; }
 .image-stream figcaption { font-size:13px; line-height:1.5; margin-top:10px; }
 .note-block { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); width:auto; margin:72px var(--page-gutter); gap:28px; }
 .note-copy { margin:0; max-width:none; }
 .note-copy h1 { font-size:15px; margin-bottom:20px; }
 .note-copy p { font-size:15px; line-height:1.7; margin-bottom:20px; }
 .section-page,.memory-page,.wicky-page,.legal-page { padding:32px var(--page-gutter) 64px; }
 .page-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; }
 .page-label { margin-bottom:30px; font-size:13px; }
 .page-card figcaption,.design-card>span,.maboiteamoi-caption { font-size:14px; }
 .films-page,.archive-page,.design-page { padding:24px var(--page-gutter) 56px; }
 .films-feature { padding:0; }
 .films-feature-copy p,.memory-copy,.wicky-biography article,.legal-page p { font-size:16px; line-height:1.7; }
 .films-group h2,.archive-heading,.design-heading,.archive-playlist { font-size:13px; }
 .film-title,.films-count { font-size:13px; }
 .memory-layout { min-height:0; padding:0; }
 .memory-portrait { height:auto; max-height:70svh; }
 .memory-portrait img { max-height:70svh; }
 .tribute { margin-top:56px; }
 .condolences article { padding:24px 20px; }
 .condolences h2,.condolences .tribute-featured h1 { font-size:16px; }
 .condolences p,.condolences .tribute-text,.condolences .tribute-text p { font-size:15px; line-height:1.7; }
 .contact-details { margin-bottom:36px; font-size:15px; }
 .contact-intro { font-size:16px; margin-bottom:28px; }
 .contact-form { font-size:15px; }
 .contact-form input { min-height:44px; }
 body>footer { margin:0 var(--page-gutter) 24px; min-height:64px; font-size:12px; }
 body>footer p { max-width:none; }
 body:has(.contact-page)>footer { margin:0 var(--page-gutter) 24px; }
 .legal-page { width:auto; }
}
@media(max-width:899px) {
 body>header { position:sticky; top:0; height:64px; padding:0 var(--page-gutter); z-index:200; background:#000; }
 body:has(.video-hero)>header { position:absolute; background:transparent; z-index:200; }
 body.nav-open:has(.video-hero)>header { position:fixed; background:#000; }
 body>header .site-title { font-size:16px; font-weight:500; letter-spacing:.06em; }
 body>header .menu-toggle { display:flex; position:static; margin-left:auto; width:46px; height:46px; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:7px; }
 .menu-toggle i { display:block; width:24px; height:1.5px; margin:0; background:currentColor; transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s linear; }
 .menu-toggle i:last-child { opacity:1; }
 body>header nav { display:block; position:fixed; top:64px; left:0; right:0; width:auto; height:auto; max-height:calc(100dvh - 64px); margin:0; padding:6px var(--page-gutter) 18px; background:#000; border-top:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); overflow-y:auto; overscroll-behavior:contain; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .22s ease,transform .22s cubic-bezier(.4,0,.2,1),visibility 0s linear .22s; z-index:190; }
 body:has(.video-hero)>header nav { top:64px; }
 body>header nav.is-open { display:block; opacity:1; visibility:visible; transform:none; transition:opacity .22s ease,transform .22s cubic-bezier(.4,0,.2,1),visibility 0s; }
 body>header nav a { display:flex; align-items:center; min-height:56px; padding:0 2px; border-bottom:1px solid rgba(255,255,255,.09); font-size:15px; font-weight:400; letter-spacing:.14em; }
 body>header nav a:last-child { border-bottom:0; }
 body>header nav a.is-current { color:#fff; }
 body>header nav a.is-current::before { content:""; width:14px; height:1px; margin-right:14px; background:currentColor; flex:none; opacity:.9; }
 body.nav-open { overflow:hidden; }
 html:has(body.nav-open) { overflow:hidden; }
 .nav-scrim { position:fixed; inset:64px 0 0; background:rgba(0,0,0,.6); opacity:0; visibility:hidden; transition:opacity .22s ease,visibility 0s linear .22s; z-index:180; }
 .nav-scrim.is-open { opacity:1; visibility:visible; transition:opacity .22s ease,visibility 0s; }
 .menu-toggle[aria-expanded="true"] i:first-child { transform:translateY(4.25px) rotate(45deg); }
 .menu-toggle[aria-expanded="true"] i:last-child { transform:translateY(-4.25px) rotate(-45deg); }
}
@media(max-width:599px) {
 .image-stream,.page-grid { grid-template-columns:minmax(0,1fr); }
 .image-stream { gap:32px; margin-top:32px; }
 .note-block { grid-template-columns:minmax(0,1fr); margin-top:56px; gap:28px; }
 .note-image img { max-height:70svh; object-fit:contain; }
 .films-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
 .films-feature-copy h1 { font-size:24px; line-height:1.25; }
 .films-feature-media { margin-bottom:24px; }
 .films-feature-copy p { margin-bottom:18px; }
 .memory-layout,.wicky-biography { display:block; }
 .memory-copy { padding-top:28px; }
 .condolences { grid-template-columns:minmax(0,1fr); }
 .condolences article { padding:26px 18px; }
 .condolences .tribute-featured .tribute-link { font-size:13px; }
 .wicky-biography figure { width:min(65%,260px); margin-bottom:28px; }
 .wicky-chronology { margin-top:44px; }
 .wicky-chronology li { grid-template-columns:minmax(0,1fr); gap:10px; font-size:15px; }
 .wicky-chronology h2 { font-size:13px; line-height:1.6; }
 .contact-details { grid-template-columns:minmax(0,1fr); gap:16px; }
 .form-row { grid-template-columns:minmax(0,1fr); gap:0; }
 .contact-form button { float:none; width:100%; min-height:44px; }
 .contact-form textarea { height:130px; }
 body>footer { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding-top:20px; }
 body>footer p:nth-child(2),body>footer .legal-link { margin-left:0!important; }
 .legal-page h1 { font-size:clamp(36px,10vw,56px); margin-bottom:36px; }
 .design-heading { flex-wrap:wrap; gap:12px; }
}
body:has(.video-hero) .video-hero { height:100svh; min-height:360px; }
.video-hero iframe { position:absolute; left:50%; top:50%; width:max(100%,177.78svh); height:max(100%,56.25vw); max-width:none; transform:translate(-50%,-50%); }
.video-caption { max-width:calc(100% - 130px); line-height:1.5; }
.sound-toggle { min-width:64px; min-height:44px; bottom:14px; }
@media(max-width:1099px) {
 .video-caption { left:var(--page-gutter); bottom:28px; font-size:12px; }
 .sound-toggle { right:var(--page-gutter); font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
 .video-hero:before { transition:none; }
}
