*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --gold-ink: #040C18;
  --bg-primary: #040C18;
  --bg-primary-rgb: 4,12,24;
  --bg-secondary: #06111E;
  --bg-card: #0A1628;
  --bg-card-2: #0D1E38;
  --bg-card-3: #061020;
  --text-primary: #F5EFE3;
  --text-primary-rgb: 245,239,227;
  --accent-gold: #B8965A;
  --accent-gold-rgb: 184,150,90;
  --text-secondary: #CFC9BC;
  --text-tertiary: #9C978B;
  --text-muted: #6E6A60;
  --accent-gold-muted: #A08454;
}
:root[data-theme="light"] {
  --bg-primary: #FAF6ED;
  --bg-primary-rgb: 250,246,237;
  --bg-secondary: #F1E9D8;
  --bg-card: #F5EFE1;
  --bg-card-2: #EFE4CB;
  --bg-card-3: #F7F1E4;
  --text-primary: #1C2430;
  --text-primary-rgb: 28,36,48;
  --accent-gold: #96723C;
  --accent-gold-rgb: 150,114,60;
  --text-secondary: #4B5568;
  --text-tertiary: #6B7686;
  --text-muted: #7A8494;
  --accent-gold-muted: #7A5E2E;
}
.dvsthemebn { cursor:pointer; background:none; border:1px solid rgba(var(--accent-gold-rgb),0.4); border-radius:4px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; flex-shrink:0; padding:0; }
.dvsthemebn svg { display:block; }
.dvsthemebn .dvsicon-sun { display:none; }
.dvsthemebn .dvsicon-moon { display:block; }
:root[data-theme="light"] .dvsthemebn .dvsicon-sun { display:block; }
:root[data-theme="light"] .dvsthemebn .dvsicon-moon { display:none; }
html { scroll-behavior: smooth; }
body { background: var(--bg-primary); color: var(--text-primary); font-family: 'DM Sans', system-ui, sans-serif; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes dvsFlowPulse {
  0%, 84%, 100% { transform: scale(1); box-shadow: 0 0 0 rgba(var(--accent-gold-rgb),0); background: rgba(var(--accent-gold-rgb),0.3); }
  8% { transform: scale(1.7); box-shadow: 0 0 16px 4px rgba(var(--accent-gold-rgb),0.5); background: var(--accent-gold); }
}
@keyframes dvsFlowLine {
  0%, 84%, 100% { opacity: 0.15; }
  8% { opacity: 0.6; }
}

/* Nav — desktop default */
.dvsnav { display: flex; align-items: center; gap: 28px; }
.dvsnavcta { display: inline-block; }
.dvsmenubn { display: none; }

/* Responsive breakpoints */
@media (max-width: 880px) {
  .dvsnav { display: none !important; }
  .dvsnavcta { display: none !important; }
  .dvsmenubn { display: flex !important; }
  .dvshero { grid-template-columns: 1fr !important; }
  .dvsherort { display: none !important; }
  .dvstwocol { grid-template-columns: 1fr !important; gap: 40px !important; }
  .dvsproductrow { grid-template-columns: 1fr !important; }
  .dvsctagrid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .dvsfoundgrid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .dvsfeatpost { grid-template-columns: 1fr !important; }
  .dvshowwork { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 640px) {
  .dvsnewsletter { grid-template-columns: 1fr !important; }
  .dvscredstrip { flex-direction: column !important; gap: 20px !important; align-items: flex-start !important; }
  .dvshowwork { grid-template-columns: 1fr !important; }
  .dvs2colsm { grid-template-columns: 1fr !important; }
  .dvsproductrow > div { border-right: none !important; border-top: 1px solid rgba(var(--accent-gold-rgb),0.1); }
  #dvsstats { grid-template-columns: repeat(2,1fr) !important; }
  #dvsstats > div { padding: 24px 16px !important; border-right: none !important; border-bottom: 1px solid rgba(var(--accent-gold-rgb),0.1); }
  #dvsstats > div:nth-child(odd) { border-right: 1px solid rgba(var(--accent-gold-rgb),0.1) !important; }
}

/* ---------------- Micro-interactions ---------------- */
body { transition: background-color 0.25s ease, color 0.25s ease; }
nav, footer, [data-cookie-banner] { transition: background-color 0.25s ease, border-color 0.25s ease; }
nav { transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease; }
nav.dvs-scrolled { box-shadow: 0 4px 24px rgba(0,0,0,0.14); }

.dvsthemebn { transition: border-color 0.2s ease, transform 0.3s ease; }
.dvsthemebn:hover { border-color: var(--accent-gold); transform: rotate(14deg); }
.dvsthemebn svg { transition: opacity 0.25s ease, transform 0.35s ease; }

.dvs-btn { transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease; }
.dvs-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(var(--accent-gold-rgb),0.28); filter: brightness(1.06); }
.dvs-btn:active { transform: translateY(0); box-shadow: 0 4px 12px rgba(var(--accent-gold-rgb),0.22); filter: brightness(0.98); }

.dvs-btn-outline { transition: border-color 0.2s ease, color 0.2s ease, transform 0.18s ease, background-color 0.2s ease; }
.dvs-btn-outline:hover { border-color: var(--accent-gold); color: var(--accent-gold); transform: translateY(-2px); }

.dvs-link { transition: color 0.2s ease; position: relative; }
.dvs-link::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 0.25s ease; }
.dvs-link:hover::after { transform: scaleX(1); transform-origin: left; }

.dvs-navlink { transition: color 0.2s ease; }

.dvs-card { transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.dvs-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.18); }

.dvs-dot { transition: transform 0.2s ease, background-color 0.2s ease; }
.dvs-card:hover .dvs-dot { transform: scale(1.6); }

[data-mobile-menu] { display: flex; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-10px); transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s; }
[data-mobile-menu].dvs-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s; }
[data-mobile-menu] a { transition: color 0.2s ease, padding-left 0.2s ease; }
[data-mobile-menu] a:hover { color: var(--accent-gold); padding-left: 6px; }

[data-menu-toggle] svg { transition: transform 0.25s ease; }
[data-menu-toggle][aria-expanded="true"] svg { transform: rotate(90deg); }

[data-cookie-banner] { display: flex; transform: translateY(100%); opacity: 0; pointer-events: none; transition: transform 0.35s ease, opacity 0.35s ease; }
[data-cookie-banner].dvs-open { transform: translateY(0); opacity: 1; pointer-events: auto; }

.dvs-reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s ease, transform 0.7s ease; }
.dvs-reveal.dvs-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  .dvs-reveal { opacity: 1; transform: none; }
  .dvs-btn:hover, .dvs-btn-outline:hover, .dvs-card:hover, .dvsthemebn:hover { transform: none; }
}
