/* =====================================================================
   DarkMatterSlay Builder – site styles
   ---------------------------------------------------------------------
   1. Theme tokens   (overridden by css/theme.css → Site Settings)
   2. Base elements  3. Layout  4. Typography  5. Buttons
   6. Content blocks 7. Header & footer  8. Motion & effects
   9. Widgets (slider, carousel, tabs, accordion, counter, progress …)
   Default look: clean wireframe – white, light grey and black.
   ===================================================================== */

/* ------------------------------------------------------------ 1. tokens */
:root {
  --dm-primary: #111111; --dm-primary-text: #ffffff; --dm-primary-hover: #333333;
  --dm-secondary: #e4e4e7; --dm-secondary-text: #111111; --dm-secondary-hover: #d4d4d8;
  --dm-accent: #52525b;
  --dm-heading: #09090b; --dm-text: #3f3f46; --dm-muted: #71717a;
  --dm-bg: #ffffff; --dm-surface: #f4f4f5; --dm-surface-2: #e4e4e7; --dm-border: #e4e4e7;
  --dm-dark: #0a0a0a; --dm-dark-text: #fafafa; --dm-dark-muted: #a1a1aa; --dm-dark-border: #27272a;
  --dm-link: var(--dm-heading); --dm-link-hover: var(--dm-accent);
  --dm-success: #16a34a; --dm-warning: #d97706; --dm-danger: #dc2626; --dm-info: #2563eb;

  --dm-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --dm-font-heading: var(--dm-font-body);
  --dm-fs: 16px; --dm-lh: 1.65; --dm-fw: 400;
  --dm-hw: 700; --dm-h-lh: 1.15; --dm-h-ls: -0.02em; --dm-h-tt: none;
  --dm-h1: 3.5rem; --dm-h2: 2.5rem; --dm-h3: 1.75rem; --dm-h4: 1.35rem; --dm-h5: 1.125rem; --dm-h6: 1rem;
  --dm-scale-t: .88; --dm-scale-m: .74;

  --dm-btn-radius: 8px; --dm-btn-px: 1.5rem; --dm-btn-py: .8rem; --dm-btn-fs: .95rem; --dm-btn-fw: 600;
  --dm-btn-tt: none; --dm-btn-ls: 0; --dm-btn-border: 2px; --dm-btn-lift: -2px;
  --dm-btn-shadow: 0 10px 24px -12px rgba(0, 0, 0, .35);

  --dm-container: 1200px; --dm-gutter: 1.5rem; --dm-gap: 2rem;
  --dm-section: 96px; --dm-section-t: 80px; --dm-section-m: 64px;
  --dm-radius: 12px; --dm-radius-sm: 8px; --dm-radius-lg: 20px;
  --dm-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 12px 32px -16px rgba(0, 0, 0, .18);
  --dm-shadow-lg: 0 24px 60px -24px rgba(0, 0, 0, .3);

  --dm-field-bg: #ffffff; --dm-field-border: #d4d4d8; --dm-field-radius: 8px; --dm-field-text: var(--dm-heading); --dm-focus: var(--dm-primary);

  --dm-header-bg: rgba(255, 255, 255, .92); --dm-header-text: var(--dm-heading); --dm-header-h: 72px; --dm-header-h-m: 64px;
  --dm-header-border: var(--dm-border); --dm-header-blur: 12px; --dm-logo-h: 32px; --dm-logo-h-m: 28px;
  --dm-menu-fs: .95rem; --dm-menu-fw: 500; --dm-menu-tt: none; --dm-menu-gap: 2rem; --dm-menu-hover: var(--dm-heading);
  --dm-submenu-bg: #ffffff; --dm-topbar-bg: var(--dm-dark); --dm-topbar-text: var(--dm-dark-text);
  --dm-footer-bg: var(--dm-surface); --dm-footer-text: var(--dm-text); --dm-footer-heading: var(--dm-heading); --dm-footer-link: var(--dm-text); --dm-footer-border: var(--dm-border);
}

/* ------------------------------------------------------------ 2. base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--dm-bg); color: var(--dm-text); font-family: var(--dm-font-body); font-size: var(--dm-fs); line-height: var(--dm-lh); font-weight: var(--dm-fw); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.menu-open, body.popup-open { overflow: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: var(--dm-font-heading); font-weight: var(--dm-hw); line-height: var(--dm-h-lh); letter-spacing: var(--dm-h-ls); text-transform: var(--dm-h-tt); color: var(--dm-heading); margin: 0 0 .6em; }
h1 { font-size: var(--dm-h1); } h2 { font-size: var(--dm-h2); } h3 { font-size: var(--dm-h3); }
h4 { font-size: var(--dm-h4); } h5 { font-size: var(--dm-h5); } h6 { font-size: var(--dm-h6); }
@media (max-width: 1023px) { h1 { font-size: calc(var(--dm-h1) * var(--dm-scale-t)); } h2 { font-size: calc(var(--dm-h2) * var(--dm-scale-t)); } h3 { font-size: calc(var(--dm-h3) * (1 - (1 - var(--dm-scale-t)) / 2)); } }
@media (max-width: 767px) { h1 { font-size: calc(var(--dm-h1) * var(--dm-scale-m)); } h2 { font-size: calc(var(--dm-h2) * var(--dm-scale-m)); } h3 { font-size: calc(var(--dm-h3) * (1 - (1 - var(--dm-scale-m)) / 2)); } }
p { margin: 0 0 1em; }
a { color: var(--dm-link); text-underline-offset: 3px; transition: color .2s; }
a:hover { color: var(--dm-link-hover); }
img, svg, video { max-width: 100%; }
img { height: auto; }
hr { border: 0; border-top: 1px solid var(--dm-border); }
::selection { background: var(--dm-primary); color: var(--dm-primary-text); }
:focus-visible { outline: 2px solid var(--dm-focus); outline-offset: 2px; }
.dm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dm-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--dm-primary); color: var(--dm-primary-text); padding: 10px 16px; border-radius: 8px; }
.dm-skip:focus { top: 12px; }
main { display: block; }

/* ------------------------------------------------------------ 3. layout */
.dm-section { position: relative; padding: var(--dm-section) 0; background: var(--dm-bg); color: var(--dm-text); }
@media (max-width: 1023px) { .dm-section { padding: var(--dm-section-t) 0; } }
@media (max-width: 767px) { .dm-section { padding: var(--dm-section-m) 0; } }
.dm-section--light { background: var(--dm-bg); }
.dm-section--muted { background: var(--dm-surface); }
.dm-section--dark { background: var(--dm-dark); color: var(--dm-dark-muted); --dm-heading: var(--dm-dark-text); --dm-text: var(--dm-dark-muted); --dm-muted: var(--dm-dark-muted); --dm-border: var(--dm-dark-border); --dm-link: var(--dm-dark-text); --dm-surface: #18181b; --dm-surface-2: #27272a; }
.dm-section--primary { background: var(--dm-primary); color: var(--dm-primary-text); --dm-heading: var(--dm-primary-text); --dm-text: var(--dm-primary-text); --dm-muted: var(--dm-primary-text); --dm-link: var(--dm-primary-text); }
.dm-section--tight { padding-top: calc(var(--dm-section) * .6); padding-bottom: calc(var(--dm-section) * .6); }
.dm-section--flush { padding: 0; }
.dm-section--bordered { border-top: 1px solid var(--dm-border); border-bottom: 1px solid var(--dm-border); }
.dm-container { width: 100%; max-width: calc(var(--dm-container) + var(--dm-gutter) * 2); margin: 0 auto; padding: 0 var(--dm-gutter); }
.dm-container--narrow { max-width: calc(760px + var(--dm-gutter) * 2); }
.dm-container--wide { max-width: calc(1440px + var(--dm-gutter) * 2); }
.dm-container--full { max-width: none; }
.dm-center { text-align: center; }
.dm-center .dm-btns { justify-content: center; }
.dm-center .dm-text, .dm-center .dm-lead { margin-left: auto; margin-right: auto; }
.dm-row { display: grid; gap: var(--dm-gap); align-items: start; }
.dm-row--middle { align-items: center; }
.dm-row--stretch { align-items: stretch; }
.dm-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dm-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dm-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dm-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dm-cols-1-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.dm-cols-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.dm-col { min-width: 0; }
@media (max-width: 1023px) { .dm-cols-4, .dm-cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dm-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .dm-cols-2, .dm-cols-3, .dm-cols-4, .dm-cols-5, .dm-cols-1-2, .dm-cols-2-1 { grid-template-columns: minmax(0, 1fr); } }
.dm-stack > * + * { margin-top: 1rem; }

/* ------------------------------------------------------------ 4. typography */
.dm-eyebrow { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dm-muted); margin: 0 0 .9rem; }
.dm-eyebrow--pill { padding: .35rem .8rem; border: 1px solid var(--dm-border); border-radius: 999px; letter-spacing: .08em; background: var(--dm-bg); }
.dm-heading { font-size: var(--dm-h2); margin: 0 0 1.1rem; }
.dm-heading--xl { font-size: var(--dm-h1); line-height: 1.05; }
.dm-heading--sm { font-size: var(--dm-h3); }
@media (max-width: 1023px) { .dm-heading { font-size: calc(var(--dm-h2) * var(--dm-scale-t)); } .dm-heading--xl { font-size: calc(var(--dm-h1) * var(--dm-scale-t)); } }
@media (max-width: 767px) { .dm-heading { font-size: calc(var(--dm-h2) * var(--dm-scale-m)); } .dm-heading--xl { font-size: calc(var(--dm-h1) * var(--dm-scale-m)); } .dm-heading--sm { font-size: calc(var(--dm-h3) * .85); } }
.dm-highlight { color: var(--dm-accent); }
.dm-mark { background: linear-gradient(transparent 60%, var(--dm-surface-2) 60%); }
.dm-text { font-size: 1.05rem; line-height: var(--dm-lh); color: var(--dm-text); max-width: 44rem; margin: 0 0 1.25rem; }
.dm-lead, .dm-text--lg { font-size: 1.25rem; line-height: 1.6; max-width: 46rem; color: var(--dm-text); }
.dm-small { font-size: .875rem; color: var(--dm-muted); }

/* ------------------------------------------------------------ 5. buttons */
.dm-btns { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.75rem; align-items: center; }
.dm-btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: var(--dm-btn-py) var(--dm-btn-px); border-radius: var(--dm-btn-radius); font-family: inherit; font-weight: var(--dm-btn-fw); font-size: var(--dm-btn-fs); text-transform: var(--dm-btn-tt); letter-spacing: var(--dm-btn-ls); line-height: 1.2; text-decoration: none; border: var(--dm-btn-border) solid transparent; cursor: pointer; transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; -webkit-appearance: none; appearance: none; white-space: nowrap; }
.dm-btn:hover { transform: translateY(var(--dm-btn-lift)); box-shadow: var(--dm-btn-shadow); }
.dm-btn:active { transform: none; }
.dm-btn svg { width: 1.1em; height: 1.1em; flex: none; }
.dm-btn--primary, .dm-btn--gold { background: var(--dm-primary); color: var(--dm-primary-text); }
.dm-btn--primary:hover, .dm-btn--gold:hover { background: var(--dm-primary-hover); color: var(--dm-primary-text); }
.dm-btn--secondary { background: var(--dm-secondary); color: var(--dm-secondary-text); }
.dm-btn--secondary:hover { background: var(--dm-secondary-hover); color: var(--dm-secondary-text); }
.dm-btn--dark { background: var(--dm-dark); color: var(--dm-dark-text); }
.dm-btn--dark:hover { background: #262626; color: var(--dm-dark-text); }
.dm-btn--light { background: #fff; color: #111; }
.dm-btn--light:hover { background: #f4f4f5; color: #111; }
.dm-btn--outline { border-color: currentColor; background: transparent; color: var(--dm-heading); }
.dm-btn--outline:hover { background: var(--dm-heading); color: var(--dm-bg); border-color: var(--dm-heading); }
.dm-section--dark .dm-btn--outline:hover { color: var(--dm-dark); }
.dm-btn--ghost { background: transparent; color: var(--dm-heading); padding-left: 0; padding-right: 0; border-radius: 0; }
.dm-btn--ghost:hover { box-shadow: none; transform: none; color: var(--dm-accent); }
.dm-btn--ghost::after { content: "→"; transition: transform .2s; }
.dm-btn--ghost:hover::after { transform: translateX(4px); }
.dm-btn--sm { padding: calc(var(--dm-btn-py) * .7) calc(var(--dm-btn-px) * .7); font-size: calc(var(--dm-btn-fs) * .9); }
.dm-btn--lg { padding: calc(var(--dm-btn-py) * 1.3) calc(var(--dm-btn-px) * 1.3); font-size: calc(var(--dm-btn-fs) * 1.08); }
.dm-btn--block { display: flex; width: 100%; }
.dm-btn--pill { border-radius: 999px; }

/* ------------------------------------------------------------ 6. content blocks */
.dm-img { display: block; max-width: 100%; height: auto; border-radius: var(--dm-radius); }
.dm-img--cover { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dm-img--wide { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.dm-img--square { width: 100%; aspect-ratio: 1; object-fit: cover; }
.dm-img--round { border-radius: 50%; }
.dm-img--shadow { box-shadow: var(--dm-shadow-lg); }
.dm-video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--dm-radius); overflow: hidden; background: #000; }
.dm-video iframe, .dm-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.dm-map { width: 100%; height: 420px; border: 0; border-radius: var(--dm-radius); display: block; filter: grayscale(1) contrast(1.05); }
.dm-divider { border: 0; height: 1px; background: var(--dm-border); margin: 2.5rem 0; }
.dm-divider--short, .dm-divider--gold { height: 3px; width: 56px; background: var(--dm-heading); margin: 1.25rem 0; border-radius: 3px; }
.dm-divider--dashed { height: 0; background: none; border-top: 2px dashed var(--dm-border); }
.dm-center .dm-divider--short, .dm-center .dm-divider--gold { margin-left: auto; margin-right: auto; }
.dm-spacer { height: 64px; }
.dm-card { background: var(--dm-bg); color: var(--dm-text); border: 1px solid var(--dm-border); border-radius: var(--dm-radius); padding: 2rem; height: 100%; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.dm-card:hover { transform: translateY(-4px); box-shadow: var(--dm-shadow); border-color: var(--dm-surface-2); }
.dm-card--flat:hover { transform: none; box-shadow: none; }
.dm-card--muted { background: var(--dm-surface); border-color: transparent; }
.dm-card .dm-text { font-size: 1rem; margin-bottom: 0; }
.dm-card__media { margin: -2rem -2rem 1.5rem; border-radius: var(--dm-radius) var(--dm-radius) 0 0; overflow: hidden; }
.dm-card__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.dm-card__icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: var(--dm-surface); color: var(--dm-heading); margin-bottom: 1.25rem; }
.dm-card__icon svg { width: 24px; height: 24px; }
.dm-card__title { font-size: 1.25rem; margin: 0 0 .6rem; }
.dm-section--dark .dm-card { background: #111113; border-color: var(--dm-dark-border); }
.dm-hero { position: relative; min-height: 82vh; display: flex; align-items: center; padding: 140px 0 110px; background: var(--dm-surface); color: var(--dm-text); overflow: hidden; }
.dm-hero--short { min-height: 0; padding: 120px 0 80px; }
.dm-hero--dark { background: var(--dm-dark) center / cover no-repeat; color: var(--dm-dark-muted); --dm-heading: var(--dm-dark-text); --dm-text: var(--dm-dark-muted); }
.dm-hero--image { background: #222 center / cover no-repeat; background-image: linear-gradient(rgba(0, 0, 0, .55), rgba(0, 0, 0, .65)), url(../images/placeholder-wide.svg); color: rgba(255, 255, 255, .85); --dm-heading: #fff; --dm-text: rgba(255, 255, 255, .85); --dm-muted: rgba(255, 255, 255, .7); }
.dm-hero__grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(var(--dm-border) 1px, transparent 1px), linear-gradient(90deg, var(--dm-border) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: radial-gradient(ellipse at center, #000 20%, transparent 70%); mask-image: radial-gradient(ellipse at center, #000 20%, transparent 70%); opacity: .7; }
.dm-hero > .dm-container { position: relative; z-index: 1; }
.dm-cta { background: var(--dm-dark); color: var(--dm-dark-muted); --dm-heading: var(--dm-dark-text); --dm-text: var(--dm-dark-muted); border-radius: var(--dm-radius-lg); padding: 3.5rem; display: flex; flex-wrap: wrap; gap: 2rem; align-items: center; justify-content: space-between; position: relative; overflow: hidden; }
.dm-cta--light { background: var(--dm-surface); --dm-heading: var(--dm-heading); --dm-text: var(--dm-text); color: var(--dm-text); }
.dm-cta .dm-heading { margin: 0 0 .5rem; }
.dm-cta .dm-text { margin: 0; }
.dm-cta .dm-btns { margin-top: 0; position: relative; z-index: 1; }
@media (max-width: 767px) { .dm-cta { padding: 2.25rem; } }
.dm-stat { text-align: center; padding: 1rem; }
.dm-stat__num { font-family: var(--dm-font-heading); font-weight: 800; font-size: clamp(2.4rem, 1.8rem + 2vw, 3.5rem); line-height: 1; color: var(--dm-heading); margin: 0 0 .5rem; letter-spacing: -.03em; }
.dm-stat__label { font-size: .95rem; letter-spacing: .02em; color: var(--dm-muted); margin: 0; }
.dm-quote { position: relative; background: var(--dm-bg); border: 1px solid var(--dm-border); border-radius: var(--dm-radius); padding: 2.25rem; margin: 0; height: 100%; display: flex; flex-direction: column; }
.dm-quote__stars { color: var(--dm-heading); letter-spacing: 2px; margin: 0 0 1rem; font-size: 1rem; }
.dm-quote__text { font-size: 1.1rem; line-height: 1.7; margin: 0 0 1.5rem; color: var(--dm-heading); flex: 1; }
.dm-quote__person { display: flex; align-items: center; gap: .9rem; }
.dm-quote__avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex: none; background: var(--dm-surface); }
.dm-quote__name { font-weight: 700; margin: 0; color: var(--dm-heading); }
.dm-quote__role { font-size: .9rem; color: var(--dm-muted); margin: 0; }
.dm-faq { border-bottom: 1px solid var(--dm-border); }
.dm-faq summary { list-style: none; cursor: pointer; padding: 1.35rem 2.5rem 1.35rem 0; font-weight: 700; font-size: 1.1rem; position: relative; color: var(--dm-heading); }
.dm-faq summary::-webkit-details-marker { display: none; }
.dm-faq summary::after { content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); font-size: 1.6rem; font-weight: 300; transition: transform .2s; }
.dm-faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.dm-faq p { margin: 0 0 1.35rem; color: var(--dm-text); }
.dm-logos { display: flex; flex-wrap: wrap; gap: 2.5rem 3.5rem; align-items: center; justify-content: center; }
.dm-logos img { height: 40px; width: auto; opacity: .6; filter: grayscale(1); transition: opacity .25s, filter .25s; }
.dm-logos img:hover { opacity: 1; filter: none; }
.dm-list { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .8rem; }
.dm-list li { position: relative; padding-left: 2rem; line-height: 1.6; }
.dm-list li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; background: var(--dm-list-icon, var(--dm-heading)); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 0a12 12 0 1 1 0 24 12 12 0 0 1 0-24zm5.6 7.4a1.5 1.5 0 0 0-2.1 0l-6.3 6.3-2.7-2.7a1.5 1.5 0 1 0-2.1 2.1l3.8 3.8a1.5 1.5 0 0 0 2.1 0l7.3-7.4a1.5 1.5 0 0 0 0-2.1z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 0a12 12 0 1 1 0 24 12 12 0 0 1 0-24zm5.6 7.4a1.5 1.5 0 0 0-2.1 0l-6.3 6.3-2.7-2.7a1.5 1.5 0 1 0-2.1 2.1l3.8 3.8a1.5 1.5 0 0 0 2.1 0l7.3-7.4a1.5 1.5 0 0 0 0-2.1z'/%3E%3C/svg%3E") center / contain no-repeat; }
.dm-list--plain li::before { border-radius: 2px; width: 6px; height: 6px; top: .65em; left: .5rem; -webkit-mask: none; mask: none; }
.dm-info { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; }
.dm-info__icon { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--dm-surface); color: var(--dm-heading); }
.dm-info__icon svg { width: 20px; height: 20px; }
.dm-info__title { font-weight: 700; margin: 0 0 .2rem; color: var(--dm-heading); }
.dm-info__text { margin: 0; color: var(--dm-muted); }
.dm-form { display: grid; gap: 1rem; }
.dm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .dm-form__row { grid-template-columns: 1fr; } }
.dm-form label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .35rem; color: var(--dm-heading); }
.dm-form input:not([type=checkbox]):not([type=radio]), .dm-form textarea, .dm-form select { width: 100%; font: inherit; padding: .8rem 1rem; border: 1px solid var(--dm-field-border); border-radius: var(--dm-field-radius); background: var(--dm-field-bg); color: var(--dm-field-text); transition: border-color .2s, box-shadow .2s; }
.dm-form input:focus, .dm-form textarea:focus, .dm-form select:focus { outline: none; border-color: var(--dm-focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dm-focus) 18%, transparent); }
.dm-form input[type=checkbox], .dm-form input[type=radio] { width: 18px; height: 18px; accent-color: var(--dm-primary); vertical-align: -3px; margin-right: 6px; }
.dm-form textarea { min-height: 140px; resize: vertical; }
.dm-form .dm-btn { justify-self: start; }
.dm-form__row--inline { grid-template-columns: 1fr auto; }
[data-form-status] { border-radius: var(--dm-radius-sm); padding: .85rem 1rem; font-size: .95rem; }
[data-form-status].is-ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
[data-form-status].is-err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.dm-field-error { color: var(--dm-danger); font-size: .85rem; margin: .35rem 0 0; }
.dm-invalid { border-color: var(--dm-danger) !important; }
.dm-team { text-align: center; }
.dm-team img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--dm-radius); margin-bottom: 1rem; display: block; background: var(--dm-surface); }
.dm-team__name { font-weight: 700; font-size: 1.1rem; margin: 0; color: var(--dm-heading); }
.dm-team__role { color: var(--dm-muted); margin: .2rem 0 0; font-size: .95rem; }
.dm-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 700; padding: .25rem .6rem; border-radius: 999px; background: var(--dm-surface); color: var(--dm-heading); }
.dm-placeholder { display: grid; place-items: center; min-height: 240px; border-radius: var(--dm-radius); background: var(--dm-surface); border: 1px dashed var(--dm-surface-2); color: var(--dm-muted); font-size: .9rem; }

/* ------------------------------------------------------------ 7. header */
.dm-header { position: relative; z-index: 100; color: var(--dm-header-text); --dm-heading: var(--dm-header-text); }
.dm-header__bar { position: relative; z-index: 0; border-bottom: 1px solid var(--dm-header-border); transition: box-shadow .3s, border-color .3s; }
/* the frosted background lives on a layer behind the bar: a backdrop-filter on the bar itself would trap the fixed mobile drawer inside it */
.dm-header__bar::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--dm-header-bg); -webkit-backdrop-filter: blur(var(--dm-header-blur)); backdrop-filter: blur(var(--dm-header-blur)); transition: background-color .3s, opacity .3s; }
.dm-header__in { display: flex; align-items: center; gap: 1.5rem; min-height: var(--dm-header-h); transition: min-height .3s; }
.dm-header[data-sticky="true"] { position: sticky; top: 0; }
.dm-header[data-transparent="true"] { position: absolute; left: 0; right: 0; top: 0; }
.dm-header[data-transparent="true"][data-sticky="true"] { position: fixed; }
.dm-header[data-transparent="true"]:not(.is-scrolled):not(.is-open) .dm-header__bar { border-bottom-color: transparent; }
.dm-header[data-transparent="true"]:not(.is-scrolled):not(.is-open) .dm-header__bar::before { opacity: 0; }
.dm-header[data-transparent="true"]:not(.is-scrolled):not(.is-open) { color: var(--dm-header-text-over, #fff); --dm-heading: var(--dm-header-text-over, #fff); }
.dm-header[data-transparent="true"]:not(.is-scrolled):not(.is-open) .dm-logo__img { filter: var(--dm-logo-filter-over, invert(1) brightness(2)); }
.dm-header.is-scrolled .dm-header__bar { box-shadow: 0 8px 30px -18px rgba(0, 0, 0, .35); }
.dm-header[data-shrink="true"].is-scrolled .dm-header__in { min-height: calc(var(--dm-header-h) - 14px); }
.dm-header[data-hide-on-scroll="true"] { transition: transform .35s ease; }
.dm-header[data-hide-on-scroll="true"].is-hidden { transform: translateY(-100%); }
.dm-topbar { background: var(--dm-topbar-bg); color: var(--dm-topbar-text); font-size: .85rem; }
.dm-topbar__in { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 38px; text-align: center; flex-wrap: wrap; padding-top: .35rem; padding-bottom: .35rem; }
.dm-topbar__text { margin: 0; }
.dm-topbar__link { color: inherit; font-weight: 600; }
.dm-topbar__link:hover { color: inherit; opacity: .8; }
.dm-logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--dm-header-text); font-weight: 800; font-size: 1.2rem; letter-spacing: -.02em; flex: none; }
.dm-logo:hover { color: var(--dm-header-text); }
.dm-logo__img { height: var(--dm-logo-h); width: auto; display: block; transition: filter .3s; }
.dm-logo[data-logo="image"] .dm-logo__text, .dm-logo[data-logo="text"] .dm-logo__img { display: none; }
.dm-nav { flex: 1; display: flex; justify-content: flex-end; }
.dm-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--dm-menu-gap); }
.dm-menu__item { position: relative; }
.dm-menu__link { display: inline-flex; align-items: center; gap: .3rem; padding: .5rem 0; color: inherit; text-decoration: none; font-size: var(--dm-menu-fs); font-weight: var(--dm-menu-fw); text-transform: var(--dm-menu-tt); position: relative; }
.dm-menu__link:hover, .dm-menu__link.is-current { color: var(--dm-menu-hover); }
.dm-header[data-menu-style="underline"] .dm-menu__link::after, .dm-header:not([data-menu-style]) .dm-menu__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.dm-header[data-menu-style="underline"] .dm-menu__link:hover::after, .dm-header[data-menu-style="underline"] .dm-menu__link.is-current::after,
.dm-header:not([data-menu-style]) .dm-menu__link:hover::after, .dm-header:not([data-menu-style]) .dm-menu__link.is-current::after { transform: scaleX(1); }
.dm-header[data-menu-style="pill"] .dm-menu { gap: calc(var(--dm-menu-gap) / 4); }
.dm-header[data-menu-style="pill"] .dm-menu__link { padding: .5rem .9rem; border-radius: 999px; }
.dm-header[data-menu-style="pill"] .dm-menu__link:hover, .dm-header[data-menu-style="pill"] .dm-menu__link.is-current { background: var(--dm-surface); }
.dm-header[data-menu-style="dim"] .dm-menu:hover .dm-menu__link { opacity: .5; }
.dm-header[data-menu-style="dim"] .dm-menu .dm-menu__link:hover { opacity: 1; }
.dm-menu__item--has-sub > .dm-menu__link::before { content: ""; order: 2; width: .45em; height: .45em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-left: .35rem; }
.dm-menu__toggle { display: none; }
.dm-submenu { list-style: none; margin: 0; padding: .5rem; position: absolute; left: -1rem; top: 100%; min-width: 220px; background: var(--dm-submenu-bg); border: 1px solid var(--dm-border); border-radius: var(--dm-radius); box-shadow: var(--dm-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility 0s .2s; z-index: 10; }
.dm-menu__item:hover > .dm-submenu, .dm-menu__item:focus-within > .dm-submenu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.dm-submenu a { display: block; padding: .6rem .8rem; border-radius: var(--dm-radius-sm); color: var(--dm-text); text-decoration: none; font-size: .925rem; }
.dm-submenu a:hover { background: var(--dm-surface); color: var(--dm-heading); }
.dm-header__actions { display: flex; align-items: center; gap: .75rem; flex: none; }
.dm-header__cta[hidden] { display: none; }
.dm-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--dm-border); border-radius: 10px; background: transparent; color: inherit; cursor: pointer; padding: 0; position: relative; }
.dm-burger span { position: absolute; left: 12px; right: 12px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .25s, opacity .2s, top .25s; }
.dm-burger span:nth-child(1) { top: 15px; } .dm-burger span:nth-child(2) { top: 21px; } .dm-burger span:nth-child(3) { top: 27px; }
.dm-header.is-open .dm-burger span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.dm-header.is-open .dm-burger span:nth-child(2) { opacity: 0; }
.dm-header.is-open .dm-burger span:nth-child(3) { top: 21px; transform: rotate(-45deg); }
/* layouts */
.dm-header[data-layout="center"] .dm-nav { justify-content: center; }
.dm-header[data-layout="stacked"] .dm-header__in { flex-wrap: wrap; justify-content: center; padding-top: .9rem; }
.dm-header[data-layout="stacked"] .dm-logo { flex-basis: 100%; justify-content: center; }
.dm-header[data-layout="stacked"] .dm-nav { justify-content: center; flex: 1 1 auto; }
.dm-header[data-layout="right"] .dm-header__in { flex-direction: row-reverse; }
.dm-header[data-layout="right"] .dm-nav { justify-content: flex-start; }
.dm-header[data-width="full"] .dm-header__in { max-width: none; }
@media (max-width: 767px) { .dm-header__in { min-height: var(--dm-header-h-m); } .dm-logo__img { height: var(--dm-logo-h-m); } }
@media (max-width: 1023px) {
  .dm-header[data-burger="tablet"] .dm-header__in { flex-wrap: nowrap; }
  .dm-header[data-burger="tablet"][data-layout] .dm-logo { flex-basis: auto; justify-content: flex-start; margin-right: auto; }
  .dm-header[data-burger="tablet"][data-layout="right"] .dm-header__in { flex-direction: row; }
  .dm-header[data-burger="tablet"] .dm-burger { display: inline-block; }
  .dm-header[data-burger="tablet"] .dm-header__cta { display: none; }
  .dm-header[data-burger="tablet"] .dm-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--dm-submenu-bg); color: var(--dm-heading); border-bottom: 1px solid var(--dm-border); box-shadow: 0 30px 40px -30px rgba(0, 0, 0, .35); max-height: calc(100vh - 80px); overflow: auto; padding: .75rem var(--dm-gutter) 1.5rem; display: none; flex-direction: column; }
  .dm-header[data-burger="tablet"].is-open .dm-nav { display: flex; animation: dm-drop .25s ease; }
  .dm-header[data-burger="tablet"] .dm-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .dm-header[data-burger="tablet"] .dm-menu__item { border-bottom: 1px solid var(--dm-border); display: flex; flex-wrap: wrap; align-items: center; }
  .dm-header[data-burger="tablet"] .dm-menu__link { flex: 1; padding: .95rem 0; font-size: 1.05rem; }
  .dm-header[data-burger="tablet"] .dm-menu__link::after { display: none; }
  .dm-header[data-burger="tablet"] .dm-menu__item--has-sub > .dm-menu__link::before { display: none; }
  .dm-header[data-burger="tablet"] .dm-menu__toggle { display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: transparent; color: inherit; cursor: pointer; }
  .dm-header[data-burger="tablet"] .dm-menu__toggle::before { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s; }
  .dm-header[data-burger="tablet"] .dm-menu__item.is-sub-open > .dm-menu__toggle::before { transform: rotate(-135deg); }
  .dm-header[data-burger="tablet"] .dm-submenu { position: static; flex-basis: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 .75rem .75rem; display: none; min-width: 0; background: transparent; }
  .dm-header[data-burger="tablet"] .dm-menu__item.is-sub-open > .dm-submenu { display: block; }
  .dm-header[data-burger="tablet"] .dm-nav__cta { display: block; margin-top: 1.25rem; }
  .dm-header[data-burger="tablet"][data-mobile-menu="offcanvas"] .dm-nav, .dm-header[data-burger="tablet"][data-mobile-menu="offcanvas-left"] .dm-nav { position: fixed; top: 0; bottom: 0; left: auto; right: 0; width: min(var(--dm-drawer-w, 320px), 84vw); max-width: 84vw; height: 100vh; height: 100dvh; max-height: none; overflow-y: auto; overscroll-behavior: contain; padding: calc(var(--dm-header-h-m) + 1rem) 1.5rem 1.5rem; display: flex; transform: translateX(105%); transition: transform .3s ease; animation: none; border: 0; box-shadow: -20px 0 50px -20px rgba(0, 0, 0, .4); z-index: -1; }
  .dm-header[data-burger="tablet"][data-mobile-menu="offcanvas-left"] .dm-nav { right: auto; left: 0; transform: translateX(-105%); }
  .dm-header[data-burger="tablet"].is-open[data-mobile-menu^="offcanvas"] .dm-nav { transform: none; }
  .dm-header[data-burger="tablet"]:not(.is-open)[data-mobile-menu^="offcanvas"] .dm-nav { visibility: hidden; box-shadow: none; transition: transform .3s ease, visibility 0s linear .3s; }
  .dm-header[data-burger="tablet"][data-mobile-menu="fullscreen"] .dm-nav { position: fixed; inset: 0; max-height: none; padding: calc(var(--dm-header-h-m) + 2rem) 2rem 2rem; z-index: -1; justify-content: center; }
  .dm-header[data-burger="tablet"][data-mobile-menu="fullscreen"] .dm-menu__link { font-size: 1.6rem; font-weight: 700; justify-content: center; text-align: center; }
  .dm-header[data-burger="tablet"][data-mobile-menu="fullscreen"] .dm-menu__item { border: 0; justify-content: center; }
}
@media (max-width: 767px) {
  .dm-header:not([data-burger="never"]) .dm-header__in { flex-wrap: nowrap; }
  .dm-header:not([data-burger="never"])[data-layout] .dm-logo { flex-basis: auto; justify-content: flex-start; margin-right: auto; }
  .dm-header:not([data-burger="never"])[data-layout="right"] .dm-header__in { flex-direction: row; }
  .dm-header:not([data-burger="never"]) .dm-burger { display: inline-block; }
  .dm-header:not([data-burger="never"]) .dm-header__cta { display: none; }
  .dm-header:not([data-burger="never"]) .dm-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--dm-submenu-bg); color: var(--dm-heading); border-bottom: 1px solid var(--dm-border); box-shadow: 0 30px 40px -30px rgba(0, 0, 0, .35); max-height: calc(100vh - 80px); overflow: auto; padding: .75rem var(--dm-gutter) 1.5rem; display: none; flex-direction: column; }
  .dm-header:not([data-burger="never"]).is-open .dm-nav { display: flex; animation: dm-drop .25s ease; }
  .dm-header:not([data-burger="never"]) .dm-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .dm-header:not([data-burger="never"]) .dm-menu__item { border-bottom: 1px solid var(--dm-border); display: flex; flex-wrap: wrap; align-items: center; }
  .dm-header:not([data-burger="never"]) .dm-menu__link { flex: 1; padding: .95rem 0; font-size: 1.05rem; }
  .dm-header:not([data-burger="never"]) .dm-menu__link::after { display: none; }
  .dm-header:not([data-burger="never"]) .dm-menu__item--has-sub > .dm-menu__link::before { display: none; }
  .dm-header:not([data-burger="never"]) .dm-menu__toggle { display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: transparent; color: inherit; cursor: pointer; }
  .dm-header:not([data-burger="never"]) .dm-menu__toggle::before { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s; }
  .dm-header:not([data-burger="never"]) .dm-menu__item.is-sub-open > .dm-menu__toggle::before { transform: rotate(-135deg); }
  .dm-header:not([data-burger="never"]) .dm-submenu { position: static; flex-basis: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 .75rem .75rem; display: none; min-width: 0; background: transparent; }
  .dm-header:not([data-burger="never"]) .dm-menu__item.is-sub-open > .dm-submenu { display: block; }
  .dm-header:not([data-burger="never"]) .dm-nav__cta { display: block; margin-top: 1.25rem; }
  .dm-header:not([data-burger="never"])[data-mobile-menu="offcanvas"] .dm-nav, .dm-header:not([data-burger="never"])[data-mobile-menu="offcanvas-left"] .dm-nav { position: fixed; top: 0; bottom: 0; left: auto; right: 0; width: min(var(--dm-drawer-w, 320px), 84vw); max-width: 84vw; height: 100vh; height: 100dvh; max-height: none; overflow-y: auto; overscroll-behavior: contain; padding: calc(var(--dm-header-h-m) + 1rem) 1.5rem 1.5rem; display: flex; transform: translateX(105%); transition: transform .3s ease; animation: none; border: 0; box-shadow: -20px 0 50px -20px rgba(0, 0, 0, .4); z-index: -1; }
  .dm-header:not([data-burger="never"])[data-mobile-menu="offcanvas-left"] .dm-nav { right: auto; left: 0; transform: translateX(-105%); }
  .dm-header:not([data-burger="never"]).is-open[data-mobile-menu^="offcanvas"] .dm-nav { transform: none; }
  .dm-header:not([data-burger="never"]):not(.is-open)[data-mobile-menu^="offcanvas"] .dm-nav { visibility: hidden; box-shadow: none; transition: transform .3s ease, visibility 0s linear .3s; }
  .dm-header:not([data-burger="never"])[data-mobile-menu="fullscreen"] .dm-nav { position: fixed; inset: 0; max-height: none; padding: calc(var(--dm-header-h-m) + 2rem) 2rem 2rem; z-index: -1; justify-content: center; }
  .dm-header:not([data-burger="never"])[data-mobile-menu="fullscreen"] .dm-menu__link { font-size: 1.6rem; font-weight: 700; justify-content: center; text-align: center; }
  .dm-header:not([data-burger="never"])[data-mobile-menu="fullscreen"] .dm-menu__item { border: 0; justify-content: center; }
}
.dm-nav__cta { display: none; }
/* dimmed backdrop behind the slide-in drawer (tap it to close) */
@media (max-width: 1023px) {
  .dm-header:not([data-burger="never"])[data-mobile-menu^="offcanvas"]::after { content: ""; position: fixed; inset: 0; z-index: -2; background: rgba(0, 0, 0, .45); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
  .dm-header:not([data-burger="never"]).is-open[data-mobile-menu^="offcanvas"]::after { opacity: 1; visibility: visible; }
  .dm-header[data-mobile-menu^="offcanvas"] .dm-nav .dm-menu__link { padding: .8rem 0; font-size: 1rem; }
  .dm-header:not([data-burger="never"])[data-mobile-menu^="offcanvas"] .dm-nav { flex-direction: column; justify-content: flex-start; align-items: stretch; }
}
@media (min-width: 768px) { .dm-header[data-burger="mobile"][data-mobile-menu^="offcanvas"]::after { display: none; } }
@keyframes dm-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------ footer */
.dm-footer { background: var(--dm-footer-bg); color: var(--dm-footer-text); padding: 72px 0 28px; border-top: 1px solid var(--dm-footer-border); --dm-heading: var(--dm-footer-heading); font-size: .95rem; }
.dm-footer__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(var(--dm-footer-cols, 3), minmax(0, 1fr)); gap: 2.5rem; }
.dm-footer__brand .dm-logo { color: var(--dm-footer-heading); margin-bottom: 1rem; }
.dm-footer__about { max-width: 22rem; margin: 0 0 1.25rem; }
.dm-footer__title { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 1rem; color: var(--dm-footer-heading); }
.dm-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.dm-footer a { color: var(--dm-footer-link); text-decoration: none; }
.dm-footer a:hover { color: var(--dm-footer-heading); text-decoration: underline; }
.dm-footer .dm-form__row { grid-template-columns: 1fr auto; gap: .5rem; }
.dm-footer__bottom { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--dm-footer-border); display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; font-size: .875rem; }
.dm-footer__copy { margin: 0; }
.dm-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1.25rem; }
.dm-footer--dark { --dm-footer-bg: var(--dm-dark); --dm-footer-text: var(--dm-dark-muted); --dm-footer-heading: var(--dm-dark-text); --dm-footer-link: var(--dm-dark-muted); --dm-footer-border: var(--dm-dark-border); --dm-border: var(--dm-dark-border); --dm-field-bg: #111113; --dm-field-border: var(--dm-dark-border); --dm-field-text: var(--dm-dark-text); }
.dm-footer--center .dm-footer__grid { grid-template-columns: 1fr; text-align: center; justify-items: center; }
.dm-footer--center .dm-footer__bottom { justify-content: center; }
@media (max-width: 1023px) { .dm-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dm-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 767px) { .dm-footer { padding-top: 56px; } .dm-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; } .dm-footer__bottom { flex-direction: column; align-items: flex-start; } }

/* ------------------------------------------------------------ 8. motion & effects */
/* entrance animations: Advanced → Entrance animation (site.js adds .is-in) */
.js [data-anim] { opacity: 0; transform: var(--from, none); filter: blur(var(--from-blur, 0px)); transition: opacity var(--dur, .7s) var(--anim-ease, cubic-bezier(.25, .1, .25, 1)) var(--delay, 0s), transform var(--dur, .7s) var(--anim-ease, cubic-bezier(.25, .1, .25, 1)) var(--delay, 0s), filter var(--dur, .7s) ease var(--delay, 0s); }
.js [data-anim].is-in { opacity: 1; transform: none; filter: none; }
/* v25: safety – if js/site.js never runs (blocked or broken), animated content still fades in after 3 s; site.js sets .dms-ready */
.js:not(.dms-ready) [data-anim]:not(.is-in) { animation: dm-anim-safety .6s ease 3s forwards; }
@keyframes dm-anim-safety { to { opacity: 1; transform: none; filter: none; } }
@media (prefers-reduced-motion: reduce) { .js [data-anim] { opacity: 1; transform: none; filter: none; transition: none; } }
/* hover effects: Advanced → Hover effect */
.dm-hover-grow, .dm-hover-shrink, .dm-hover-float, .dm-hover-sink, .dm-hover-rotate, .dm-hover-tilt, .dm-hover-shadow, .dm-hover-glow, .dm-hover-dim, .dm-hover-color { transition: transform .3s ease, box-shadow .3s ease, opacity .3s ease, filter .3s ease; }
.dm-hover-grow:hover { transform: scale(1.05); }
.dm-hover-shrink:hover { transform: scale(.95); }
.dm-hover-float:hover { transform: translateY(-8px); }
.dm-hover-sink:hover { transform: translateY(6px); }
.dm-hover-rotate:hover { transform: rotate(4deg); }
.dm-hover-tilt:hover { transform: perspective(600px) rotateX(6deg) rotateY(-6deg); }
.dm-hover-shadow:hover { box-shadow: var(--dm-shadow-lg); }
.dm-hover-glow:hover { box-shadow: 0 0 0 4px color-mix(in srgb, var(--dm-primary) 18%, transparent), var(--dm-shadow); }
.dm-hover-dim:hover { opacity: .7; }
.dm-hover-color { filter: grayscale(1); } .dm-hover-color:hover { filter: none; }
.dm-hover-pulse:hover { animation: dm-pulse .9s ease-in-out infinite; }
.dm-hover-bob:hover { animation: dm-bob 1s ease-in-out infinite; }
.dm-hover-buzz:hover { animation: dm-buzz .3s linear infinite; }
@keyframes dm-pulse { 50% { transform: scale(1.06); } }
@keyframes dm-bob { 50% { transform: translateY(-6px); } }
@keyframes dm-buzz { 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
/* loop animations: Advanced → Loop animation */
.dm-loop-float { animation: dm-bob 3s ease-in-out infinite; }
.dm-loop-spin { animation: dm-spin 12s linear infinite; }
.dm-loop-pulse { animation: dm-pulse 2.4s ease-in-out infinite; }
.dm-loop-swing { animation: dm-swing 3s ease-in-out infinite; transform-origin: top center; }
@keyframes dm-spin { to { transform: rotate(360deg); } }
@keyframes dm-swing { 25% { transform: rotate(4deg); } 75% { transform: rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { [class*="dm-loop-"], [class*="dm-hover-"]:hover { animation: none !important; } }
/* scroll effects */
.dm-bg-fixed { background-attachment: fixed; background-size: cover; background-position: center; }
@supports (-webkit-touch-callout: none) { .dm-bg-fixed { background-attachment: scroll; } }
.dm-sticky { position: sticky; top: var(--sticky-top, 96px); }
[data-parallax] { will-change: transform; }

/* responsive visibility: Advanced → Hide on */
@media (min-width: 1024px) { .dm-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1023px) { .dm-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .dm-hide-mobile { display: none !important; } }

/* v13: a header button that is switched off stays hidden in the mobile menu too */
.dm-nav__cta[hidden], .dm-header:has(.dm-header__cta[hidden]) .dm-nav__cta { display: none !important; }
