.menu { padding:100px 10vw; align-items:center; text-align:center; background:#0b1014; clip-path:none; opacity:0; transition:opacity .35s ease,visibility 0s .35s; isolation:isolate; }
.menu.open { clip-path:none; opacity:1; transition:opacity .35s ease,visibility 0s; }
.menu > a { position:relative; z-index:2; align-self:center; width:max-content; max-width:100%; border:0; padding:14px 0; font-size:clamp(56px,7.5vw,108px); font-weight:600; line-height:1.08; letter-spacing:-.07em; color:#dce0df; transform-origin:center; transition:transform .3s cubic-bezier(.22,1,.36,1); }
@media(hover:hover) { .menu > a:hover { transform:scale(1.055); } }
.menu > a:focus-visible { transform:scale(1.055); }
.menu > a em { display:inline-block; width:28px; margin-right:24px; vertical-align:middle; opacity:.65; }
.menu-index,.menu-foot { z-index:2; color:#8e989f; }
.menu-media-stage { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.menu-film { position:absolute; width:min(52vw,860px); aspect-ratio:16/9; opacity:0; transform:translateY(calc(-50% + 10px)); transition:opacity .45s ease,transform .6s ease; overflow:hidden; }
.menu-film-0 { right:3vw; top:calc(50% - clamp(65px,7vw,105px)); }
.menu-film-1 { left:3vw; top:50%; }
.menu-film-2 { right:3vw; top:calc(50% + clamp(65px,7vw,105px)); }
.menu-film-3 { left:3vw; top:calc(50% + clamp(90px,10vw,140px)); }
/* Four links, with room for the longer services label on small screens. */
.menu { overflow-y:auto; }
.menu > a { flex-shrink:0; }
@media(max-width:600px) { .menu > a { font-size:clamp(23px,5.5vw,33px); } }
@media(max-height:600px) { .menu > a { font-size:28px; padding:8px 0; } }
.menu-film.is-active { opacity:1; transform:translateY(-50%); }
.menu-film video { width:100%; height:100%; object-fit:cover; }
.menu-film:after { content:""; position:absolute; inset:0; background:rgba(5,9,12,.28); }
.menu > a { text-shadow:0 2px 24px rgba(0,0,0,.65); }
@media(max-width:760px) { .menu { padding:95px 7vw; } .menu-media-stage { display:none; } .menu > a { font-size:clamp(42px,11vw,76px); } }
@media(max-height:520px) { .menu { padding-top:75px; padding-bottom:65px; } .menu > a { font-size:36px; padding:10px 0; } .menu-index { top:65px; } }
@media(prefers-reduced-motion:reduce) { .menu,.menu.open,.menu-film,.menu > a { transition:none; } }
