/* In Her Words, a VELERI campaign: the survey about Drop 01. Built on the site's own tokens (styles.css).
   Told the way the campaign is shot: on black, on the body. Product views come lifted onto the same dark backdrop. */

.chicas-page { --serif: "Bodoni Moda", "Playfair Display", "Didot", "Bodoni 72", "Times New Roman", serif; min-height: 100vh; display: flex; flex-direction: column; background: var(--noir); } /* Playfair carries the Cyrillic Bodoni lacks */
/* The four languages of the campaign, above everything */
.ch-langs { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 4px 2px; padding: 10px var(--gutter); border-bottom: 1px solid var(--line); }
.ch-langs button { appearance: none; padding: 6px 10px; border: 0; background: none; color: var(--ivoire-3); font: 400 10.5px/1.2 var(--sans); letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; transition: color 0.3s; }
.ch-langs button + button { border-left: 1px solid var(--line); }
.ch-langs button:hover { color: var(--ivoire); }
.ch-langs button[aria-pressed="true"] { color: var(--or-hi); }
.ch-langs button:focus-visible { outline: 1px solid var(--or); outline-offset: 2px; }
.ch-bar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: max(18px, env(safe-area-inset-top)) var(--gutter) 18px;
  background: rgba(14, 13, 13, 0.86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.ch-mark img { width: 128px; display: block; }
.ch-campaign { margin: 0; display: flex; align-items: baseline; gap: 10px; font: 400 10px/1 var(--sans); letter-spacing: 0.34em; text-transform: uppercase; color: var(--ivoire-3); }
.ch-campaign b { font: italic 400 21px/1 var(--serif); letter-spacing: 0; text-transform: none; color: var(--or-hi); }
.ch-progress { position: sticky; top: 61px; z-index: 19; height: 1px; background: var(--line); }
.ch-progress span { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: linear-gradient(90deg, var(--or-deep), var(--or-hi)); transition: width 0.7s var(--ease-out); }

.ch-main { flex: 1; width: 100%; }
.ch-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: clamp(48px, 10vh, 110px) var(--gutter); }
.ch-foot { padding: 28px var(--gutter) max(28px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); text-align: center; }
.ch-foot p { margin: 4px 0; font-size: 11.5px; letter-spacing: 0.08em; color: var(--ivoire-3); }
.ch-foot span { color: var(--or); margin: 0 0.5em; }
.ch-foot a { color: var(--ivoire-2); text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.ch-noscript { padding: 60px var(--gutter); text-align: center; color: var(--ivoire-2); }
body[data-screen="steps"] .ch-foot { display: none; }

/* Screens enter softly */
.ch-screen { animation: chIn 0.9s var(--ease-out) both; }
@keyframes chIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes chRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

.ch-label { margin: 0 0 18px; font: 400 10.5px/1.4 var(--sans); letter-spacing: 0.4em; text-transform: uppercase; color: var(--or); }
.ch-label span { color: var(--ivoire-3); margin: 0 0.3em; }
.ch-kicker { margin: -6px 0 14px; font: 400 10.5px/1.4 var(--sans); letter-spacing: 0.34em; text-transform: uppercase; color: var(--ivoire-3); }
.ch-kicker span { color: var(--or); margin: 0 0.3em; }
.ch-title { margin: 0 0 22px; font-family: var(--serif); font-weight: 400; font-size: clamp(42px, 5.6vw, 84px); line-height: 1; letter-spacing: -0.01em; color: var(--ivoire); }
.ch-title em, .ch-h2 em { font-style: italic; color: var(--or-hi); }
.ch-h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(32px, 4vw, 56px); line-height: 1.05; color: var(--ivoire); }
.ch-lede { margin: 0 0 18px; max-width: 34em; font-size: 16.5px; line-height: 1.75; color: var(--ivoire-2); }
.ch-lede--soft { color: var(--ivoire-3); font-size: 15px; }
.ch-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 8px 0 34px; padding: 0; list-style: none; font: 400 10.5px/1.6 var(--sans); letter-spacing: 0.3em; text-transform: uppercase; color: var(--ivoire-3); }
.ch-meta li::before { content: "◆"; margin-right: 10px; color: var(--or); font-size: 7px; vertical-align: 2px; }
.ch-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Buttons: gold line, filled with gold on the way in, never white */
.ch-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 56px; padding: 0 34px; border: 1px solid var(--or); background: rgba(196, 158, 92, 0.06); color: var(--ivoire);
  font: 500 11px/1 var(--sans); letter-spacing: 0.32em; text-transform: uppercase; text-decoration: none; cursor: pointer; overflow: hidden;
  transition: color 0.45s var(--ease);
}
.ch-btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--or-deep), var(--or) 40%, var(--or-hi)); transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--ease); }
.ch-btn:hover, .ch-btn:focus-visible { color: var(--noir); }
.ch-btn:hover::before, .ch-btn:focus-visible::before { transform: scaleX(1); }
.ch-btn > * { position: relative; }
.ch-btn[disabled] { opacity: 0.45; cursor: progress; }
.ch-ghost { display: inline-flex; align-items: center; min-height: 56px; padding: 0 26px; border: 1px solid var(--line-strong); background: none; color: var(--ivoire-2); font: 400 11px/1 var(--sans); letter-spacing: 0.3em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: border-color 0.3s, color 0.3s; }
.ch-ghost:hover { border-color: var(--or); color: var(--ivoire); }

/* The campaign's opening */
.ch-open { position: relative; padding: clamp(64px, 13vh, 150px) var(--gutter) clamp(48px, 9vh, 100px); text-align: center; overflow: hidden; }
.ch-open::before { content: ""; position: absolute; inset: -20% -10% auto; height: 120%; background: radial-gradient(50% 45% at 50% 40%, rgba(196, 158, 92, 0.13), rgba(196, 158, 92, 0) 70%); pointer-events: none; }
.ch-open-copy { position: relative; max-width: 860px; margin: 0 auto; }
.ch-open .ch-label { animation: chRise 1s var(--ease-out) both; }
.ch-name {
  margin: 0; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(58px, 11.5vw, 178px); line-height: 0.92; letter-spacing: -0.02em;
  background: linear-gradient(180deg, #f1dcae 0%, #d8b878 38%, #c49e5c 62%, #8a6a35 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
  padding: 0 0.08em 0.08em; animation: chRise 1.3s 0.1s var(--ease-out) both;
}
.ch-tagline { margin: 18px 0 26px; font: italic 400 clamp(21px, 2.4vw, 30px)/1.3 var(--serif); color: var(--ivoire); animation: chRise 1.2s 0.25s var(--ease-out) both; }
.ch-tagline em { color: var(--or-hi); }
.ch-open .ch-lede { margin: 0 auto 24px; animation: chRise 1.2s 0.35s var(--ease-out) both; }
.ch-open .ch-meta { justify-content: center; margin-bottom: 0; animation: chRise 1.2s 0.45s var(--ease-out) both; }

/* Drop 01: five sets, as five strips of the campaign */
.ch-choose { padding: 0 var(--gutter) clamp(48px, 9vh, 96px); }
.ch-choose-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; max-width: 1600px; margin: 0 auto 26px; }
.ch-choose-head .ch-label { margin-bottom: 12px; }
.ch-strips { display: flex; gap: 6px; height: min(80vh, 820px); min-height: 460px; max-width: 1600px; margin: 0 auto; }
.ch-strip {
  position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; color: inherit; text-decoration: none; background: #141211;
  transition: flex-grow 0.9s var(--ease-out); animation: chRise 1.1s var(--ease-out) both; animation-delay: calc(0.3s + var(--i) * 0.09s);
}
.ch-strip img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.74) saturate(0.92); transform: scale(1.06); transition: transform 1.6s var(--ease-out), filter 0.9s var(--ease); }
.ch-strip-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 13, 13, 0.92) 0%, rgba(14, 13, 13, 0.25) 42%, rgba(14, 13, 13, 0) 70%); }
.ch-strip-copy { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: clamp(18px, 2vw, 30px); }
.ch-strip-no { font: 400 10px/1 var(--sans); letter-spacing: 0.34em; color: var(--or); }
.ch-strip-name { font: 400 clamp(26px, 2.6vw, 42px)/1 var(--serif); color: var(--ivoire); white-space: nowrap; }
.ch-strip-sub, .ch-strip-go { max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.7s var(--ease-out), opacity 0.5s var(--ease); }
.ch-strip-sub { font: italic 400 16px/1.3 var(--serif); color: var(--ivoire-2); }
.ch-strip-go { margin-top: 8px; font: 400 10.5px/1.6 var(--sans); letter-spacing: 0.3em; text-transform: uppercase; color: var(--or-hi); white-space: nowrap; }
.ch-strip-go i { font-style: normal; display: inline-block; transition: transform 0.4s var(--ease-out); }
@media (hover: hover) {
  .ch-strip:hover, .ch-strip:focus-visible { flex-grow: 2.3; }
  .ch-strips:hover .ch-strip:not(:hover) img { filter: brightness(0.42) saturate(0.7); }
}
.ch-strip:hover img, .ch-strip:focus-visible img { filter: brightness(0.96) saturate(1); transform: scale(1); }
.ch-strip:hover .ch-strip-sub, .ch-strip:hover .ch-strip-go, .ch-strip:focus-visible .ch-strip-sub, .ch-strip:focus-visible .ch-strip-go { max-height: 3em; opacity: 1; }
.ch-strip:hover .ch-strip-go i { transform: translateX(5px); }
.ch-strip:focus-visible { outline: 1px solid var(--or); outline-offset: -1px; }
.ch-small { max-width: 1600px; margin: 26px auto 0; font-size: 12.5px; color: var(--ivoire-3); }
.ch-small a { color: var(--ivoire-2); }

/* A set's opening: the set on the body, dissolving from photograph to photograph */
.ch-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: calc(100svh - 62px); }
.ch-intro-media { position: relative; overflow: hidden; background: #141211; }
.ch-intro-media img, .ch-aside img, .ch-done-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity 1.6s var(--ease), transform 8s linear; }
.ch-intro-media img.is-on, .ch-aside img.is-on, .ch-done-bg img.is-on { opacity: 1; transform: scale(1); }
.ch-intro-media img, .ch-aside img { filter: brightness(0.88) contrast(1.04); } /* the pale rooms of some shoots sit quieter on black */
.ch-intro-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 13, 13, 0) 62%, rgba(14, 13, 13, 0.9) 100%), linear-gradient(0deg, rgba(14, 13, 13, 0.55), rgba(14, 13, 13, 0) 30%); pointer-events: none; }
.ch-dots { position: absolute; left: clamp(18px, 3vw, 40px); bottom: clamp(18px, 3vw, 36px); z-index: 2; display: flex; gap: 8px; }
.ch-dots button { width: 26px; height: 2px; padding: 8px 0; border: 0; background: linear-gradient(var(--line-strong), var(--line-strong)) center / 100% 1px no-repeat; cursor: pointer; }
.ch-dots button[aria-current="true"] { background-image: linear-gradient(var(--or), var(--or)); background-size: 100% 2px; }
.ch-intro-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(48px, 8vh, 96px) clamp(28px, 6vw, 110px); animation: chRise 1.1s 0.15s var(--ease-out) both; }

/* The questions, beside the set worn */
.ch-steps { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: start; }
.ch-aside { position: sticky; top: 62px; height: calc(100svh - 62px); overflow: hidden; background: #141211; }
.ch-aside-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 13, 13, 0.85), rgba(14, 13, 13, 0) 40%), linear-gradient(90deg, rgba(14, 13, 13, 0) 70%, rgba(14, 13, 13, 0.7)); }
.ch-aside-name { position: absolute; left: clamp(20px, 3vw, 40px); bottom: clamp(20px, 3vw, 36px); margin: 0; display: grid; gap: 8px; font: 400 clamp(28px, 2.6vw, 40px)/1 var(--serif); color: var(--ivoire); }
.ch-aside-name span { font: 400 9.5px/1 var(--sans); letter-spacing: 0.26em; text-transform: uppercase; white-space: nowrap; color: var(--or); }
.ch-step { width: 100%; max-width: 820px; padding: clamp(40px, 8vh, 80px) clamp(24px, 5vw, 84px) 0; }

/* The end */
.ch-thanks { position: relative; min-height: calc(100svh - 62px); display: flex; align-items: center; overflow: hidden; }
.ch-done-bg { position: absolute; inset: 0; }
.ch-done-bg img.is-on { opacity: 0.38; }
.ch-done-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 13, 13, 0.92) 30%, rgba(14, 13, 13, 0.55)), linear-gradient(0deg, rgba(14, 13, 13, 0.9), rgba(14, 13, 13, 0) 50%); }

/* A step */
.ch-step-head { display: flex; align-items: center; gap: 18px; margin-bottom: clamp(26px, 5vh, 44px); }
.ch-step-head img { display: none; width: 54px; height: 72px; object-fit: cover; }
.ch-step-count { margin: 0 0 6px; font: 400 10.5px/1 var(--sans); letter-spacing: 0.36em; text-transform: uppercase; color: var(--ivoire-3); }
.ch-step-count b { color: var(--or); font-weight: 500; }
.ch-step-title { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; color: var(--ivoire); outline: none; }
.ch-step-note { margin: 8px 0 0; font-size: 13px; color: var(--ivoire-3); }

.ch-q { margin: 0 0 clamp(34px, 5vh, 52px); padding: 0; border: 0; min-width: 0; }
.ch-q legend, .ch-q .ch-q-title { display: block; padding: 0; margin: 0 0 6px; font-family: var(--serif); font-size: clamp(21px, 2vw, 26px); line-height: 1.25; color: var(--ivoire); }
.ch-q-help { margin: 0 0 16px; font-size: 13px; color: var(--ivoire-3); }
.ch-q-help:empty { margin-bottom: 14px; }
.ch-q .ch-optional { margin-left: 8px; font: 400 10px/1 var(--sans); letter-spacing: 0.22em; text-transform: uppercase; color: var(--ivoire-3); }
.ch-q.is-missing legend, .ch-q.is-missing .ch-q-title { color: var(--or-hi); }
.ch-q-error { margin: 10px 0 0; font-size: 13px; color: var(--error); }

/* Chips: single and multiple choice */
.ch-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ch-chip {
  display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 18px;
  border: 1px solid var(--line-strong); background: transparent; color: var(--ivoire-2);
  font: 300 14.5px/1.2 var(--sans); text-align: left; cursor: pointer;
  transition: border-color 0.3s, background-color 0.3s, color 0.3s, transform 0.3s var(--ease-out);
}
.ch-chip:hover { border-color: var(--ivoire-2); color: var(--ivoire); }
.ch-chip[aria-pressed="true"] { border-color: var(--or); background: var(--or); color: var(--noir); font-weight: 400; }
.ch-chip[aria-pressed="true"] { animation: chPop 0.35s var(--ease-out); }
@keyframes chPop { 50% { transform: scale(1.04); } }
.ch-chip small { font: 400 9.5px/1 var(--sans); letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.75; }
.ch-chip[aria-disabled="true"] { opacity: 0.4; }

/* Pictures to choose from */
.ch-images { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ch-image { display: block; padding: 0 0 12px; border: 1px solid var(--line); background: #141211; color: var(--ivoire-2); text-align: left; cursor: pointer; transition: border-color 0.3s, background-color 0.3s; }
.ch-image span { display: block; aspect-ratio: 4 / 5; margin-bottom: 10px; overflow: hidden; background: #141211; }
.ch-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease-out); }
.ch-image:hover img { transform: scale(1.05); }
.ch-image b { display: block; padding: 0 12px; font-family: var(--serif); font-weight: 400; font-size: 17px; line-height: 1.2; color: var(--ivoire); }
.ch-image:hover { border-color: var(--ivoire-3); }
.ch-image[aria-pressed="true"] { border-color: var(--or); background: rgba(196, 158, 92, 0.1); box-shadow: inset 0 0 0 1px var(--or); }

/* Colours */
.ch-swatches { display: flex; flex-wrap: wrap; gap: 14px 18px; }
.ch-swatch { display: grid; justify-items: center; gap: 8px; width: 82px; padding: 0; border: 0; background: none; color: var(--ivoire-2); cursor: pointer; }
.ch-swatch i { width: 54px; height: 54px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(238, 231, 219, 0.2), 0 0 0 0 var(--or); transition: box-shadow 0.3s var(--ease-out), transform 0.3s var(--ease-out); }
.ch-swatch:hover i { transform: scale(1.06); }
.ch-swatch[aria-pressed="true"] i { box-shadow: inset 0 0 0 1px rgba(238, 231, 219, 0.2), 0 0 0 3px var(--noir), 0 0 0 4.5px var(--or); }
.ch-swatch b { font: 400 13px/1.2 var(--sans); }
.ch-swatch small { font: 400 9px/1 var(--sans); letter-spacing: 0.18em; text-transform: uppercase; color: var(--or); }

/* 1 to 10, and 1 to 5 */
.ch-rating { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 6px; max-width: 640px; }
.ch-rating button { aspect-ratio: 1; min-height: 40px; border: 1px solid var(--line-strong); border-radius: 50%; background: none; color: var(--ivoire-2); font: 400 14px/1 var(--sans); cursor: pointer; transition: background-color 0.3s, border-color 0.3s, color 0.3s, transform 0.3s var(--ease-out); }
.ch-rating button:hover { border-color: var(--ivoire-2); }
.ch-rating button.is-lit { border-color: var(--or); background: rgba(196, 158, 92, 0.22); color: var(--ivoire); }
.ch-rating button[aria-pressed="true"] { background: var(--or); border-color: var(--or); color: var(--noir); transform: scale(1.08); }
.ch-ends { display: flex; justify-content: space-between; max-width: 640px; margin-top: 10px; font-size: 12px; color: var(--ivoire-3); }
.ch-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; max-width: 760px; }
.ch-scale button { display: grid; gap: 8px; justify-items: center; padding: 16px 6px 14px; border: 1px solid var(--line-strong); background: none; color: var(--ivoire-2); font: 300 13px/1.25 var(--sans); cursor: pointer; transition: background-color 0.3s, border-color 0.3s, color 0.3s; }
.ch-scale button b { font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1; color: var(--ivoire); }
.ch-scale button:hover { border-color: var(--ivoire-2); }
.ch-scale button[aria-pressed="true"] { background: var(--or); border-color: var(--or); color: var(--noir); }
.ch-scale button[aria-pressed="true"] b { color: var(--noir); }

/* Prices */
.ch-price { max-width: 640px; }
.ch-price-value { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.ch-price-value output { font-family: var(--serif); font-size: clamp(40px, 5vw, 56px); line-height: 1; color: var(--ivoire); transition: color 0.3s; }
.ch-price-value small { font-size: 12.5px; color: var(--ivoire-3); }
.ch-price.is-untouched output { color: var(--ivoire-3); }
.ch-range { -webkit-appearance: none; appearance: none; width: 100%; height: 28px; margin: 0; background: transparent; cursor: pointer; }
.ch-range::-webkit-slider-runnable-track { height: 2px; background: linear-gradient(90deg, var(--or) 0 var(--fill, 0%), var(--line-strong) var(--fill, 0%) 100%); }
.ch-range::-moz-range-track { height: 2px; background: var(--line-strong); }
.ch-range::-moz-range-progress { height: 2px; background: var(--or); }
.ch-range::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; margin-top: -11px; border-radius: 50%; border: 1px solid var(--or); background: var(--noir); box-shadow: 0 0 0 4px rgba(196, 158, 92, 0.18); transition: transform 0.2s var(--ease-out); }
.ch-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--or); background: var(--noir); }
.ch-range:active::-webkit-slider-thumb { transform: scale(1.15); }
.ch-range:focus-visible { outline: 1px solid var(--or-hi); outline-offset: 6px; }
.ch-range-ends { display: flex; justify-content: space-between; margin-top: 4px; font-size: 12px; color: var(--ivoire-3); }

/* Text, select, contact */
.ch-field { display: grid; gap: 8px; max-width: 560px; margin-bottom: 22px; }
.ch-field label { font: 400 10.5px/1.4 var(--sans); letter-spacing: 0.3em; text-transform: uppercase; color: var(--ivoire-2); }
.ch-field label span { letter-spacing: 0.05em; text-transform: none; color: var(--ivoire-3); }
.ch-input, .ch-select, .ch-text { width: 100%; padding: 15px 16px; border: 1px solid var(--line-strong); border-radius: 0; background: transparent; color: var(--ivoire); font: 300 16px/1.5 var(--sans); transition: border-color 0.3s; }
.ch-select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ivoire-2) 50%), linear-gradient(135deg, var(--ivoire-2) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 17px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.ch-select option { color: #161413; }
.ch-text { min-height: 120px; resize: vertical; }
.ch-input:focus, .ch-select:focus, .ch-text:focus { outline: none; border-color: var(--or); }
.ch-count { font-size: 12px; color: var(--ivoire-3); text-align: right; }
.ch-check { display: flex; gap: 14px; align-items: flex-start; max-width: 620px; margin: 0 0 16px; cursor: pointer; font-size: 14px; line-height: 1.6; color: var(--ivoire-2); }
.ch-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ch-check i { position: relative; flex: none; width: 22px; height: 22px; margin-top: 1px; border: 1px solid var(--line-strong); transition: background-color 0.3s, border-color 0.3s; }
.ch-check i::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 11px; border: solid var(--noir); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) scale(0.4); opacity: 0; transition: transform 0.3s var(--ease-out), opacity 0.2s; }
.ch-check input:checked + i { background: var(--or); border-color: var(--or); }
.ch-check input:checked + i::after { opacity: 1; transform: rotate(45deg) scale(1); }
.ch-check input:focus-visible + i { outline: 1px solid var(--or-hi); outline-offset: 3px; }
.ch-check a { color: var(--ivoire); }
.ch-reward { display: flex; gap: 16px; align-items: center; max-width: 620px; margin: 6px 0 30px; padding: 18px 20px; border: 1px solid rgba(196, 158, 92, 0.45); }
.ch-reward b { font-family: var(--serif); font-weight: 400; font-size: 34px; line-height: 1; color: var(--or-hi); }
.ch-reward p { margin: 0; font-size: 14px; color: var(--ivoire-2); }

/* Step navigation */
.ch-nav { position: sticky; bottom: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 10px 0 0; padding: 18px 0 max(18px, env(safe-area-inset-bottom)); background: linear-gradient(0deg, rgba(14, 13, 13, 0.98) 72%, rgba(14, 13, 13, 0)); }
.ch-nav .ch-status { flex: 1; margin: 0; font-size: 13px; color: var(--error); text-align: center; }

/* The end: a note, and the code */
.ch-done { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(32px, 6vw, 90px); align-items: center; width: 100%; max-width: 1180px; margin: 0 auto; padding: clamp(48px, 10vh, 110px) var(--gutter); }
.ch-voucher { position: relative; padding: clamp(28px, 4vw, 44px); border: 1px solid var(--or); background: radial-gradient(120% 120% at 0% 0%, rgba(196, 158, 92, 0.16), rgba(196, 158, 92, 0) 60%), rgba(14, 13, 13, 0.82); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); text-align: center; animation: chCard 1.2s var(--ease-out) both; }
@keyframes chCard { from { opacity: 0; transform: perspective(900px) rotateX(16deg) translateY(30px); } to { opacity: 1; transform: none; } }
.ch-voucher img { width: 64px; margin: 0 auto 18px; }
.ch-voucher .ch-label { margin-bottom: 14px; }
.ch-voucher .ch-code { margin: 0 auto 18px; max-width: none; font: 400 clamp(18px, 2vw, 26px)/1.25 var(--sans); letter-spacing: 0.1em; color: var(--or-hi); white-space: nowrap; user-select: all; }
.ch-voucher p { margin: 0 auto 18px; max-width: 26em; font-size: 13px; line-height: 1.6; color: var(--ivoire-3); }
.ch-copy { padding: 11px 18px; border: 1px solid var(--line-strong); background: none; color: var(--ivoire-2); font: 400 10px/1 var(--sans); letter-spacing: 0.3em; text-transform: uppercase; cursor: pointer; }
.ch-copy:hover { border-color: var(--or); color: var(--ivoire); }
.ch-persona { margin: 0 0 6px; font-family: var(--serif); font-style: italic; font-size: clamp(32px, 4vw, 52px); line-height: 1.05; color: var(--ivoire); }

@media (max-width: 1080px) {
  .ch-steps { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); }
}
@media (max-width: 899px) {
  .ch-progress { top: 57px; }
  .ch-mark img { width: 110px; }
  .ch-campaign { gap: 8px; letter-spacing: 0.24em; }
  .ch-campaign b { font-size: 19px; }
  .ch-intro { grid-template-columns: 1fr; min-height: 0; }
  .ch-intro-media { height: 66svh; min-height: 380px; }
  .ch-intro-shade { background: linear-gradient(0deg, rgba(14, 13, 13, 1) 0%, rgba(14, 13, 13, 0) 45%); }
  .ch-intro-copy { position: relative; margin-top: -72px; padding: 0 var(--gutter) 48px; }
  .ch-dots { left: auto; right: var(--gutter); bottom: 84px; }
  .ch-steps { display: block; }
  .ch-aside { display: none; }
  .ch-step { padding: 34px var(--gutter) 0; }
  .ch-step-head img { display: block; }
  .ch-done { grid-template-columns: 1fr; }
  .ch-done-bg::after { background: linear-gradient(0deg, rgba(14, 13, 13, 0.96) 35%, rgba(14, 13, 13, 0.6)); }
}
@media (max-width: 759px) {
  .ch-strips { height: 70svh; min-height: 420px; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gutter); scrollbar-width: none; }
  .ch-strips::-webkit-scrollbar { display: none; }
  .ch-strip { flex: 0 0 76vw; scroll-snap-align: start; }
  .ch-strip img { filter: brightness(0.82); transform: none; }
  .ch-strip-sub, .ch-strip-go { max-height: 3em; opacity: 1; }
}
@media (hover: none) {
  .ch-strip-sub, .ch-strip-go { max-height: 3em; opacity: 1; }
}
@media (max-width: 599px) {
  .ch-campaign span { display: none; }
  .ch-rating { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 320px; }
  .ch-scale { grid-template-columns: 1fr; }
  .ch-scale button { grid-template-columns: 40px 1fr; justify-items: start; align-items: center; padding: 12px 16px; text-align: left; }
  .ch-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ch-swatch { width: 70px; }
  .ch-nav .ch-ghost { padding: 0 18px; }
  .ch-nav .ch-btn { padding: 0 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ch-screen, .ch-voucher, .ch-chip[aria-pressed="true"], .ch-strip, .ch-open *, .ch-intro-copy { animation: none; }
  .ch-progress span, .ch-strip, .ch-strip img, .ch-intro-media img, .ch-aside img, .ch-done-bg img { transition: none; }
}
