* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #000; color: #fff; font-family: Archivo, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #fff; }
a:hover { color: #fff; }
::selection { background: #fff; color: #000; }
:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

@keyframes dam-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Hover states converted from Claude Design style-hover attributes */
.hov-op1:hover { opacity: 1 !important; }
.hov-up2:hover { transform: translateY(-2px); }
.hov-cta:hover { transform: translateY(-3px); gap: 20px !important; }
.hov-under:hover { gap: 22px !important; border-color: #fff !important; }
.hov-white:hover { color: #fff !important; }
.hov-dim:hover { opacity: .6 !important; }
.skiplink:focus { left: 16px !important; top: 16px !important; }

#videoLightbox[hidden] { display: none !important; }

.soc:hover svg { fill: #fff !important; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [style*="dam-marquee"] { animation: none !important; }
}

/* Moments mosaic */
.mosaic { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:260px; gap:14px; }
.mosaic__tile { position:relative; margin:0; overflow:hidden; background:#0e0e0e; }
.mosaic__tile img { width:100%; height:100%; object-fit:cover; object-position:50% 15%; display:block; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.mosaic__tile:hover img { transform:scale(1.05); }
.mosaic__tile figcaption { position:absolute; left:0; right:0; bottom:0; padding:26px 16px 12px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#e6e6e6; background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.72) 100%); }
.mosaic__tile.feature { grid-column:span 2; grid-row:span 2; }
.mosaic__tile.wide { grid-column:span 2; }
@media (max-width: 760px) {
  .mosaic { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .mosaic__tile.feature { grid-column:span 2; grid-row:span 2; }
  .mosaic__tile.wide { grid-column:span 2; }
}
