@layer base {
/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    Roboto,
    'Helvetica Neue',
    'Noto Sans',
    Arial,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring:where(:not(iframe)) {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}

}

:root {
  --navy: #071424;
  --blue: #173a5d;
  --ice: #dff4ff;
  --silver: #edf8ff;
  --line: #a8c7d8;
  --dark: #06101b;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: var(--dark);
}
a {
  color: inherit;
  text-decoration: none;
}
i {
  font-weight: 300;
}
.portal {
  height: 100svh;
  min-height: 650px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  background: #05090e;
  color: #fff;
  overflow: hidden;
}
.portal-side {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 7vw 6vw;
}
.portal-bg {
  position: absolute;
  inset: 0;
  transition:
    transform 0.7s,
    filter 0.7s;
}
.portal-summer .portal-bg {
  background:
    linear-gradient(0deg, #24100bee 0%, #3f1b116e 52%, #6f321b26 76%),
    linear-gradient(90deg, #3a160b5c, transparent 42%, #2810064d),
    url("assets/summer-solaris-v2.webp") center/cover;
}
.portal-winter .portal-bg {
  background:
    linear-gradient(0deg, #06111bed, transparent 64%),
    url("assets/winter-landscape.webp") center/cover;
}
.portal-side:hover .portal-bg {
  transform: scale(1.035);
  filter: saturate(1.15);
}
.portal-side:after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid #ffffff22;
}
.portal-content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-rows: 28px 34px 1fr 46px;
  width: 100%;
  height: min(430px, 58vh);
}
.portal-content span,
.portal-content p,
.portal-content b {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.portal-content p {
  font-weight: 900;
  margin: 0;
  align-self: start;
}
.portal-content :is(h1, h2) {
  font-size: clamp(60px, 7vw, 116px);
  line-height: 0.78;
  letter-spacing: -0.07em;
  margin: 0;
  align-self: start;
}
.portal-content b {
  display: flex;
  gap: 40px;
  border-bottom: 1px solid #ffffff99;
  padding-bottom: 12px;
  width: max-content;
  align-self: start;
}
.portal-content em {
  font-size: 18px;
}
.portal-logo {
  position: absolute;
  top: 45px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  pointer-events: none;
}
.portal-logo img {
  width: 155px;
  height: 74px;
  object-fit: contain;
  filter: drop-shadow(0 5px 9px #000b) drop-shadow(0 1px 2px #000);
}
.winter-site {
  background: var(--silver);
  color: var(--navy);
}
.topbar {
  height: 84px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 4vw;
  color: #fff;
  border-bottom: 1px solid #ffffff3d;
  background: rgba(5, 18, 31, 0.74);
  backdrop-filter: blur(14px) saturate(125%);
  -webkit-backdrop-filter: blur(14px) saturate(125%);
}
.brand-img img {
  width: 145px;
  height: 68px;
  object-fit: contain;
}
.primary-nav {
  display: flex;
  gap: clamp(18px, 2.1vw, 34px);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.primary-nav a,
.nav-menu summary {
  white-space: nowrap;
}
.nav-menu {
  position: relative;
}
.nav-menu summary {
  list-style: none;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.nav-menu summary::-webkit-details-marker {
  display: none;
}
.menu-lines {
  position: relative;
  display: inline-block;
  width: 25px;
  height: 14px;
  margin-left: 12px;
  vertical-align: -2px;
}
.menu-lines::before,
.menu-lines::after {
  content: "";
  position: absolute;
  right: 0;
  width: 25px;
  height: 2px;
  background: currentColor;
  transition: transform 0.25s ease, top 0.25s ease;
}
.menu-lines::before {
  top: 2px;
}
.menu-lines::after {
  top: 10px;
}
.nav-menu[open] .menu-lines::before,
.nav-menu[open] .menu-lines::after {
  top: 6px;
}
.nav-menu[open] .menu-lines::before {
  transform: rotate(45deg);
}
.nav-menu[open] .menu-lines::after {
  transform: rotate(-45deg);
}
.nav-panel {
  position: fixed;
  top: 84px;
  left: 0;
  width: 100%;
  padding: 30px 4vw 38px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 42px;
  background: rgba(5, 18, 31, 0.96);
  border-top: 1px solid #ffffff20;
  box-shadow: 0 24px 50px #0007;
}
.nav-panel a {
  min-height: 58px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  border-bottom: 1px solid #ffffff2c;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.nav-panel b {
  font-size: 18px;
  font-weight: 400;
}
.ice-button {
  display: inline-flex;
  justify-content: space-between;
  gap: 36px;
  background: #fff;
  color: #102b43;
  padding: 18px 22px;
  font-size: 11px;
  letter-spacing: 0.12em;
  font-weight: 900;
}
.ice-button.small {
  padding: 13px 17px;
}
.winter-section-placeholder {
  min-height: 100svh;
  color: #fff;
  background:
    linear-gradient(90deg, #041120e8, #102b427d),
    url("assets/winter-landscape.webp") center/cover;
}
.winter-section-placeholder > div {
  min-height: 100svh;
  padding: 180px 7vw 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.winter-section-placeholder span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
}
.winter-section-placeholder h1 {
  max-width: 1100px;
  margin: 25px 0;
  font-size: clamp(58px, 9vw, 138px);
  line-height: 0.86;
  letter-spacing: -0.065em;
}
.winter-section-placeholder p {
  color: #cde2ee;
  font-size: 14px;
}
.winter-hero {
  height: 100svh;
  min-height: 760px;
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #061522;
}
.winter-hero::after {
  display: none;
}
.winter-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #03101fea 0%, #061728c7 28%, #0a2c4854 60%, #08182718 82%),
    linear-gradient(0deg, #06131ed6 0%, transparent 55%);
}
@keyframes winter-hero-breathe { from { transform: scale(1.035); } to { transform: scale(1); } }
.winter-hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.winter-hero:before { z-index:1; }
.winter-hero .snow { z-index:1; }
.news-archive-hero {
  height: 76svh;
  min-height: 620px;
  background-image: url("assets/news-archive-header.jpg");
  background-position: 50% 54%;
}
.news-archive-hero:before {
  background:
    linear-gradient(90deg, #03101fd9 0%, #06192db8 31%, #07346d62 58%, #0a4c911f 100%),
    linear-gradient(0deg, #04111fb5 0%, #093d7735 52%, transparent 100%),
    #062b5a1f;
}
.news-archive-hero .winter-hero-content { padding-top: 130px; padding-bottom: 45px; }
.news-archive-hero h1 {
  margin: 27px 0 24px;
  font-size: clamp(72px, 10vw, 150px);
  line-height: .78;
  white-space: nowrap;
}
.news-archive .news-heading { grid-template-columns: 1fr; gap: 22px; }
.news-archive .news-heading h2 { font-size: clamp(48px, 6.8vw, 108px); white-space: nowrap; }
.partners-hero {
  height: 76svh;
  min-height: 620px;
  background-image: url("assets/partners-header.jpg");
  background-position: 50% 54%;
}
.partners-hero:before {
  background:
    linear-gradient(90deg, #03101fe6 0%, #06192dc2 34%, #07346d64 61%, #0a4c9129 100%),
    linear-gradient(0deg, #04111fc4 0%, #093d773f 53%, transparent 100%),
    #062b5a24;
}
.partners-hero .winter-hero-content { padding-top: 130px; padding-bottom: 45px; }
.partners-hero h1 { margin: 27px 0 24px; font-size: clamp(68px, 9vw, 138px); line-height: .78; white-space: nowrap; }
.partners-hero h2 { font-size: clamp(25px, 3.2vw, 48px); }
.partners-directory { padding: 110px 7vw 130px; color: #071622; background: #edf4f8; }
.partners-heading { margin-bottom: 95px; }
.partners-heading > span { display: block; margin-bottom: 28px; font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.partners-heading h2 { max-width: 1260px; margin: 0; font-size: clamp(48px, 6.4vw, 98px); font-weight: 300; line-height: .88; letter-spacing: -.06em; }
.partners-heading h2 i { color: #6aa8c8; font-weight: 300; }
.partner-tiers { display: grid; gap: 92px; }
.partner-tier { padding-top: 26px; border-top: 1px solid #9eb8c7; }
.partner-tier h3 { margin: 0 0 32px; font-size: clamp(19px, 2vw, 30px); letter-spacing: -.03em; }
.partner-logo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: start; }
.partner-logo-card { aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; color: #6d8b9c; background: #fff; border: 1px solid #d8e5eb; border-radius: 26px; box-shadow: 0 13px 32px #21485d0a; text-decoration: none; transition: transform .35s ease, box-shadow .35s ease; }
.partner-logo-card img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s cubic-bezier(.2,.75,.25,1); }
.partner-logo-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px #21485d1c; }
.partner-logo-card:hover img { transform: scale(1.07); }
.partner-logo-card:focus-visible { outline: 3px solid #89c9e7; outline-offset: 4px; }
.partner-logo-card.is-missing { border-style: dashed; border-color: #a8c0cd; }
.partner-logo-card.is-missing span { padding: 20px; display: grid; gap: 8px; text-align: center; }
.partner-logo-card.is-missing strong { color: #27485a; font-size: 13px; letter-spacing: .08em; }
.partner-logo-card.is-missing small { font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.partner-tier-naming .partner-logo-grid { grid-template-columns: minmax(300px, 430px); }
.partner-tier-institutional .partner-logo-grid,
.partner-tier-major .partner-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1040px; }
.partner-tier-standard .partner-logo-grid,
.partner-tier-patrons .partner-logo-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.partner-tier-patrons-secondary .partner-logo-grid { grid-template-columns: repeat(4, minmax(0, 150px)); gap: 14px; justify-content: space-between; }
.partner-tier-patrons-secondary h3 { font-size: clamp(17px, 1.65vw, 24px); }
.snow {
  position: absolute;
  inset: -30%;
  background-image:
    radial-gradient(#fff 1px, transparent 1.5px),
    radial-gradient(#dff4ff 1.2px, transparent 1.8px);
  background-position: 0 0, 19px 13px;
  background-size: 43px 43px, 67px 67px;
  opacity: 0.24;
  transform: rotate(8deg);
  animation: snowfall 22s linear infinite;
  will-change: background-position;
}
@keyframes snowfall {
  from { background-position: 0 0, 19px 13px; }
  to { background-position: 130px 260px, -115px 214px; }
}
.winter-hero-content {
  position: relative;
  z-index: 2;
  padding: 150px 7vw 80px;
}
.overline,
.cold-label,
.winter-title > span,
.winter-practical > div > span {
  font-size: 10px;
  letter-spacing: 0.22em;
  font-weight: 800;
}
.overline {
  display: inline-block;
  width: max-content;
  margin: 0;
  padding: 0;
  color: #fff;
  background: none;
  border: 0;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.26em;
  text-shadow: 0 2px 12px #02101d;
}
.winter-hero h1 {
  font-size: clamp(92px, 13vw, 185px);
  line-height: 0.72;
  letter-spacing: -0.085em;
  margin: 30px 0 25px;
  font-stretch: condensed;
  font-weight: 950;
}
.winter-hero h1 span {
  color: transparent;
  -webkit-text-stroke: 1.5px white;
}
.winter-hero h2 {
  font-size: clamp(28px, 4vw, 58px);
  letter-spacing: 0.02em;
  margin: 0 0 42px;
}
.winter-hero h2 i {
  color: #cdeeff;
}
.winter-info {
  display: flex;
  gap: 45px;
  margin-bottom: 30px;
}
.winter-info strong {
  font-size: 16px;
}
.winter-info span {
  font-size: 11px;
  line-height: 1.6;
  color: #d9ebf4;
}
.scroll-cue {
  position: absolute;
  bottom: 22px;
  right: 4vw;
  z-index: 2;
  font-size: 9px;
  letter-spacing: 0.2em;
}
.scroll-cue span {
  font-size: 18px;
  margin-left: 16px;
}
.winter-intro {
  padding: 120px 7vw;
  display: grid;
  grid-template-columns: 180px 1fr 210px;
  gap: 50px;
}
.winter-intro > div > p:first-child {
  font-size: 11px;
  letter-spacing: 0.1em;
}
.winter-intro h2,
.winter-title h2,
.winter-practical h2,
.winter-faq h2 {
  font-size: clamp(46px, 7vw, 92px);
  line-height: 0.9;
  letter-spacing: -0.065em;
  margin: 18px 0 30px;
}
.winter-intro h2 i,
.winter-title h2 i {
  color: #4b88ad;
}
.copy {
  font-size: 18px;
  line-height: 1.7;
  max-width: 650px;
  color: #476276;
}
.winter-intro aside {
  border-left: 1px solid var(--line);
  padding-left: 28px;
  margin-top: 80px;
}
.winter-intro aside strong {
  font-size: 48px;
  display: block;
}
.winter-intro aside span {
  font-size: 10px;
  line-height: 1.5;
}
.winter-lineup {
  background: #f0f6f9;
  color: var(--navy);
  padding: 120px 7vw 130px;
}
.lineup-heading {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  max-width: 1120px;
  margin: 0 auto 50px;
}
.lineup-heading > span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
  padding: 0 0 20px;
}
.lineup-kicker {
  padding: 0 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
}
.lineup-controls { display: flex; gap: 8px; }
.lineup-controls button {
  width: 42px;
  height: 42px;
  border: 1px solid #adc3cf;
  color: var(--navy);
  background: transparent;
  cursor: pointer;
  font-size: 18px;
}
.lineup-controls button:hover { background: #dceaf0; }
.lineup-heading h2 {
  font-size: clamp(44px, 5.6vw, 78px);
  line-height: .88;
  letter-spacing: -.065em;
  margin: 0;
}
.lineup-heading h2 i { color: #4b88ad; }
.artist-editorial-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 265px);
  gap: 18px;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding-bottom: 14px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-color: #4b88ad #d7e4ea;
  scrollbar-width: thin;
}
.artist-editorial-grid::-webkit-scrollbar { height: 5px; }
.artist-editorial-grid::-webkit-scrollbar-track { background: #d7e4ea; }
.artist-editorial-grid::-webkit-scrollbar-thumb { background: #4b88ad; }
.artist-card,
.lineup-more { min-width: 0; }
.artist-card {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border: 1px solid #aac5d433;
  border-radius: 26px;
  background: #071522;
  box-shadow: 0 16px 36px #102a3b1f;
  scroll-snap-align: start;
  isolation: isolate;
}
.artist-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 22% 0 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 0%, #071522c7 35%, #071522fa 68%, #071522 100%);
}
.artist-visual {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #18354a;
}
.artist-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: saturate(.82) contrast(1.05) brightness(.9);
  transition: transform .55s ease, filter .55s ease;
}
.artist-card:hover .artist-visual img {
  transform: scale(1.04);
  filter: saturate(1) contrast(1.06) brightness(.94);
}
.artist-copy {
  position: absolute;
  z-index: 2;
  inset: auto 0 0;
  min-height: 245px;
  padding: 28px 22px 21px;
  display: grid;
  grid-template-rows: 28px 58px 1fr 42px;
  color: #fff;
}
.artist-copy > span {
  color: #b8dced;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.35;
  display: flex;
  align-items: flex-end;
}
.artist-copy h3 {
  font-size: clamp(24px, 1.9vw, 30px);
  line-height: .95;
  letter-spacing: -.045em;
  margin: 12px 0 13px;
  align-self: start;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.artist-copy p {
  color: #d3e3eb;
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 18px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.artist-copy button {
  width: 100%;
  align-self: end;
  padding: 15px 0 8px;
  display: flex;
  justify-content: space-between;
  border: 0;
  border-top: 1px solid #d7edf54a;
  color: #fff;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-align: left;
}
.lineup-more {
  min-height: 0;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #0b1c2b;
  color: #fff;
  transition: background .25s ease;
}
.lineup-more:hover { background: #173d59; }
.lineup-more span {
  color: #94b6c8;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.5;
}
.lineup-more strong {
  margin-top: 24px;
  font-size: clamp(28px, 2.6vw, 40px);
  line-height: .9;
}
.lineup-more b {
  margin-top: 35px;
  font-size: 34px;
  font-weight: 300;
}
.artist-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 30;
  padding: 32px;
  display: grid;
  place-items: center;
  background: #020b13d9;
  backdrop-filter: blur(9px);
}
.artist-modal {
  position: relative;
  width: min(980px, 100%);
  max-height: min(720px, calc(100svh - 64px));
  display: grid;
  grid-template-columns: .85fr 1fr;
  overflow: auto;
  background: #eef5f8;
  box-shadow: 0 30px 90px #0009;
}
.artist-modal-image { min-height: 590px; }
.artist-modal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.artist-modal-copy {
  padding: 80px 58px 55px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.artist-modal-copy > span {
  color: #5f8298;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .2em;
}
.artist-modal-copy h2 {
  margin: 19px 0 28px;
  font-size: clamp(38px, 4.4vw, 62px);
  line-height: .85;
  letter-spacing: -.06em;
}
.artist-modal-copy p {
  color: #405c70;
  font-size: 16px;
  line-height: 1.75;
  white-space: pre-line;
}
.artist-modal-copy > button {
  margin-top: 25px;
  padding: 18px 0 10px;
  display: flex;
  justify-content: space-between;
  width: 100%;
  border: 0;
  border-top: 1px solid #a7becb;
  color: var(--navy);
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
}
.winter-lineup,
.winter-practical,
.winter-faq,
.winter-contact { scroll-margin-top: 82px; }
.festival-universe {
  position: relative;
  isolation: isolate;
  min-height: 920px;
  padding: 120px 7vw 135px;
  overflow: hidden;
  color: #fff;
  background: #071522;
}
.festival-universe-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, #061421d9 0%, #0b2437e8 50%, #06131fff 100%), url("assets/winter-landscape.webp") center/cover;
  transform: scale(1.04);
}
.festival-universe::after {
  content: "";
  position: absolute;
  inset: auto -10% -280px;
  z-index: -1;
  height: 580px;
  border-radius: 50%;
  background: #b6dce914;
  filter: blur(2px);
}
.festival-story {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.festival-story > span { color: #afd9e8; font-size: 10px; font-weight: 900; letter-spacing: .22em; }
.festival-story h2 {
  margin: 24px 0 30px;
  font-size: clamp(48px, 6.5vw, 90px);
  line-height: .84;
  letter-spacing: -.065em;
}
.festival-story h2 i { color: #b9e4f2; }
.festival-story p {
  max-width: 760px;
  margin: 0 auto;
  color: #d6e8ef;
  font-size: 17px;
  line-height: 1.75;
}
.festival-story p strong { color: #fff; }
.festival-story > a {
  width: min(610px, 100%);
  margin: 38px auto 0;
  padding: 18px 3px 13px;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-align: left;
  transition: color .3s ease, background .3s ease, padding .3s ease;
}
.festival-story > a b { transition: transform .3s ease; }
.festival-story > a:hover,
.festival-story > a:focus-visible {
  padding-right: 18px;
  padding-left: 18px;
  color: #071522;
  background: #eaf8fd;
}
.festival-story > a:hover b,
.festival-story > a:focus-visible b { transform: translateX(4px); }
.universe-cards {
  width: min(940px, 100%);
  margin: 100px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  gap: 20px;
  perspective: 1100px;
}
.universe-card {
  min-height: 385px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid #d9eff7;
  color: #fff;
  background-image: linear-gradient(180deg, #071a2933 0%, #071a2970 42%, #04101bf2 100%);
  background-size: auto, cover;
  background-position: center;
  box-shadow: inset 0 0 45px #bcecff16, 0 28px 60px #0008;
  transition: transform .35s ease, filter .35s ease, box-shadow .35s ease;
  animation: universe-float 5s ease-in-out infinite;
}
.universe-card.card-1 { transform: rotate(-4deg) translateY(14px); animation-delay: -.8s; background-image: linear-gradient(180deg, #071a2920 0%, #071a2966 45%, #04101bf5 100%), url("assets/universe-dj-contest.webp"); background-position: center, center; }
.universe-card.card-2 { transform: rotate(2deg) translateY(-18px); animation-delay: -2.2s; background-image: linear-gradient(180deg, #071a2920 0%, #071a2966 45%, #04101bf5 100%), url("assets/universe-electra-team.webp"); background-position: center, center 32%; }
.universe-card.card-3 { transform: rotate(-1deg) translateY(16px); animation-delay: -3.5s; background-image: linear-gradient(180deg, #071a2920 0%, #071a2966 45%, #04101bf5 100%), url("assets/universe-partenaires.webp"); background-position: center, center; }
.universe-card:hover,
.universe-card:focus-visible { transform: rotate(0) translateY(-10px) scale(1.025); filter: brightness(1.14); box-shadow: inset 0 0 60px #d9f5ff2b, 0 32px 70px #000a; }
.universe-card small { color: #b6dce9; font-size: 8px; font-weight: 900; letter-spacing: .18em; }
.universe-card div span { color: #a8d5e6; font-size: 8px; font-weight: 900; letter-spacing: .16em; }
.universe-card h3 { margin: 10px 0 0; font-size: clamp(31px, 3vw, 48px); line-height: .88; letter-spacing: -.055em; }
.universe-card > b {
  padding-top: 17px;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #ffffff75;
  font-size: 10px;
  letter-spacing: .14em;
}
.universe-card > b i { font-size: 18px; font-weight: 400; }
@keyframes universe-float {
  0%, 100% { margin-top: 0; }
  50% { margin-top: -10px; }
}
@media (prefers-reduced-motion: reduce) {
  .universe-card { animation: none; }
}
.winter-faq {
  padding: 110px 7vw 125px;
  background:
    radial-gradient(circle at 86% 12%, #b9e4f260 0, transparent 24%),
    radial-gradient(circle at 8% 88%, #d7edf56b 0, transparent 28%),
    #edf4f7;
  color: var(--navy);
}
.winter-faq > header {
  max-width: 1120px;
  margin: 0 auto 58px;
}
.winter-faq > header > span,
.faq-group > h3 {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .2em;
}
.winter-faq h2 {
  margin: 0;
  font-size: clamp(54px, 7.5vw, 102px);
  line-height: .84;
  letter-spacing: -.065em;
}
.faq-groups {
  max-width: 1120px;
  margin: 0 auto;
}
.faq-category-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.faq-category-grid > button {
  position: relative;
  min-height: 172px;
  min-width: 0;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  overflow: hidden;
  border: 1px solid #b8cfdb;
  border-radius: 24px;
  color: var(--navy);
  background: #ffffffc9;
  box-shadow: 0 12px 32px #244b6212;
  cursor: pointer;
  text-align: left;
  transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.faq-category-grid > button::after {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  right: -45px;
  top: -45px;
  border-radius: 50%;
  background: #b9e4f266;
  transition: transform .3s ease;
}
.faq-category-grid > button:hover { transform: translateY(-5px); background: #fff; box-shadow: 0 18px 38px #244b6224; }
.faq-category-grid > button:hover::after { transform: scale(1.25); }
.faq-category-grid > button.is-active { color: #fff; border-color: #153c58; background: linear-gradient(145deg, #1f5270, #0b263a); box-shadow: 0 18px 38px #0b263a3d; }
.faq-category-grid small { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #527c94; background: #e4f0f5; font-size: 16px; line-height: 1; }
.faq-category-grid > button.is-active small { color: #153c58; background: #dff4fc; }
.faq-category-grid span {
  max-width: 100%;
  font-size: clamp(12px, 1.25vw, 17px);
  font-weight: 900;
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.faq-category-grid b { align-self: flex-end; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #dcebf2; font-size: 18px; font-weight: 400; }
.faq-category-grid > button.is-active b { color: #0b263a; background: #dff4fc; }
.faq-group { margin-top: 48px; }
.faq-group > h3 { margin: 0 0 15px; color: #4b7894; }
.faq-list { display: grid; gap: 12px; }
.faq-item { overflow: hidden; border: 1px solid #bfd3dd; border-radius: 18px; background: #ffffffc9; box-shadow: 0 9px 24px #244b620d; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.faq-item:hover { transform: translateY(-2px); border-color: #8eb3c6; box-shadow: 0 14px 30px #244b6218; }
.faq-item > button {
  width: 100%;
  min-height: 86px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 72px;
  align-items: stretch;
  border: 0;
  color: var(--navy);
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.faq-item > button span {
  padding: 27px 32px;
  align-self: center;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.faq-item > button b {
  width: 42px;
  height: 42px;
  margin: auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #12364d;
  background: #dcebf2;
  font-size: 24px;
  font-weight: 500;
  transition: color .25s ease, background .25s ease, transform .25s ease;
}
.faq-item.is-open { border-color: #7fa9be; background: #fff; box-shadow: 0 16px 36px #244b6218; }
.faq-item.is-open > button b { color: #fff; background: #153c58; transform: rotate(180deg); }
.faq-answer { padding: 0 118px 32px 32px; }
.faq-answer p {
  max-width: 950px;
  margin: 0;
  color: #3f596b;
  font-size: 16px;
  line-height: 1.75;
}
.practical-list > span {
  min-height: 86px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  gap: 28px;
  border-bottom: 1px solid var(--line);
  color: #60788a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}
.practical-list > span small { color: #7c9aab; }
.winter-contact {
  padding: 110px 7vw 125px;
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(560px, 1.28fr);
  gap: clamp(55px, 7vw, 120px);
  background: linear-gradient(125deg, #071521 0%, #102f43 52%, #1f5169 100%);
  color: #fff;
}
.contact-heading > span {
  color: #acd9e9;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
}
.contact-heading h2 {
  margin: 22px 0 28px;
  font-size: clamp(54px, 6.5vw, 96px);
  line-height: .82;
  letter-spacing: -.065em;
}
.contact-heading h2 i { color: #b6e2f1; }
.contact-heading > p { max-width: 470px; color: #c5dbe4; font-size: 16px; line-height: 1.7; }
.contact-form { align-self: start; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 18px; }
.contact-fields label { display: grid; gap: 10px; }
.contact-fields label > span,
.contact-consents legend {
  color: #b9dce8;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
}
.contact-email,
.contact-message { grid-column: 1 / -1; }
.contact-fields input,
.contact-fields textarea {
  width: 100%;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid #9ac3d1;
  border-radius: 0;
  outline: 0;
  color: #fff;
  background: transparent;
  font: inherit;
}
.contact-fields input:focus,
.contact-fields textarea:focus { border-color: #fff; box-shadow: 0 1px 0 #fff; }
.contact-fields textarea { resize: vertical; min-height: 145px; line-height: 1.55; }
.contact-trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-consents { margin: 32px 0 0; padding: 0; display: grid; gap: 13px; border: 0; }
.contact-consents legend { margin-bottom: 13px; }
.contact-consents label { display: flex; align-items: flex-start; gap: 12px; color: #d7e8ee; font-size: 12px; line-height: 1.45; cursor: pointer; }
.contact-consents input { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; accent-color: #8fc9dd; }
.contact-submit-row { margin-top: 34px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 30px; }
.contact-submit-row p { max-width: 430px; margin: 0; color: #93b5c2; font-size: 10px; line-height: 1.5; }
.contact-submit-row button {
  min-width: 245px;
  padding: 20px 22px;
  display: flex;
  justify-content: space-between;
  border: 0;
  color: #0a2030;
  background: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  cursor: pointer;
  transition: transform .25s ease, color .25s ease, background .25s ease;
}
.contact-submit-row button:hover { transform: translateY(-3px); color: #fff; background: #397896; }
.contact-submit-row button:disabled { opacity: .6; cursor: wait; }
.contact-feedback { min-height: 34px; padding-top: 16px; }
.contact-feedback p { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.contact-feedback .success { color: #b8efdc; }
.contact-feedback .error { color: #ffbfc2; }

/* Private contact administration */
.contacts-admin,
.admin-denied { min-height: 100vh; background: #071522; color: #fff; }
.admin-header { min-height: 150px; padding: 28px 5vw; display: grid; grid-template-columns: 170px 1fr auto; align-items: center; gap: 45px; border-bottom: 1px solid #315166; }
.admin-brand img { width: 105px; height: auto; }
.admin-header > div > span { color: #9ac7d8; font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.admin-header h1 { margin: 8px 0 0; font-size: clamp(34px, 4vw, 60px); line-height: .9; letter-spacing: -.045em; }
.admin-header h1 i { color: #94cce0; font-style: normal; }
.admin-signout { padding: 13px 0; border-bottom: 1px solid #91b9c8; font-size: 9px; font-weight: 900; letter-spacing: .14em; }
.admin-contacts-layout { min-height: calc(100vh - 150px); display: grid; grid-template-columns: minmax(440px, .9fr) minmax(480px, 1.1fr); }
.admin-inbox { border-right: 1px solid #315166; }
.admin-tools { padding: 24px 3vw 16px; display: flex; align-items: center; gap: 20px; }
.admin-tools input { flex: 1; padding: 13px 15px; border: 1px solid #476778; color: #fff; background: #0d2433; font: inherit; }
.admin-tools a { color: #c5e5ef; font-size: 9px; font-weight: 900; letter-spacing: .12em; white-space: nowrap; }
.admin-filters { padding: 0 3vw 18px; display: flex; flex-wrap: wrap; gap: 7px; }
.admin-filters button { padding: 8px 10px; border: 1px solid #45697b; color: #aac8d4; background: transparent; font-size: 8px; font-weight: 900; letter-spacing: .1em; cursor: pointer; }
.admin-filters button.active { color: #071522; background: #b9e3f0; }
.admin-message-list { border-top: 1px solid #315166; }
.admin-message-row { width: 100%; min-height: 82px; padding: 17px 3vw; display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 14px; border: 0; border-bottom: 1px solid #213d4f; color: #fff; background: transparent; cursor: pointer; text-align: left; }
.admin-message-row:hover,
.admin-message-row.selected { background: #102e40; }
.admin-message-row > i { width: 7px; height: 7px; border-radius: 50%; background: #4c6471; }
.admin-message-row > i.new { background: #a9def0; box-shadow: 0 0 13px #a9def0; }
.admin-message-row > span { display: grid; gap: 5px; }
.admin-message-row b { font-size: 13px; text-transform: uppercase; }
.admin-message-row small { color: #91aebb; }
.admin-message-row time { color: #71909f; font-size: 9px; }
.admin-empty { padding: 35px 3vw; color: #89a9b7; }
.admin-message-detail { padding: clamp(35px, 5vw, 80px); background: linear-gradient(145deg, #0b2030, #12374b); }
.admin-detail-head { display: flex; justify-content: space-between; gap: 20px; color: #9ac5d5; font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.admin-message-detail h2 { margin: 35px 0 12px; font-size: clamp(48px, 6vw, 88px); line-height: .82; letter-spacing: -.06em; text-transform: uppercase; }
.admin-email { color: #b8dfeb; border-bottom: 1px solid #6d96a7; font-size: 12px; }
.admin-message-copy { margin: 50px 0; padding: 30px 0; border-top: 1px solid #486a7a; border-bottom: 1px solid #486a7a; color: #e3eef2; font-size: 16px; line-height: 1.75; white-space: pre-wrap; }
.admin-consent-status { display: flex; flex-wrap: wrap; gap: 10px; }
.admin-consent-status span { padding: 10px 12px; border: 1px solid #506e7c; color: #a6bdc7; font-size: 9px; text-transform: uppercase; }
.admin-consent-status span.yes { color: #d7f7ed; border-color: #6ab79b; }
.admin-consent-status b { margin-left: 8px; }
.admin-status-button { margin-top: 35px; padding: 17px 20px; border: 0; color: #071522; background: #fff; font-size: 9px; font-weight: 900; letter-spacing: .12em; cursor: pointer; }
.admin-denied { padding: 12vw; }
.admin-denied h1 { font-size: clamp(50px, 10vw, 130px); margin: 0 0 25px; }
.admin-denied a { display: inline-block; margin-top: 25px; border-bottom: 1px solid #fff; }

@media (max-width: 980px) {
  .winter-contact { grid-template-columns: 1fr; }
  .contact-heading > p { max-width: 650px; }
  .admin-contacts-layout { grid-template-columns: 1fr; }
  .admin-inbox { border-right: 0; }
  .admin-message-detail { min-height: 600px; }
}

@media (max-width: 600px) {
  .winter-contact { padding: 82px 6vw 90px; gap: 48px; }
  .contact-heading h2 { font-size: 13vw; }
  .contact-fields { grid-template-columns: 1fr; }
  .contact-email,
  .contact-message { grid-column: auto; }
  .contact-submit-row { grid-template-columns: 1fr; align-items: stretch; }
  .contact-submit-row button { width: 100%; min-width: 0; }
  .admin-header { min-height: 120px; padding: 20px 5vw; grid-template-columns: 75px 1fr; gap: 16px; }
  .admin-brand img { width: 65px; }
  .admin-header h1 { font-size: 9vw; }
  .admin-signout { grid-column: 1 / -1; justify-self: end; }
  .admin-contacts-layout { min-height: calc(100vh - 120px); }
  .admin-tools { align-items: stretch; flex-direction: column; }
  .admin-tools a { align-self: flex-end; }
  .admin-filters { flex-wrap: nowrap; overflow-x: auto; }
  .admin-message-row { padding: 16px 5vw; }
  .admin-message-detail { min-height: 520px; padding: 42px 6vw 70px; }
  .admin-detail-head { align-items: flex-start; flex-direction: column; }
  .admin-message-copy { margin: 35px 0; }
}
.artist-modal-close {
  position: absolute;
  top: 18px;
  right: 20px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 1px solid #6f8998;
  border-radius: 50%;
  color: var(--navy);
  background: #eef5f8d9;
  cursor: pointer;
  font-size: 27px;
  font-weight: 300;
}
.winter-lineup-legacy {
  background: #071522;
  color: #fff;
  padding: 110px 7vw;
}
.winter-title {
  display: grid;
  grid-template-columns: 180px 1fr;
  margin-bottom: 50px;
}
.winter-title h2 {
  margin: 0;
}
.winter-title h2 i {
  color: #a8daee;
}
.act-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.65fr;
  gap: 14px;
}
.act-grid article {
  height: 650px;
  position: relative;
  overflow: hidden;
  background: #0e2638;
}
.act-grid article > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.act-grid article:hover > img {
  transform: scale(1.025);
}
.act-grid article > div {
  position: absolute;
  inset: 0;
  padding: 25px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: linear-gradient(transparent 48%, #07111bdc);
}
.act-grid article span {
  font-size: 9px;
  letter-spacing: 0.18em;
}
.act-grid h3 {
  font-size: clamp(30px, 3.4vw, 54px);
  line-height: 0.9;
  margin: 12px 0;
}
.act-grid article > div b {
  position: absolute;
  right: 24px;
  bottom: 22px;
  border: 1px solid #fff8;
  border-radius: 50%;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  font-size: 22px;
}
.next-act {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: linear-gradient(160deg, #274d67, #89b7cb) !important;
}
.next-act span {
  font-size: 34px !important;
  font-weight: 900;
  line-height: 0.9;
}
.next-act b {
  margin-top: 12px;
  font-size: 11px;
  letter-spacing: 0.2em;
}
.winter-practical {
  padding: 110px 7vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8vw;
}
.ticket-cta {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  color: #fff;
  background: #061321;
}
.ticket-cta-video,
.ticket-cta-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.ticket-cta-video {
  object-fit: cover;
  filter: saturate(.68) contrast(1.05);
}
.ticket-cta-shade {
  background: linear-gradient(90deg, #03101ddf 0%, #081725ad 45%, #07142170 100%);
}
.ticket-cta-content {
  position: relative;
  z-index: 2;
  min-height: 760px;
  padding: 105px 7vw 72px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  grid-template-rows: 1fr auto;
  align-items: center;
  column-gap: 6vw;
}
.ticket-cta-copy > span {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .22em;
}
.ticket-cta-copy h2 {
  max-width: 850px;
  margin: 24px 0 0;
  font-size: clamp(48px, 5.5vw, 84px);
  line-height: .88;
  letter-spacing: -.065em;
}
.ticket-cta-copy h2 span,
.ticket-cta-copy h2 i {
  display: block;
}
.ticket-cta-copy h2 span { white-space: nowrap; }
.ticket-cta-copy h2 i { color: #b7e2f2; }
.ticket-stack {
  position: relative;
  display: grid;
  place-items: center;
}
.ticket-stack .ticket-art {
  width: min(100%, 520px);
  max-height: 540px;
  object-fit: contain;
  filter: drop-shadow(0 28px 28px #0009);
}
.ticket-cta-link {
  grid-column: 1 / -1;
  width: min(430px, 100%);
  padding: 20px 3px 13px;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #fff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .16em;
  color: inherit;
  background: transparent;
  border-top: 0;
  border-left: 0;
  border-right: 0;
  cursor: pointer;
}
.practical-list {
  border-top: 1px solid var(--line);
}
.practical-list a {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  padding: 26px 10px;
  border-bottom: 1px solid var(--line);
  font-weight: 800;
}
.practical-list small {
  font-size: 9px;
  color: #7691a1;
}
.practical-list a:hover {
  background: #fff;
  padding-left: 18px;
}
.site-footer {
  background: #050d15;
  color: #fff;
  padding: 76px 7vw 30px;
}
.footer-identity { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.footer-identity img { width: 190px; height: 115px; object-fit: contain; }
.footer-socials { display: flex; align-items: center; justify-content: center; gap: 26px; }
.footer-socials a { color: #fff; opacity: .72; transition: opacity .2s ease, transform .2s ease; }
.footer-socials a:hover { opacity: 1; transform: translateY(-3px); }
.footer-socials svg { display: block; width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.footer-rule { height: 1px; margin: 42px 0 50px; background: linear-gradient(90deg, transparent, #61798a 22%, #61798a 78%, transparent); opacity: .45; }
.footer-navigation > p { color: #7691a1; font-size: 9px; font-weight: 900; letter-spacing: .22em; text-align: center; margin: 0 0 30px; }
.footer-navigation nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 7vw; max-width: 1160px; margin: 0 auto; }
.footer-navigation a { font-size: 11px; font-weight: 800; letter-spacing: .12em; color: #dbe6ec; text-align: center; transition: color .2s ease; }
.footer-navigation a:hover { color: #8fd9fb; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; align-items: center; border-top: 1px solid #21303a; padding-top: 25px; margin-top: 55px; }
.footer-bottom small { color: #668091; font-size: 9px; letter-spacing: .12em; }
.footer-bottom nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 22px; }
.footer-bottom a { color: #8da1ad; font-size: 9px; letter-spacing: .1em; }
.legal-placeholder { min-height: 100svh; padding: 45px 7vw; color: #fff; background: radial-gradient(circle at 75% 25%, #24465e 0, transparent 35%), #061521; display: flex; flex-direction: column; justify-content: center; }
.legal-placeholder > a { position: absolute; top: 38px; left: 7vw; font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.legal-placeholder img { width: 150px; height: 100px; object-fit: contain; margin-bottom: 50px; }
.legal-placeholder p { font-size: 10px; font-weight: 900; letter-spacing: .22em; color: #88b5ce; }
.legal-placeholder h1 { margin: 18px 0 0; font-size: clamp(48px, 8vw, 130px); font-weight: 300; line-height: .86; letter-spacing: -.06em; }
.legal-placeholder h1 i { color: #9ddcf8; font-weight: 300; }
.winter-news { padding: 110px 7vw 100px; color: #071622; background: #edf4f8; }
.news-heading { display: grid; grid-template-columns: 25% 1fr; align-items: start; margin-bottom: 58px; }
.news-heading > span { padding-top: 12px; font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.news-heading h2 { margin: 0; font-size: clamp(52px, 7vw, 112px); font-weight: 300; line-height: .84; letter-spacing: -.065em; }
.winter-news:not(.news-archive) .news-heading h2 { font-size: clamp(38px, 4.8vw, 72px); line-height: .88; }
.news-heading h2 i { color: #6aa8c8; font-weight: 300; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.news-archive .news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-card {
  position: relative;
  min-width: 0;
  aspect-ratio: 1;
  overflow: hidden;
  color: #fff;
  background: #071522;
  border: 1px solid #aac5d433;
  border-radius: 26px;
  box-shadow: 0 16px 36px #102a3b1f;
  isolation: isolate;
}
.news-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 0%, #07152236 28%, #071522d9 53%, #071522fa 73%, #071522 100%);
}
.news-card > button, .news-card > a { position: relative; width: 100%; height: 100%; padding: 0; text-align: left; color: inherit; background: none; border: 0; cursor: pointer; display: flex; flex-direction: column; text-decoration: none; }
.news-image { position: absolute; inset: 0; overflow: hidden; background: #0a1b27; }
.news-image img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.04) brightness(.9); transition: transform .55s ease, filter .55s ease; }
.news-card:hover .news-image img { transform: scale(1.04); filter: saturate(1) contrast(1.05) brightness(.94); }
.news-copy { position: absolute; z-index: 2; inset: auto 0 0; min-height: 78%; padding: 25px 23px 22px; display: grid; grid-template-rows: 30px minmax(82px,auto) 54px 42px; align-content: end; }
.news-copy small { color: #b8dced; font-size: 9px; font-weight: 900; line-height: 1.35; letter-spacing: .18em; align-self: end; }
.news-copy h3 { margin: 12px 0; font-size: clamp(19px, 1.65vw, 27px); line-height: .98; letter-spacing: -.04em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-copy p { margin: 0 0 12px; color: #d3e3eb; font-size: 12px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-copy b { align-self: end; padding-top: 15px; border-top: 1px solid #d7edf54a; font-size: 9px; letter-spacing: .15em; display: flex; justify-content: space-between; }
.all-news-link { width: max-content; margin: 44px auto 0; padding: 17px 21px; border: 1px solid #071622; font-size: 10px; font-weight: 900; letter-spacing: .15em; display: flex; gap: 45px; transition: color .2s ease, background .2s ease; }
.all-news-link:hover { color: #fff; background: #071622; }
.news-modal-backdrop { position: fixed; inset: 0; z-index: 120; padding: 4vh 4vw; display: grid; place-items: center; background: #02101be8; backdrop-filter: blur(12px); }
.news-modal { position: relative; width: min(800px, 100%); max-height: 92vh; overflow: auto; color: #071622; background: #f4f8fa; border-radius: 24px; box-shadow: 0 30px 90px #0008; }
.news-modal-close { position: fixed; top: calc(4vh + 18px); right: max(calc((100vw - 800px) / 2 + 18px), calc(4vw + 18px)); z-index: 3; width: 44px; height: 44px; color: #fff; background: #071622e8; border: 1px solid #ffffff55; border-radius: 50%; font-size: 28px; cursor: pointer; }
.news-modal-header { padding: 54px 62px 46px; }
.news-modal-header > small { color: #6098b5; font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.news-modal-header > h2 { max-width: 660px; margin: 17px 35px 0 0; font-size: clamp(38px, 4.4vw, 62px); line-height: .9; letter-spacing: -.055em; }
.news-modal-visual { width: 100%; aspect-ratio: 1; overflow: hidden; background: #0a1b27; }
.news-modal-visual img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; object-position: center; }
.news-modal-content { padding: 36px 62px 54px; }
.news-modal-content section { padding: 21px 0; border-top: 1px solid #cbd9e1; }
.news-modal-content h3 { margin: 0 0 10px; font-size: 12px; letter-spacing: .1em; }
.news-modal-content p { margin: 0; color: #405764; font-size: 14px; line-height: 1.7; }
.news-modal-link { margin-top: 24px; padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; color: #fff; background: #071f30; border: 1px solid #071f30; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-decoration: none; transition: color .25s ease, background .25s ease; }
.news-modal-link:hover { color: #071f30; background: #d7edf5; }
.news-modal-link span { font-size: 17px; }
.team-page { background:#071622; color:#fff; }
.team-hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; padding:170px 7vw 80px; overflow:hidden; background:linear-gradient(90deg,#04131fe8 0%,#06182780 58%,#06182720),url('assets/winter-landscape.webp') center/cover; }
.team-hero>div:last-child{position:relative;z-index:2}.team-hero span,.team-intro span,.team-partner span,.team-application header>span{font-size:10px;font-weight:900;letter-spacing:.2em}.team-hero h1{margin:24px 0 28px;font-size:clamp(65px,10vw,160px);font-weight:300;line-height:.78;letter-spacing:-.07em}.team-hero h1 i,.team-intro h2 i,.team-partner h2 i,.team-application h2 i{color:#9edcf8;font-weight:300}.team-hero p{font-size:14px;font-weight:900;letter-spacing:.13em}.team-hero a{display:inline-block;margin-top:34px;padding:18px 22px;background:#fff;color:#071622;font-size:10px;font-weight:900;letter-spacing:.14em}
.team-intro{padding:110px 7vw;display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;background:#edf4f8;color:#071622}.team-intro h2,.team-partner h2,.team-application h2{margin:22px 0 0;font-size:clamp(58px,8vw,120px);font-weight:300;line-height:.82;letter-spacing:-.065em}.team-intro>div{align-self:end}.team-intro p,.team-partner>p{font-size:16px;line-height:1.75;color:#405966}
.team-benefits{display:grid;grid-template-columns:repeat(3,1fr);padding:0 7vw 110px;background:#edf4f8;color:#071622}.team-benefits article{padding:40px 34px;border:1px solid #b8ccd7}.team-benefits b{color:#72a9c4;font-size:10px;letter-spacing:.15em}.team-benefits h3{font-size:clamp(27px,3vw,45px);line-height:.92}.team-benefits p{color:#526b78;font-size:13px;line-height:1.6}
.team-partner{padding:110px 7vw;display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:radial-gradient(circle at 80% 30%,#264b63,#071622 50%)}.team-partner>p{color:#c3d5df;align-self:end}.team-application{padding:110px 7vw;background:#dbe9f0;color:#071622}.team-application>header{display:grid;grid-template-columns:1fr 1.2fr;gap:7vw;margin-bottom:65px}.team-application header p{align-self:end;color:#526b78;line-height:1.7}.team-form{max-width:1100px;margin:auto}.team-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.team-form>label,.team-form-grid label,.team-form fieldset{display:flex;flex-direction:column;gap:10px;margin:0 0 24px;font-size:10px;font-weight:900;letter-spacing:.13em}.team-form input,.team-form textarea,.team-form select{width:100%;padding:17px 15px;border:1px solid #94afbe;border-radius:0;background:#f8fbfc;color:#071622;font:inherit}.team-form textarea{min-height:130px;resize:vertical}.team-form small{color:#647e8c;font-size:9px;font-weight:500;letter-spacing:0;line-height:1.5}.team-form fieldset{padding:24px;border:1px solid #94afbe}.team-form legend{padding:0 10px}.team-check{flex-direction:row!important;align-items:flex-start!important;gap:12px!important;margin:7px 0!important}.team-check input{width:18px;height:18px;flex:0 0 auto}.team-check span{font-size:10px;line-height:1.5}.team-check.privacy{margin:30px 0!important}.team-form>button{padding:20px 25px;border:0;background:#071622;color:#fff;font-size:10px;font-weight:900;letter-spacing:.14em;cursor:pointer}.team-form-success{color:#137054;font-weight:900}.team-form-error{color:#a32c2c;font-weight:900}.form-trap{position:absolute!important;left:-9999px!important}
.admin-section-nav{display:flex;gap:12px;padding:20px 4vw;background:#0d2130;border-bottom:1px solid #29404f}.admin-section-nav a{padding:12px 16px;border:1px solid #45606f;font-size:10px;font-weight:900;letter-spacing:.14em}.admin-section-nav b{color:#9edcf8}.admin-team-section{padding-top:70px;background:#071622}.admin-team-section>header{padding:0 4vw 30px}.admin-team-section>header span{color:#7ba5bc;font-size:9px;letter-spacing:.2em}.admin-team-section>header h2{margin:10px 0 0;font-size:clamp(45px,7vw,90px);font-weight:300}.admin-application-data{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:30px 0;background:#263d4a}.admin-application-data p{margin:0;padding:18px;background:#0b1d29;white-space:pre-wrap}.admin-application-data p:nth-last-child(-n+2){grid-column:1/-1}.admin-application-data b{display:block;margin-bottom:8px;color:#7798aa;font-size:8px;letter-spacing:.15em}
.team-benefits h3{margin-top:0}
.team-application>header{grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);gap:5vw;align-items:end}
.team-application header p{max-width:590px}
.team-carousel{min-width:0}
.team-carousel-frame{position:relative;height:clamp(330px,38vw,600px);overflow:hidden;background:#071622}
.team-carousel-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .7s ease,transform 4.2s ease}
.team-carousel-frame img.active{opacity:1;transform:scale(1)}
.team-carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding-top:14px;font-size:10px;font-weight:900;letter-spacing:.13em}
.team-carousel-controls button{width:42px;height:42px;border:1px solid #8da6b4;background:transparent;color:#071622;cursor:pointer}
.team-form>button:disabled{opacity:.55;cursor:wait}
.team-application>header{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,90px);align-items:stretch;margin-bottom:90px}
.team-application-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.team-application-copy>span{display:block}
.team-application-copy h2{width:100%;margin:30px 0 0;font-size:clamp(52px,5.1vw,90px);line-height:.84;letter-spacing:-.065em}
.team-application-copy h2 b,.team-application-copy h2 i{display:block;font-weight:300;white-space:nowrap}
.team-application-copy h2 i{margin-top:12px;font-size:.69em;letter-spacing:-.045em}
.team-application-copy p{margin:auto 0 0;padding-top:44px;font-size:15px;line-height:1.7}
.team-carousel{display:flex;min-width:0;flex-direction:column}
.team-carousel-frame{height:auto;aspect-ratio:4/3;border:1px solid #9db4c0}
.team-carousel-controls{height:58px;padding:14px 0 0;border-top:0}
.team-carousel-controls button{flex:0 0 42px}
.team-form{padding-top:8px;border-top:1px solid #a8bdc8}

/* Electra Team — rounded, contemporary winter layout */
.team-page { background:#edf4f8; color:#071622; }
.team-hero {
  height:76svh;
  min-height:620px;
  padding:0;
  align-items:stretch;
  background-image:url('assets/electra-team-header.jpg');
  background-position:50% 48%;
  background-size:cover;
}
.team-hero:before {
  background:
    linear-gradient(90deg,#03101fea 0%,#06192dc7 36%,#07346d66 64%,#0a4c9126 100%),
    linear-gradient(0deg,#04111fc7 0%,#093d773d 55%,transparent 100%),
    #062b5a20;
}
.team-hero .winter-hero-content { padding-top:130px; padding-bottom:45px; }
.team-hero .overline { margin:0; font-size:10px; line-height:1; letter-spacing:.2em; }
.team-hero h1 { margin:27px 0 24px; font-size:clamp(62px,8.5vw,132px); line-height:.78; white-space:nowrap; }
.team-hero h2 { margin:0 0 50px; font-size:clamp(24px,3vw,46px); font-weight:300; letter-spacing:-.035em; }
.team-hero h2 i { color:#9edcf8; }
.team-hero .ice-button { width:max-content; min-width:0; align-self:flex-start; display:inline-flex; margin-top:32px; padding:16px 20px; gap:24px; }
.team-hero .scroll-cue { position:absolute; }

.team-intro {
  margin:90px 7vw 22px;
  padding:clamp(48px,6vw,82px);
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:7vw;
  overflow:hidden;
  background:#fff;
  border:1px solid #d6e4ea;
  border-radius:48px;
  box-shadow:0 24px 70px #173a4d12;
}
.team-intro h2 { font-size:clamp(54px,7vw,108px); }
.team-intro>div { padding:32px; background:#e8f4f9; border-radius:30px; }
.team-intro p:first-child { margin-top:0; }
.team-intro p:last-child { margin-bottom:0; color:#173a4d; font-weight:700; }

.team-benefits { padding:0 7vw 100px; gap:18px; background:#edf4f8; }
.team-benefits article {
  min-height:330px;
  padding:34px;
  display:flex;
  flex-direction:column;
  border:0;
  border-radius:34px;
  background:#fff;
  box-shadow:0 20px 48px #173a4d0e;
  transition:transform .35s ease,box-shadow .35s ease;
}
.team-benefits article:hover { transform:translateY(-6px); box-shadow:0 28px 60px #173a4d1c; }
.team-benefits article:first-child { color:#fff; background:#123f59; }
.team-benefits article:nth-child(2) { background:#cfeaf5; }
.team-benefits b { width:46px; height:46px; display:grid; place-items:center; color:#123f59; background:#fff; border-radius:50%; }
.team-benefits article:first-child b { color:#123f59; background:#dff5ff; }
.team-benefits h3 { margin:auto 0 22px; font-size:clamp(27px,2.8vw,43px); }
.team-benefits p { margin:0; font-size:14px; }
.team-benefits article:first-child p { color:#d7e8ef; }

.team-partner {
  position:relative;
  margin:0 7vw 100px;
  padding:clamp(58px,7vw,96px);
  gap:9vw;
  overflow:hidden;
  border-radius:48px;
  background:radial-gradient(circle at 88% 18%,#36718f,#071622 55%);
}
.team-partner:after { content:""; position:absolute; width:290px; height:290px; right:-95px; bottom:-115px; border:1px solid #aee7ff4f; border-radius:50%; }
.team-partner>div,.team-partner>p { position:relative; z-index:1; }
.team-partner-identity h2 { max-width:none; color:#fff; font-size:clamp(48px,6vw,94px); white-space:nowrap; }
.team-partner-identity h2 b { color:#fff; font-weight:300; }
.team-partner-identity img { width:clamp(104px,11vw,156px); height:auto; margin-top:38px; display:block; border-radius:26px; box-shadow:0 18px 44px #00000032; }
.team-partner-description { align-self:end; padding:34px; color:#d3e4eb; background:#ffffff0d; border:1px solid #ffffff1f; border-radius:30px; backdrop-filter:blur(8px); }
.team-partner-description p { margin:0; color:#d3e4eb; font-size:16px; line-height:1.75; }
.team-partner-description a { width:max-content; display:flex; align-items:center; gap:18px; margin-top:30px; padding-bottom:7px; color:#fff; border-bottom:1px solid #8fd9f2; font-size:11px; font-weight:900; letter-spacing:.14em; }
.team-brand-line { display:block; margin-top:22px; color:#34718e; font-size:12px; line-height:1; letter-spacing:.18em; }
.team-application .team-application-copy p { margin:28px 0 0; padding-top:0; align-self:flex-start; max-width:560px; }

.team-application {
  margin:0 7vw 110px;
  padding:clamp(52px,6vw,82px);
  background:#dbe9f0;
  border:1px solid #c7dce6;
  border-radius:48px;
  box-shadow:0 24px 70px #173a4d12;
}
.team-carousel-frame { overflow:hidden; border:0; border-radius:34px; box-shadow:0 18px 42px #173a4d1f; }
.team-carousel-controls button { border:0; border-radius:50%; background:#fff; box-shadow:0 8px 18px #173a4d16; }
.team-form { padding:42px; background:#edf5f8; border:0; border-radius:34px; }
.team-form input,.team-form textarea,.team-form select { border:1px solid #bfd3dc; border-radius:16px; background:#fff; }
.team-form fieldset { border:1px solid #bfd3dc; border-radius:22px; background:#ffffff78; }
.team-form>button { border-radius:999px; transition:transform .25s ease,background .25s ease; }
.team-form>button:hover { transform:translateY(-2px); background:#16445e; }
.summer-placeholder {
  height: 100svh;
  min-height: 650px;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    radial-gradient(circle at 50% 20%, #e9ba6b88, transparent 35%),
    linear-gradient(145deg, #2c122b, #bd663f);
  padding: 30px;
}
.summer-placeholder img {
  width: 170px;
  height: 90px;
  object-fit: contain;
}
.summer-placeholder > span {
  font-size: 11px;
  letter-spacing: 0.25em;
}
.summer-placeholder h1 {
  font-size: clamp(76px, 13vw, 180px);
  line-height: 0.75;
  letter-spacing: -0.07em;
  margin: 28px 0;
}
.summer-placeholder p {
  font-size: 14px;
  line-height: 1.6;
}
.summer-link {
  border-bottom: 1px solid;
  padding: 13px;
  margin-top: 24px;
  font-size: 11px;
  letter-spacing: 0.15em;
}
.back {
  position: absolute;
  left: 4vw;
  top: 35px;
  font-size: 10px;
  letter-spacing: 0.15em;
}
@media (max-width: 900px) {
  .portal {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }
  .portal-side {
    padding: 105px 7vw 45px;
  }
  .portal-content :is(h1, h2) {
    font-size: 10vw;
  }
  .portal-content {
    grid-template-rows: 22px 26px 1fr 38px;
    height: min(280px, calc(50svh - 130px));
  }
  .portal-logo {
    top: 18px;
  }
  .portal-logo img {
    height: 55px;
    width: 120px;
  }
  .topbar {
    height: 68px;
  }
  .primary-nav {
    display: none;
  }
  .nav-panel {
    top: 68px;
    grid-template-columns: 1fr 1fr;
    padding-top: 18px;
  }
  .header-ticket {
    margin-left: auto;
  }
  .winter-intro {
    grid-template-columns: 120px 1fr;
  }
  .winter-intro aside {
    grid-column: 2;
    margin-top: 0;
  }
  .winter-title {
    grid-template-columns: 120px 1fr;
  }
  .artist-editorial-grid { grid-auto-columns: minmax(255px, 30vw); }
  .next-act {
    grid-column: 1/-1;
    height: 260px !important;
  }
  .winter-practical {
    grid-template-columns: 1fr;
  }
  .ticket-cta-content {
    grid-template-columns: 1fr 320px;
    column-gap: 25px;
  }
  .footer-navigation nav { gap: 20px 4vw; }
  .news-heading { grid-template-columns: 150px 1fr; }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .news-card:last-child { grid-column: 1/-1; width: calc(50% - 11px); }
  .news-archive .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-archive .news-card:last-child { grid-column: auto; width: auto; }
  .partner-tier-standard .partner-logo-grid,
  .partner-tier-patrons .partner-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .news-modal-header { padding: 48px 38px 38px; }
  .news-modal-content { padding: 34px 38px 42px; }
  .team-intro,.team-partner,.team-application>header{grid-template-columns:1fr}.team-benefits{grid-template-columns:1fr}.team-benefits article{padding:30px}.team-application>header{gap:48px;margin-bottom:70px}.team-application-copy h2{font-size:clamp(58px,10vw,88px)}.team-application-copy p{margin-top:34px;padding-top:0}.team-carousel-frame{height:auto;aspect-ratio:16/10}
}
@media (max-width: 600px) {
  .portal-side {
    padding: 82px 7vw 32px;
  }
  .portal-content span {
    font-size: 8px;
  }
  .portal-content p {
    font-size: 9px;
  }
  .portal-content :is(h1, h2) {
    font-size: 15vw;
  }
  .portal-content b {
    font-size: 8px;
  }
  .winter-hero {
    background-image: url("assets/winter-festival-header.webp");
    background-position: 50% 50%;
  }
  .news-archive-hero {
    height: 70svh;
    min-height: 570px;
    background-image: url("assets/news-archive-header.jpg");
    background-position: 52% 50%;
  }
  .news-archive-hero .winter-hero-content { padding-top: 115px; padding-bottom: 40px; }
  .news-archive-hero h1 { font-size: 14.5vw; }
  .news-archive .news-heading h2 { font-size: 9vw; white-space: nowrap; }
  .partners-hero { height: 70svh; min-height: 570px; background-image: url("assets/partners-header.jpg"); background-position: 50% 50%; }
  .partners-hero .winter-hero-content { padding-top: 115px; padding-bottom: 40px; }
  .partners-hero h1 { font-size: 13vw; }
  .partners-hero h2 { font-size: 6.5vw; }
  .partners-directory { padding: 76px 6vw 90px; }
  .partners-heading { margin-bottom: 62px; }
  .partners-heading h2 { font-size: 12vw; }
  .partner-tiers { gap: 62px; }
  .partner-tier h3 { margin-bottom: 22px; }
  .partner-logo-grid,
  .partner-tier-institutional .partner-logo-grid,
  .partner-tier-major .partner-logo-grid,
  .partner-tier-standard .partner-logo-grid,
  .partner-tier-patrons .partner-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .partner-tier-patrons-secondary .partner-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .partner-tier-patrons-secondary .partner-logo-card { border-radius: 15px; }
  .partner-tier-naming .partner-logo-grid { grid-template-columns: 1fr; }
  .partner-logo-card { border-radius: 20px; }
  .brand-img img {
    width: 115px;
    height: 55px;
  }
  .topbar {
    padding: 0 5vw;
  }
  .header-ticket {
    display: none;
  }
  .nav-panel {
    grid-template-columns: 1fr;
    max-height: calc(100svh - 68px);
    overflow-y: auto;
    padding: 12px 6vw 28px;
  }
  .nav-panel a {
    min-height: 49px;
    font-size: 10px;
  }
  .winter-hero-content {
    padding: 125px 6vw 75px;
  }
  .winter-hero h1 {
    font-size: 22vw;
    margin: 25px 0;
  }
  .winter-hero h2 {
    font-size: 7.5vw;
  }
  .winter-info {
    gap: 18px;
  }
  .winter-info strong {
    font-size: 13px;
  }
  .winter-info span {
    font-size: 9px;
  }
  .winter-intro {
    padding: 80px 6vw;
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .winter-intro aside {
    grid-column: auto;
    margin: 0;
  }
  .winter-intro h2,
  .winter-title h2,
  .winter-practical h2,
  .winter-faq h2 {
    font-size: 13vw;
  }
  .copy {
    font-size: 16px;
  }
  .winter-lineup {
    padding: 80px 6vw;
  }
  .winter-title,
  .lineup-heading {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .lineup-heading { margin-bottom: 35px; }
  .lineup-heading h2 { font-size: 13vw; }
  .artist-editorial-grid { grid-auto-columns: min(82vw, 285px); }
  .artist-visual { height: auto; }
  .artist-card { min-height: 440px; border-radius: 24px; }
  .artist-copy { min-height: 250px; }
  .lineup-controls button { width: 38px; height: 38px; }
  .artist-modal-backdrop { padding: 14px; }
  .artist-modal {
    max-height: calc(100svh - 28px);
    grid-template-columns: 1fr;
  }
  .artist-modal-image { min-height: 0; height: 36svh; }
  .artist-modal-copy { padding: 38px 25px 32px; }
  .artist-modal-copy h2 { font-size: 14vw; }
  .artist-modal-copy p { font-size: 14px; }
  .act-grid {
    grid-template-columns: 1fr;
  }
  .act-grid article {
    height: 540px;
  }
  .next-act {
    grid-column: auto;
    height: 220px !important;
  }
  .winter-practical {
    padding: 80px 6vw;
  }
  .winter-faq { padding: 80px 6vw; }
  .festival-universe { min-height: 0; padding: 85px 6vw 95px; }
  .festival-story h2 { font-size: 13vw; }
  .festival-story p { font-size: 15px; }
  .festival-story > a { font-size: 9px; line-height: 1.45; }
  .universe-cards { margin-top: 65px; grid-template-columns: 1fr; gap: 17px; }
  .universe-card { min-height: 255px; transform: none !important; animation: none; }
  .universe-card h3 { font-size: 11vw; }
  .winter-faq > header { margin-bottom: 42px; }
  .faq-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .faq-category-grid > button { padding: 15px; }
  .faq-category-grid span { font-size: 12px; }
  .faq-group { margin-top: 38px; }
  .faq-item > button { min-height: 70px; grid-template-columns: 1fr 62px; }
  .faq-item > button span { padding: 20px 18px; font-size: 13px; line-height: 1.3; }
  .faq-answer { padding: 0 20px 25px; }
  .faq-answer p { font-size: 14px; line-height: 1.65; }
  .ticket-cta,
  .ticket-cta-content { min-height: 720px; }
  .ticket-cta-content {
    padding: 82px 6vw 46px;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr auto;
    gap: 18px;
  }
  .ticket-cta-copy h2 { font-size: 10.6vw; }
  .ticket-stack {
    justify-self: center;
    transform: translate3d(45%, 10%, 0) rotate(8deg) scale(.78);
  }
  .ticket-stack .ticket-art {
    width: min(88vw, 390px);
    max-height: 350px;
  }
  .ticket-cta-link { font-size: 10px; }
  .practical-list a {
    font-size: 13px;
  }
  .site-footer { padding: 58px 7vw 25px; }
  .footer-identity img { width: 155px; height: 95px; }
  .footer-socials { gap: 20px; }
  .footer-socials svg { width: 24px; height: 24px; }
  .footer-rule { margin: 34px 0 38px; }
  .footer-navigation nav { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .footer-navigation a { font-size: 9px; }
  .footer-bottom { align-items: flex-start; flex-direction: column-reverse; margin-top: 42px; }
  .footer-bottom nav { justify-content: flex-start; gap: 14px 18px; }
  .legal-placeholder img { width: 120px; margin-bottom: 35px; }
  .winter-news { padding: 75px 6vw 70px; }
  .news-heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 38px; }
  .news-heading > span { padding: 0; }
  .news-heading h2 { font-size: 13.5vw; }
  .winter-news:not(.news-archive) .news-heading h2 { font-size: 10.5vw; }
  .news-grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
  .news-archive .news-grid { display: grid; grid-template-columns: 1fr; overflow: visible; }
  .news-card, .news-card:last-child { flex: 0 0 min(82vw, 360px); width: auto; aspect-ratio: 1; border-radius: 24px; scroll-snap-align: start; }
  .news-archive .news-card, .news-archive .news-card:last-child { width: 100%; }
  .news-copy { padding: 21px 19px 23px; }
  .news-copy h3 { font-size: clamp(19px, 5.7vw, 23px); }
  .all-news-link { width: 100%; justify-content: space-between; margin-top: 30px; }
  .news-modal-backdrop { padding: 0; place-items: stretch; }
  .news-modal { width: 100%; max-height: 100svh; border-radius: 0; }
  .news-modal-close { position: fixed; top: 14px; right: 14px; }
  .news-modal-header { padding: 72px 22px 32px; }
  .news-modal-header > h2 { margin-right: 0; font-size: 10vw; }
  .news-modal-visual { width: 100%; height: auto; min-height: 0; aspect-ratio: 1; }
  .news-modal-visual img { height: 100%; aspect-ratio: 1; }
  .news-modal-content { padding: 34px 22px 45px; }
  .team-hero{height:70svh;min-height:570px;padding:0;background-position:48% 50%}.team-hero .winter-hero-content{padding-top:115px;padding-bottom:40px}.team-hero h1{font-size:12.5vw}.team-hero h2{margin-bottom:34px;font-size:6.2vw}.team-hero .overline{font-size:8px;line-height:1.5}.team-intro{margin:48px 5vw 14px;padding:42px 6vw;border-radius:30px}.team-intro>div{padding:25px;border-radius:22px}.team-partner{margin:0 5vw 70px;padding:52px 6vw;border-radius:30px}.team-application{margin:0 5vw 76px;padding:48px 6vw;border-radius:30px}.team-benefits{padding:0 5vw 70px}.team-benefits article{min-height:280px;border-radius:26px}.team-form{padding:28px 20px;border-radius:25px}.team-form-grid{grid-template-columns:1fr}.team-application h2,.team-application-copy h2{font-size:13vw}.team-application-copy h2 i{font-size:.72em;white-space:normal}.team-carousel-frame{height:auto;aspect-ratio:4/3;border-radius:25px}.team-carousel-controls{justify-content:space-between}.admin-application-data{grid-template-columns:1fr}.admin-application-data p{grid-column:1!important}
  .summer-placeholder h1 {
    font-size: 20vw;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .portal-bg,
  .act-grid img {
    transition: none;
  }
  .snow {
    animation: none;
  }
  .ticket-stack {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.responsive-proof {
  min-height: 100vh;
  background: #dbeaf1;
  color: #071522;
  padding: 55px 4vw 75px;
}
.responsive-proof header {
  text-align: center;
}
.responsive-proof header span {
  font-size: 9px;
  letter-spacing: 0.25em;
}
.responsive-proof h1 {
  font-size: clamp(42px, 6vw, 80px);
  line-height: 0.85;
  letter-spacing: -0.06em;
  margin: 18px 0;
}
.responsive-proof header p {
  font-size: 12px;
}

/* Winter 2026 — progressive reveal on scroll */
.winter-site.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity .5s ease var(--reveal-delay, 0ms),
    transform .58s cubic-bezier(.2, .72, .2, 1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.winter-site.reveal-ready [data-reveal="visual"] {
  transform: translate3d(0, 24px, 0) scale(1.02);
}
.winter-site.reveal-ready [data-reveal="side"] {
  transform: translate3d(28px, 10px, 0);
}
.winter-site.reveal-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}
.winter-site .reveal-delay-1 { --reveal-delay: 55ms; }
.winter-site .reveal-delay-2 { --reveal-delay: 110ms; }
.winter-site .reveal-delay-3 { --reveal-delay: 165ms; }
.winter-site .reveal-delay-4 { --reveal-delay: 220ms; }

.aftermovie-feature {
  padding: 115px 7vw 130px;
  color: #fff;
  background: radial-gradient(circle at 82% 18%, #16405a 0, transparent 28%), #06131f;
}
.aftermovie-feature header { width: min(1120px, 100%); margin: 0 auto 48px; }
.aftermovie-feature header > span { color: #a8d5e6; font-size: 10px; font-weight: 900; letter-spacing: .22em; }
.aftermovie-feature h2 { margin: 20px 0 0; font-size: clamp(52px, 7.3vw, 112px); font-weight: 300; line-height: .82; letter-spacing: -.065em; }
.aftermovie-feature h2 i { color: #b9e4f2; font-weight: 300; }
.aftermovie-carousel { width: min(1280px, 100%); margin: 0 auto; overflow: hidden; }
.aftermovie-stage { position: relative; height: clamp(330px, 51vw, 680px); perspective: 1500px; }
.aftermovie-slide { position: absolute; top: 50%; left: 50%; width: min(78vw, 1000px); aspect-ratio: 16/9; overflow: hidden; border: 1px solid #b9e4f242; border-radius: 36px; background: #02070b; box-shadow: 0 35px 90px #0009; transition: transform .5s cubic-bezier(.2,.72,.2,1), opacity .5s ease, filter .5s ease; }
.aftermovie-slide iframe, .aftermovie-preview, .aftermovie-slide img { width: 100%; height: 100%; display: block; border: 0; }
.aftermovie-slide iframe { background: #02070b; }
.aftermovie-preview { position: relative; }
.aftermovie-slide img { object-fit: cover; }
.aftermovie-preview span { position: absolute; inset: 50% auto auto 50%; width: 54px; height: 54px; display: grid; place-items: center; color: #06131f; background: #dff5fcde; border-radius: 50%; transform: translate(-50%,-50%); }
.aftermovie-slide.is-active { z-index: 3; opacity: 1; filter: none; transform: translate(-50%,-50%) scale(1); }
.aftermovie-slide.is-previous { z-index: 1; opacity: .58; filter: brightness(.55) saturate(.7); transform: translate(-88%,-50%) scale(.72) rotateY(7deg); }
.aftermovie-slide.is-next { z-index: 2; opacity: .58; filter: brightness(.55) saturate(.7); transform: translate(-12%,-50%) scale(.72) rotateY(-7deg); }
.aftermovie-controls { width: min(1000px, 78vw); margin: 18px auto 0; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.aftermovie-controls button { padding: 13px 0; color: #dff5fc; background: transparent; border: 0; cursor: pointer; font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.aftermovie-controls button:first-child { text-align: left; }
.aftermovie-controls button:last-child { text-align: right; }

.ticket-cta { min-height: 760px; }
.ticket-cta-content { min-height: 760px; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); grid-template-rows: 1fr auto; column-gap: 6vw; }
.ticket-cta-link { grid-column: 1 / -1; }
.ticket-modal-backdrop { position: fixed; inset: 0; z-index: 140; padding: 5vh 5vw; display: grid; place-items: center; background: #020d17e8; backdrop-filter: blur(12px); }
.ticket-modal { position: relative; width: min(920px, 100%); padding: 52px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; overflow: hidden; color: #fff; background: radial-gradient(circle at 90% 10%, #23506c 0, transparent 40%), #071522; border: 1px solid #b9e4f244; border-radius: 34px; box-shadow: 0 35px 100px #000b; }
.ticket-modal-close { position: absolute; top: 18px; right: 18px; z-index: 2; width: 42px; height: 42px; color: #fff; background: #ffffff0e; border: 1px solid #ffffff55; border-radius: 50%; cursor: pointer; font-size: 27px; }
.ticket-modal-copy > span { color: #a8d5e6; font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.ticket-modal-copy h2 { margin: 22px 0; font-size: clamp(40px,5vw,68px); line-height: .86; letter-spacing: -.06em; }
.ticket-modal-copy h2 i { color: #b9e4f2; font-weight: inherit; }
.ticket-modal-copy p { color: #d0e0e8; line-height: 1.6; }
.ticket-modal-copy a { margin-top: 28px; padding: 18px 20px; display: flex; justify-content: space-between; color: #071522; background: #dff5fc; border-radius: 4px; font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.ticket-modal > img { width: 100%; max-height: 460px; object-fit: contain; filter: drop-shadow(0 25px 28px #0009); }
.festival-universe { min-height: 0; padding-top: 125px; }
.festival-universe-bg { background: linear-gradient(180deg, #061421f4 0%, #0b2437ed 54%, #06131fff 100%), url("assets/winter-history-wide-stage.webp") center/cover; }
.history-stats { width: min(1120px, 100%); margin: 70px auto 95px; display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid #b9e4f258; }
.history-stats > div { min-height: 170px; padding: 30px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 7px; text-align: center; }
.history-stats > div + div { border-left: 1px solid #b9e4f258; }
.history-stats strong { font-size: clamp(48px, 6vw, 92px); line-height: .9; letter-spacing: -.055em; }
.history-stats span { color: #b9e4f2; font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.history-memories { width: min(1120px, 100%); margin: 0 auto 120px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; align-items: stretch; }
.memory { position: relative; margin: 0; padding: 13px 13px 42px; color: #071522; background: #f5f5f0; box-shadow: 0 25px 55px #0007; }
.memory img { width: 100%; aspect-ratio: 16/10; display: block; object-fit: cover; filter: saturate(.78) contrast(1.05); }
.memory figcaption { position: absolute; left: 17px; bottom: 14px; font-size: 8px; font-weight: 950; letter-spacing: .16em; }
.memory-1 { transform: rotate(-1deg); }
.memory-2 { transform: rotate(.8deg); }
.memory-3 { transform: rotate(.6deg); }
.memory-4 { transform: rotate(-.8deg); }
.home-team-story { width: min(1120px, 100%); margin: 0 auto 145px; padding: 26px; display: grid; grid-template-columns: .88fr 1.12fr; gap: 48px; align-items: center; border: 1px solid #b9e4f233; border-radius: 42px; background: #0a1d2bdb; box-shadow: 0 30px 90px #0005; }
.home-team-copy { padding: 28px 18px 28px 24px; }
.home-team-copy > span { color: #a8d5e6; font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.home-team-copy h2 { margin: 20px 0 24px; font-size: clamp(36px, 4.1vw, 60px); line-height: .88; letter-spacing: -.055em; }
.home-team-copy h2 i { color: #b9e4f2; font-weight: inherit; }
.home-team-copy p { color: #cfe0e8; font-size: 15px; line-height: 1.7; }
.home-team-copy a { margin-top: 25px; padding: 17px 0 12px; display: flex; justify-content: space-between; border-bottom: 1px solid #d7edf5; font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.home-team-photos { position: relative; min-width: 0; padding: 0 0 38px 34px; }
.home-team-photo { position: relative; overflow: hidden; border-radius: 30px; aspect-ratio: 4/3; }
.home-team-photo::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, #04111fbf); }
.home-team-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) brightness(.9); transition: transform .6s ease; }
.home-team-photo:hover img { transform: scale(1.035); }
.home-team-photo span { position: absolute; z-index: 2; left: 22px; bottom: 18px; font-size: 8px; font-weight: 900; letter-spacing: .18em; }
.home-team-secondary { position: absolute; left: 0; bottom: 0; z-index: 3; width: 38%; aspect-ratio: 4/3; margin: 0; padding: 7px; overflow: hidden; background: #edf5f8; box-shadow: 0 18px 45px #0009; transform: rotate(-3deg); }
.home-team-secondary img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(.85) contrast(1.04); }
.universe-label { width: min(940px, 100%); margin: 0 auto 38px; color: #a8d5e6; font-size: 9px; font-weight: 900; letter-spacing: .22em; }
.universe-cards { margin-top: 0; }

@media (max-width: 900px) {
  .ticket-cta-content { grid-template-columns: 1fr 1fr; }
  .ticket-cta-link { grid-row: 2; }
  .home-team-story { grid-template-columns: 1fr; }
  .home-team-photos { order: -1; }
}

@media (max-width: 600px) {
  .winter-hero { background-image: none; background-position: initial; }
  .winter-hero:before { background: linear-gradient(90deg, #03101fe3 0%, #0617288f 72%, transparent), linear-gradient(0deg, #06131fe0, transparent 58%); }
  .aftermovie-feature { padding: 82px 6vw 92px; }
  .aftermovie-feature header { margin-bottom: 32px; }
  .aftermovie-feature h2 { font-size: 13.2vw; }
  .aftermovie-stage { height: 58vw; min-height: 230px; }
  .aftermovie-slide { width: 88vw; border-radius: 24px; }
  .aftermovie-slide.is-previous { transform: translate(-91%,-50%) scale(.68); }
  .aftermovie-slide.is-next { transform: translate(-9%,-50%) scale(.68); }
  .aftermovie-controls { width: 88vw; }
  .ticket-cta, .ticket-cta-content { min-height: 0; }
  .ticket-cta-content { padding-top: 82px; grid-template-columns: 1fr; grid-template-rows: auto; gap: 34px; }
  .ticket-cta-copy, .ticket-stack, .ticket-cta-link { grid-column: 1; grid-row: auto; }
  .ticket-modal-backdrop { padding: 0; }
  .ticket-modal { width: 100%; min-height: 100svh; padding: 70px 24px 35px; grid-template-columns: 1fr; gap: 18px; border-radius: 0; }
  .ticket-modal > img { order: -1; max-height: 33svh; }
  .festival-universe { padding: 88px 6vw 95px; }
  .history-stats { margin: 50px auto 70px; grid-template-columns: 1fr; }
  .history-stats > div { min-height: 125px; }
  .history-stats > div + div { border-left: 0; border-top: 1px solid #b9e4f258; }
  .history-memories { margin-bottom: 90px; grid-template-columns: 1fr; gap: 18px; }
  .memory, .memory-1, .memory-2, .memory-3, .memory-4 { width: 94%; margin: 0; justify-self: auto; transform: rotate(-1deg); }
  .memory:nth-child(even) { justify-self: end; transform: rotate(1deg); }
  .home-team-story { margin-bottom: 90px; padding: 14px; gap: 18px; border-radius: 28px; }
  .home-team-photos { padding: 0 0 28px 20px; }
  .home-team-photo { border-radius: 20px; }
  .home-team-secondary { width: 42%; padding: 5px; }
  .home-team-copy { padding: 22px 12px 20px; }
  .home-team-copy h2 { font-size: 9.7vw; }
  .home-team-copy p { font-size: 14px; }
  .winter-site.reveal-ready [data-reveal] { transform: translate3d(0, 16px, 0); transition-duration: .4s, .46s; }
  .winter-site.reveal-ready [data-reveal="visual"] { transform: translate3d(0, 14px, 0) scale(1.01); }
  .winter-site.reveal-ready [data-reveal="side"] { transform: translate3d(14px, 6px, 0); }
  .winter-site .reveal-delay-1 { --reveal-delay: 35ms; }
  .winter-site .reveal-delay-2 { --reveal-delay: 70ms; }
  .winter-site .reveal-delay-3 { --reveal-delay: 105ms; }
  .winter-site .reveal-delay-4 { --reveal-delay: 140ms; }
}

@media (prefers-reduced-motion: reduce) {
  .aftermovie-slide { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  .winter-site [data-reveal],
  .winter-site.reveal-ready [data-reveal] { opacity: 1; transform: none; transition: none; }
  .home-team-photo img { transition: none; }
}
.device-row {
  display: grid;
  grid-template-columns: 1.65fr 1fr 0.62fr;
  gap: 24px;
  align-items: start;
  margin-top: 55px;
}
.device {
  background: #071522;
  border: 8px solid #071522;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 25px 60px #15384a38;
}
.device > div {
  height: 30px;
  color: #b9d5e2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 12px;
  font-size: 7px;
  letter-spacing: 0.14em;
}
.device > div b {
  font-size: 6px;
  letter-spacing: 4px;
}
.device figure {
  margin: 0;
  overflow: hidden;
  background: white;
  position: relative;
}
.device iframe {
  border: 0;
  transform-origin: top left;
  pointer-events: none;
}
.desktop-device figure {
  height: 350px;
}
.desktop-device iframe {
  width: 1440px;
  height: 900px;
  transform: scale(0.36);
}
.tablet-device figure {
  height: 430px;
}
.tablet-device iframe {
  width: 768px;
  height: 1024px;
  transform: scale(0.39);
}
.phone-device {
  border-width: 7px;
  border-radius: 24px;
}
.phone-device figure {
  height: 500px;
}
.phone-device iframe {
  width: 390px;
  height: 844px;
  transform: scale(0.36);
}
.proof-back {
  display: block;
  width: max-content;
  margin: 45px auto 0;
  border-bottom: 1px solid;
  padding: 10px;
  font-size: 9px;
  letter-spacing: 0.16em;
}
@media (max-width: 800px) {
  .device-row {
    grid-template-columns: 1fr;
  }
  .desktop-device iframe {
    transform: scale(0.55);
  }
  .desktop-device figure {
    height: 495px;
  }
  .tablet-device {
    max-width: 500px;
    margin: auto;
    width: 100%;
  }
  .tablet-device iframe {
    transform: scale(0.62);
  }
  .tablet-device figure {
    height: 635px;
  }
  .phone-device {
    max-width: 290px;
    margin: auto;
    width: 100%;
  }
  .phone-device iframe {
    transform: scale(0.69);
  }
  .phone-device figure {
    height: 582px;
  }
}
/* Dedicated ESMP variant: scoped to preserve the general Team page. */
.esmp-page .esmp-hero{height:auto;min-height:90svh;background:linear-gradient(90deg,#04131fee,#04131f65),url('assets/electra-team-18.webp') center/cover}
.esmp-page .esmp-hero h1{white-space:normal;font-size:clamp(42px,6.4vw,100px);line-height:.98;letter-spacing:-.045em}
.esmp-page .esmp-hero-text{max-width:650px;font-size:16px;font-weight:400;line-height:1.7;letter-spacing:0}
.esmp-page .esmp-school{display:block;background:none;padding:0;margin:22px 0;width:150px}.esmp-school img{width:100%;height:auto}
.esmp-practical{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;padding:30px 7vw 50px;font-size:14px;color:#071622;background:#edf4f8}
.esmp-page .esmp-missions{grid-template-columns:repeat(4,minmax(0,1fr))}.esmp-page .esmp-missions article{padding:28px;min-height:240px}.esmp-page .esmp-missions h3{font-size:28px;line-height:1.1;overflow-wrap:anywhere}
.esmp-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.esmp-choice{display:flex;align-items:center;gap:12px;padding:22px;border:1px solid #bfd3dc;border-radius:16px;cursor:pointer;background:white}.esmp-choice:has(input:checked){background:#123f59;color:white;border-color:#123f59}.esmp-choice:focus-within{outline:2px solid #16445e;outline-offset:3px}.esmp-form .esmp-choice input{width:20px;height:20px;flex-shrink:0}.esmp-form input,.esmp-form textarea{font-size:16px;letter-spacing:0}.esmp-form .esmp-slot{line-height:1.6}.esmp-form>button{width:100%;white-space:normal;line-height:1.5}.esmp-form a{text-decoration:underline}
@media(max-width:900px){.esmp-page .esmp-missions{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esmp-page .esmp-hero{min-height:740px}.esmp-page .esmp-hero h1{font-size:clamp(37px,9vw,54px)}.esmp-page .esmp-missions,.esmp-choice-grid{grid-template-columns:1fr}.esmp-practical{flex-direction:column;padding:28px 5vw}.esmp-page .esmp-hero-text{font-size:15px}.esmp-page .esmp-missions article{min-height:200px}.esmp-page .team-brand-line{white-space:normal;line-height:1.6}}

/* ---------- Pass Confiance (accueil, côté Summer) ---------- */
.portal-content-summer {
  height: auto;
  grid-template-rows: auto;
  gap: 14px;
}
.portal-content-summer h1 { margin: 6px 0 4px; }
.pass-confiance {
  margin-top: 18px;
  padding-top: 22px;
  border-top: 1px solid #ffffff40;
  display: grid;
  gap: 14px;
  max-width: 520px;
}
.portal-content .pass-kicker {
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.24em;
  color: #f3c77a;
}
.pass-copy {
  font-size: 15px;
  line-height: 1.5;
  color: #ffffffd9;
  max-width: 46ch;
}
.pass-copy strong { color: #fff; font-weight: 800; }
.pass-success { color: #fff; }
.pass-form { display: grid; gap: 12px; }
.pass-row {
  display: flex;
  border: 1px solid #ffffffb3;
  background: #00000040;
  backdrop-filter: blur(6px);
}
.pass-row input {
  flex: 1;
  min-width: 0;
  background: transparent;
  color: #fff;
  padding: 16px 18px;
  font-size: 14px;
  letter-spacing: 0.06em;
  outline: none;
}
.pass-row input::placeholder { color: #ffffff8c; letter-spacing: 0.16em; font-size: 11px; }
.pass-row input:focus-visible { box-shadow: inset 0 0 0 2px #f3c77a; }
.pass-row button {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 20px;
  background: #f3c77a;
  color: #24100b;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.25s;
}
.pass-row button:hover { background: #fff; }
.pass-row button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.pass-row button:disabled { opacity: 0.6; cursor: wait; }
.pass-row button b { font-size: 16px; }
.pass-check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  line-height: 1.45;
  color: #ffffffcc;
  cursor: pointer;
}
.pass-check input { margin-top: 2px; accent-color: #f3c77a; width: 15px; height: 15px; flex: none; }
.pass-error { font-size: 13px; color: #ffb4a2; }
.pass-trap, .pass-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.portal-content-summer > b { border-bottom-color: #f3c77a99; }
@media (max-width: 900px) {
  .portal { height: auto; min-height: 100svh; grid-template-rows: auto auto; }
  .portal-winter { min-height: 62svh; }
  .portal-summer { padding-top: 60px; }
  .portal-content-summer { height: auto; }
}
@media (max-width: 600px) {
  .portal-content .pass-kicker { font-size: 11px; }
  .pass-copy { font-size: 14px; }
  .pass-row { flex-direction: column; }
  .pass-row button { justify-content: center; padding: 15px 20px; }
}

/* Aftermovie : aperçu cliquable quand la vidéo YouTube ne peut pas être intégrée */
a.aftermovie-preview { display: block; position: relative; width: 100%; height: 100%; }
.history-stats sup { font-size: 0.42em; vertical-align: super; margin-left: 2px; }
.portal-content .pass-copy,
.portal-content .pass-error,
.portal-content .pass-check span {
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 400;
}
.portal-content .pass-copy { font-size: 15px; }
.portal-content .pass-error { font-size: 13px; font-weight: 600; }
.portal-content .pass-check span { font-size: 12px; }
.portal-content .pass-row button b {
  display: inline;
  border: 0;
  padding: 0;
  width: auto;
  font-size: 16px;
  letter-spacing: 0;
}
@media (max-width: 600px) { .portal-content .pass-copy { font-size: 14px; } }

/* =========================================================
   TYPOGRAPHIE : une seule famille, ronde et lisible (esprit sobre)
   ========================================================= */
:root {
  --font-sans: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --gold: #f3c77a;
  --night: #050d17;
  --night-2: #0a1726;
  --ice-line: #b9e4f233;
}
body { font-family: var(--font-sans); }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3 { text-wrap: balance; }
.winter-info strong, .countdown strong, .phase-price, .ticket-vip strong, .sticky-ticket span { font-variant-numeric: tabular-nums; }

/* =========================================================
   BILLETTERIE : phases, urgence, compte à rebours
   ========================================================= */
.ticket-cta { min-height: 0; }
.tickets-layout {
  position: relative;
  z-index: 2;
  width: min(1240px, 100%);
  margin: 0 auto;
  padding: 120px 6vw;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
  gap: 6vw;
  align-items: center;
  color: #fff;
}
.tickets-copy > span { font-size: 10px; font-weight: 800; letter-spacing: 0.22em; color: #a8d5e6; }
.tickets-copy h2 { margin: 22px 0 28px; font-size: clamp(48px, 6vw, 92px); line-height: 0.9; letter-spacing: -0.05em; }
.tickets-copy h2 i { color: #b7e2f2; }
.tickets-urgency { max-width: 44ch; font-size: 17px; line-height: 1.5; color: #d7e7ef; }
.tickets-urgency b { color: #fff; font-weight: 700; }
.tickets-countdown-label { margin-top: 42px; font-size: 10px; font-weight: 800; letter-spacing: 0.22em; color: #a8d5e6; font-stretch: 115%; }
.tickets-meta { margin-top: 18px; font-size: 11px; letter-spacing: 0.16em; color: #ffffffa6; font-stretch: 112%; }
.countdown { margin-top: 14px; display: grid; grid-template-columns: repeat(4, minmax(0, 92px)); gap: 10px; }
.countdown > div { padding: 16px 0 12px; display: grid; justify-items: center; gap: 6px; border: 1px solid #b9e4f259; background: #04101c80; backdrop-filter: blur(8px); }
.countdown strong { font-size: clamp(30px, 3.4vw, 44px); font-weight: 300; font-stretch: 110%; line-height: 1; letter-spacing: -0.02em; }
.countdown span { font-size: 9px; font-weight: 800; letter-spacing: 0.2em; color: #a8d5e6; }

.tickets-board { padding: 30px; background: #061421d9; border: 1px solid #b9e4f240; backdrop-filter: blur(14px); box-shadow: 0 40px 90px #0009; }
.tickets-phases { list-style: none; display: grid; }
.phase { display: grid; grid-template-columns: 1fr auto 86px; align-items: center; gap: 16px; padding: 15px 4px; border-bottom: 1px solid #ffffff1f; }
.phase-name { font-size: 14px; font-weight: 600; letter-spacing: 0.02em; display: grid; gap: 3px; }
.phase-name small { font-size: 11px; font-weight: 400; color: var(--gold); letter-spacing: 0.02em; }
.phase-price { font-size: 17px; font-weight: 500; font-stretch: 110%; }
.phase-status { justify-self: end; font-size: 9px; font-weight: 800; letter-spacing: 0.16em; font-stretch: 112%; }
.phase.is-sold-out { color: #ffffff59; }
.phase.is-sold-out .phase-price { text-decoration: line-through; text-decoration-thickness: 1px; }
.phase.is-sold-out .phase-status { color: #ff9f8f; }
.phase.is-current { margin: 6px -14px; padding: 18px 18px; border: 1px solid var(--gold); border-bottom-color: var(--gold); background: #f3c77a14; }
.phase.is-current .phase-price { font-size: 24px; font-weight: 600; color: #fff; }
.phase.is-current .phase-status { color: #06131f; background: var(--gold); padding: 6px 8px; }
.phase.is-upcoming { color: #ffffffb3; }
.phase.is-upcoming .phase-status { color: #a8d5e6; }
.ticket-buy {
  margin-top: 24px;
  padding: 20px 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #06131f;
  background: #dff5fc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  font-stretch: 112%;
  transition: background 0.25s, transform 0.25s;
}
.ticket-buy:hover { background: #fff; transform: translateY(-2px); }
.ticket-buy b { font-size: 18px; }
.ticket-vip { margin-top: 10px; padding: 16px 22px; display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: center; border: 1px solid #ffffff40; font-size: 12px; color: #d7e7ef; transition: border-color 0.25s; }
.ticket-vip:hover { border-color: #fff; }
.ticket-vip em { font-style: normal; font-weight: 800; letter-spacing: 0.18em; color: #fff; margin-right: 8px; font-stretch: 115%; }
.ticket-vip strong { font-size: 16px; font-weight: 600; color: #fff; }
.tickets-extra { margin-top: 20px; display: grid; gap: 8px; font-size: 12px; line-height: 1.5; color: #ffffffa6; }
.tickets-extra b { color: #fff; font-weight: 800; letter-spacing: 0.14em; margin-right: 8px; font-size: 10px; font-stretch: 115%; }
.tickets-extra a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ticket-buy:focus-visible, .ticket-vip:focus-visible, .sticky-ticket:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* Barre billetterie mobile */
.sticky-ticket { display: none; }
@media (max-width: 900px) {
  .tickets-layout { grid-template-columns: 1fr; padding: 90px 6vw; gap: 48px; }
  .sticky-ticket {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 120;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    color: #fff;
    background: #061421f2;
    backdrop-filter: blur(12px);
    border-top: 1px solid #b9e4f259;
  }
  .sticky-ticket span { display: grid; font-size: 18px; font-weight: 600; font-stretch: 110%; }
  .sticky-ticket small { font-size: 9px; font-weight: 800; letter-spacing: 0.18em; color: var(--gold); font-stretch: 112%; }
  .sticky-ticket b { padding: 13px 18px; color: #06131f; background: #dff5fc; font-size: 11px; font-weight: 800; letter-spacing: 0.16em; font-stretch: 112%; }
  .winter-site, .winter-section-placeholder { padding-bottom: 70px; }
}
@media (max-width: 600px) {
  .tickets-board { padding: 22px 18px; }
  .phase { grid-template-columns: 1fr auto; }
  .phase-status { grid-column: 1 / -1; justify-self: start; }
  .phase.is-current { margin: 6px -8px; padding: 16px 12px; }
  .countdown { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .ticket-vip { grid-template-columns: 1fr auto; }
  .ticket-vip b { display: none; }
}

/* =========================================================
   PAGE VIP
   ========================================================= */
.vip-hero h1 span { -webkit-text-stroke: 1.5px var(--gold); }
.vip-hero .winter-info strong { color: var(--gold); font-size: 22px; }
.vip-perks { padding: 130px 6vw; background: var(--silver); color: var(--navy); }
.vip-perks header { width: min(1120px, 100%); margin: 0 auto 60px; }
.vip-perks header span { font-size: 10px; font-weight: 800; letter-spacing: 0.22em; color: #4d86aa; font-stretch: 115%; }
.vip-perks h2 { margin-top: 18px; font-size: clamp(48px, 6vw, 92px); line-height: 0.9; letter-spacing: -0.05em; }
.vip-perks h2 i { color: #4d86aa; }
.vip-perks ol { list-style: none; width: min(1120px, 100%); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #071424; }
.vip-perks li { padding: 34px 34px 34px 0; display: grid; gap: 14px; align-content: start; }
.vip-perks li + li { padding-left: 34px; border-left: 1px solid #07142426; }
.vip-perks li b { font-size: 11px; font-weight: 800; color: #4d86aa; letter-spacing: 0.16em; }
.vip-perks li h3 { font-size: 20px; font-weight: 700; letter-spacing: 0.01em; font-stretch: 112%; }
.vip-perks li p { font-size: 15px; line-height: 1.6; color: #2b4256; }
.vip-note { width: min(1120px, 100%); margin: 50px auto 0; font-size: 13px; color: #4f6475; }
.vip-cta { padding: 110px 6vw; display: grid; justify-items: center; gap: 18px; text-align: center; color: #fff; background: radial-gradient(circle at 50% 0%, #23506c 0, transparent 60%), var(--navy); }
.vip-cta > p { font-size: 10px; font-weight: 800; letter-spacing: 0.22em; color: #a8d5e6; font-stretch: 115%; }
.vip-cta > a { margin-top: 26px; padding: 20px 26px; display: flex; gap: 30px; color: #06131f; background: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: 0.16em; font-stretch: 112%; }
@media (max-width: 900px) {
  .vip-perks ol { grid-template-columns: 1fr; }
  .vip-perks li, .vip-perks li + li { padding: 28px 0; border-left: 0; border-bottom: 1px solid #07142426; }
}
.vip-hero { position: relative; }
.vip-hero-img { position: absolute; right: 6vw; top: 55%; transform: translateY(-50%); width: min(34vw, 500px); aspect-ratio: 4 / 5; object-fit: cover; border: 1px solid #f3c77a66; box-shadow: 0 40px 90px #000a; z-index: 1; }
@media (max-width: 1000px) { .vip-hero-img { display: none; } }
@media (max-width: 600px) {
  .phase { grid-template-columns: 1fr auto; row-gap: 4px; }
  .phase-status { grid-column: 2; grid-row: 2; justify-self: end; font-size: 8px; }
  .phase.is-current .phase-status { padding: 4px 6px; }
}

/* =========================================================
   EN-TÊTE SOBRE (esprit Tomorrowland)
   ========================================================= */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: 76px;
  padding: 0 max(28px, env(safe-area-inset-right, 0px)) 0 max(28px, env(safe-area-inset-left, 0px));
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  color: #fff;
  background: linear-gradient(180deg, #050d17cc, #050d1799);
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}
.site-logo img { height: 46px; width: auto; display: block; }
.site-nav { display: flex; align-items: center; gap: 34px; font-size: 16px; font-weight: 500; }
.site-nav > a, .site-more summary { color: #ffffffe6; transition: color 0.2s; cursor: pointer; }
.site-nav > a:hover, .site-more summary:hover { color: #fff; }
.site-more { position: relative; }
.site-more summary { list-style: none; }
.site-more summary::-webkit-details-marker { display: none; }
.site-more summary::after { content: " ▾"; font-size: 11px; opacity: 0.7; }
.site-more-panel {
  position: absolute; top: calc(100% + 22px); right: -12px;
  min-width: 230px; padding: 10px;
  display: grid;
  background: #08131fee; border: 1px solid var(--ice-line); border-radius: 14px;
  box-shadow: 0 20px 50px #0008;
}
.site-more-panel a { padding: 11px 14px; border-radius: 8px; font-size: 15px; color: #ffffffd9; }
.site-more-panel a:hover { background: #ffffff12; color: #fff; }
.site-ticket { justify-self: end; }
.site-burger { display: none; }

/* Boutons « pilule » */
.pill {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 16px 32px;
  border: 1.5px solid #ffffffe6; border-radius: 999px;
  color: #fff;
  font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.pill span { font-size: 20px; line-height: 0; font-weight: 400; }
.pill:hover { background: #fff; color: var(--night); }
.pill-solid { padding: 11px 22px; background: #fff; color: var(--night); border-color: #fff; font-size: 12px; }
.pill-solid:hover { background: #dff5fc; border-color: #dff5fc; }
.pill:focus-visible, .site-nav a:focus-visible, .site-more summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

/* =========================================================
   ACCROCHE : image plein écran, texte centré
   ========================================================= */
.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: var(--night);
  text-align: center;
}
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, #050d1799 0%, #050d1740 35%, #050d1766 65%, #050d17 100%),
    linear-gradient(0deg, #0b2a4566, #0b2a4566);
}
.hero-inner { position: relative; z-index: 2; padding: 120px max(20px, env(safe-area-inset-left, 0px)) 80px; display: grid; justify-items: center; }
.hero h1 { font-size: clamp(48px, 7vw, 104px); font-weight: 700; line-height: 1; letter-spacing: -0.01em; text-shadow: 0 4px 30px #0007; }
.hero-sub { margin-top: 22px; font-size: clamp(16px, 1.6vw, 21px); font-weight: 500; color: #fffffff2; }
.hero-status { margin-top: 8px; font-size: clamp(14px, 1.3vw, 17px); color: #ffffffbf; }
.hero .pill { margin-top: 40px; }

@media (max-width: 1100px) {
  .site-nav { gap: 22px; font-size: 15px; }
}
@media (max-width: 1180px) {
  .site-header { height: 64px; grid-template-columns: 1fr auto; padding: 0 max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); }
  .site-logo img { height: 38px; }
  .site-nav, .site-ticket { display: none; }
  .site-burger { display: block; position: static; }
  .site-burger summary { list-style: none; cursor: pointer; padding: 9px 18px; border: 1px solid #ffffff80; border-radius: 999px; font-size: 14px; font-weight: 600; }
  .site-burger summary::-webkit-details-marker { display: none; }
  .site-burger[open] summary { background: #fff; color: var(--night); }
  .site-burger-panel {
    position: absolute; top: 64px; left: 0; right: 0;
    height: calc(100svh - 64px); overflow-y: auto;
    padding: 18px max(16px, env(safe-area-inset-left, 0px)) 100px;
    display: grid; align-content: start;
    background: var(--night);
  }
  .site-burger-panel a { padding: 18px 4px; border-bottom: 1px solid #ffffff1a; font-size: 22px; font-weight: 600; }
  .hero-inner { padding-top: 90px; }
  .hero .pill { padding: 15px 26px; }
}
.sticky-ticket b { border-radius: 999px; padding: 12px 20px; }

/* =========================================================
   WINTER — LANGAGE SOBRE (sections de l'accueil)
   Fond bleu nuit continu, titres en minuscules, cartes photo.
   ========================================================= */
:root {
  --w-bg: #050d17;
  --w-surface: #0a1724;
  --w-surface-2: #0f2031;
  --w-line: #ffffff1a;
  --w-muted: #9db1c2;
  --w-ice: #bfe6f5;
}
.w-page { background: var(--w-bg); color: #fff; }
.w-section { position: relative; padding: 110px 0; background: var(--w-bg); color: #fff; }
.w-wrap { width: min(1280px, 100%); margin: 0 auto; padding-left: max(28px, env(safe-area-inset-left, 0px)); padding-right: max(28px, env(safe-area-inset-right, 0px)); }
.w-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.w-head-copy { min-width: 0; }
.w-head h2 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; letter-spacing: -0.01em; }
.w-head p { margin-top: 10px; font-size: 18px; color: var(--w-muted); max-width: 60ch; }
.w-head-actions { display: flex; gap: 10px; flex: none; }
.w-arrow {
  width: 52px; height: 52px;
  display: grid; place-items: center;
  border: 1px solid #ffffff4d; border-radius: 50%;
  color: #fff; background: transparent; cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s, opacity 0.25s;
}
.w-arrow:hover:not(:disabled) { background: #fff; color: var(--w-bg); border-color: #fff; }
.w-arrow:disabled { opacity: 0.3; cursor: default; }
.w-arrow:focus-visible, .lu-card:focus-visible, .nw-card:focus-visible, .ex-card:focus-visible, .am-item:focus-visible, .fq button:focus-visible { outline: 2px solid var(--w-ice); outline-offset: 3px; }
.w-textlink { background: none; border: 0; color: var(--w-muted); font-size: 15px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.w-textlink:hover { color: #fff; }
.pill svg { flex: none; }

/* Fenêtres (bio artiste, article) */
.w-modal-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 4vh 4vw; background: #02070dd9; backdrop-filter: blur(10px); }
.w-modal { position: relative; width: min(1000px, 100%); max-height: 92svh; overflow: auto; background: var(--w-surface); border: 1px solid var(--w-line); border-radius: 18px; box-shadow: 0 40px 100px #000c; color: #fff; }
.w-modal-close { position: absolute; top: 14px; right: 14px; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #ffffff4d; background: #050d17b3; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.w-modal-close:hover { background: #fff; color: var(--w-bg); }

/* ---------- Line-up ---------- */
.lu { padding-bottom: 120px; }
.lu-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 300px); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0 max(28px, calc((100vw - 1280px) / 2 + 28px));
  scroll-padding: 0 max(28px, calc((100vw - 1280px) / 2 + 28px));
}
.lu-track::-webkit-scrollbar { display: none; }
.lu-card { position: relative; aspect-ratio: 3 / 4; border: 0; padding: 0; border-radius: 12px; overflow: hidden; background: var(--w-surface); color: #fff; text-align: left; cursor: pointer; scroll-snap-align: start; }
.lu-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.lu-card:hover img { transform: scale(1.04); }
.lu-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, #050d17e6 88%); }
.lu-copy { position: absolute; left: 22px; right: 22px; bottom: 22px; display: grid; gap: 6px; }
.lu-copy small { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; color: var(--w-ice); }
.lu-copy strong { font-size: 25px; font-weight: 700; line-height: 1.1; }
.lu-copy em { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-style: normal; font-size: 14px; color: #ffffffb3; transition: color 0.25s; }
.lu-card:hover .lu-copy em { color: #fff; }
.lu-modal { display: grid; grid-template-columns: 0.9fr 1.1fr; }
.lu-modal-image { min-height: 100%; }
.lu-modal-image img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 420px; }
.lu-modal-copy { padding: 52px 46px; display: grid; align-content: start; gap: 14px; }
.lu-modal-copy small { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; color: var(--w-ice); }
.lu-modal-copy h2 { font-size: clamp(32px, 3.4vw, 44px); font-weight: 700; line-height: 1.05; }
.lu-modal-date { color: var(--w-muted); font-size: 15px; }
.lu-modal-copy p:not(.lu-modal-date) { font-size: 16px; line-height: 1.7; color: #dbe6ee; }
.lu-modal-actions { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }

/* ---------- Billetterie ---------- */
.tk { overflow: hidden; }
.tk-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.45; }
.tk-shade { position: absolute; inset: 0; background: linear-gradient(90deg, var(--w-bg) 10%, #050d17cc 50%, #050d1799), linear-gradient(180deg, var(--w-bg), transparent 20%, transparent 80%, var(--w-bg)); }
.tk-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 72px; align-items: center; }
.tk-copy h2 { font-size: clamp(36px, 4.4vw, 60px); font-weight: 700; line-height: 1.05; letter-spacing: -0.01em; }
.tk-urgency { margin-top: 18px; max-width: 46ch; font-size: 18px; line-height: 1.55; color: var(--w-muted); }
.tk-urgency b { color: #fff; font-weight: 600; }
.tk-label { margin-top: 40px; font-size: 14px; color: var(--w-muted); }
.tk-meta { margin-top: 18px; font-size: 14px; color: #ffffff99; }
.w-page .countdown { margin-top: 12px; grid-template-columns: repeat(4, minmax(0, 96px)); gap: 10px; }
.w-page .countdown > div { border: 1px solid var(--w-line); border-radius: 12px; background: #0a1724b3; padding: 16px 0 12px; }
.w-page .countdown strong { font-size: clamp(30px, 3.2vw, 42px); font-weight: 300; font-stretch: normal; letter-spacing: 0; }
.w-page .countdown span { font-size: 10px; font-weight: 600; letter-spacing: 0.14em; color: var(--w-muted); }
.tk-board { padding: 28px; background: #0a1724e6; border: 1px solid var(--w-line); border-radius: 18px; backdrop-filter: blur(12px); }
.tk-phases { list-style: none; display: grid; }
.tk-phase { display: grid; grid-template-columns: 1fr auto 78px; align-items: center; gap: 14px; padding: 14px 6px; border-bottom: 1px solid var(--w-line); }
.tk-name { display: grid; gap: 3px; font-size: 15px; font-weight: 600; }
.tk-name small { font-size: 12px; font-weight: 400; color: var(--w-ice); }
.tk-price { font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; }
.tk-status { justify-self: end; font-size: 12px; font-weight: 600; }
.tk-phase.is-sold-out { color: #ffffff59; }
.tk-phase.is-sold-out .tk-price { text-decoration: line-through; text-decoration-thickness: 1px; }
.tk-phase.is-current { margin: 6px -10px; padding: 18px 16px; border: 1px solid var(--w-ice); border-radius: 12px; background: #bfe6f512; }
.tk-phase.is-current .tk-price { font-size: 24px; font-weight: 700; }
.tk-phase.is-current .tk-status { padding: 5px 10px; border-radius: 999px; background: var(--w-ice); color: var(--w-bg); }
.tk-phase.is-upcoming { color: #ffffffb3; }
.tk-phase.is-upcoming .tk-status { color: var(--w-muted); }
.tk-buy { margin-top: 22px; width: 100%; justify-content: center; padding: 17px 24px; font-size: 13px; }
.tk-vip { margin-top: 12px; padding: 15px 18px; display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; border: 1px solid var(--w-line); border-radius: 12px; color: var(--w-muted); font-size: 14px; transition: border-color 0.25s; }
.tk-vip:hover { border-color: #ffffff66; }
.tk-vip span b { display: block; color: #fff; font-weight: 600; font-size: 15px; }
.tk-vip strong { color: #fff; font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.tk-extra { margin-top: 18px; display: grid; gap: 6px; font-size: 14px; line-height: 1.5; color: var(--w-muted); }
.tk-extra b { color: #fff; font-weight: 600; margin-right: 6px; }
.tk-extra a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Aftermovies ---------- */
.am-player { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.am-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.am-poster { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: #000; cursor: pointer; }
.am-poster img { width: 100%; height: 100%; object-fit: cover; opacity: 0.85; transition: opacity 0.3s; }
.am-poster:hover img { opacity: 1; }
.am-play { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; transform: translate(-50%, -50%); border-radius: 50%; border: 1.5px solid #fff; background: #050d1766; backdrop-filter: blur(6px); transition: background 0.25s; }
.am-play::after { content: ""; position: absolute; left: 34px; top: 27px; border-left: 22px solid #fff; border-top: 15px solid transparent; border-bottom: 15px solid transparent; }
.am-poster:hover .am-play { background: #ffffff33; }
.am-list { margin-top: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.am-item { display: grid; gap: 10px; padding: 0; border: 0; background: none; color: var(--w-muted); text-align: left; cursor: pointer; font-size: 15px; }
.am-item img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; opacity: 0.55; transition: opacity 0.25s; outline: 1px solid transparent; }
.am-item:hover img { opacity: 0.85; }
.am-item.is-active { color: #fff; }
.am-item.is-active img { opacity: 1; outline: 1.5px solid var(--w-ice); outline-offset: 3px; }

/* ---------- Actualités ---------- */
.nw-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.nw-card { display: grid; grid-template-rows: auto 1fr; padding: 0; border: 1px solid var(--w-line); border-radius: 14px; overflow: hidden; background: var(--w-surface); color: #fff; text-align: left; cursor: pointer; transition: border-color 0.25s, transform 0.25s; }
.nw-card:hover { border-color: #ffffff40; transform: translateY(-3px); }
.nw-image { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.nw-image img { width: 100%; height: 100%; object-fit: cover; }
.nw-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, var(--w-surface)); }
.nw-copy { padding: 6px 24px 26px; display: grid; align-content: start; gap: 10px; }
.nw-copy small { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; color: var(--w-ice); }
.nw-copy strong { font-size: 21px; font-weight: 700; line-height: 1.25; }
.nw-copy > span { font-size: 15px; line-height: 1.55; color: var(--w-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nw-modal { width: min(820px, 100%); }
.nw-modal-visual img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; display: block; }
.nw-modal-body { padding: 36px 44px 46px; display: grid; gap: 16px; }
.nw-modal-body small { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; color: var(--w-ice); }
.nw-modal-body h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; }
.nw-modal-body h3 { font-size: 15px; font-weight: 600; color: var(--w-muted); margin-bottom: 4px; }
.nw-modal-body p { font-size: 16px; line-height: 1.7; color: #dbe6ee; }
.nw-modal-body .pill { justify-self: start; margin-top: 8px; }
.nw-archive { padding-top: 140px; }

/* ---------- Histoire ---------- */
.st { padding: 100px 0 90px; }
.st-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 60px; align-items: end; }
.st-copy h2 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; }
.st-copy p { margin-top: 14px; font-size: 17px; line-height: 1.65; color: var(--w-muted); max-width: 52ch; }
.st-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--w-line); }
.st-stats > div { padding: 4px 24px; display: flex; flex-direction: column-reverse; gap: 6px; border-right: 1px solid var(--w-line); }
.st-stats dd { font-size: clamp(36px, 4vw, 56px); font-weight: 300; line-height: 1; font-variant-numeric: tabular-nums; }
.st-stats dt { font-size: 13px; color: var(--w-muted); }
.st-marquee { margin-top: 60px; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.st-strip { display: flex; gap: 16px; width: max-content; animation: st-scroll 60s linear infinite; }
.st-strip img { height: 240px; width: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.st-marquee:hover .st-strip { animation-play-state: paused; }
@keyframes st-scroll { to { transform: translateX(calc(-50% - 8px)); } }
@media (prefers-reduced-motion: reduce) { .st-strip { animation: none; } .st-marquee { overflow-x: auto; } }

/* ---------- Electra Team ---------- */
.tm { padding-top: 40px; }
.tm-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.tm-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; display: block; }
.tm-copy { display: grid; gap: 16px; justify-items: start; }
.tm-copy small { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; color: var(--w-ice); text-transform: uppercase; }
.tm-copy h2 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; }
.tm-copy p { font-size: 17px; line-height: 1.65; color: var(--w-muted); max-width: 48ch; }
.tm-copy .pill { margin-top: 10px; }

/* ---------- À vivre aussi ---------- */
.ex { padding-top: 40px; }
.ex-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ex-card { display: grid; border: 1px solid var(--w-line); border-radius: 14px; overflow: hidden; background: var(--w-surface); transition: border-color 0.25s, transform 0.25s; }
.ex-card:hover { border-color: #ffffff40; transform: translateY(-3px); }
.ex-image { aspect-ratio: 16 / 10; overflow: hidden; }
.ex-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.ex-card:hover .ex-image img { transform: scale(1.04); }
.ex-copy { padding: 22px 24px 26px; display: grid; gap: 8px; }
.ex-copy strong { font-size: 21px; font-weight: 700; }
.ex-copy > span { font-size: 15px; line-height: 1.55; color: var(--w-muted); }
.ex-copy em { margin-top: 6px; display: inline-flex; align-items: center; gap: 4px; font-style: normal; font-size: 14px; font-weight: 600; }

/* ---------- FAQ ---------- */
.fq-section { border-top: 1px solid var(--w-line); }
.fq { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 60px; align-items: start; }
.fq-cats { display: grid; gap: 2px; position: sticky; top: 100px; }
.fq-cats button { padding: 11px 0; border: 0; background: none; color: var(--w-muted); font-size: 16px; font-weight: 500; text-align: left; cursor: pointer; transition: color 0.2s; }
.fq-cats button:hover { color: #fff; }
.fq-cats button.is-active { color: #fff; font-weight: 700; }
.fq-list { border-top: 1px solid var(--w-line); }
.fq-item { border-bottom: 1px solid var(--w-line); }
.fq-item > button { width: 100%; padding: 24px 0; display: flex; justify-content: space-between; align-items: center; gap: 24px; border: 0; background: none; color: #fff; font-size: 18px; font-weight: 500; text-align: left; cursor: pointer; }
.fq-item > button i { position: relative; flex: none; width: 18px; height: 18px; }
.fq-item > button i::before, .fq-item > button i::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: currentColor; transition: transform 0.3s; }
.fq-item > button i::after { transform: rotate(90deg); }
.fq-item.is-open > button i::after { transform: rotate(0deg); }
.fq-answer p { padding: 0 48px 26px 0; font-size: 16px; line-height: 1.7; color: var(--w-muted); max-width: 75ch; }

/* ---------- Contact ---------- */
.ct { border-top: 1px solid var(--w-line); }
.ct-layout { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 72px; align-items: start; }
.ct-copy h2 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; }
.ct-copy p { margin-top: 14px; font-size: 17px; line-height: 1.65; color: var(--w-muted); }
.ct .contact-form { display: grid; gap: 22px; }
.ct .contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ct .contact-fields label { display: grid; gap: 8px; }
.ct .contact-fields label span { font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--w-muted); text-transform: none; }
.ct .contact-email, .ct .contact-message { grid-column: 1 / -1; }
.ct input:not([type="checkbox"]), .ct textarea { width: 100%; padding: 14px 16px; border: 1px solid var(--w-line); border-radius: 10px; background: var(--w-surface); color: #fff; font-size: 16px; outline: none; transition: border-color 0.2s; }
.ct input:focus, .ct textarea:focus { border-color: var(--w-ice); }
.ct .contact-trap { position: absolute; left: -9999px; }
.ct .contact-consents { border: 0; display: grid; gap: 10px; }
.ct .contact-consents legend { margin-bottom: 8px; font-size: 13px; font-weight: 500; color: var(--w-muted); text-transform: none; letter-spacing: 0; }
.ct .contact-consents label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #dbe6ee; }
.ct .contact-consents input { margin-top: 3px; accent-color: var(--w-ice); }
.ct .contact-submit-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.ct .contact-submit-row p { font-size: 13px; color: #ffffff80; max-width: 46ch; }
.ct .contact-submit-row button { flex: none; display: inline-flex; gap: 12px; align-items: center; padding: 15px 28px; border: 0; border-radius: 999px; background: #fff; color: var(--w-bg); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; cursor: pointer; }
.ct .contact-submit-row button:hover { background: var(--w-ice); }
.ct .contact-feedback .success { color: var(--w-ice); }
.ct .contact-feedback .error { color: #ffb4a2; }

/* ---------- Pied de page ---------- */
.w-page .site-footer { background: var(--w-bg); border-top: 1px solid var(--w-line); }

/* ---------- Tablette / mobile ---------- */
@media (max-width: 1000px) {
  .tk-layout, .st-top, .tm-layout, .ct-layout { grid-template-columns: 1fr; gap: 44px; }
  .nw-grid, .ex-grid { grid-template-columns: 1fr 1fr; }
  .fq { grid-template-columns: 1fr; gap: 24px; }
  .fq-cats { position: static; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
  .fq-cats button { flex: none; padding: 9px 16px; border: 1px solid var(--w-line); border-radius: 999px; font-size: 14px; white-space: nowrap; }
  .fq-cats button.is-active { background: #fff; color: var(--w-bg); border-color: #fff; }
}
@media (max-width: 700px) {
  .w-section { padding: 72px 0; }
  .w-wrap { padding-left: max(18px, env(safe-area-inset-left, 0px)); padding-right: max(18px, env(safe-area-inset-right, 0px)); }
  .w-head { margin-bottom: 28px; }
  .w-head p { font-size: 16px; }
  .w-arrow { width: 44px; height: 44px; }
  .lu-track { grid-auto-columns: 74vw; gap: 14px; padding: 0 18px; scroll-padding: 0 18px; }
  .lu-modal { grid-template-columns: 1fr; }
  .lu-modal-image img { min-height: 0; aspect-ratio: 4 / 3; }
  .lu-modal-copy { padding: 28px 22px 34px; }
  .w-modal-backdrop { padding: 0; }
  .w-modal { max-height: 100svh; height: 100svh; border-radius: 0; }
  .nw-grid, .ex-grid, .am-list { grid-template-columns: 1fr; }
  .am-list { grid-auto-flow: column; grid-auto-columns: 62vw; grid-template-columns: none; overflow-x: auto; }
  .nw-modal-body { padding: 26px 22px 40px; }
  .tk-board { padding: 20px 16px; }
  .tk-phase { grid-template-columns: 1fr auto; row-gap: 4px; }
  .tk-status { grid-column: 2; }
  .w-page .countdown { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .st-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .st-stats > div { padding: 4px 12px; }
  .st-strip img { height: 170px; }
  .ct .contact-fields { grid-template-columns: 1fr; }
  .ct .contact-submit-row { flex-direction: column; align-items: stretch; }
  .ct .contact-submit-row button { justify-content: center; }
  .w-head-actions .pill { display: none; }
}
.nw-more { display: none; }
@media (max-width: 700px) { .nw-more { display: inline-flex; margin-top: 26px; } }

/* ---------- Espacements resserrés entre rubriques ---------- */
.w-section { padding: 64px 0; }
.lu { padding-bottom: 56px; }
.tk { padding: 72px 0; }
.st { padding: 64px 0 56px; }
.tm, .ex { padding-top: 24px; }
.w-head { margin-bottom: 28px; }
.st-marquee { margin-top: 40px; }
@media (max-width: 700px) {
  .w-section { padding: 48px 0; }
  .tk { padding: 56px 0; }
  .lu { padding-bottom: 40px; }
  .tm, .ex { padding-top: 16px; }
}

/* ---------- Apparition au défilement ---------- */
.rv { opacity: 0; transform: translateY(28px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); transition-delay: var(--rv-delay, 0ms); }
.rv.rv-in { opacity: 1; transform: none; }
.lu-card.rv, .nw-card.rv, .ex-card.rv { transition: opacity 0.8s ease var(--rv-delay, 0ms), transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--rv-delay, 0ms), border-color 0.25s; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; transition: none; } }
@media (max-width: 1250px) { .site-nav { gap: 24px; font-size: 15px; } }
@media (max-width: 1080px) { .site-nav { gap: 16px; font-size: 14px; } }
.nw-card.rv-in:hover, .ex-card.rv-in:hover { transform: translateY(-3px); }

/* ---------- Ajustements v6 ---------- */
.hero h1 { font-size: clamp(40px, 5.4vw, 82px); line-height: 1.04; max-width: 15ch; }
.hero h1 span { font-weight: 400; }
.am-box { width: min(880px, 100%); margin: 0 auto; }
.am-list { margin-top: 12px; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.am-item { position: relative; display: block; }
.am-item img { opacity: 0.7; border-radius: 8px; }
.am-item:hover img { opacity: 1; }
.am-mini-play { position: absolute; left: 50%; top: 50%; width: 28px; height: 28px; transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid #ffffffcc; background: #050d1766; }
.am-mini-play::after { content: ""; position: absolute; left: 10px; top: 7px; border-left: 9px solid #fff; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.nw-image img, .nw-modal-visual img { object-position: 50% 18%; }
@media (max-width: 700px) {
  .am-list { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; gap: 8px; }
}

/* ---------- Vidéos : une à gauche, vignettes à droite (v7) ---------- */
.am-box { width: 100%; display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
.am-list { margin-top: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 12px; }
.am-item { height: 100%; min-height: 0; }
.am-item img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 10px; }
@media (max-width: 900px) {
  .am-box { grid-template-columns: 1fr; }
  .am-list { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; }
  .am-item img { aspect-ratio: 16 / 9; height: auto; }
}
/* Vignettes vidéo : l'image remplit sa case sans déborder (correctif v8) */
.am-item { position: relative; overflow: hidden; border-radius: 10px; padding: 0; display: block; height: auto; min-height: 0; }
.am-item img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 0; outline: 0; }
.am-list { align-self: stretch; }
@media (max-width: 900px) {
  .am-item { aspect-ratio: 16 / 9; }
  .am-item img { aspect-ratio: auto; height: 100%; }
}
/* Vidéos v9 : construction robuste (Safari). La hauteur vient des vignettes 16:9,
   la grande vidéo s'aligne dessus, sans calcul circulaire. */
.am-box { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
.am-player { aspect-ratio: auto; height: auto; min-height: 260px; align-self: stretch; }
.am-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; gap: 12px; align-self: start; margin-top: 0; }
.am-item { display: block; position: static; overflow: visible; height: auto; padding: 0; border: 0; border-radius: 10px; background: none; cursor: pointer; }
.am-thumb { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: var(--w-surface); }
.am-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; opacity: 0.75; transition: opacity 0.25s; }
.am-item:hover .am-thumb img { opacity: 1; }
@media (max-width: 900px) {
  .am-box { grid-template-columns: 1fr; }
  .am-player { aspect-ratio: 16 / 9; min-height: 0; }
  .am-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .am-item { aspect-ratio: auto; }
}

/* ---------- Page Actualités ---------- */
.hero-page { min-height: 62svh; }
.hero-page h1 { font-size: clamp(44px, 6vw, 88px); }
.nw-archive { padding-top: 56px; }
.nw-article { display: grid; gap: 14px; }
.nw-article h3 { margin-top: 14px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--w-ice); }
.nw-article p { font-size: 16px; line-height: 1.75; color: #dbe6ee; }
.nw-article ul { display: grid; gap: 6px; padding-left: 20px; color: #dbe6ee; font-size: 16px; line-height: 1.6; }
.nw-article blockquote { margin: 6px 0 0; padding: 4px 0 4px 20px; border-left: 2px solid var(--w-ice); font-size: 17px; line-height: 1.7; font-style: italic; color: #fff; }
.nw-quote-author { margin-top: -6px; font-size: 14px !important; color: var(--w-muted) !important; }
.nw-modal-body .pill { margin-top: 18px; }
.nw-article ul { list-style: disc; } .nw-article li::marker { color: var(--w-ice); }

/* =========================================================
   PAGE ELECTRA TEAM — charte site + charte Electra Team
   (vert Cap Émeraude #1B9875, blanc cassé #F5F4E9, étiquette inclinée)
   ========================================================= */
:root { --et-green: #1b9875; --et-green-deep: #137a5d; --et-cream: #f5f4e9; }
.et-page { background: var(--w-bg); }
.et-by { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: var(--et-cream); }
.et-by img { height: 44px; width: auto; }
.et-tag {
  display: inline-block;
  padding: 0.02em 0.32em 0.08em;
  background: var(--et-cream);
  color: var(--et-green);
  border-radius: 0.14em;
  transform: rotate(-3deg);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1;
  box-shadow: 0 10px 30px #0004;
}
.et-tag-small { font-size: 0.78em; }
.et-hero h1 { text-transform: none; }
.et-hero .hero-shade { background: linear-gradient(180deg, #050d17aa 0%, #0b2a3a66 45%, #050d17 100%); }
.et-pill { background: var(--et-green); border-color: var(--et-green); }
.et-pill:hover { background: var(--et-cream); border-color: var(--et-cream); color: var(--et-green); }

/* Bande verte « Vos avantages » */
.et-band { background: var(--et-green); color: var(--et-cream); overflow: hidden; }
.et-band-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 40px; align-items: end; padding-top: 64px; }
.et-band h2 { font-size: clamp(32px, 3.8vw, 52px); font-weight: 800; line-height: 1.1; text-transform: uppercase; }
.et-band h2 .et-tag { margin-left: 0.15em; }
.et-perks { list-style: none; margin-top: 34px; display: grid; gap: 16px; }
.et-perks li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; align-items: center; font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.01em; }
.et-perks b { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; background: var(--et-cream); color: var(--et-green); font-size: 18px; }
.et-band-note { margin: 30px 0 64px; display: inline-block; padding: 8px 14px; border-radius: 6px; background: #0000001f; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.et-mega { width: 100%; max-width: 380px; justify-self: end; display: block; }

/* Missions */
.et-mission-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.et-mission-cards article { padding: 26px 24px; border: 1px solid var(--w-line); border-radius: 14px; background: var(--w-surface); display: grid; gap: 8px; align-content: start; }
.et-mission-cards h3 { justify-self: start; padding: 4px 12px; border-radius: 6px; background: var(--et-cream); color: var(--et-green); font-size: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
.et-mission-cards p { margin-top: 6px; font-size: 16px; color: #dbe6ee; }
.et-mission-cards span { font-size: 22px; font-weight: 300; font-variant-numeric: tabular-nums; }

/* Challenge */
.et-challenge { padding-top: 24px; }
.et-challenge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.et-card { padding: 28px 26px; border-radius: 16px; background: var(--w-surface); border: 1px solid var(--w-line); }
.et-card h3 { font-size: 20px; font-weight: 700; }
.et-card-note { margin-top: 6px; font-size: 14px; color: var(--w-muted); }
.et-tiers, .et-rules, .et-weeks { list-style: none; margin-top: 20px; display: grid; gap: 14px; }
.et-tiers li { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; }
.et-tiers b { height: 58px; display: grid; place-items: center; align-content: center; border-radius: 10px; background: var(--et-cream); color: var(--et-green); font-size: 22px; font-weight: 800; line-height: 1; }
.et-tiers b small { font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; margin-top: 3px; }
.et-tiers span { display: grid; gap: 3px; font-size: 13px; line-height: 1.45; color: var(--w-muted); }
.et-tiers strong { font-size: 15px; color: #fff; font-weight: 600; }
.et-weeks li { display: grid; gap: 3px; padding-bottom: 12px; border-bottom: 1px solid var(--w-line); }
.et-weeks li:last-child { border-bottom: 0; }
.et-weeks small { justify-self: start; padding: 2px 8px; border-radius: 4px; background: var(--et-green); color: var(--et-cream); font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.et-weeks span { font-size: 15px; font-weight: 600; }
.et-rules li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; font-size: 14px; line-height: 1.5; color: #dbe6ee; }
.et-rules b { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 6px; background: var(--et-green); color: var(--et-cream); font-size: 13px; }

/* Photos défilantes */
.et-photos { overflow: hidden; padding: 8px 0 24px; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.et-photos .st-strip img { height: 220px; }

/* Partenaire */
.et-partner { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 56px; align-items: center; }
.et-partner > img { width: 220px; height: 220px; object-fit: cover; border-radius: 18px; }
.et-partner small { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--et-green); filter: brightness(1.4); }
.et-partner h2 { margin-top: 6px; font-size: clamp(30px, 3.4vw, 44px); font-weight: 700; }
.et-partner p { margin-top: 12px; max-width: 70ch; font-size: 16px; line-height: 1.7; color: var(--w-muted); }
.et-partner .pill { margin-top: 22px; text-transform: none; letter-spacing: 0.02em; }

/* Candidature */
.et-apply { border-top: 1px solid var(--w-line); }
.et-apply-layout { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 64px; align-items: start; }
.et-apply-copy { position: sticky; top: 110px; }
.et-apply-copy h2 { font-size: clamp(30px, 3.4vw, 46px); font-weight: 800; line-height: 1.15; text-transform: uppercase; }
.et-apply-copy p { margin-top: 18px; font-size: 16px; line-height: 1.7; color: var(--w-muted); }
.et-apply-meta { font-size: 14px !important; color: #fff !important; }
.et-form { display: grid; gap: 26px; padding: 34px; border-radius: 18px; background: var(--w-surface); border: 1px solid var(--w-line); }
.et-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.et-span { grid-column: 1 / -1; }
.et-form label, .et-form legend { display: grid; gap: 8px; font-size: 13px; font-weight: 600; color: var(--w-muted); }
.et-form small { font-size: 12px; font-weight: 400; color: #ffffff80; }
.et-form input:not([type="radio"]):not([type="checkbox"]), .et-form select, .et-form textarea { width: 100%; padding: 13px 15px; border: 1px solid var(--w-line); border-radius: 10px; background: var(--w-bg); color: #fff; font-size: 16px; outline: none; color-scheme: dark; }
.et-form input:focus, .et-form select:focus, .et-form textarea:focus { border-color: var(--et-green); box-shadow: 0 0 0 3px #1b987540; }
.et-form fieldset { border: 0; display: grid; gap: 12px; }
.et-mission-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.et-mission { position: relative; display: grid !important; gap: 4px !important; padding: 14px; border: 1px solid var(--w-line); border-radius: 12px; cursor: pointer; transition: border-color 0.2s, background 0.2s; }
.et-mission input { position: absolute; opacity: 0; pointer-events: none; }
.et-mission b { font-size: 15px; color: #fff; }
.et-mission span { font-size: 12px; font-weight: 400; }
.et-mission em { font-style: normal; font-size: 12px; color: var(--et-cream); }
.et-mission.is-on { border-color: var(--et-green); background: #1b987526; }
.et-mission:has(input:focus-visible) { outline: 2px solid var(--et-green); outline-offset: 2px; }
.et-slots, .et-inline { display: flex !important; flex-wrap: wrap; gap: 8px; align-items: center; }
.et-inline legend { width: 100%; margin-bottom: 4px; }
.et-chip { display: inline-flex !important; cursor: pointer; }
.et-chip input { position: absolute; opacity: 0; }
.et-chip span { padding: 9px 16px; border: 1px solid var(--w-line); border-radius: 999px; font-size: 14px; color: #fff; }
.et-chip input:checked + span { background: var(--et-green); border-color: var(--et-green); }
.et-chip input:focus-visible + span { outline: 2px solid var(--et-green); outline-offset: 2px; }
.et-consent { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: 13px !important; line-height: 1.5; }
.et-consent input { margin-top: 3px; accent-color: var(--et-green); }
.et-consent a { color: #fff; text-decoration: underline; }
.et-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.et-submit button { display: inline-flex; align-items: center; gap: 10px; padding: 16px 30px; border: 0; border-radius: 999px; background: var(--et-green); color: var(--et-cream); font-size: 13px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; transition: background 0.2s, color 0.2s; }
.et-submit button:hover { background: var(--et-cream); color: var(--et-green); }
.et-submit button:disabled { opacity: 0.6; cursor: wait; }
.et-error { color: #ffb4a2; font-size: 14px; }
.et-success { background: var(--et-green); border-color: var(--et-green); color: var(--et-cream); }
.et-success h3 { font-size: 26px; font-weight: 800; text-transform: uppercase; }
.et-success p { font-size: 16px; line-height: 1.7; }

@media (max-width: 1000px) {
  .et-band-layout, .et-apply-layout, .et-partner { grid-template-columns: 1fr; }
  .et-mega { justify-self: center; max-width: 260px; margin-top: -10px; }
  .et-band-note { margin-bottom: 0; }
  .et-mission-cards { grid-template-columns: 1fr 1fr; }
  .et-challenge-grid { grid-template-columns: 1fr; }
  .et-apply-copy { position: static; }
  .et-partner > img { width: 140px; height: 140px; }
}
@media (max-width: 700px) {
  .et-perks li { font-size: 15px; }
  .et-mission-cards { grid-template-columns: 1fr; }
  .et-grid, .et-mission-grid { grid-template-columns: 1fr 1fr; }
  .et-grid > label { grid-column: 1 / -1; }
  .et-form { padding: 22px 16px; }
  .et-photos .st-strip img { height: 150px; }
}
.et-form input.pass-trap { position: absolute; width: 1px !important; height: 1px; padding: 0; border: 0; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }

/* Electra Team v2 : illustration plein bord, champs alignés, choix multiples */
.et-band { position: relative; }
.et-band-layout { grid-template-columns: minmax(0, 1fr); padding-bottom: 0; }
.et-band-layout > div { max-width: 640px; position: relative; z-index: 1; }
.et-mega { position: absolute; right: 0; bottom: 0; width: auto; height: 92%; max-width: none; max-height: 460px; }
.et-band-note { margin-bottom: 64px; }
.et-form input:not([type="radio"]):not([type="checkbox"]):not(.pass-trap), .et-form select { height: 52px; line-height: 1.2; -webkit-appearance: none; appearance: none; }
.et-form input[type="date"] { display: block; min-width: 0; }
.et-form select { background-image: linear-gradient(45deg, transparent 50%, #9db1c2 50%), linear-gradient(135deg, #9db1c2 50%, transparent 50%); background-position: calc(100% - 20px) 22px, calc(100% - 15px) 22px; background-size: 5px 5px; background-repeat: no-repeat; }
.et-grid { align-items: start; }
.et-mission { padding-right: 36px; }
.et-check { position: absolute; top: 12px; right: 12px; width: 18px; height: 18px; border: 1.5px solid #ffffff59; border-radius: 5px; }
.et-mission.is-on .et-check { background: var(--et-green); border-color: var(--et-green); }
.et-mission.is-on .et-check::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid var(--et-cream); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.et-missions legend small { margin-left: 6px; }
.et-slots-label { font-size: 13px; color: var(--w-muted); margin-right: 4px; }
@media (max-width: 1000px) {
  .et-band-layout { padding-bottom: 0; }
  .et-band-note { margin-bottom: 20px; }
  .et-mega { position: static; display: block; height: auto; width: 70%; max-width: 300px; margin-left: auto; margin-right: calc(-1 * max(18px, env(safe-area-inset-right, 0px))); }
}
.et-missions legend small { display: block; margin: 2px 0 0 0; }

/* ===== DJ Contest by Ixina : charte du site + charte Ixina (bleu Ixina, cartouches jaunes, filets cyan) ===== */
.dj-page { --dj-blue: #2f80ed; --dj-navy: #0c2f63; --dj-yellow: #f5c22b; --dj-cyan: #5cd3e3; background: var(--w-bg); }
.dj-hero { padding-top: 76px; background: #0a1430; border-bottom: 1px solid #5cd3e355; }
.dj-hero img { display: block; width: 100%; height: auto; max-height: 70svh; object-fit: cover; object-position: 30% 50%; }
.dj-intro { padding-top: 80px; padding-bottom: 70px; }
.dj-intro-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr); gap: 64px; align-items: start; }
.dj-intro h1 { font-size: clamp(34px, 4vw, 56px); font-weight: 700; line-height: 1.06; letter-spacing: -0.01em; max-width: 18ch; }
.dj-intro h1 + p { margin-top: 26px; }
.dj-intro-layout > div > p { font-size: 18px; line-height: 1.6; color: var(--w-muted); max-width: 62ch; }
.dj-intro-layout > div > p + p { margin-top: 14px; }
.dj-status { padding: 30px; border: 1px solid #5cd3e366; border-radius: 18px; background: linear-gradient(160deg, #0c2f6340, #0a1724); }
.dj-closed { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--w-muted); }
.dj-status .dj-tag { display: inline-block; margin-top: 16px; padding: 6px 12px; background: var(--dj-yellow); color: #0a1430; font-weight: 800; font-size: 15px; letter-spacing: 0.04em; text-transform: uppercase; }
.dj-status-line { margin-top: 16px; font-size: 17px; color: #fff; line-height: 1.55; }

.dj-final { padding-top: 70px; }
.dj-finalists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.dj-finalist { border: 1px solid var(--w-line); border-radius: 18px; overflow: hidden; background: var(--w-surface); transition: border-color .3s; }
.dj-finalist:hover { border-color: #5cd3e399; }
.dj-photo { position: relative; aspect-ratio: 852 / 512; border-bottom: 1px solid var(--dj-cyan); }
.dj-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dj-badge { position: absolute; left: 18px; top: 18px; padding: 5px 11px; background: var(--dj-yellow); color: #0a1430; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.dj-finalist-copy { padding: 26px 28px 28px; }
.dj-finalist h3 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 700; line-height: 1.1; }
.dj-finalist-copy > p:not(.dj-vote-soon) { margin-top: 6px; color: var(--dj-cyan); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.dj-vote { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.dj-vote .pill { padding: 12px 22px; font-size: 12px; }
.dj-vote-soon { margin-top: 20px; color: var(--w-muted); font-size: 15px; }
.dj-credit { display: block; margin-top: 18px; font-size: 12px; color: #9db1c299; }
.dj-finalist.is-winner { border-color: var(--dj-yellow); }
.dj-finalist.is-out { opacity: .55; }

.dj-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dj-points li { display: flex; gap: 20px; align-items: center; padding: 24px; border: 1px solid #5cd3e355; border-radius: 14px; background: #0a1724; }
.dj-points b { display: grid; justify-items: center; min-width: 64px; padding-right: 20px; border-right: 1px solid #5cd3e366; color: var(--dj-blue); font-size: 46px; font-weight: 800; line-height: 1; }
.dj-points b small { margin-top: 4px; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--w-muted); }
.dj-points h3 { font-size: 19px; font-weight: 700; }
.dj-points p { margin-top: 4px; font-size: 15px; line-height: 1.5; color: var(--w-muted); }
.dj-notes { margin-top: 26px; display: grid; gap: 10px; }
.dj-notes li { position: relative; padding-left: 22px; color: var(--w-muted); font-size: 16px; line-height: 1.5; }
.dj-notes li::before { content: ""; position: absolute; left: 0; top: .62em; width: 10px; height: 2px; background: var(--dj-cyan); }

.dj-timeline { overflow: hidden; }
.dj-timeline-bg { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 70%; object-fit: cover; object-position: 50% 40%; opacity: .5; }
.dj-timeline::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, var(--w-bg), #050d17aa 30%, #050d17cc 80%, var(--w-bg)); }
.dj-timeline .w-wrap { position: relative; z-index: 2; }
.dj-steps { display: grid; gap: 14px; max-width: 900px; }
.dj-step { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 22px 26px; border: 1px solid #5cd3e355; background: #050d17cc; }
.dj-step > b { padding-right: 24px; border-right: 1px solid #5cd3e366; color: var(--dj-blue); font-size: 44px; font-weight: 800; line-height: 1; }
.dj-step h3 { font-size: 19px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.dj-date { display: inline-block; margin-top: 6px; padding: 3px 9px; background: var(--dj-yellow); color: #0a1430; font-size: 13px; font-weight: 800; text-transform: uppercase; }
.dj-step p:not(.dj-date) { margin-top: 8px; font-size: 15px; line-height: 1.5; color: var(--w-muted); }
.dj-step-state { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--w-muted); }
.dj-step.is-done { opacity: .6; }
.dj-step.is-done .dj-date { background: #ffffff26; color: #fff; }
.dj-step.is-current { border-color: var(--dj-cyan); box-shadow: 0 0 0 1px var(--dj-cyan), 0 20px 50px #0008; }
.dj-step.is-current .dj-step-state { padding: 5px 10px; border-radius: 999px; background: var(--dj-cyan); color: #050d17; }

.dj-prize-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, 1fr); gap: 64px; align-items: start; }
.dj-prize h2 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; }
.dj-prize ul { margin-top: 28px; border-top: 1px solid var(--w-line); }
.dj-prize li { padding: 18px 0 18px 34px; border-bottom: 1px solid var(--w-line); font-size: 18px; position: relative; }
.dj-prize li::before { content: ""; position: absolute; left: 0; top: 50%; width: 16px; height: 2px; background: var(--dj-yellow); }
.dj-rules-link { display: inline-flex; gap: 10px; align-items: center; margin-top: 24px; color: var(--w-ice); font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
.dj-partner { padding: 32px; border: 1px solid var(--w-line); border-radius: 18px; background: var(--w-surface); }
.dj-partner small { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--w-muted); }
.dj-partner img { display: block; margin-top: 14px; height: 64px; width: auto; border-radius: 4px; }
.dj-partner p { margin: 18px 0 22px; color: var(--w-muted); font-size: 16px; line-height: 1.55; }

.dj-cta { text-align: center; border-top: 1px solid var(--w-line); padding: 90px 0; }
.dj-cta h2 { font-size: clamp(30px, 3.4vw, 44px); font-weight: 700; }
.dj-cta p { margin: 12px 0 28px; color: var(--w-muted); font-size: 17px; }

@media (max-width: 900px) {
  .dj-hero { padding-top: 64px; }
  .dj-intro-layout, .dj-prize-layout { grid-template-columns: 1fr; gap: 36px; }
  .dj-finalists, .dj-points { grid-template-columns: 1fr; }
  .dj-step { grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 18px; }
  .dj-step > b { font-size: 34px; padding-right: 16px; }
  .dj-step-state { grid-column: 2; justify-self: start; }
  .dj-finalist-copy { padding: 22px; }
}

/* ===== Le VIP by Les Maisons Raschitelli : charte noir / or, faisceaux, cadre filaire ===== */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.vp-page { --vp-gold: #d99a2b; --vp-gold-soft: #e8b55a; --vp-black: #0b0b0d; --vp-surface: #141416; --vp-line: #d99a2b55; background: var(--vp-black); color: #fff; }
.vp-page .site-header { background: linear-gradient(180deg, #0b0b0dcc, #0b0b0d99); }
.vp-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--vp-gold); }
.vp-btn { display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; border: 1px solid var(--vp-gold); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; transition: background .25s, color .25s; }
.vp-btn:hover { background: #d99a2b22; }
.vp-btn-gold { background: var(--vp-gold); color: #0b0b0d; }
.vp-btn-gold:hover { background: var(--vp-gold-soft); color: #0b0b0d; }
.vp-btn:focus-visible { outline: 2px solid var(--vp-gold-soft); outline-offset: 4px; }

.vp-hero { position: relative; min-height: 100svh; display: grid; place-items: center; overflow: hidden; padding: 120px 24px 80px; background: #050505; }
.vp-hero-bg, .vp-hero-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vp-hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 45%, #0b0b0d99 0%, #0b0b0d33 55%, transparent 75%), linear-gradient(180deg, transparent 70%, var(--vp-black)); }
.vp-hero-frame { position: absolute; z-index: 1; inset: 110px max(5vw, 24px) 48px; border: 1px solid var(--vp-gold); border-top-color: transparent; pointer-events: none; }
.vp-hero-frame::before, .vp-hero-frame::after { content: ""; position: absolute; top: -1px; height: 1px; width: calc(50% - 140px); background: var(--vp-gold); }
.vp-hero-frame::before { left: 0; } .vp-hero-frame::after { right: 0; }
.vp-hero-inner { position: relative; z-index: 2; display: grid; justify-items: center; text-align: center; gap: 22px; max-width: 900px; }
.vp-lockup { width: min(560px, 78vw); height: auto; animation: vp-in 1.2s ease both; }
.vp-badge { width: min(300px, 62vw); height: auto; border: 1px solid var(--vp-gold); animation: vp-in 1.2s .25s ease both; }
.vp-hero-tag { margin-top: 6px; padding: 8px 16px; border: 1px solid var(--vp-line); font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--vp-gold-soft); background: #0b0b0d99; }
.vp-hero-sub { font-size: 16px; color: #ffffffcc; letter-spacing: .02em; }
.vp-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 8px; }
@keyframes vp-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.vp-section { position: relative; padding: 110px 0; background: var(--vp-black); }
.vp-intro { padding: 90px 0 30px; text-align: center; }
.vp-intro-inner { max-width: 820px; }
.vp-intro h2 { margin-top: 16px; font-size: clamp(34px, 4.4vw, 60px); font-weight: 300; letter-spacing: .02em; line-height: 1.08; }
.vp-intro p:last-child { margin: 22px auto 0; font-size: 18px; line-height: 1.7; color: #ffffffb3; max-width: 62ch; }

.vp-head { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 56px; }
.vp-head h2 { font-size: clamp(22px, 2.4vw, 30px); font-weight: 600; letter-spacing: .3em; text-transform: uppercase; white-space: nowrap; }
.vp-rule { flex: 1; max-width: 220px; height: 1px; background: var(--vp-gold); }
.vp-perks { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.vp-perk { grid-column: span 3; position: relative; padding: 0 26px 30px; border: 1px solid var(--vp-line); background: linear-gradient(180deg, #17171a, #0f0f11); text-align: center; transition: border-color .3s, transform .3s; }
.vp-perk:nth-child(n+5) { grid-column: span 4; }
.vp-perk:hover { border-color: var(--vp-gold); transform: translateY(-4px); }
.vp-perk-visual { height: 170px; display: grid; place-items: center; margin: 0 -26px 10px; background: radial-gradient(ellipse at 50% 70%, #d99a2b26, transparent 65%); }
.vp-perk-visual img { max-width: 78%; max-height: 140px; object-fit: contain; filter: drop-shadow(0 10px 24px #d99a2b33); }
.vp-perk-visual svg { width: 84px; height: 84px; fill: none; stroke: var(--vp-gold); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.vp-perk small { display: block; font-size: 12px; letter-spacing: .24em; color: var(--vp-gold); }
.vp-perk h3 { margin-top: 10px; font-size: 18px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.3; }
.vp-perk p { margin-top: 12px; font-size: 15px; line-height: 1.6; color: #ffffffa6; }

.vp-ticket { overflow: hidden; padding: 130px 0; }
.vp-ticket-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.vp-ticket::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, var(--vp-black), transparent 25%, transparent 75%, var(--vp-black)); }
.vp-ticket .w-wrap { position: relative; z-index: 2; display: grid; place-items: center; }
.vp-ticket-card { width: min(560px, 100%); padding: 48px 40px; text-align: center; border: 1px solid var(--vp-gold); background: #0b0b0dd9; backdrop-filter: blur(10px); }
.vp-ticket-card h2 { margin: 18px 0 10px; font-size: clamp(54px, 7vw, 84px); font-weight: 300; letter-spacing: .02em; color: var(--vp-gold-soft); line-height: 1; }
.vp-ticket-note { margin: 0 auto 28px; max-width: 40ch; font-size: 16px; line-height: 1.6; color: #ffffffcc; }
.vp-ticket-meta { margin-top: 22px; font-size: 13px; color: #ffffff99; }

.vp-business { border-top: 1px solid #ffffff12; }
.vp-business-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 72px; align-items: start; }
.vp-business h2 { margin-top: 16px; font-size: clamp(32px, 3.6vw, 48px); font-weight: 300; line-height: 1.1; }
.vp-business-copy > p:not(.vp-eyebrow) { margin-top: 20px; font-size: 17px; line-height: 1.65; color: #ffffffb3; }
.vp-business ul { margin-top: 22px; border-top: 1px solid #ffffff14; }
.vp-business li { position: relative; padding: 15px 0 15px 30px; border-bottom: 1px solid #ffffff14; font-size: 16px; line-height: 1.5; }
.vp-business li::before { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 1px; background: var(--vp-gold); }
.vp-business .vp-small { font-size: 15px !important; }
.vp-form { padding: 34px; border: 1px solid var(--vp-line); background: var(--vp-surface); }
.vp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.vp-form label { display: grid; gap: 8px; font-size: 13px; font-weight: 600; letter-spacing: .04em; color: #ffffffcc; }
.vp-span { grid-column: 1 / -1; }
.vp-form input:not([type=checkbox]), .vp-form select, .vp-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #ffffff26; background: #0b0b0d; color: #fff; font: inherit; font-weight: 400; font-size: 16px; letter-spacing: 0; border-radius: 0; }
.vp-form textarea { min-height: 110px; resize: vertical; }
.vp-form input:focus, .vp-form select:focus, .vp-form textarea:focus { outline: none; border-color: var(--vp-gold); }
.vp-form input.pass-trap { position: absolute; width: 1px !important; min-height: 0 !important; height: 1px; padding: 0 !important; opacity: 0; pointer-events: none; }
.vp-consent { display: flex !important; grid-template-columns: none; align-items: flex-start; gap: 12px !important; margin-top: 20px; font-weight: 400 !important; font-size: 13px !important; line-height: 1.5; color: #ffffff99 !important; }
.vp-consent input { margin-top: 3px; accent-color: var(--vp-gold); }
.vp-consent a { color: var(--vp-gold-soft); text-decoration: underline; }
.vp-submit { margin-top: 24px; }
.vp-submit button { display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; background: var(--vp-gold); color: #0b0b0d; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; border: 0; cursor: pointer; }
.vp-submit button:hover { background: var(--vp-gold-soft); }
.vp-error { margin-top: 14px; color: #ffb4a8; font-size: 14px; }
.vp-success h3 { font-size: 24px; font-weight: 600; color: var(--vp-gold-soft); }
.vp-success p { margin-top: 12px; color: #ffffffb3; line-height: 1.6; }

.vp-namer { border-top: 1px solid #ffffff12; }
.vp-namer-layout { display: grid; grid-template-columns: minmax(240px, 420px) minmax(0, 1fr); gap: 64px; align-items: center; }
.vp-namer-layout > img { width: 100%; height: auto; border: 1px solid var(--vp-gold); }
.vp-namer h2 { margin: 14px 0 18px; font-size: clamp(28px, 3vw, 40px); font-weight: 300; }
.vp-namer p:not(.vp-eyebrow) { font-size: 16px; line-height: 1.65; color: #ffffffb3; margin-bottom: 12px; max-width: 60ch; }
.vp-namer .vp-btn { margin-top: 14px; }
.vp-legal { padding-top: 10px; padding-bottom: 60px; font-size: 12px; line-height: 1.6; color: #ffffff66; text-align: center; background: var(--vp-black); }

@media (max-width: 1000px) {
  .vp-perk, .vp-perk:nth-child(n+5) { grid-column: span 6; }
  .vp-perk:last-child { grid-column: 3 / span 8; }
  .vp-business-layout, .vp-namer-layout { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 640px) {
  .vp-hero { padding: 100px 16px 70px; }
  .vp-hero-frame { inset: 92px 12px 28px; }
  .vp-hero-frame::before, .vp-hero-frame::after { width: calc(50% - 60px); }
  .vp-btn { padding: 14px 20px; font-size: 11px; }
  .vp-perks { grid-template-columns: 1fr; }
  .vp-perk, .vp-perk:nth-child(n+5), .vp-perk:last-child { grid-column: 1 / -1; }
  .vp-head h2 { letter-spacing: .18em; font-size: 20px; }
  .vp-grid { grid-template-columns: 1fr; }
  .vp-form { padding: 22px; }
  .vp-ticket-card { padding: 36px 22px; }
  .vp-section { padding: 80px 0; }
}
.vp-page .site-footer { background: #0b0b0d; }
.vp-hero::after { background: radial-gradient(ellipse at 50% 45%, #0b0b0d88 0%, #0b0b0d22 55%, transparent 75%), linear-gradient(180deg, transparent 72%, var(--vp-black)); }
.vp-hero-bg img { filter: brightness(1.25) saturate(1.1); }
@media (max-width: 640px) { .vp-hero-tag { letter-spacing: .14em; font-size: 11px; padding: 8px 12px; } }
/* VIP : espacements resserrés */
.vp-section { padding: 64px 0; }
.vp-intro { padding: 56px 0 8px; }
.vp-intro h2 { margin-top: 10px; }
.vp-intro p:last-child { margin-top: 14px; line-height: 1.6; }
.vp-head { margin-bottom: 32px; }
.vp-perks { gap: 16px; }
.vp-perk { padding: 0 22px 22px; }
.vp-perk-visual { height: 120px; margin-bottom: 4px; }
.vp-perk h3 { margin-top: 6px; }
.vp-perk p { margin-top: 8px; line-height: 1.5; }
.vp-ticket { padding: 72px 0; }
.vp-ticket-card { padding: 36px 32px; }
.vp-ticket-card h2 { margin: 12px 0 8px; }
.vp-ticket-note { margin-bottom: 20px; }
.vp-ticket-meta { margin-top: 16px; }
.vp-business-layout { gap: 48px; }
.vp-business h2 { margin-top: 10px; }
.vp-business-copy > p:not(.vp-eyebrow) { margin-top: 14px; line-height: 1.55; }
.vp-business ul { margin-top: 16px; }
.vp-business li { padding: 11px 0 11px 30px; }
.vp-partners-link { margin-top: 20px; }
.vp-form { padding: 28px; }
.vp-grid { gap: 14px; }
.vp-consent { margin-top: 16px; }
.vp-submit { margin-top: 18px; }
.vp-namer-layout { gap: 44px; }
.vp-namer h2 { margin: 10px 0 12px; }
.vp-legal { padding-bottom: 40px; }
.vp-hero { min-height: 92svh; }
.vp-hero-inner { gap: 16px; }
@media (max-width: 640px) { .vp-section { padding: 48px 0; } .vp-ticket { padding: 56px 0; } .vp-perk-visual { height: 104px; } }
/* VIP : halo doré fondu dans la carte (plus de coupure nette sous le pictogramme) */
.vp-perk-visual { background: none; margin: 0 0 4px; }
.vp-perk { background: radial-gradient(circle at 50% 70px, #d99a2b24 0, #d99a2b10 70px, transparent 140px), linear-gradient(180deg, #17171a, #0f0f11); }

/* ===== Page Partenaires (charte Winter) ===== */
.pt-page { background: var(--w-bg); }
.pt-eyebrow { display: block; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--w-ice); }
.pt-tier, .pt-naming { padding: 64px 0; }
.pt-tier + .pt-tier { padding-top: 24px; }
.pt-tier .w-head { margin-bottom: 26px; }
.pt-naming-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 400px); gap: 56px; align-items: center; }
.pt-naming h2 { margin-top: 10px; font-size: clamp(36px, 4vw, 56px); font-weight: 700; line-height: 1.05; }
.pt-naming p { margin: 16px 0 24px; max-width: 52ch; font-size: 18px; line-height: 1.6; color: var(--w-muted); }

.pt-grid { display: grid; gap: 16px; }
.pt-grid-l { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-tier-institutionnels .pt-grid-l { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 860px; }
.pt-grid-m { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pt-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--w-line); border-radius: 14px; overflow: hidden; background: var(--w-surface); color: #fff; transition: transform .25s, border-color .25s, box-shadow .25s; }
a.pt-card:hover { transform: translateY(-4px); border-color: #bfe6f580; box-shadow: 0 18px 40px #0008; }
a.pt-card:focus-visible { outline: 2px solid var(--w-ice); outline-offset: 3px; }
.pt-logo { position: relative; display: block; aspect-ratio: 1; background: #fff; overflow: hidden; }
.pt-logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.pt-l .pt-logo, .pt-xl .pt-logo { aspect-ratio: 16 / 10; }
.pt-l .pt-logo img, .pt-xl .pt-logo img { object-fit: contain; transform: scale(1.4); }
.pt-meta { display: grid; gap: 3px; padding: 14px 16px 16px; }
.pt-meta b { font-size: 16px; font-weight: 600; line-height: 1.3; }
.pt-meta small { font-size: 13px; color: var(--w-ice); }
.pt-m .pt-meta { padding: 10px 12px 12px; }
.pt-m .pt-meta b { font-size: 13px; }
.pt-m .pt-meta small { font-size: 12px; }
.pt-go { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #050d17cc; color: #fff; font-size: 13px; opacity: 0; transform: scale(.8); transition: opacity .2s, transform .2s; }
a.pt-card:hover .pt-go, a.pt-card:focus-visible .pt-go { opacity: 1; transform: none; }
.pt-xl .pt-meta { display: none; }
.pt-subgroup + .pt-subgroup { margin-top: 30px; }
.pt-subgroup h3 { margin-bottom: 14px; font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--w-muted); }

.pt-join { border-top: 1px solid var(--w-line); padding: 72px 0; }
.pt-join-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: start; }
.pt-join h2 { margin-top: 10px; font-size: clamp(34px, 3.8vw, 52px); font-weight: 700; line-height: 1.06; }
.pt-join-copy > p { margin-top: 14px; font-size: 18px; line-height: 1.6; color: var(--w-muted); }
.pt-join ul { margin-top: 20px; border-top: 1px solid var(--w-line); }
.pt-join li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--w-line); font-size: 16px; line-height: 1.5; }
.pt-join li::before { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 2px; background: var(--w-ice); }
.pt-textlink { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; color: var(--w-ice); font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
/* Formulaire partenaire dans la charte Winter */
.pt-page .vp-form { border: 1px solid var(--w-line); border-radius: 18px; background: var(--w-surface); padding: 28px; }
.pt-page .vp-form label { display: grid; gap: 8px; font-size: 13px; font-weight: 600; color: #ffffffd9; }
.pt-page .vp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pt-page .vp-span { grid-column: 1 / -1; }
.pt-page .vp-form input:not([type=checkbox]), .pt-page .vp-form select, .pt-page .vp-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #ffffff26; border-radius: 10px; background: var(--w-bg); color: #fff; font: inherit; font-weight: 400; font-size: 16px; }
.pt-page .vp-form textarea { min-height: 110px; resize: vertical; }
.pt-page .vp-form input:focus, .pt-page .vp-form select:focus, .pt-page .vp-form textarea:focus { outline: none; border-color: var(--w-ice); }
.pt-page .vp-form input.pass-trap { position: absolute; width: 1px; min-height: 0; height: 1px; padding: 0; opacity: 0; pointer-events: none; }
.pt-page .vp-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; font-weight: 400; font-size: 13px; line-height: 1.5; color: var(--w-muted); }
.pt-page .vp-consent input { margin-top: 3px; accent-color: var(--w-ice); }
.pt-page .vp-consent a { color: var(--w-ice); text-decoration: underline; }
.pt-page .vp-submit { margin-top: 18px; }
.pt-page .vp-submit button { display: inline-flex; align-items: center; gap: 12px; padding: 14px 26px; border: 0; border-radius: 999px; background: #fff; color: var(--w-bg); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.pt-page .vp-submit button:hover { background: #dff5fc; }
.pt-page .vp-error { margin-top: 12px; color: #ffb4a8; font-size: 14px; }
.pt-page .vp-success h3 { font-size: 22px; font-weight: 700; }
.pt-page .vp-success p { margin-top: 10px; color: var(--w-muted); line-height: 1.6; }

@media (max-width: 1100px) { .pt-grid-m { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .pt-naming-layout, .pt-join-layout { grid-template-columns: 1fr; gap: 32px; }
  .pt-grid-l, .pt-tier-institutionnels .pt-grid-l { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .pt-grid-m { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .pt-grid-l, .pt-tier-institutionnels .pt-grid-l { grid-template-columns: 1fr 1fr; gap: 10px; }
  .pt-tier, .pt-naming { padding: 44px 0; }
  .pt-page .vp-grid { grid-template-columns: 1fr; }
  .pt-page .vp-form { padding: 20px; }
}
/* Bouton retour (pages intérieures) */
.site-brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.site-back { display: inline-flex; align-items: center; gap: 4px; padding: 7px 14px 7px 9px; border: 1px solid #ffffff4d; border-radius: 999px; color: #fff; font-size: 13px; font-weight: 600; white-space: nowrap; transition: background .2s, color .2s; }
.site-back:hover { background: #fff; color: var(--w-bg, #050d17); }
.site-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.site-back:focus-visible { outline: 2px solid var(--w-ice, #bfe6f5); outline-offset: 3px; }

/* Line-up sur mobile : grille fixe (plus de glissement horizontal) */
@media (max-width: 760px) {
  .lu-track { display: grid; grid-auto-flow: row; grid-template-columns: 1fr 1fr; grid-auto-columns: auto; gap: 12px; padding: 0 16px; overflow: visible; scroll-snap-type: none; }
  .lu-card { scroll-snap-align: none; }
  .lu .w-head-actions { display: none; }
  .lu-copy { left: 12px; right: 12px; bottom: 12px; gap: 4px; }
  .lu-copy strong { font-size: 17px; }
  .lu-copy small { font-size: 9px; letter-spacing: .08em; }
  .lu-copy em { font-size: 12px; }
  /* Fiche artiste : photo entière, visages visibles */
  .w-modal { max-height: 94svh; }
  .lu-modal-image img { aspect-ratio: 4 / 5; max-height: 58svh; object-position: 50% 18%; }
}
@media (max-width: 760px) {
  .lu-modal { display: block; }
  .lu-modal-image { min-height: 0; }
  .lu-modal-image img { width: 100%; height: 52svh; max-height: none; min-height: 0; aspect-ratio: auto; object-fit: cover; object-position: 50% 20%; }
}

/* ===== Portail : fonds vivants (Winter : neige et aurore ; Summer : soleil, poussière dorée, chaleur) ===== */
.portal-bg { animation: portal-drift 26s ease-in-out infinite alternate; transform-origin: 50% 60%; }
.portal-summer .portal-bg { animation-duration: 30s; animation-direction: alternate-reverse; }
@keyframes portal-drift { from { transform: scale(1.04) translate3d(-1.2%, 0, 0); } to { transform: scale(1.14) translate3d(1.2%, -1.5%, 0); } }
.portal-side:hover .portal-bg { filter: saturate(1.15) brightness(1.06); }
.portal-fx { position: absolute; inset: -10% 0 0; z-index: 1; pointer-events: none; }
/* Neige : trois couches à vitesses différentes pour la profondeur */
.fx-snow { background-repeat: repeat; will-change: background-position; }
.fx-snow-1 { background-image: radial-gradient(2px 2px at 20px 30px, #fff, transparent), radial-gradient(2px 2px at 140px 80px, #ffffffd0, transparent), radial-gradient(1.5px 1.5px at 90px 150px, #fff, transparent), radial-gradient(2px 2px at 200px 190px, #ffffffc0, transparent); background-size: 240px 240px; animation: snow-fall 14s linear infinite; opacity: .8; }
.fx-snow-2 { background-image: radial-gradient(3px 3px at 60px 50px, #fff, transparent), radial-gradient(2.5px 2.5px at 250px 170px, #ffffffd8, transparent), radial-gradient(3px 3px at 170px 260px, #ffffffb0, transparent); background-size: 320px 320px; animation: snow-fall 9s linear infinite; opacity: .7; filter: blur(.4px); }
.fx-snow-3 { background-image: radial-gradient(5px 5px at 100px 80px, #ffffffb0, transparent), radial-gradient(4px 4px at 380px 300px, #ffffff90, transparent); background-size: 460px 460px; animation: snow-fall 6s linear infinite; opacity: .55; filter: blur(1.2px); }
@keyframes snow-fall { from { background-position: 0 0; } to { background-position: 60px 480px; } }
.fx-snow-2 { animation-name: snow-fall-2; } @keyframes snow-fall-2 { from { background-position: 0 0; } to { background-position: -80px 640px; } }
.fx-snow-3 { animation-name: snow-fall-3; } @keyframes snow-fall-3 { from { background-position: 0 0; } to { background-position: 90px 920px; } }
.fx-aurora { inset: 0; background: radial-gradient(60% 40% at 30% 18%, #7fd8f033, transparent 70%), radial-gradient(50% 35% at 75% 10%, #9fb7ff26, transparent 70%); mix-blend-mode: screen; animation: aurora 12s ease-in-out infinite alternate; }
@keyframes aurora { from { opacity: .35; transform: translateX(-4%); } to { opacity: .9; transform: translateX(4%); } }
/* Summer : halo solaire qui respire, poussière dorée qui monte, vague de chaleur */
.fx-sun { inset: 0; background: radial-gradient(38% 30% at 62% 26%, #ffc46b55, #ff8a3a22 45%, transparent 70%); mix-blend-mode: screen; animation: sun-pulse 7s ease-in-out infinite alternate; }
@keyframes sun-pulse { from { opacity: .55; transform: scale(1); } to { opacity: 1; transform: scale(1.08); } }
.fx-dust { background-repeat: repeat; inset: 0 0 -20%; }
.fx-dust-1 { background-image: radial-gradient(2px 2px at 30px 40px, #ffd28acc, transparent), radial-gradient(1.5px 1.5px at 160px 120px, #ffb85fcc, transparent), radial-gradient(2px 2px at 90px 200px, #ffe2a8b0, transparent); background-size: 230px 230px; animation: dust-rise 18s linear infinite; opacity: .75; }
.fx-dust-2 { background-image: radial-gradient(3px 3px at 80px 60px, #ffc87a99, transparent), radial-gradient(2.5px 2.5px at 260px 220px, #ffdca0aa, transparent); background-size: 340px 340px; animation: dust-rise-2 11s linear infinite; opacity: .6; filter: blur(.8px); }
@keyframes dust-rise { from { background-position: 0 0; } to { background-position: 70px -460px; } }
@keyframes dust-rise-2 { from { background-position: 0 0; } to { background-position: -90px -680px; } }
.fx-haze { inset: 0; background: linear-gradient(100deg, transparent 30%, #ffd9a01f 45%, transparent 60%); background-size: 250% 100%; mix-blend-mode: screen; animation: haze 9s ease-in-out infinite; }
@keyframes haze { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .portal-bg, .portal-fx { animation: none !important; } }

/* ===== Electra For Us (charte Winter) ===== */
.efu-page { background: var(--w-bg); }
.efu-kicker { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--w-ice); margin-bottom: 14px; }
.efu-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 32px; }
.efu-hero-actions .pill { margin-top: 0; }
.efu-why { padding: 72px 0 56px; }
.efu-why-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: start; }
.efu-why h2 { margin-top: 10px; font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.08; }
.efu-why-copy p { font-size: 18px; line-height: 1.65; color: var(--w-muted); }
.efu-why-copy p + p { margin-top: 14px; }
.efu-stats { margin-top: 48px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--w-line); border-bottom: 1px solid var(--w-line); }
.efu-stats > div { display: flex; flex-direction: column; padding: 26px 22px; border-left: 1px solid var(--w-line); }
.efu-stats > div:first-child { border-left: 0; padding-left: 0; }
.efu-stats dd { order: -1; font-size: clamp(36px, 4vw, 54px); font-weight: 700; line-height: 1; }
.efu-stats dt { margin-top: 10px; font-size: 15px; font-weight: 600; }
.efu-stats small { margin-top: 4px; font-size: 13px; color: var(--w-muted); }
.efu-pillnav { position: sticky; top: 76px; z-index: 20; background: #050d17e6; backdrop-filter: blur(12px); border-bottom: 1px solid var(--w-line); }
.efu-pillnav .w-wrap { display: flex; gap: 8px; padding-top: 12px; padding-bottom: 12px; overflow-x: auto; scrollbar-width: none; }
.efu-pillnav a { display: inline-flex; align-items: center; gap: 8px; flex: none; padding: 9px 16px; border: 1px solid var(--w-line); border-radius: 999px; font-size: 14px; font-weight: 600; color: #fff; transition: background .2s, border-color .2s; }
.efu-pillnav a:hover { background: #ffffff12; border-color: #bfe6f580; }
.efu-pillnav svg { width: 18px; height: 18px; fill: none; stroke: var(--w-ice); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.efu-pillar { padding: 72px 0; scroll-margin-top: 140px; }
.efu-pillar.is-alt { background: #071321; }
.efu-pillar-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 56px; align-items: start; }
.efu-pillar.is-alt .efu-pillar-side { order: 2; }
.efu-pillar-side { position: sticky; top: 150px; display: grid; gap: 14px; }
.efu-pillar-photo { aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; }
.efu-pillar-photo img { width: 100%; height: 100%; object-fit: cover; }
.efu-patron { display: flex; align-items: center; gap: 16px; padding: 12px; border: 1px solid var(--w-line); border-radius: 14px; background: var(--w-surface); transition: border-color .2s; }
.efu-patron:hover { border-color: #bfe6f580; }
.efu-patron img { width: 72px; height: 72px; border-radius: 10px; background: #fff; object-fit: contain; flex: none; }
.efu-patron small { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--w-ice); }
.efu-patron b { display: block; margin-top: 4px; font-size: 17px; }
.efu-pillar-head { display: flex; align-items: center; gap: 14px; }
.efu-icon { display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid #bfe6f566; border-radius: 50%; }
.efu-icon svg { width: 28px; height: 28px; fill: none; stroke: var(--w-ice); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.efu-pillar-head small { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--w-muted); }
.efu-pillar h2 { margin-top: 16px; font-size: clamp(34px, 4vw, 54px); font-weight: 700; line-height: 1.05; }
.efu-intro { margin-top: 14px; font-size: 18px; line-height: 1.6; color: var(--w-muted); max-width: 60ch; }
.efu-actions { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.efu-actions li { padding: 18px 18px 20px; border: 1px solid var(--w-line); border-radius: 14px; background: var(--w-surface); }
.efu-actions h3 { font-size: 16px; font-weight: 700; }
.efu-actions p { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--w-muted); }
.efu-thanks { margin-top: 20px; padding-left: 16px; border-left: 2px solid var(--w-ice); font-size: 15px; line-height: 1.6; color: #dbe6ee; font-style: italic; }
.efu-next { padding: 56px 0; }
.efu-next-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 28px; align-items: center; padding-top: 32px; padding-bottom: 32px; border: 1px dashed #bfe6f566; border-radius: 18px; }
.efu-next h2 { margin-top: 6px; font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; }
.efu-next p { margin-top: 8px; color: var(--w-muted); font-size: 16px; }
.efu-next .pill { margin-top: 0; }
.efu-word { padding: 72px 0; text-align: center; background: #071321; }
.efu-word-inner { max-width: 860px; }
.efu-word blockquote { margin-top: 18px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 400; line-height: 1.45; }
.efu-word blockquote::before { content: "« "; color: var(--w-ice); } .efu-word blockquote::after { content: " »"; color: var(--w-ice); }
.efu-sign { margin-top: 20px; color: var(--w-muted); font-size: 15px; }
.efu-news { padding: 64px 0; }
.efu-news-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.efu-news-grid article { padding: 22px; border: 1px solid var(--w-line); border-radius: 14px; background: var(--w-surface); }
.efu-news-grid small { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--w-ice); }
.efu-news-grid h3 { margin-top: 10px; font-size: 17px; font-weight: 700; line-height: 1.3; }
.efu-news-grid p { margin-top: 10px; font-size: 14.5px; line-height: 1.55; color: var(--w-muted); }
.efu-patrons { padding: 56px 0; }
.efu-sub { margin: 4px 0 14px; font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--w-muted); }
.efu-logos { margin-bottom: 30px; }
.efu-legal { margin-top: 14px; font-size: 13px !important; color: #9db1c2b3 !important; }
@media (max-width: 1000px) {
  .efu-why-layout, .efu-pillar-layout { grid-template-columns: 1fr; gap: 28px; }
  .efu-pillar.is-alt .efu-pillar-side { order: 0; }
  .efu-pillar-side { position: static; }
  .efu-stats { grid-template-columns: 1fr 1fr; }
  .efu-stats > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .efu-stats > div:nth-child(n+3) { border-top: 1px solid var(--w-line); }
  .efu-news-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .efu-pillnav { top: 64px; }
  .efu-actions, .efu-news-grid { grid-template-columns: 1fr; }
  .efu-next-card { grid-template-columns: 1fr; gap: 16px; padding: 24px 20px; }
  .efu-pillar, .efu-word { padding: 52px 0; }
  .efu-stats > div { padding: 20px 14px; }
}
.efu-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.efu-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }
.pt-tier-institutionnels .pt-grid-l { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; }
/* En-tête Winter : si la vidéo est bloquée, l'image d'attente prend vie (zoom lent + neige) */
.hero-still .hero-media { animation: portal-drift 22s ease-in-out infinite alternate; }
.hero-still::before { content: ""; position: absolute; inset: -10% 0 0; z-index: 1; pointer-events: none; background-image: radial-gradient(2px 2px at 20px 30px, #fff, transparent), radial-gradient(2px 2px at 140px 80px, #ffffffd0, transparent), radial-gradient(3px 3px at 90px 150px, #ffffffb0, transparent); background-size: 220px 220px; animation: snow-fall 11s linear infinite; opacity: .6; }
/* Electra For Us : module piliers à onglets */
.efu-tabs { padding: 72px 0; scroll-margin-top: 80px; background: #071321; }
.efu-tablist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 28px; }
.efu-tablist button { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--w-line); border-radius: 14px; background: var(--w-surface); color: #fff; text-align: left; cursor: pointer; transition: border-color .2s, background .2s; }
.efu-tablist button:hover { border-color: #bfe6f580; }
.efu-tablist button.is-on { border-color: var(--w-ice); background: #bfe6f514; box-shadow: inset 0 -3px 0 var(--w-ice); }
.efu-tablist button:focus-visible { outline: 2px solid var(--w-ice); outline-offset: 3px; }
.efu-tab-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border: 1px solid #bfe6f566; border-radius: 50%; }
.efu-tab-icon svg { width: 22px; height: 22px; fill: none; stroke: var(--w-ice); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.efu-tab-txt small { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--w-muted); }
.efu-tab-txt b { display: block; margin-top: 2px; font-size: 16px; }
.efu-panel { animation: efu-in .45s ease both; }
@keyframes efu-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.efu-panel .efu-pillar-side { position: static; }
.efu-panel-title { font-size: clamp(32px, 3.6vw, 48px); font-weight: 700; line-height: 1.05; }
.efu-actions h4 { font-size: 16px; font-weight: 700; }
.efu-next-btn { margin-top: 24px; }
@media (max-width: 900px) { .efu-tablist { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .efu-tablist button { padding: 10px; gap: 8px; } .efu-tab-icon { width: 34px; height: 34px; } .efu-tab-icon svg { width: 18px; height: 18px; } .efu-tab-txt b { font-size: 14px; } .efu-next-btn { padding: 14px 18px; font-size: 11px; } }
@media (prefers-reduced-motion: reduce) { .efu-panel { animation: none; } }

/* ===================================================================
   Identité Winter : Tusker Grotesk (titres des visuels), dégradé glace,
   filets lumineux, fond montagne, bandes photo pleine largeur.
   =================================================================== */
@font-face { font-family: "Tusker"; src: url("assets/tusker-3800.woff") format("woff"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Tusker"; src: url("assets/tusker-3500.woff") format("woff"); font-weight: 500; font-display: swap; }
:root { --ice-grad: linear-gradient(180deg, #ffffff 30%, #a8dcf3 100%); }
.ice-text, .hero-title .ht-big { background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Titres de section (charte Winter : home, actualités, partenaires, Electra For Us) */
.w-page:not(.vp-page):not(.dj-page):not(.et-page) :is(.w-head h2, .tk-copy h2, .st-copy h2, .tm-copy h2, .ct-copy h2, .pt-naming h2, .pt-join h2, .efu-why h2, .efu-panel-title, .efu-next h2, .hero-page h1) {
  font-family: "Tusker", "Figtree", sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .01em; line-height: .92;
  background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.w-page:not(.vp-page):not(.dj-page):not(.et-page) :is(.w-head h2, .tk-copy h2, .st-copy h2, .tm-copy h2, .ct-copy h2, .pt-join h2, .efu-why h2) { font-size: clamp(46px, 5.6vw, 84px); }
.w-page:not(.vp-page):not(.dj-page):not(.et-page) .hero-page h1 { font-size: clamp(64px, 9vw, 140px); text-shadow: none; filter: drop-shadow(0 6px 28px #0008); }
/* Filet lumineux sous les titres, comme sur les visuels (« JEUDI 15 OCTOBRE ») */
.w-page:not(.vp-page):not(.dj-page):not(.et-page) .w-head p::before,
.w-page:not(.vp-page):not(.dj-page):not(.et-page) .st-copy p::before,
.w-page:not(.vp-page):not(.dj-page):not(.et-page) .tm-copy p::before { content: ""; display: block; width: 72px; height: 1px; margin: 4px 0 14px; background: linear-gradient(90deg, #bfe6f5, transparent); box-shadow: 0 0 10px #bfe6f5aa; }

/* Hero Winter */
.hero-title { display: grid; justify-items: center; gap: 0; max-width: none !important; font-family: "Tusker", "Figtree", sans-serif !important; font-weight: 700; text-transform: uppercase; line-height: .86 !important; letter-spacing: .01em !important; text-shadow: none !important; }
.hero-title .ht-top { font-size: clamp(30px, 4.4vw, 64px); color: #fff; filter: drop-shadow(0 3px 16px #0009); }
.hero-title .ht-big { font-size: clamp(110px, 17vw, 250px); filter: drop-shadow(0 8px 36px #0009); }
.hero-title .ht-by { margin-top: 10px; font-family: "Figtree", sans-serif; font-size: clamp(14px, 1.4vw, 18px); font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: #ffffffd9; }
.hero-date { position: relative; margin-top: 26px; padding: 14px 0; font-size: clamp(14px, 1.4vw, 17px); color: #ffffffd9; letter-spacing: .04em; }
.hero-date::before, .hero-date::after { content: ""; position: absolute; left: 10%; right: 10%; height: 1px; background: linear-gradient(90deg, transparent, #bfe6f5, transparent); box-shadow: 0 0 10px #bfe6f5; }
.hero-date::before { top: 0; } .hero-date::after { bottom: 0; }
.hero-date span { display: block; font-family: "Tusker", sans-serif; font-size: clamp(22px, 2.4vw, 32px); text-transform: uppercase; letter-spacing: .04em; color: var(--w-ice); margin-bottom: 2px; }

/* Billetterie sur le fond montagne de la campagne */
.tk .tk-bg { object-position: 50% 62%; }
.tk-shade { background: linear-gradient(90deg, #050d17f2 8%, #050d17b3 48%, #050d1733), linear-gradient(180deg, var(--w-bg), transparent 18%, transparent 80%, var(--w-bg)) !important; }

/* Bandes photo pleine largeur */
.pband { position: relative; min-height: 78svh; display: flex; align-items: flex-end; overflow: hidden; background: #000; }
.pband > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); animation: portal-drift 30s ease-in-out infinite alternate; }
.pband-shade { position: absolute; inset: 0; background: linear-gradient(180deg, var(--w-bg) 0%, #050d1733 30%, #050d1766 60%, var(--w-bg) 100%); }
.pband-inner { position: relative; z-index: 2; padding-bottom: 72px; }
.pband-kicker { display: inline-block; padding: 10px 0; font-size: 14px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--w-ice); border-top: 1px solid #bfe6f566; border-bottom: 1px solid #bfe6f566; }
.pband-title { margin: 14px 0 26px; font-family: "Tusker", sans-serif; font-size: clamp(72px, 13vw, 210px); line-height: .86; text-transform: uppercase; background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 8px 40px #000a); }
.pband .pill { margin-top: 0; }
@media (max-width: 640px) { .pband { min-height: 64svh; } .pband-inner { padding-bottom: 48px; } }
@media (prefers-reduced-motion: reduce) { .pband > img { animation: none; } }

/* Portail : « PART EN LIVE! » dans la police de la campagne */
.portal-winter .portal-content :is(h1, h2) { font-family: "Tusker", sans-serif; font-weight: 700; letter-spacing: .01em; line-height: .88; }
.portal-winter .portal-content :is(h1, h2) i { font-style: normal; background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* Accents visibles malgré le dégradé (le texte ne doit pas être rogné) */
.w-page:not(.vp-page):not(.dj-page):not(.et-page) :is(.w-head h2, .tk-copy h2, .st-copy h2, .tm-copy h2, .ct-copy h2, .pt-naming h2, .pt-join h2, .efu-why h2, .efu-panel-title, .efu-next h2, .hero-page h1),
.hero-title .ht-big, .pband-title, .portal-winter .portal-content :is(h1, h2) i { padding-top: .14em; margin-top: -.14em; line-height: .98 !important; }
.w-page:not(.vp-page):not(.dj-page):not(.et-page) :is(.w-head h2, .tk-copy h2, .st-copy h2, .tm-copy h2, .ct-copy h2, .pt-join h2, .efu-why h2) { font-size: clamp(52px, 6.4vw, 96px); }
.hero-title .ht-top, .hero-date span, .pband-kicker { font-family: "Tusker", sans-serif; font-weight: 500; letter-spacing: .03em; }
.hero-title .ht-top { font-size: clamp(36px, 5vw, 72px); }
.hero-title .ht-big { font-size: clamp(120px, 19vw, 280px); }
.pband-kicker { font-size: clamp(20px, 2vw, 28px); letter-spacing: .06em; }
.hero-title .ht-big { margin-top: 0; }
.pband-title { font-weight: 700; }

/* Portail : « Part en Live ! » refait (v33) — deux niveaux nets, sans chevauchement */
.portal-winter .portal-content { grid-template-rows: auto auto auto 1fr; row-gap: 10px; height: auto; min-height: min(430px, 58vh); }
.portal-winter .portal-content :is(h1, h2).portal-ptl { display: flex; flex-direction: column; gap: .06em; margin: 14px 0 34px; font-family: "Tusker", sans-serif; text-transform: uppercase; letter-spacing: .01em; line-height: 1 !important; padding: 0; }
.portal-ptl span { font-weight: 500; font-size: clamp(34px, 3.6vw, 58px); line-height: 1; color: #fff; letter-spacing: .04em; }
.portal-winter .portal-content :is(h1, h2).portal-ptl i { font-style: normal; font-weight: 700; font-size: clamp(92px, 10.5vw, 170px); line-height: 1 !important; padding: .1em 0 0; margin: -.1em 0 0; background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent; white-space: nowrap; }
.portal-winter .portal-content b { align-self: end; }
@media (max-width: 760px) {
  .portal-winter { padding-top: 130px !important; }
  .portal-winter .portal-content { min-height: 0; }
  .portal-winter .portal-content :is(h1, h2).portal-ptl { margin: 8px 0 26px; }
}

/* Apparitions plus rapides (v33) */
.rv { transform: translateY(12px); transition: opacity .45s ease var(--rv-delay, 0ms), transform .45s cubic-bezier(.2,.7,.2,1) var(--rv-delay, 0ms); }
.lu-card.rv, .nw-card.rv, .ex-card.rv { transition: opacity .45s ease var(--rv-delay, 0ms), transform .45s cubic-bezier(.2,.7,.2,1) var(--rv-delay, 0ms), border-color .25s; }

/* =====================================================================
   v33 — Charte éditoriale « roll-up » : angles vifs, filets fins,
   titres espacés, moins de cartes et de pastilles (anti « effet IA »)
   ===================================================================== */

/* Bandeaux photo : un seul filet, au-dessus, qui ne touche jamais le titre */
.pband-kicker { border: 0; padding: 0 0 0 64px; position: relative; }
.pband-kicker::before { content: ""; position: absolute; left: 0; top: 50%; width: 44px; height: 1px; background: #bfe6f5b3; }
.pband-title { margin: 18px 0 30px; }

/* Boutons : rectangles nets, comme le roll-up et le VIP */
.winter-site .pill, .winter-site .pill-solid, .winter-site .site-cta, .winter-site button.pill { border-radius: 0; }
.winter-site .pill { padding: 15px 28px; border-width: 1px; }

/* Titres de rubrique façon roll-up : capitales espacées entre deux filets */
.rl-title { display: flex; align-items: center; gap: 18px; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .32em; text-transform: uppercase; color: #ffffffd9; }
.rl-title::before, .rl-title::after { content: ""; flex: 1; height: 1px; background: #ffffff2e; }

/* ---------- Electra Team by Cap Emeraude ---------- */
.et-perks b { width: auto; height: auto; border-radius: 0; background: none; color: var(--et-cream); font-family: "Tusker", sans-serif; font-size: 40px; font-weight: 700; line-height: 1; }
.et-perks li { grid-template-columns: 44px 1fr; }
.et-mission-cards { gap: 0; border-top: 1px solid var(--w-line); border-bottom: 1px solid var(--w-line); }
.et-mission-cards article { border: 0; border-radius: 0; background: none; padding: 28px 24px 30px; }
.et-mission-cards article + article { border-left: 1px solid var(--w-line); }
.et-mission-cards h3 { padding: 0; border-radius: 0; background: none; color: var(--et-green); font-family: "Tusker", sans-serif; font-size: 34px; font-weight: 700; letter-spacing: .02em; }
.et-challenge-grid { gap: 0; align-items: stretch; border-top: 1px solid var(--w-line); border-bottom: 1px solid var(--w-line); }
.et-card { border: 0; border-radius: 0; background: none; padding: 34px 32px 38px; height: 100%; }
.et-card + .et-card { border-left: 1px solid var(--w-line); }
.et-card h3 { font-family: "Tusker", sans-serif; font-size: 30px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.et-tiers { gap: 0; }
.et-tiers li { grid-template-columns: 72px 1fr; align-items: start; padding: 16px 0; border-top: 1px solid var(--w-line); }
.et-tiers b { height: auto; border-radius: 0; background: none; color: var(--et-green); font-family: "Tusker", sans-serif; font-size: 44px; font-weight: 700; justify-items: start; place-items: start; }
.et-tiers b small { color: var(--w-muted); font-family: "Figtree", sans-serif; font-weight: 600; }
.et-weeks { gap: 0; }
.et-weeks li { padding: 14px 0; border-bottom: 0; border-top: 1px solid var(--w-line); }
.et-weeks small { padding: 0; border-radius: 0; background: none; color: var(--et-green); font-size: 12px; letter-spacing: .14em; }
.et-rules { gap: 0; counter-reset: r; }
.et-rules li { grid-template-columns: 40px 1fr; padding: 14px 0; border-top: 1px solid var(--w-line); }
.et-rules b { width: auto; height: auto; border-radius: 0; background: none; color: var(--et-green); font-family: "Tusker", sans-serif; font-size: 28px; font-weight: 700; line-height: 1; place-items: start; }
.et-partner > img { border-radius: 0 !important; }

/* ---------- Formulaires : champs soulignés, sans boîtes arrondies ---------- */
.et-form, .vp-form, .pt-join .vp-form { border-radius: 0 !important; background: none !important; border: 0 !important; border-top: 1px solid var(--w-line) !important; padding: 30px 0 0 !important; box-shadow: none !important; }
.vp-page .vp-form { border-top-color: var(--vp-gold) !important; }
.et-form label, .et-form legend, .vp-form label { font-size: 11px !important; font-weight: 600 !important; letter-spacing: .16em !important; text-transform: uppercase; }
.et-form input:not([type="radio"]):not([type="checkbox"]):not(.pass-trap), .et-form select, .et-form textarea,
.vp-form input:not([type=checkbox]):not(.pass-trap), .vp-form select, .vp-form textarea {
  border: 0 !important; border-bottom: 1px solid #ffffff40 !important; border-radius: 0 !important; background-color: transparent !important; padding-left: 0 !important; padding-right: 0 !important; box-shadow: none !important; }
.et-form textarea, .vp-form textarea { border: 1px solid #ffffff2e !important; padding: 12px !important; }
.et-form input:focus, .et-form select:focus, .et-form textarea:focus { border-color: var(--et-green) !important; }
.vp-form input:focus, .vp-form select:focus, .vp-form textarea:focus { border-color: var(--vp-gold) !important; }
.et-form select option, .vp-form select option { background: #0b0b0d; }
.et-missions label, .et-chip, .et-inline label, .et-form .et-check { border-radius: 0 !important; }
.vp-submit, .et-submit { border-radius: 0 !important; }

/* VIP : boutons alignés sur la même ligne de base */
.vp-business-layout { align-items: stretch; }
.vp-business-copy { display: flex; flex-direction: column; }
.vp-business-copy .vp-partners-link { margin-top: auto; align-self: flex-start; }
.vp-form { display: flex; flex-direction: column; }
.vp-form .vp-submit { margin-top: auto; }

/* ---------- DJ Contest by Ixina ---------- */
.dj-status, .dj-finalist, .dj-partner { border-radius: 0; }
.dj-status { background: none; border: 0; border-top: 2px solid var(--dj-cyan); border-bottom: 1px solid var(--w-line); padding: 26px 0; }
.dj-points { gap: 0; border-top: 1px solid var(--w-line); border-bottom: 1px solid var(--w-line); }
.dj-points li { border: 0; border-radius: 0; background: none; padding: 26px 24px; }
.dj-points li + li { border-left: 1px solid var(--w-line); }
.dj-points b, .dj-step > b { font-family: "Tusker", sans-serif; font-weight: 700; }
.dj-steps { gap: 0; border-top: 1px solid var(--w-line); }
.dj-step { border: 0; border-bottom: 1px solid var(--w-line); background: none; padding: 24px 0; }
.dj-step.is-current { box-shadow: none; border-left: 0; position: relative; }
.dj-step.is-current::before { content: ""; position: absolute; left: -24px; top: 0; bottom: 0; width: 2px; background: var(--dj-cyan); }
.dj-step.is-current .dj-step-state { border-radius: 0; background: none; color: var(--dj-cyan); padding: 0; }
.dj-partner { background: none; border: 0; border-top: 1px solid var(--w-line); padding: 26px 0 0; }

/* ---------- Electra For Us ---------- */
.efu-tablist { gap: 0; border-bottom: 1px solid var(--w-line); }
.efu-tablist button { border: 0; border-radius: 0; background: none; padding: 16px 4px 18px; box-shadow: none !important; opacity: .55; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.efu-tablist button.is-on { opacity: 1; background: none; border-bottom-color: var(--w-ice); }
.efu-tablist button:hover { opacity: 1; }
.efu-tab-icon { display: none !important; }
.efu-actions { gap: 0 40px; }
.efu-actions li { border: 0; border-radius: 0; background: none; padding: 18px 0 20px; border-top: 1px solid var(--w-line); }
.efu-pillar-photo, .efu-gallery img, .efu-patron, .efu-patron img { border-radius: 0 !important; }
.efu-patron { background: none; border: 0; border-top: 1px solid var(--w-line); padding: 14px 0 0; }
.efu-news-grid { gap: 0; border-top: 1px solid var(--w-line); }
.efu-news-grid article { border: 0; border-radius: 0; background: none; padding: 24px 24px 8px 0; }
.efu-news-grid article + article { padding-left: 24px; border-left: 1px solid var(--w-line); }
.pt-card, .pt-logo, .pt-card img { border-radius: 0 !important; }

@media (max-width: 900px) {
  .et-challenge-grid, .et-mission-cards, .dj-points { grid-template-columns: 1fr; }
  .et-card + .et-card, .et-mission-cards article + article, .dj-points li + li { border-left: 0; border-top: 1px solid var(--w-line); }
  .et-card { padding: 28px 0; }
  .et-mission-cards article { padding: 22px 0; }
  .dj-points li { padding: 22px 0; }
  .efu-news-grid { grid-template-columns: 1fr 1fr; }
  .efu-news-grid article + article { border-left: 0; padding-left: 0; }
  .efu-tablist { grid-template-columns: repeat(2, 1fr); }
  .vp-business-copy .vp-partners-link { margin-top: 24px; }
}
@media (max-width: 600px) { .efu-news-grid { grid-template-columns: 1fr; } .efu-actions { grid-template-columns: 1fr; } }
.pt-rl { margin-bottom: 30px; font-family: "Figtree", sans-serif !important; background: none !important; -webkit-background-clip: initial !important; color: #ffffffd9 !important; padding: 0 !important; line-height: 1.4 !important; text-align: center; }
.pt-tier { padding-top: 48px; padding-bottom: 24px; }

/* Electra For Us — vidéos (séparées des photos des piliers) */
.efu-rl { margin-bottom: 34px; font-family: "Figtree", sans-serif !important; background: none !important; -webkit-background-clip: initial !important; color: #ffffffd9 !important; padding: 0 !important; line-height: 1.4 !important; }
.efu-videos { background: #050c15; }
.efu-vid-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.efu-vid-main iframe, .efu-vid-poster { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #000; }
.efu-vid-poster { position: relative; padding: 0; cursor: pointer; overflow: hidden; }
.efu-vid-poster:disabled { cursor: default; }
.efu-vid-poster img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.efu-vid-main.is-vertical .efu-vid-poster img { object-fit: contain; background: #000; }
.efu-vid-poster:not(:disabled):hover img { transform: scale(1.02); }
.efu-vid-play { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; display: grid; place-items: center; border: 1px solid #fff; color: #fff; font-size: 24px; background: #0006; }
.efu-vid-play:empty { display: none; }
.efu-vid-soon { position: absolute; left: 0; bottom: 0; padding: 10px 16px; background: #050c15e6; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--w-ice); }
.efu-vid-caption { padding-top: 18px; border-bottom: 1px solid var(--w-line); padding-bottom: 18px; }
.efu-vid-caption h3 { font-family: "Tusker", sans-serif; font-size: 34px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.efu-vid-caption p { margin-top: 6px; color: var(--w-muted); font-size: 15px; }
.efu-vid-list { list-style: none; border-top: 1px solid var(--w-line); }
.efu-vid-list button { width: 100%; display: grid; grid-template-columns: 128px 1fr; gap: 16px; align-items: center; padding: 14px 0; border: 0; border-bottom: 1px solid var(--w-line); background: none; color: #fff; text-align: left; cursor: pointer; opacity: .6; transition: opacity .2s; }
.efu-vid-list button.is-on, .efu-vid-list button:hover { opacity: 1; }
.efu-vid-list button.is-on { box-shadow: inset 2px 0 0 var(--w-ice); padding-left: 14px; }
.efu-vid-thumb { aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.efu-vid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.efu-vid-list small { display: block; font-family: "Tusker", sans-serif; font-size: 22px; color: var(--w-ice); }
.efu-vid-list b { display: block; margin-top: 2px; font-size: 15px; font-weight: 600; }
@media (max-width: 900px) { .efu-vid-layout { grid-template-columns: 1fr; gap: 24px; } .efu-vid-list button { grid-template-columns: 104px 1fr; } }

/* v33 : angles vifs partout (cartes, photos, champs, boutons) */
.aftermovie-slide,
.am-item,
.am-item img,
.am-player,
.am-thumb,
.ct input:not([type="checkbox"]),
.ct textarea,
.dj-badge,
.dj-finalist,
.dj-partner,
.dj-partner img,
.dj-points li,
.dj-status,
.dj-step.is-current .dj-step-state,
.dj-tag,
.efu-actions li,
.efu-gallery img,
.efu-news-grid article,
.efu-next-card,
.efu-patron,
.efu-patron img,
.efu-pillar-photo,
.efu-tablist button,
.et-band-note,
.et-card,
.et-chip span,
.et-form,
.et-form input:not([type="radio"]):not([type="checkbox"]),
.et-form select,
.et-form textarea,
.et-mission,
.et-mission-cards article,
.et-mission-cards h3,
.et-partner > img,
.et-perks b,
.et-rules b,
.et-submit button,
.et-tiers b,
.et-weeks small,
.ex-card,
.ex-card img,
.lu-card,
.lu-card img,
.news-card,
.news-card:last-child,
.nw-card,
.nw-card img,
.pt-card,
.pt-page .vp-form,
.pt-page .vp-form input:not([type=checkbox]),
.pt-page .vp-form select,
.pt-page .vp-form textarea,
.site-cta,
.site-more-panel,
.site-more-panel a,
.st-strip img,
.tk-board,
.tk-board *,
.tk-phase.is-current,
.tk-vip,
.tm-photo img,
.w-modal,
.w-page .countdown > div { border-radius: 0 !important; }
.et-form label, .et-form legend, .vp-form label { text-transform: none; letter-spacing: .06em !important; font-size: 12px !important; }
.et-form label.et-consent, .vp-form label.vp-consent, .et-form label.et-chip, .et-mission-grid label, .et-form small { letter-spacing: 0 !important; text-transform: none !important; }
.et-mission-grid label { font-size: 13px !important; }
.pt-grid-l:has(> :nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .pt-grid-l:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pt-mecenat-intro { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: -6px 0 30px; color: var(--w-muted); }
@media (max-width: 760px) { .pt-mecenat-intro { flex-direction: column; align-items: flex-start; } }
.pt-subgroup h3 { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: #ffffffa6; }
.pt-eyebrow { display: block; margin-bottom: 16px; }
.vp-submit, .vp-submit button, .pt-page .vp-submit button, .efu-page .vp-submit button { border-radius: 0 !important; }
.vp-btn, .vp-submit button { min-height: 52px; }
.pt-join-layout { align-items: stretch; }
.pt-join-copy { display: flex; flex-direction: column; }
.pt-join-copy .pt-textlink { margin-top: auto; align-self: flex-start; min-height: 52px; display: inline-flex; align-items: center; }
.efu-why .pt-eyebrow { margin-bottom: 18px; }
@media (max-width: 900px) { .pt-join-copy .pt-textlink { margin-top: 20px; } }

/* Dernières actions : défilement avec flèches */
.efu-rail { position: relative; }
.efu-rail-nav { position: absolute; right: 0; top: -78px; display: flex; gap: 0; }
.efu-rail-nav button { width: 52px; height: 52px; border: 1px solid #ffffff4d; background: none; color: #fff; font-size: 20px; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.efu-rail-nav button + button { border-left: 0; }
.efu-rail-nav button:hover:not(:disabled) { background: #fff; color: var(--night, #050c15); }
.efu-rail-nav button:disabled { opacity: .3; cursor: default; }
.efu-rail-track { display: grid !important; grid-auto-flow: column; grid-template-columns: none !important; grid-auto-columns: calc((100% - 0px) / 4); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.efu-rail-track::-webkit-scrollbar { display: none; }
.efu-rail-track article { scroll-snap-align: start; border-left: 1px solid var(--w-line) !important; padding: 24px 24px 8px !important; }
.efu-rail-track article:first-child { border-left: 0 !important; padding-left: 0 !important; }
@media (max-width: 900px) { .efu-rail-track { grid-auto-columns: 50%; } }
@media (max-width: 600px) {
  .efu-rail-track { grid-auto-columns: 86%; }
  .efu-rail-nav { position: static; justify-content: flex-end; margin-bottom: 16px; }
  .efu-rail-nav button { width: 46px; height: 46px; }
}

/* Pages juridiques */
.lg-head { padding: 170px 0 40px; border-bottom: 1px solid var(--w-line); }
.lg-head h1 { font-family: "Tusker", sans-serif; font-weight: 700; text-transform: uppercase; font-size: clamp(56px, 8vw, 110px); line-height: 1; background: var(--ice-grad); -webkit-background-clip: text; background-clip: text; color: transparent; padding-top: .1em; }
.lg-head p { margin-top: 14px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--w-muted); }
.lg-body { padding: 40px 0 90px; }
.lg-text { max-width: 820px; }
.lg-text h2 { margin: 44px 0 14px; font-size: 13px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #fff; padding-top: 18px; border-top: 1px solid var(--w-line); }
.lg-text h2:first-child { margin-top: 0; }
.lg-text p, .lg-text li { font-size: 16px; line-height: 1.7; color: #c9d6e0; }
.lg-text p + p { margin-top: 12px; }
.lg-text ul { margin-top: 10px; padding-left: 0; list-style: none; }
.lg-text li { position: relative; padding: 8px 0 8px 26px; }
.lg-text li::before { content: ""; position: absolute; left: 0; top: 21px; width: 14px; height: 1px; background: var(--w-ice); }
.lg-text a { color: var(--w-ice); text-decoration: underline; text-underline-offset: 3px; }
.lg-text b { color: #fff; }
@media (max-width: 760px) { .lg-head { padding-top: 120px; } }

/* Vidéos : titres sur les vignettes et la vidéo à la une */
.am-item { position: relative; overflow: hidden; }
.am-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 10px 8px; background: linear-gradient(180deg, transparent, #050c15e6 70%); display: grid; gap: 2px; pointer-events: none; }
.am-cap small { font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--w-ice); }
.am-cap b { font-size: 12.5px; font-weight: 600; line-height: 1.25; color: #fff; }
.am-item .am-mini-play { top: 40%; }
.am-now { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 60px 22px 18px; background: linear-gradient(180deg, transparent, #050c15f0); pointer-events: none; font-family: "Tusker", sans-serif; font-weight: 700; font-size: clamp(22px, 2.4vw, 34px); text-transform: uppercase; letter-spacing: .02em; color: #fff; line-height: 1.05; }
.am-now small { display: block; margin-bottom: 4px; font-family: "Figtree", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .2em; color: var(--w-ice); }
@media (max-width: 760px) { .am-cap { padding: 18px 7px 6px; } .am-cap b { font-size: 11px; } .am-cap small { font-size: 8px; } }

/* Zone hiver : fond de la campagne + neige derrière la FAQ et le contact */
.w-snowzone { position: relative; overflow: hidden; isolation: isolate; }
.w-snowzone-bg { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, var(--w-bg) 0%, #050d17d9 18%, #050d17b3 50%, #050d17e6 82%, var(--w-bg) 100%), url("assets/winter-landscape.webp") center 30% / cover no-repeat; }
.w-snowzone > .portal-fx { z-index: -1; inset: 0; pointer-events: none; }
.w-snowzone .fq-section, .w-snowzone .ct { background: transparent; }
@media (min-width: 900px) { .w-snowzone-bg { background-attachment: scroll, fixed; } }
@media (prefers-reduced-motion: reduce) { .w-snowzone > .portal-fx { animation: none; } }

/* Menu avec les noms complets des partenaires : resserré puis menu « Menu » sous 1180 px */
.site-nav a, .site-more summary { white-space: nowrap; }
@media (max-width: 1400px) { .site-nav { gap: 20px; font-size: 14.5px; } }
.site-burger summary { border-radius: 0 !important; }
/* 5 vignettes : la première sur toute la largeur de la colonne */
@media (min-width: 761px) { .am-list > .am-item:first-child { grid-column: 1 / -1; } }
.w-snowzone > section, .w-snowzone .nw, .w-snowzone .pt-join, .w-snowzone .lg-body { background: transparent !important; position: relative; }
.site-back { border-radius: 0 !important; }
.fq-answer a { color: var(--w-ice); text-decoration: underline; text-underline-offset: 3px; }

/* Safari iPhone : une image en hauteur 100 % dans un <button> s'affiche vide → positionnement absolu */
.am-poster img, .efu-vid-poster img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.am-poster, .efu-vid-poster { display: block; overflow: hidden; -webkit-appearance: none; appearance: none; }

/* Safari iPhone : le lecteur à la une ne prenait aucune hauteur (aspect-ratio dans une grille).
   Hauteur 16:9 garantie par une cale en padding, compatible tous navigateurs. */
.am-player { aspect-ratio: auto !important; height: auto !important; min-height: 0; }
.am-player::before { content: ""; display: block; padding-top: 56.25%; }
.efu-vid-poster, .efu-vid-main iframe { aspect-ratio: auto; height: 0; padding-top: 56.25%; position: relative; }
.efu-vid-main iframe { position: relative; height: auto; padding-top: 0; aspect-ratio: 16 / 9; }
.efu-vid-main.is-vertical .efu-vid-poster { padding-top: 56.25%; }
