

:root {
  --sbw: 0px;                      
  --wrap: 1200px;
  --gut: 24px;
  --edge: calc((100vw - var(--sbw) - min(var(--wrap), 100vw - var(--sbw))) / 2 + var(--gut));
  --header-h: 72px;
  --tap: 44px;
  --ease-reveal: cubic-bezier(.22, 1, .36, 1);
  --ease-hero: cubic-bezier(.65, 0, .35, 1);
  --ease-ui: cubic-bezier(.34, 1.56, .64, 1);
}


*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body { margin: 0; min-width: 0; }
[id] { scroll-margin-top: calc(var(--header-h) + 16px); }
img, video, svg, picture { max-width: 100%; display: block; }
img { height: auto; }                                  
svg { width: 1em; height: 1em; flex: 0 0 auto; }       
.btn svg, button svg, a svg { width: 18px; height: 18px; flex: 0 0 18px; }
.logo svg, .brand svg, [class*="logo"] svg { width: auto; height: 100%; }
[class*="grid"] > *, .split > *, .duo > *, .row > * { min-width: 0; }   
table { border-collapse: collapse; width: 100%; }
th { white-space: nowrap; }                            
.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tablewrap table { min-width: 640px; }
input, select, textarea, button { font: inherit; }
input, select, textarea { font-size: max(16px, 1em); min-height: var(--tap); }   
button, .btn, a.btn { min-height: var(--tap); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 0; }
.skip:focus { left: 16px; top: 16px; z-index: 1000; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }     



.figfill { position: relative; overflow: hidden; }
.figfill > img, .figfill > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--op, 50% 50%); }

.split { display: grid; align-items: stretch; }
.split > .ph { min-height: 360px; }                    
.split > .ph img { width: 100%; height: 100%; object-fit: cover; object-position: var(--op, 50% 50%); }
.split > .copy { align-self: center; }

.plate img { object-fit: contain; }

.bleed-r { margin-right: calc(-1 * var(--edge)); padding-right: var(--edge); }
.bleed-l { margin-left: calc(-1 * var(--edge)); padding-left: var(--edge); }
.bleed { margin-inline: calc(-1 * var(--edge)); }

.marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }




.js .rv:not(.is-in) { opacity: 0; transform: translateY(14px); }
.rv.is-in { opacity: 1; transform: none; transition: transform .7s var(--ease-reveal); }
.hero .rv, .hero.rv { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .rv:not(.is-in) { opacity: 1; transform: none; }
}



.site-header { position: sticky; top: 0; z-index: 50; min-height: var(--header-h); }

.site-header.is-compact { --header-h: 60px; }
.nav-dd { position: relative; }

.nav-dd > .nav-panel { position: absolute; top: 100%; left: 0; padding-top: 10px; min-width: 260px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s var(--ease-reveal), transform .18s var(--ease-reveal), visibility 0s .18s; }
.nav-dd.is-open > .nav-panel, .nav-dd:hover > .nav-panel, .nav-dd:focus-within > .nav-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav-dd.is-right > .nav-panel { left: auto; right: 0; }    
.nav-panel a { display: block; min-height: 40px; padding: 8px 14px; white-space: nowrap; }
.nav-links a { white-space: nowrap; }                    
.nav-panel a:focus-visible, .nav-links a:focus-visible { outline-offset: -2px; }




.mobnav { position: fixed; inset: 0; z-index: 100; display: none; flex-direction: column; }
.mobnav.is-open { display: flex; }
.mobnav > .mobbar { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; min-height: var(--header-h); padding: 0 var(--gut); }
.mobnav > .mobbar .x { width: 46px; height: 46px; display: grid; place-items: center; }
.mobnav > .mscroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 0 var(--gut) 32px; }
.mobnav a, .mobnav summary { display: block; min-height: 48px; padding: 12px 0; }
.mobnav details > summary { min-height: 56px; list-style: none; cursor: pointer; }
.mobnav details > summary::-webkit-details-marker { display: none; }
.mobnav details a { padding-left: 16px; }

html.is-locked { overflow: hidden; }
html.is-locked body { position: fixed; width: 100%; }
.burger { width: var(--tap); height: var(--tap); display: none; }
@media (max-width: 920px) {
  .burger { display: grid; place-items: center; }
  .nav-links { display: none; }
  .site-header { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}


@media (max-width: 760px) {
  :root { --gut: 18px; }
  
  section, .band { padding-block: var(--pad-m, 54px); }
  
  .split, .duo, .cols2, .labelgrid { grid-template-columns: minmax(0, 1fr) !important; }
  [style*="repeat(auto-fit"] { grid-template-columns: 1fr !important; }
  .split > .ph { min-height: 0; aspect-ratio: var(--ar, 4 / 3); }   
  .eyebrow::after { display: none; }                    
  h1 { font-size: clamp(34px, 9.5vw, 44px); line-height: 1.02; }
  .h-cta { grid-template-columns: 1fr !important; }     
  
  .callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .callbar a { display: grid; place-items: center; min-height: 56px; }
  body.has-callbar { padding-bottom: 56px; }
  .hero .media { max-height: 62vh; }                    
}
@media (min-width: 761px) { .callbar { display: none; } }


.noise { position: relative; }
.noise::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .04; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
