/* Cinematic navigation in the browser's modal top layer. */
.tidal-nav-dialog {
  position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none;
  margin:0; padding:0; border:0; color:#f4f6f4; background:#080b0c; overflow:auto;
  overscroll-behavior:contain; opacity:0; transition:opacity .22s ease;
}
.tidal-nav-dialog[open] { display:block; }
.tidal-nav-dialog::backdrop { background:#020303e8; }
.tidal-nav-dialog.is-visible { opacity:1; }
.tidal-nav-dialog.is-closing { opacity:0; pointer-events:none; }
.tidal-nav-shell {
  min-height:100%; width:100%; max-width:1720px; margin:0 auto; padding:clamp(22px,3.2vw,54px) clamp(24px,6vw,100px);
  display:flex; flex-direction:column; position:relative;
  background:radial-gradient(ellipse at 84% 45%,#14333a66 0,transparent 55%);
  box-sizing:border-box;
}
.tidal-nav-header { display:flex; align-items:center; gap:22px; min-height:54px; position:relative; z-index:2; flex:0 0 auto; }
.tidal-nav-brand { display:block; width:72px; height:45px; flex:0 0 72px; }
.tidal-nav-brand img { display:block; width:100%; height:100%; object-fit:contain; }
.tidal-nav-wordmark { color:#d8dedc; font:18px/1.2 the-seasons,Georgia,serif; letter-spacing:.03em; }
.tidal-nav-dialog .tidal-nav-close {
  margin-left:auto; display:flex; align-items:center; justify-content:center; gap:13px; min-width:104px; min-height:48px;
  padding:10px 16px!important; background:#ffffff05!important; border:1px solid #ffffff35!important; border-radius:30px;
  color:#fff!important; cursor:pointer; font:13px/1.3 avenir-lt-pro,Arial,sans-serif!important;
  transition:border-color .2s,background-color .2s;
}
.tidal-nav-dialog .tidal-nav-close:hover { border-color:#6dc2df!important; background:#6dc2df13!important; }
.tidal-nav-cross { display:block; width:16px; height:16px; position:relative; }
.tidal-nav-cross:before,.tidal-nav-cross:after { content:''; position:absolute; width:17px; height:1px; left:0; top:8px; background:#6dc2df; }
.tidal-nav-cross:before { transform:rotate(45deg); }
.tidal-nav-cross:after { transform:rotate(-45deg); }
.tidal-nav-body { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:clamp(40px,8vw,150px); flex:1 0 auto; padding:32px 0; }
.tidal-nav-directory h2 { margin:0 0 18px; color:#8dadaf; font:10px/1.4 avenir-lt-pro,Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.tidal-nav-links { list-style:none; padding:0!important; margin:0!important; display:flex; flex-direction:column; }
.tidal-nav-links li { margin:0; padding:0; opacity:0; transform:translate3d(0,25px,0) rotateX(-12deg); transform-origin:top; transition:opacity .5s ease,transform .65s cubic-bezier(.16,1,.3,1); transition-delay:calc(var(--nav-order)*45ms + 55ms); }
.tidal-nav-dialog.is-visible .tidal-nav-links li { opacity:1; transform:none; }
.tidal-nav-links a {
  display:flex; align-items:center; gap:20px; padding:9px 0; border-bottom:1px solid #ffffff13; color:#f4f6f4!important;
  text-decoration:none!important; line-height:1.05; perspective:700px;
}
.tidal-nav-number { flex:0 0 22px; align-self:center; color:#6f8183; font:11px/1 avenir-lt-pro,Arial,sans-serif; letter-spacing:.04em; transition:color .2s; }
.tidal-nav-label { font:clamp(38px,4.8vw,74px)/1.08 the-seasons,Georgia,serif; transition:transform .35s cubic-bezier(.16,1,.3,1),color .25s; }
.tidal-nav-arrow { margin-left:auto; color:#6dc2df; opacity:0; font:clamp(25px,3vw,40px)/1 avenir-lt-pro,Arial,sans-serif; transform:translate(-12px,8px); transition:opacity .25s,transform .35s; }
.tidal-nav-links a.is-previewed .tidal-nav-label,.tidal-nav-links a:focus-visible .tidal-nav-label { color:#b8e9ef; transform:translateX(9px); }
.tidal-nav-links a.is-previewed .tidal-nav-number,.tidal-nav-links a[aria-current="page"] .tidal-nav-number { color:#6dc2df; }
.tidal-nav-links a.is-previewed .tidal-nav-arrow,.tidal-nav-links a:focus-visible .tidal-nav-arrow { opacity:1; transform:none; }
.tidal-nav-preview {
  display:block; position:relative; width:100%; max-width:510px; height:min(57vh,590px); min-height:300px; margin:0; justify-self:end;
  border-radius:18px; background:#122025; box-shadow:0 28px 90px #0009,0 0 0 1px #ffffff1c; overflow:hidden;
  opacity:0; transform:perspective(1500px) translate3d(0,25px,0) rotateY(-8deg) scale(.96);
  transition:opacity .65s ease .12s,transform .8s cubic-bezier(.16,1,.3,1) .08s;
}
.tidal-nav-dialog.is-visible .tidal-nav-preview { opacity:1; transform:perspective(1500px) rotateY(var(--nav-preview-x,0deg)) rotateX(var(--nav-preview-y,0deg)); }
.tidal-nav-picture { position:absolute; inset:0; }
.tidal-nav-preview-image { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.055); transition:opacity .4s ease,transform .85s cubic-bezier(.2,.7,.2,1); }
.tidal-nav-preview-image.is-visible { opacity:1; transform:scale(1); }
.tidal-nav-preview-shade { position:absolute; inset:0; background:linear-gradient(0deg,#061012d9,transparent 50%); }
.tidal-nav-preview figcaption { position:absolute; left:28px; right:28px; bottom:28px; display:grid; grid-template-columns:1fr auto; gap:10px; color:#fff; }
.tidal-nav-preview-number { grid-column:1/-1; color:#c7d9da; font:10px/1.4 avenir-lt-pro,Arial,sans-serif; letter-spacing:.12em; }
.tidal-nav-preview-label { font:36px/1.1 the-seasons,Georgia,serif; }
.tidal-nav-preview-arrow { align-self:center; color:#b5eef4; font:31px/1 avenir-lt-pro,Arial,sans-serif; }
.tidal-nav-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:20px; border-top:1px solid #ffffff1c; color:#819497; font:12px/1.5 avenir-lt-pro,Arial,sans-serif; }
.tidal-nav-footer a { display:inline-flex; align-items:center; gap:24px; min-height:44px; color:#b8e9ef!important; text-decoration:none!important; font:14px/1.3 avenir-lt-pro,Arial,sans-serif; }
.tidal-nav-footer a span { font-size:23px; }
.tidal-nav-dialog :is(a,button):focus-visible { outline:2px solid #6dc2df; outline-offset:5px; border-radius:3px; }
.tidal-nav-dialog.is-closing .tidal-nav-links li { transition-duration:.18s; transition-delay:0s; transform:translateY(-10px); opacity:0; }
.tidal-nav-dialog.is-closing .tidal-nav-preview { transition-duration:.2s; transition-delay:0s; }
@media(min-width:901px) and (max-height:760px) {
  .tidal-nav-shell { padding-top:22px; padding-bottom:18px; }
  .tidal-nav-body { padding:18px 0; }
  .tidal-nav-label { font-size:clamp(37px,7vh,57px); }
  .tidal-nav-links a { padding:7px 0; }
  .tidal-nav-preview { min-height:220px; height:57vh; }
  .tidal-nav-directory h2 { margin-bottom:10px; }
}
@media(max-width:900px) {
  .tidal-nav-shell { padding:24px 30px; }
  .tidal-nav-body { gap:34px; grid-template-columns:1.2fr .8fr; }
  .tidal-nav-label { font-size:clamp(34px,5.2vw,48px); }
  .tidal-nav-links a { padding:11px 0; gap:12px; }
  .tidal-nav-preview { min-height:270px; height:44vh; }
  .tidal-nav-preview figcaption { left:18px; right:18px; bottom:22px; }
  .tidal-nav-preview-label { font-size:28px; }
}
@media(max-width:600px) {
  .tidal-nav-shell { padding:18px 24px max(20px,env(safe-area-inset-bottom)); }
  .tidal-nav-header { min-height:48px; gap:14px; }
  .tidal-nav-brand { width:55px; height:36px; flex-basis:55px; }
  .tidal-nav-wordmark { font-size:14px; }
  .tidal-nav-dialog .tidal-nav-close { min-width:48px; width:48px; height:48px; padding:12px!important; }
  .tidal-nav-close > span:first-child { display:none; }
  .tidal-nav-body { display:block; padding:24px 0; flex:1 0 auto; }
  .tidal-nav-directory h2 { margin-bottom:14px; font-size:9px; }
  .tidal-nav-label { font-size:clamp(34px,5.8vh,49px); }
  .tidal-nav-links a { min-height:58px; padding:9px 0; gap:18px; }
  .tidal-nav-preview { display:none; }
  .tidal-nav-footer { align-items:flex-start; flex-direction:column; gap:5px; padding-top:15px; }
  .tidal-nav-footer > span { font-size:11px; }
  .tidal-nav-footer a { min-height:40px; }
}
@media(prefers-reduced-motion:reduce) {
  .tidal-nav-dialog,.tidal-nav-dialog * { transition:none!important; animation:none!important; }
  .tidal-nav-links li,.tidal-nav-label,.tidal-nav-preview,.tidal-nav-preview-image,.tidal-nav-arrow { transform:none!important; }
}
