/* ========== Root, Reset, and Tokens ========== */
:root{
  --color-bg:#F5F1EB;
  --color-bg-alt:#FFFFFF;
  --color-surface:#FFFFFF;
  --color-text:#262626;
  --color-muted:#7A7A7A;
  --color-primary:#D5B98C;
  --color-secondary:#0B0B0C;
  --color-accent:#262626;
  --color-contrast:#FFFFFF;
  --border-soft:#EEEEEE;
  --border-strong:#444444;

  --link-color:var(--color-text);
  --link-hover-color:var(--color-primary);
  --link-active-color:var(--color-primary);
  --link-decoration:none;

  --rich-black:var(--color-secondary);
  --ivory:var(--color-bg);
  --champagne:var(--color-primary);
  --text-900:var(--color-text);
  --text-500:var(--color-muted);

  --radius-4:4px;
  --radius-8:8px;

  --container:1200px;
  --gutter:24px;

  --button-primary-bg:var(--champagne);
  --button-primary-text:#111;
  --button-border-radius:999px;

  --card-border-style:none;
  --card-border-width:0px;
  --card-border-color:var(--border-soft);
  --card-border-radius:12px;

  --section-border-style:none;
  --section-border-width:0px;
  --section-border-color:var(--border-soft);
  --section-border-radius:0px;

  --shadow-soft: 0 1px 2px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.08);
  --shadow-strong: 0 6px 18px rgba(0,0,0,.12);
  --shadow-1: var(--shadow-soft);
  --shadow-2: var(--shadow-strong);

  --transition-quick:200ms ease;

  --menu-overlay-duration:.35s;
  --menu-panel-duration:.4s;
  --menu-stagger-delay:.08s;
  --menu-link-style-offset:12px;
  --menu-link-distance:12px;
  --menu-link-offset-near:12px;
  --menu-link-offset-medium:4vw;
  --menu-link-offset-far:12vw;
  --menu-link-scale-start:1;
  --menu-link-scale-open:1;

  --gradient-primary: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
  --gradient-accent: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  --gradient-solid-primary: var(--color-primary);
  --gradient-solid-accent: var(--color-accent);
}

/* A11y: Skip link */
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{ left:12px; top:12px; width:auto; height:auto; padding:8px 12px; background:var(--color-surface); color:var(--color-secondary); z-index:9999; border-radius:var(--radius-4); box-shadow:var(--shadow-1); }

/* Base */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; color:var(--text-900); background:var(--color-bg);
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  font-size:16px; line-height:1.6;
}
img{ max-width:100%; height:auto; display:block; }
a{
  color:var(--link-color);
  text-decoration-line:var(--link-decoration);
  text-decoration-style:var(--link-decoration-style);
  text-decoration-color:var(--link-hover-color);
  transition:color var(--transition-quick), text-decoration-color var(--transition-quick), text-shadow var(--transition-quick), transform var(--transition-quick), background var(--transition-quick);
  position:relative;
}
a:hover,
a:focus{
  color:var(--link-hover-color);
  text-decoration-line:var(--link-decoration);
  text-decoration-style:var(--link-decoration-style);
}
a:active{
  color:var(--link-active-color);
}
button{ font:inherit; }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }

/* Typography */
.display-1{
  font-family:"Playfair Display", serif;
  font-weight:700; font-size:clamp(40px, 6vw, 72px);
  letter-spacing:.02em; line-height:1.1; margin:0 0 12px;
}
.subtitle{ font-size:clamp(16px, 2.2vw, 20px); color:var(--color-contrast); opacity:.9; margin:0 0 24px; }
.section-title{
  font-family:"Playfair Display", serif; font-weight:600; letter-spacing:.02em;
  font-size:clamp(24px, 3.2vw, 36px); margin:0 0 12px;
}
.lead{ font-size:18px; color:var(--text-900); }

/* Grid helpers */
.grid{ display:grid; gap:32px; }
.grid--2{ grid-template-columns:1fr; }
@media (min-width: 768px){
  .grid--2{ grid-template-columns: 1fr 1fr; }
}

/* Buttons */
.btn{
  display:inline-block; border:1px solid transparent; padding:12px 18px; border-radius:var(--button-border-radius); font-weight:600;
  transition:transform var(--transition-quick), background var(--transition-quick), color var(--transition-quick), border-color var(--transition-quick), box-shadow var(--transition-quick);
  text-decoration:none; will-change:transform;
}
.btn:hover{ transform:translateY(-1px); text-decoration:none; }
.btn:active{ transform:translateY(0); }
.btn--primary{ background:var(--button-primary-bg); color:var(--button-primary-text); border-color:var(--button-primary-bg); box-shadow:var(--shadow-1); }
.btn--primary:hover{ box-shadow:var(--shadow-2); }
.btn--ghost{ background:transparent; color:var(--color-contrast); border-color:rgba(255,255,255,.55); }
.btn--ghost:hover{ background:rgba(255,255,255,.08); }
.btn--small{ padding:8px 12px; font-size:14px; border-radius:999px; border:1px solid var(--text-500); }

/* Button hover effects */
.btn-effect-raise .btn--primary{
  transition:transform var(--transition-quick), box-shadow var(--transition-quick);
}
.btn-effect-raise .btn--primary:hover,
.btn-effect-raise .btn--primary:focus{ transform:translateY(-2px); box-shadow:var(--shadow-2); }

.btn-effect-invert .btn--primary:hover,
.btn-effect-invert .btn--primary:focus{
  background:transparent; color:var(--button-primary-bg); border-color:var(--button-primary-bg);
}

.btn-effect-glow-outline .btn--primary:hover,
.btn-effect-glow-outline .btn--primary:focus{
  box-shadow:0 0 0 3px color-mix(in srgb, var(--button-primary-bg) 30%, transparent), var(--shadow-2);
}

.btn-effect-gradient-shift .btn--primary{
  background-image:var(--gradient-primary);
  background-size:200% 200%;
}
.btn-effect-gradient-shift .btn--primary:hover,
.btn-effect-gradient-shift .btn--primary:focus{
  background-position:100% 0;
}

.btn-effect-ripple .btn--primary{ position:relative; overflow:hidden; }
.btn-effect-ripple .btn--primary::after{
  content:""; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(circle, rgba(255,255,255,.35) 10%, transparent 40%);
  transform:scale(0); opacity:0; transition:transform .35s ease, opacity .35s ease;
}
.btn-effect-ripple .btn--primary:hover::after,
.btn-effect-ripple .btn--primary:focus::after{ transform:scale(2); opacity:1; }

.btn-effect-btn-underline-label .btn--primary{ position:relative; }
.btn-effect-btn-underline-label .btn--primary::after{
  content:""; position:absolute; left:20px; right:20px; bottom:10px; height:2px; background:currentColor; transform:scaleX(0);
  transform-origin:left center; transition:transform var(--transition-quick);
}
.btn-effect-btn-underline-label .btn--primary:hover::after,
.btn-effect-btn-underline-label .btn--primary:focus::after{ transform:scaleX(1); }

/* Header */
.site-header{
  position:sticky; top:0; z-index:1000; background:rgba(11,11,12,.72); backdrop-filter:saturate(120%) blur(10px);
  transition:padding var(--transition-quick), background var(--transition-quick), box-shadow var(--transition-quick);
  padding-block:14px;
}
.site-header.is-scrolled{ padding-block:8px; background:rgba(11,11,12,.9); box-shadow:0 2px 12px rgba(0,0,0,.25); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; position:relative; }
.header-inner.header-layout-left{ flex-direction:row-reverse; }
.header-inner.header-layout-left .menu-toggle{ margin-right:auto; }
.header-inner.header-layout-right .menu-toggle{ margin-left:auto; }
.brand__wordmark{
  font-family:"Playfair Display", serif; font-weight:700; letter-spacing:.02em; font-size:22px; color:var(--color-contrast);
}

/* Nav */
.menu-toggle{
  display:inline-flex; align-items:center; gap:10px; padding:8px 14px; border-radius:999px;
  border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); color:var(--color-contrast); cursor:pointer;
  transition:background var(--transition-quick), border-color var(--transition-quick), color var(--transition-quick);
}
.menu-toggle:hover,
.menu-toggle.is-active{ background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.5); }
.menu-toggle__label{ font-weight:600; letter-spacing:.18em; text-transform:uppercase; font-size:13px; }
.menu-toggle__icon{ display:inline-flex; flex-direction:column; gap:5px; }
.menu-toggle__bar{ width:18px; height:2px; background:var(--color-contrast); display:block; border-radius:2px; }

body.no-scroll{ overflow:hidden; }

.menu-overlay{
  position:fixed; inset:0;
  background:transparent;
  opacity:0; pointer-events:none;
  backdrop-filter:none; -webkit-backdrop-filter:none;
  transition:opacity var(--menu-overlay-duration, .35s) ease,
            background-color var(--menu-overlay-duration, .35s) ease,
            backdrop-filter var(--menu-overlay-duration, .35s) ease;
  z-index:900;
}
.menu-overlay.is-visible{ opacity:1; pointer-events:auto; }
.menu-overlay.overlay-effect-darken.is-visible{
  background-color:rgba(0,0,0,.75);
}
.menu-overlay.overlay-effect-blur.is-visible{
  background-color:rgba(0,0,0,.15);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.menu-overlay.overlay-effect-darken-blur.is-visible{
  background-color:rgba(0,0,0,.55);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.menu-overlay.overlay-effect-none.is-visible{
  background-color:transparent;
}

.site-menu{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:flex-start;
  opacity:0; pointer-events:none; transition:opacity var(--menu-panel-duration, .4s) ease; z-index:1000;
}
.site-menu.is-open{ opacity:1; pointer-events:auto; }
.site-menu.is-closing{ pointer-events:none; }
.site-menu-inner{
  margin-left:8vw; margin-right:8vw; max-width:520px; width:100%; color:var(--color-contrast);
}
.site-menu-header{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.site-menu-label{ text-transform:uppercase; letter-spacing:.3em; font-size:12px; opacity:.7; }
.menu-close{
  display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.35);
  border-radius:999px; background:transparent; color:var(--color-contrast); padding:6px 14px; cursor:pointer;
  text-transform:uppercase; letter-spacing:.16em; font-size:12px;
  transition:background var(--transition-quick), border-color var(--transition-quick);
}
.menu-close:hover{ background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.55); }
.menu-close__icon{ font-size:18px; line-height:1; }

.site-menu-list{
  list-style:none; margin:2rem 0 0; padding:0; display:flex; flex-direction:column; gap:6px;
}
.site-menu-list li{
  --menu-link-translate:calc(var(--menu-link-distance, 12px) * -1);
  opacity:0;
  transform:translateX(var(--menu-link-translate)) scale(var(--menu-link-scale-start, 1));
  filter:none;
  transition:opacity var(--menu-panel-duration, .32s) ease,
            transform var(--menu-panel-duration, .32s) ease,
            filter var(--menu-panel-duration, .32s) ease;
}
.site-menu.is-open:not(.is-closing) .site-menu-list li{
  opacity:1;
  transform:translateX(0) scale(var(--menu-link-scale-open, 1));
  filter:none;
}
.site-menu.is-closing .site-menu-list li{
  opacity:0;
  transition-delay:0s;
}
.site-menu.menu-exit-instant-fade.is-closing .site-menu-list li{
  transform:translateX(0) scale(var(--menu-link-scale-start, 1));
  filter:none;
}
.site-menu.menu-exit-reverse.is-closing .site-menu-list li{
  transform:translateX(var(--menu-link-translate, 0)) scale(var(--menu-link-scale-start, 1));
  filter:none;
}
.site-menu.menu-exit-fall-down.is-closing .site-menu-list li{
  transform:translateY(28px) scale(var(--menu-link-scale-open, 1));
  filter:none;
}
.site-menu.menu-exit-zoom-out.is-closing .site-menu-list li{
  transform:scale(.9);
  filter:none;
}
.site-menu.menu-exit-blur-out.is-closing .site-menu-list li{
  transform:translateY(12px) scale(.96);
  filter:blur(4px);
}
.site-menu-list a{
  display:block; padding:10px 0; font-size:clamp(1.4rem, 2vw, 2rem); text-transform:uppercase;
  letter-spacing:.12em; color:var(--color-contrast); font-weight:600; border-bottom:1px solid rgba(255,255,255,.08);
}
.site-menu-list a:hover{ text-decoration:none; color:var(--champagne); border-color:rgba(213,185,140,.4); }
.site-menu-list a.is-active{ color:var(--champagne); }
.nav-style-pill .site-menu-list a{
  border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:10px 14px; background:rgba(0,0,0,.2); border-bottom:0;
}
.nav-style-pill .site-menu-list a:hover{ background:rgba(0,0,0,.35); border-color:rgba(255,255,255,.4); }
.nav-style-highlight-bar .site-menu-list a{ position:relative; border-bottom:0; }
.nav-style-highlight-bar .site-menu-list a::after{
  content:""; position:absolute; left:0; bottom:-6px; width:0; height:3px; background:var(--champagne); transition:width var(--transition-quick);
}
.nav-style-highlight-bar .site-menu-list a:hover::after,
.nav-style-highlight-bar .site-menu-list a.is-active::after{ width:100%; }

.nav-effect-underline-slide .site-menu-list a{ position:relative; }
.nav-effect-underline-slide .site-menu-list a::after{
  content:""; position:absolute; left:0; bottom:-1px; width:0; height:2px; background:var(--champagne); transition:width var(--transition-quick);
}
.nav-effect-underline-slide .site-menu-list a:hover::after,
.nav-effect-underline-slide .site-menu-list a:focus::after{ width:100%; }
.nav-effect-underline-center-out .site-menu-list a{ position:relative; }
.nav-effect-underline-center-out .site-menu-list a::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:-1px; width:0; height:2px; background:var(--champagne); transition:width var(--transition-quick);
}
.nav-effect-underline-center-out .site-menu-list a:hover::after,
.nav-effect-underline-center-out .site-menu-list a:focus::after{ width:100%; }
.nav-effect-color-fade .site-menu-list a:hover,
.nav-effect-color-fade .site-menu-list a:focus{ color:var(--champagne); }
.nav-effect-glow .site-menu-list a:hover,
.nav-effect-glow .site-menu-list a:focus{ text-shadow:0 0 10px rgba(255,255,255,.55); }
.nav-effect-bg-highlight .site-menu-list a{ position:relative; }
.nav-effect-bg-highlight .site-menu-list a::before{
  content:""; position:absolute; inset:-4px -8px; border-radius:12px; background:rgba(255,255,255,.08); opacity:0; transition:opacity var(--transition-quick);
}
.nav-effect-bg-highlight .site-menu-list a:hover::before,
.nav-effect-bg-highlight .site-menu-list a:focus::before{ opacity:1; }
.nav-effect-scale-small .site-menu-list a{ display:inline-block; }
.nav-effect-scale-small .site-menu-list a:hover,
.nav-effect-scale-small .site-menu-list a:focus{ transform:scale(1.03); }
.site-menu-cta{ margin-top:2.5rem; }
.site-menu-cta .btn{ width:100%; text-align:center; font-size:1rem; letter-spacing:.08em; }

.site-menu-list li:nth-child(1){ --menu-stagger-index:1; }
.site-menu-list li:nth-child(2){ --menu-stagger-index:2; }
.site-menu-list li:nth-child(3){ --menu-stagger-index:3; }
.site-menu-list li:nth-child(4){ --menu-stagger-index:4; }
.site-menu-list li:nth-child(5){ --menu-stagger-index:5; }
.site-menu-list li:nth-child(6){ --menu-stagger-index:6; }
.site-menu-list li:nth-child(7){ --menu-stagger-index:7; }
.site-menu-list li:nth-child(8){ --menu-stagger-index:8; }
.site-menu-list li:nth-child(9){ --menu-stagger-index:9; }
.site-menu.is-open:not(.is-closing) .site-menu-list li{
  transition-delay:calc(var(--menu-stagger-delay, .08s) * var(--menu-stagger-index, 0));
}

body.menu-style-subtle{
  --menu-link-style-offset:8px;
  --menu-link-distance:var(--menu-link-style-offset);
  --menu-link-scale-start:1;
  --menu-link-scale-open:1;
}
body.menu-style-normal{
  --menu-link-style-offset:12px;
  --menu-link-distance:var(--menu-link-style-offset);
  --menu-link-scale-start:1;
  --menu-link-scale-open:1;
}
body.menu-style-exaggerated{
  --menu-link-style-offset:20px;
  --menu-link-distance:var(--menu-link-style-offset);
  --menu-link-scale-start:.96;
  --menu-link-scale-open:1;
}
body.menu-style-subtle .site-menu-list li{ transition-timing-function:cubic-bezier(.4,0,.2,1); }
body.menu-style-exaggerated .site-menu-list li{ transition-timing-function:cubic-bezier(.19,1,.22,1); }

.menu-dist-near{ --menu-link-distance:var(--menu-link-offset-near); }
.menu-dist-medium{ --menu-link-distance:var(--menu-link-offset-medium); }
.menu-dist-far{ --menu-link-distance:var(--menu-link-offset-far); }

.menu-dir-left .site-menu-list li{
  --menu-link-translate:calc(var(--menu-link-distance, 12px) * -1);
}
.menu-dir-right .site-menu-list li{
  --menu-link-translate:var(--menu-link-distance, 12px);
}
.menu-dir-alternate .site-menu-list li:nth-child(odd){
  --menu-link-translate:calc(var(--menu-link-distance, 12px) * -1);
}
.menu-dir-alternate .site-menu-list li:nth-child(even){
  --menu-link-translate:var(--menu-link-distance, 12px);
}

@media (max-width: 768px){
  .site-header{ padding-block:10px; }
  .site-menu{
    align-items:flex-start;
  }
  .site-menu-inner{
    margin-left:6vw; margin-right:6vw; padding-top:80px;
  }
  .site-menu-list a{ font-size:1.25rem; letter-spacing:.08em; }
  .site-menu-cta .btn{ font-size:.95rem; }
}

@media (min-width: 1024px){
  .menu-toggle{ min-width:130px; justify-content:center; }
  .site-menu-inner{ margin-left:10vw; }
}

/* Hero */
.hero{ position:relative; min-height:72dvh; }
.hero__media{ position:relative; min-height:72dvh; }
.hero__img,
.hero__video,
.hero__embed,
.hero__slideshow,
.hero__slides,
.hero__slide{ width:100%; height:72dvh; }
.hero__img{ object-fit:cover; object-position:center; display:block; }
.hero__fallback{
  width:100%;
  height:72dvh;
  background:var(--gradient-primary);
}
.hero__overlay{
  position:absolute; inset:0; display:flex; align-items:flex-end;
  background:linear-gradient(0deg, rgba(11,11,12,.72), rgba(11,11,12,.0) 40%);
}
.hero__content{ color:var(--color-contrast); padding-block:56px; }
.hero__video{ object-fit:cover; display:block; border:0; background:#000; }
.hero__embed{ position:relative; border:0; overflow:hidden; }
.hero__embed iframe{ width:100%; height:100%; border:0; display:block; }
.hero__slideshow{ position:relative; overflow:hidden; border-radius:0; }
.hero__slides{ position:relative; height:100%; }
.hero__slide{ position:absolute; inset:0; opacity:0; transition:opacity .8s ease, transform .8s ease; transform:scale(1.01); }
.hero__slide.is-active{ opacity:1; transform:scale(1); }
.hero__slide img,
.hero__slide video{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; border:0; }
.hero__slide video{ background:#000; }
.hero__slide-nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:999px; border:0;
  background:rgba(0,0,0,.45); color:var(--color-contrast); display:flex; align-items:center; justify-content:center; cursor:pointer;
  backdrop-filter:blur(4px); transition:background var(--transition-quick);
}
.hero__slide-nav:hover{ background:rgba(0,0,0,.65); }
.hero__slide-nav--prev{ left:16px; }
.hero__slide-nav--next{ right:16px; }
.hero__slide-nav svg{ width:18px; height:18px; }
.hero__slide-dots{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%); display:flex; gap:8px; }
.hero__slide-dot{ width:10px; height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.4); background:rgba(0,0,0,.35);
  padding:0; cursor:pointer; }
.hero__slide-dot.is-active{ background:var(--color-contrast); border-color:var(--color-contrast); }

@media (max-width: 767px){
  .hero,
  .hero__media,
  .hero__img,
  .hero__video,
  .hero__embed,
  .hero__slideshow,
  .hero__slides,
  .hero__slide,
  .hero__fallback{ height:60dvh; }
  .hero__slide-nav{ width:38px; height:38px; }
}

/* Social band */
.social-band{ background:var(--color-surface); border-block:1px solid var(--border-soft); border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.social-band__row{ display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; justify-content:center; padding-block:16px; }
.social-btn{
  display:inline-flex; align-items:center; gap:10px; font-weight:600; color:var(--text-900);
  padding:8px 12px; border-radius:var(--card-border-radius); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); background:var(--color-surface); box-shadow:var(--shadow-1);
  transition:transform var(--transition-quick), box-shadow var(--transition-quick);
}
.social-btn:hover{ transform:translateY(-1px); text-decoration:none; box-shadow:var(--shadow-2); }
.social-btn .icon{ display:inline-flex; }
.social-btn .label{ letter-spacing:.01em; }
.chip{
  display:inline-block; min-width:44px; text-align:center; padding:4px 8px; font-size:12px; border-radius:999px; background:var(--ivory); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); color:#7a663f;
}

/* About */
.about{ padding-block:56px; border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.bullet-list{ margin:16px 0; padding-left:20px; }
.bullet-list li{ margin:8px 0; }
.mini-contact{ margin-top:16px; color:var(--text-500); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.about__cta{ margin-top:20px; display:flex; gap:10px; flex-wrap:wrap; }
.about__media img{ border-radius:var(--card-border-radius); box-shadow:var(--shadow-2); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); }
.about__placeholder{
  width:100%;
  max-width:800px;
  aspect-ratio:4 / 5;
  min-height:420px;
  display:block;
  border-radius:var(--card-border-radius);
  box-shadow:var(--shadow-2);
  border:var(--card-border-width) var(--card-border-style) var(--card-border-color);
  background:var(--gradient-primary), var(--color-surface);
}
.about--overlay-enabled{ position:relative; }
.about--overlay-enabled .grid{ position:relative; }
.about--overlay-enabled .about__media{ grid-column:1 / -1; }
.about--overlay-enabled .about__placeholder{ width:100%; }
.about--overlay-enabled .about__content{
  position:absolute; right:6%; bottom:10%; left:auto; top:auto;
  background:rgba(11,11,12,.82); color:var(--color-contrast); border-radius:16px; padding:24px;
  box-shadow:var(--shadow-2); max-width:520px; z-index:2;
}
html.has-scroll-effects .about--overlay-enabled .about__content{
  opacity:0; transform:translate3d(0,28px,0);
  transition:opacity var(--about-overlay-duration,600ms) ease, transform var(--about-overlay-duration,600ms) ease;
}
html.has-scroll-effects .about--overlay-enabled[data-animation-style="slide"] .about__content{ transform:translate3d(0,60px,0); }
html.has-scroll-effects .about--overlay-enabled[data-animation-style="zoom"] .about__content,
html.has-scroll-effects .about--overlay-enabled[data-animation-style="pop"] .about__content{ transform:scale(.92); }
html.has-scroll-effects .about--overlay-enabled.is-inview .about__content{ opacity:1; transform:translate3d(0,0,0); }
html.has-scroll-effects .about--overlay-enabled.is-inview[data-animation-style="zoom"] .about__content,
html.has-scroll-effects .about--overlay-enabled.is-inview[data-animation-style="pop"] .about__content{ transform:scale(1); }
@media (max-width: 767px){
  .about--overlay-enabled .about__content{
    position:relative; inset:auto; margin-top:-120px; margin-inline:auto; width:calc(100% - 32px);
  }
}

.scroll-animate-target{ will-change:transform, opacity; }
html.has-scroll-effects [data-scroll-animate]{ --scroll-anim-duration:600ms; }
html.has-scroll-effects [data-scroll-animate] .scroll-animate-target{
  opacity:0; transform:var(--scroll-anim-transform, translate3d(0,26px,0));
  transition:opacity var(--scroll-anim-duration,600ms) ease, transform var(--scroll-anim-duration,600ms) ease;
}
html.has-scroll-effects [data-scroll-animate] .scroll-animate-target + .scroll-animate-target{
  transition-delay:80ms;
}
html.has-scroll-effects [data-scroll-animate][data-animation-style="fade"]{ --scroll-anim-transform: translate3d(0,24px,0); }
html.has-scroll-effects [data-scroll-animate][data-animation-style="slide"]{ --scroll-anim-transform: translate3d(0,40px,0); }
html.has-scroll-effects [data-scroll-animate][data-animation-style="zoom"]{ --scroll-anim-transform: scale(.92); }
html.has-scroll-effects [data-scroll-animate][data-animation-style="pop"]{ --scroll-anim-transform: scale(.88); }
html.has-scroll-effects [data-scroll-animate].is-inview .scroll-animate-target{
  opacity:1; transform:translate3d(0,0,0);
}
html.has-scroll-effects [data-scroll-animate].is-inview[data-animation-style="zoom"] .scroll-animate-target,
html.has-scroll-effects [data-scroll-animate].is-inview[data-animation-style="pop"] .scroll-animate-target{ transform:scale(1); }

/* Sections: common head */
.section-head{ display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:12px; }
.link-more{ color:var(--text-500); font-weight:600; }
.link-more:hover{ color:var(--text-900); text-decoration:none; }

/* Link effects */
body.link-effect-underline-slide a:not(.btn){ padding-bottom:2px; }
body.link-effect-underline-slide a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:-1px; height:2px; width:0; background:var(--link-hover-color);
  transition:width var(--transition-quick);
}
body.link-effect-underline-slide a:not(.btn):hover::after,
body.link-effect-underline-slide a:not(.btn):focus::after{ width:100%; }

body.link-effect-underline-center-out a:not(.btn){ padding-bottom:2px; }
body.link-effect-underline-center-out a:not(.btn)::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:-1px; height:2px; width:0; background:var(--link-hover-color);
  transition:width var(--transition-quick);
}
body.link-effect-underline-center-out a:not(.btn):hover::after,
body.link-effect-underline-center-out a:not(.btn):focus::after{ width:100%; }

body.link-effect-color-fade a:not(.btn){ transition:color var(--transition-quick), letter-spacing var(--transition-quick); }
body.link-effect-color-fade a:not(.btn):hover,
body.link-effect-color-fade a:not(.btn):focus{ letter-spacing:.01em; }

body.link-effect-glow a:not(.btn):hover,
body.link-effect-glow a:not(.btn):focus{ text-shadow:0 0 10px color-mix(in srgb, var(--link-hover-color) 60%, transparent); }

body.link-effect-bg-highlight a:not(.btn){ padding:4px 6px; border-radius:8px; }
body.link-effect-bg-highlight a:not(.btn):before{
  content:""; position:absolute; inset:0; background:color-mix(in srgb, var(--link-hover-color) 20%, transparent);
  border-radius:inherit; opacity:0; transition:opacity var(--transition-quick);
}
body.link-effect-bg-highlight a:not(.btn):hover:before,
body.link-effect-bg-highlight a:not(.btn):focus:before{ opacity:1; }

body.link-effect-scale-small a:not(.btn){ display:inline-block; }
body.link-effect-scale-small a:not(.btn):hover,
body.link-effect-scale-small a:not(.btn):focus{ transform:scale(1.03); }

body.link-decoration-underline a{ text-decoration:underline; text-decoration-style:solid; }
body.link-decoration-underline-dotted a{ text-decoration:underline; text-decoration-style:dotted; }
body.link-decoration-underline-double a{ text-decoration:underline; text-decoration-style:double; }

/* Cards */
.card-row{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width: 640px){ .card-row{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .card-row{ grid-template-columns: repeat(3, 1fr); } }

.video-card, .product-card{
  display:block; background:var(--color-surface); border-radius:var(--card-border-radius); overflow:hidden; box-shadow:var(--shadow-1);
  transition:transform var(--transition-quick), box-shadow var(--transition-quick);
  border-style:var(--card-border-style); border-width:var(--card-border-width); border-color:var(--card-border-color);
}
.video-card:hover, .product-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-2); text-decoration:none; }
.video-card img, .product-card img{ width:100%; height:auto; display:block; }
.video-card__badge{
  position:absolute; margin:12px; padding:6px 10px; background:rgba(11,11,12,.85); color:var(--color-contrast); border-radius:999px; font-size:12px; }
.video-card{ position:relative; }
.video-card__play{
  position:absolute; inset:auto 12px 12px auto; background:var(--champagne); color:#111; border-radius:999px; font-weight:700; padding:6px 10px; box-shadow:var(--shadow-1);
}
.video-card__title{ margin:12px; font-weight:600; }

.product-card__meta{ display:flex; align-items:center; justify-content:space-between; padding:12px; }
.product-card__title{ margin:0; font-weight:600; }
.product-card__price{ font-weight:700; }

/* Merch/Tour/Teaser sections */
.merch, .videos, .tour, .teaser{ padding-block:56px; border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.tour-list{ display:grid; gap:12px; }
.tour-item{
  display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--color-surface); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); border-radius:var(--card-border-radius); padding:12px 16px; box-shadow:var(--shadow-1);
}
.tour-item__city{ font-weight:700; }
.tour-item__date{ color:var(--text-500); }
.tour-cta{ margin-top:16px; display:flex; align-items:center; gap:12px; }

/* Teaser panels */
.teaser__panel{
  background:var(--rich-black); color:var(--color-contrast); border-radius:var(--card-border-radius); padding:24px; box-shadow:var(--shadow-2);
  border:var(--card-border-width) var(--card-border-style) var(--card-border-color);
}
.teaser__title{
  font-family:"Playfair Display", serif; margin:0 0 8px; letter-spacing:.02em;
}

/* Footer */
.site-footer{ color:var(--color-contrast); background:var(--rich-black); }
.footer__top{ padding-block:32px; border-bottom:1px solid rgba(255,255,255,.1); }
.newsletter{ display:grid; gap:12px; }
.newsletter__label{ font-weight:700; }
.newsletter__controls{ display:flex; gap:8px; }
.newsletter input[type="email"]{
  flex:1; border-radius:999px; border:1px solid var(--border-strong); padding:12px 14px; background:#111; color:var(--color-contrast);
}
.newsletter .checkbox{ display:flex; align-items:start; gap:8px; font-size:14px; color:#cfcfcf; }
.newsletter .note{ color:#9c9c9c; font-size:13px; margin:0; }

.footer__mid{ display:flex; gap:24px; justify-content:space-between; align-items:center; padding-block:24px; border-bottom:1px solid rgba(255,255,255,.1); flex-wrap:wrap; }
.contact-block{ display:flex; gap:24px; flex-wrap:wrap; }
.contact-block .meta{ display:block; color:#cfcfcf; font-size:12px; }
.footer-social .social-btn{ color:var(--color-contrast); background:transparent; border:1px solid #333; }
.footer-social .social-btn:hover{ background:#111; }

.footer__bot{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:16px; flex-wrap:wrap; }
.legal-list{ list-style:none; display:flex; gap:16px; margin:0; padding:0; }
.legal-list a{ color:#cfcfcf; }
.legal-list a:hover{ color:var(--color-contrast); text-decoration:none; }
copyright, .copyright{ color:#9c9c9c; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}

/* ===== About Page ===== */
.page-hero { position: relative; min-height: 44dvh; }
.page-hero__img { width: 100%; height: 44dvh; object-fit: cover; object-position: center; display:block; }
.page-hero__fallback { width: 100%; height: 44dvh; background: var(--gradient-primary); border-radius: var(--section-border-radius); }
.page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,11,12,.72), rgba(11,11,12,0) 50%); display: flex; align-items: end; }
.page-hero__content { color: var(--color-contrast); padding-block: 48px; }

.about-grid { align-items: start; }
.about-bio { padding-block: 56px; border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.about-bio__media { display:flex; justify-content:center; }
.about-bio__media img { border-radius: var(--card-border-radius); box-shadow: var(--shadow-2); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); }
.about-bio__placeholder {
  width: 100%;
  max-width: 800px;
  aspect-ratio: 4 / 5;
  min-height: 420px;
  border-radius: var(--card-border-radius);
  box-shadow: var(--shadow-2);
  border:var(--card-border-width) var(--card-border-style) var(--card-border-color);
  background: var(--color-surface);
}
.about-bio__content .about-bio__more { margin: 8px 0 0; }
.about-bio__more > summary { cursor: pointer; font-weight: 600; }
.about-bio__more[open] > summary { margin-bottom: 8px; }

.stats { background: var(--color-surface); border-block: 1px solid var(--border-soft); border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.stats__row { display: grid; grid-template-columns: 1fr; gap: 12px; padding-block: 24px; }
.stat { background: var(--color-surface); border: var(--card-border-width) var(--card-border-style) var(--card-border-color); border-radius: var(--card-border-radius); padding: 16px; box-shadow: var(--shadow-1); text-align: center; }
.stat__value { font-weight: 700; font-size: clamp(22px, 3vw, 28px); }
.stat__label { color: var(--text-500); }

@media (min-width: 640px) { .stats__row { grid-template-columns: repeat(3, 1fr); } }

.press { padding-block: 40px; border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.press-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: center; justify-items: center; }
.press-item img { filter: grayscale(100%); opacity: .8; border-radius:var(--card-border-radius); border:var(--card-border-width) var(--card-border-style) var(--card-border-color); }
.press-item img:hover { opacity: 1; }
.press-item__placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 16px;
  width: 100%;
  max-width: 140px;
  background: var(--color-surface);
  color: var(--text-500);
  border-radius: var(--card-border-radius);
  border:var(--card-border-width) var(--card-border-style) var(--card-border-color);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}

@media (min-width: 640px) { .press-row { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.values { padding-block: 40px; border:var(--section-border-width) var(--section-border-style) var(--section-border-color); border-radius:var(--section-border-radius); }
.values__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.value { background: var(--color-surface); border: var(--card-border-width) var(--card-border-style) var(--card-border-color); border-radius: var(--card-border-radius); padding: 18px; box-shadow: var(--shadow-1); }
.value__title { margin: 0 0 6px; font-weight: 700; font-family: "Playfair Display", serif; }
.value__text { margin: 0; color: var(--text-500); }
@media (min-width: 768px) { .values__grid { grid-template-columns: repeat(3, 1fr); } }
