/* Caviar · Zodiac Duo — shared tokens from the caviar-pages guide. Load first.
   The Night Sky project colour #131A24 is sampled from the collection hero artwork. */
:root {
  --caviar-gold: #A89974;
  --caviar-gold-hover: #968758;
  --caviar-gold-on-light: #85764F;
  --caviar-gold-light: #C9BC98;
  --caviar-light: #F7F7F7;
  --caviar-text-dark: #393838;
  --caviar-black: #0D1117;
  --caviar-blue: #06224D;
  --caviar-night: #131A24;      /* Zodiac project colour */
  --caviar-ink: #F2EFE8;
  --caviar-mute: #9A968C;
  --caviar-p64: 64px; --caviar-p40: 40px; --caviar-p24: 24px; --caviar-p14: 14px;
}

/* Caviar · Zodiac Duo configurator v2 — all styles are scoped with the .zd prefix */
/* Nunito Sans is loaded by the page with a Google Fonts stylesheet link */

.zd {
  --zd-gold: var(--caviar-gold, #A89974);
  --zd-gold-h: var(--caviar-gold-hover, #968758);
  --zd-gold-l: var(--caviar-gold-light, #C9BC98);
  --zd-black: var(--caviar-black, #0D1117);
  --zd-ink: var(--caviar-ink, #F2EFE8);
  --zd-ink-2: #D9D5CB;
  --zd-mute: var(--caviar-mute, #9A968C);
  --zd-line: rgba(255, 255, 255, 0.09);
  --zd-card: #151A22;
  --zd-panel: #10151C;
  --zd-pad: 24px;
  --zd-ease: cubic-bezier(.2, .7, .2, 1);

  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 52fr) minmax(240px, 17fr) minmax(360px, 31fr);
  height: clamp(680px, 100vh, 940px);
  background: var(--zd-black);
  color: var(--zd-ink);
  font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.4;
  overflow: hidden;
  isolation: isolate;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}
.zd *, .zd *::before, .zd *::after { box-sizing: border-box; }
.zd :where(button) { -webkit-appearance: none; appearance: none; font: inherit; color: inherit; background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0; margin: 0; cursor: pointer; text-align: inherit; text-transform: none; }
.zd.zd :where(h1, h2, h3, h4, h5, h6) { color: inherit; font: inherit; line-height: inherit; letter-spacing: normal; text-transform: none; margin: 0; padding: 0; }
.zd :where(p) { margin: 0; padding: 0; }
.zd :where(ol, ul) { list-style: none; overflow: visible; margin: 0; padding: 0; }
.zd :where(input, select, textarea) { font-family: inherit; color: inherit; text-transform: none; box-shadow: none; }
.zd [hidden] { display: none !important; }
.zd button:focus-visible, .zd input:focus-visible, .zd select:focus-visible, .zd textarea:focus-visible {
  outline: 2px solid var(--zd-gold); outline-offset: 2px;
}
.zd svg { display: block; }

/* Tooltip with a 300 ms delay */
.zd [data-tip] { position: relative; }
.zd [data-tip]::after { content: attr(data-tip); position: absolute; left: 50%; top: calc(100% + 8px); transform: translate(-50%, -4px);
  padding: 5px 9px; border-radius: 6px; background: #222934; color: var(--zd-ink); font-size: 12px; font-weight: 600; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s; z-index: 20; }
.zd [data-tip]:hover::after { opacity: 1; transform: translate(-50%, 0); transition-delay: .3s; }

/* ================= preview */
.zd-stage { position: relative; z-index: 0; display: flex; flex-direction: column; min-height: 0; padding: var(--zd-pad); overflow: hidden;
  background: radial-gradient(70% 60% at 50% 52%, #121822 0%, #0B0F15 62%, #080B10 100%); }
/* Star field behind the phone */
.zd-sky { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.zd-stage__head, .zd-zoom { z-index: 1; }
/* Subtle blurred halo behind the phone with a slow breathing animation */
.zd-halo { position: absolute; left: 50%; top: 50%; z-index: -1; border-radius: 50%; pointer-events: none;
  transform: translate(-50%, -50%);
  background: radial-gradient(closest-side, rgba(214, 198, 158, .2), rgba(214, 198, 158, .085) 50%, rgba(120, 140, 190, .03) 70%, transparent 100%);
  filter: blur(26px); animation: zd-breathe 9s ease-in-out infinite; }
@keyframes zd-breathe { 0%, 100% { opacity: .7; transform: translate(-50%, -50%) scale(.97); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.03); } }
.zd-stage__head { position: relative; z-index: 3; padding-right: 260px; }
.zd-brand { display: flex; flex-direction: column; gap: 2px; }
.zd-brand__t { font-weight: 800; font-size: 28px; letter-spacing: .06em; text-transform: uppercase; }
.zd-brand__l { color: var(--zd-mute); font-size: 14px; }

.zd-zoom { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; touch-action: pan-y; overflow: hidden; }
.zd-zoom.is-zone { cursor: pointer; }
.zd-zoom.is-zoomed { touch-action: none; cursor: zoom-out; }
.zd-phone { position: relative; z-index: 0; flex: none; transform-origin: 50% 50%; }
.zd-phone.is-smooth { transition: transform .5s var(--zd-ease); }
.zd-phone::after { content: ""; position: absolute; left: 8%; right: 8%; bottom: -2.5%; height: 5%; z-index: 0;
  background: radial-gradient(50% 50% at 50% 50%, rgba(0, 0, 0, .75), transparent 70%); filter: blur(8px); }
.zd-layers, .zd-fx { position: absolute; inset: 0; }
.zd-fx { z-index: 50; pointer-events: none; }
.zd-layer { position: absolute; display: block; max-width: none; user-select: none; -webkit-user-drag: none; pointer-events: none; transition: opacity .55s cubic-bezier(.4, 0, .2, 1); }
/* Change highlight: soft outline glow and a light sweep across the zone */
.zd-flash { position: absolute; border: 1px solid rgba(255, 242, 212, .38);
  box-shadow: 0 0 34px 6px rgba(214, 196, 150, .22), inset 0 0 30px rgba(255, 240, 205, .16);
  opacity: 0; animation: zd-glow 1.4s cubic-bezier(.4, 0, .2, 1) forwards; }
@keyframes zd-glow { 0% { opacity: 0; } 32% { opacity: 1; } 100% { opacity: 0; } }
.zd-sweep { position: absolute; overflow: hidden; }
.zd-sweep i { position: absolute; top: -20%; bottom: -20%; left: 0; width: 45%; transform: translateX(-130%) skewX(-18deg);
  background: linear-gradient(90deg, rgba(255, 246, 225, 0), rgba(255, 246, 225, .26) 50%, rgba(255, 246, 225, 0));
  mix-blend-mode: screen; animation: zd-sweep 1.35s cubic-bezier(.45, 0, .25, 1) .08s forwards; }
@keyframes zd-sweep { from { transform: translateX(-130%) skewX(-18deg); } to { transform: translateX(330%) skewX(-18deg); } }
.zd-hover { position: absolute; border: 1.5px dashed rgba(201, 188, 152, .75); background: rgba(201, 188, 152, .06); animation: zd-fade .18s ease-out; }
@keyframes zd-fade { from { opacity: 0; } to { opacity: 1; } }

.zd-tools { position: absolute; z-index: 3; right: var(--zd-pad); top: var(--zd-pad); display: flex; gap: 6px; }
.zd-tool { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px 0 11px; border-radius: 999px; font-size: 13px; font-weight: 600;
  color: var(--zd-ink); background: rgba(255, 255, 255, .05); border: 1px solid var(--zd-line); transition: background .2s, color .2s, border-color .2s; }
.zd-tool svg { width: 17px; height: 17px; }
.zd-tool:hover { background: rgba(168, 153, 116, .16); color: var(--zd-gold-l); }
.zd-tool.is-on { border-color: var(--zd-gold); color: var(--zd-gold-l); }
.zd-tool:disabled { opacity: .35; cursor: default; }
.zd-tool[data-tip]::after { display: none; }

.zd-toast { position: absolute; z-index: 4; left: 50%; bottom: var(--zd-pad); transform: translate(-50%, 12px); width: max-content;
  max-width: min(460px, calc(100% - 32px)); padding: 12px 16px; border-radius: 10px; background: rgba(27, 33, 43, .96);
  border: 1px solid rgba(168, 153, 116, .35); font-size: 13.5px; line-height: 1.45; opacity: 0; pointer-events: none;
  transition: opacity .25s, transform .25s var(--zd-ease); box-shadow: 0 12px 32px rgba(0, 0, 0, .45); }
.zd-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ================= layer 1: navigator */
.zd-nav { display: flex; flex-direction: column; min-height: 0; padding: 18px 10px 14px; border-left: 1px solid var(--zd-line); background: #0F141B; overflow-y: auto; }
.zd-nav__list { list-style: none; display: flex; flex-direction: column; gap: 2px; }
.zd-nav__item button { width: 100%; display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; padding: 9px 10px; border-radius: 10px;
  position: relative; transition: background .2s; }
.zd-nav__item button:hover { background: rgba(255, 255, 255, .04); }
.zd-nav__n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700;
  border: 1px solid var(--zd-line); color: var(--zd-mute); }
.zd-nav__n svg { width: 14px; height: 14px; }
.zd-nav__t { display: flex; flex-direction: column; min-width: 0; }
.zd-nav__name { font-size: 13.5px; font-weight: 700; color: var(--zd-ink-2); }
.zd-nav__val { font-size: 12px; line-height: 1.3; color: var(--zd-mute); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.zd-nav__short { display: none; }
.zd-nav__item:not(.is-active):not(.is-done) button { opacity: .62; }
.zd-nav__item:not(.is-active):not(.is-done) button:hover { opacity: 1; }
.zd-nav__item.is-done .zd-nav__n { border-color: rgba(168, 153, 116, .55); color: var(--zd-gold-l); }
.zd-nav__item.is-active button { background: rgba(168, 153, 116, .12); }
.zd-nav__item.is-active button::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; border-radius: 2px; background: var(--zd-gold); }
.zd-nav__item.is-active .zd-nav__n { background: var(--zd-gold); border-color: var(--zd-gold); color: var(--zd-black); }
.zd-nav__item.is-active .zd-nav__name { color: var(--zd-ink); }
.zd-nav__item.is-active .zd-nav__val { color: var(--zd-gold-l); }
.zd-nav__item.is-hint button { background: rgba(168, 153, 116, .18); opacity: 1; }

.zd-nav__build { margin-top: auto; padding: 16px 10px 0; border-top: 1px solid var(--zd-line); display: flex; flex-direction: column; gap: 10px; }
.zd-nav__bt { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--zd-gold); }
.zd-nav__acts { display: flex; flex-wrap: wrap; gap: 6px; }

.zd-code { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 8px; padding: 8px 8px 8px 12px; border-radius: 10px; background: rgba(255, 255, 255, .04); border: 1px solid var(--zd-line); }
.zd-code__l { grid-column: 1; font-size: 11px; color: var(--zd-mute); }
.zd-code__v { grid-column: 1; font-weight: 800; letter-spacing: .03em; font-size: 13px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.zd-code__copy { grid-column: 2; grid-row: 1 / span 2; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 0; color: var(--zd-mute); }
.zd-code__copy:hover { color: var(--zd-gold-l); background: rgba(255, 255, 255, .05); }
.zd-code__copy svg { width: 17px; height: 17px; }
.zd-code--big { padding: 14px 12px 14px 18px; border-color: rgba(168, 153, 116, .35); }
.zd-code--big .zd-code__v { font-size: 24px; }
.zd-act { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px 7px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  border: 1px solid var(--zd-line); color: var(--zd-ink-2); }
.zd-act:hover { border-color: rgba(168, 153, 116, .5); color: var(--zd-gold-l); }
.zd-act svg { width: 15px; height: 15px; }

/* Open another build is collapsed at the bottom of the summary */
.zd-other { margin-top: 4px; border-top: 1px solid var(--zd-line); padding-top: 12px; }
.zd-other > summary { cursor: pointer; list-style: none; font-size: 12.5px; color: var(--zd-mute); }
.zd-other > summary::-webkit-details-marker { display: none; }
.zd-other > summary::before { content: "+ "; color: var(--zd-gold); }
.zd-other[open] > summary::before { content: "− "; }
.zd-other .zd-open { margin-top: 10px; }

/* Open a build by code */
.zd-open { display: flex; flex-direction: column; gap: 6px; }
.zd-open__l { font-size: 11px; color: var(--zd-mute); }
.zd-open__row { display: flex; gap: 6px; }
.zd-open__in { flex: 1 1 auto; min-width: 0; padding: 8px 10px; border-radius: 0; border: 1px solid #2A313C; background: #0B0F15; color: var(--zd-ink);
  font: inherit; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.zd-open__in::placeholder { color: #5B5E66; letter-spacing: .04em; }
.zd-open__in:focus { outline: none; border-color: var(--zd-gold); }
.zd-open__in.is-bad { border-color: #E59A8F; }
.zd-open__b { flex: none; padding: 0 12px; border-radius: 0; border: 1px solid rgba(168, 153, 116, .6); color: var(--zd-gold-l); font-size: 12.5px; font-weight: 700; }
.zd-open__b:hover { background: var(--zd-gold); color: var(--zd-black); }
.zd-open__msg { min-height: 0; font-size: 11.5px; color: #E59A8F; }
.zd-open__msg:empty { display: none; }
.zd-sum__code .zd-open { margin-top: 12px; }
@media (max-width: 860px) { .zd-open__in { font-size: 16px; } }

/* ================= layer 2: workspace */
.zd-work { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--zd-line); background: var(--zd-panel); position: relative; }
.zd-handle, .zd-mstep-wrap, .zd-mstep, .zd-mcur { display: none; }
.zd-work__head { padding: 20px var(--zd-pad) 10px; }
.zd-work__step { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--zd-gold); }
.zd-work__title { font-size: 22px; font-weight: 800; margin-top: 2px; }
.zd-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 6px var(--zd-pad) 18px;
  scrollbar-width: thin; scrollbar-color: #2A313C transparent; }
.zd-content.has-more { -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(180deg, #000 calc(100% - 56px), transparent); }
.zd-grid.zd-grid--row { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--zd-pad)); padding-right: var(--zd-pad);
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); }
.zd-grid--row::-webkit-scrollbar { display: none; }
.zd-grid.zd-grid--row .zd-sw { flex: 1 0 76px; }
.zd-body2.is-in { animation: zd-in .32s var(--zd-ease); }
.zd-body2.is-in-back { animation: zd-in-back .32s var(--zd-ease); }
@keyframes zd-in { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
@keyframes zd-in-back { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }

.zd-group + .zd-group, .zd-group + .zd-link { margin-top: 20px; }
.zd-group__t { font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--zd-gold); margin-bottom: 12px; }

/* Secondary step tabs: label and current value */
.zd-tabs2 { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; overflow-x: auto; scrollbar-width: none; margin-bottom: 16px; }
.zd-tabs2::-webkit-scrollbar { display: none; }
.zd-tabs2--top { margin: 0; padding: 4px var(--zd-pad) 12px; flex: none; }
.zd-tab2 { min-width: 0; justify-content: flex-start; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 7px 9px; border-radius: 10px;
  border: 1px solid var(--zd-line); line-height: 1.2; transition: border-color .2s, background .2s; }
.zd-tab2__t { font-size: 11px; color: var(--zd-mute); }
.zd-tab2__v { max-width: 100%; font-size: 12px; line-height: 1.25; font-weight: 600; color: var(--zd-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.zd-tab2:hover { border-color: rgba(168, 153, 116, .45); }
.zd-tab2.is-active { border-color: var(--zd-gold); background: rgba(168, 153, 116, .13); }
.zd-tab2.is-active .zd-tab2__v { color: var(--zd-ink); }

/* Unified swatch */
.zd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 14px 4px; }
.zd-grid--sign { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px 4px; }
/* Long sign and preset names wrap to two lines without breaking words */
.zd-grid--sign .zd-sw__l, .zd-grid--row .zd-sw__l { font-size: 12px; white-space: normal; text-overflow: clip; overflow-wrap: normal; word-break: normal;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }
.zd-grid--sign .zd-sw__ring { width: 56px; height: 56px; }
.zd-grid--sign .zd-sw__c { width: 48px; height: 48px; }
.zd-grid--sign .zd-sw__s { display: none; }
.zd-dep__in > .zd-mat { margin-top: 18px; padding: 10px 12px; }
.zd-dep__in > .zd-mat .zd-mat__img { width: 60px; height: 60px; }
.zd-sw { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; padding: 4px 0; border-radius: 12px; text-align: center; }
.zd-sw__ring { position: relative; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; border: 2px solid transparent; transition: border-color .2s; }
.zd-sw__c { width: 56px; height: 56px; border-radius: 50%; background: #222 center / cover no-repeat; display: grid; place-items: center; color: var(--zd-gold-l);
  box-shadow: 0 0 0 1px var(--zd-line), 0 6px 16px rgba(0, 0, 0, .35); transition: transform .2s var(--zd-ease); }
.zd-sw__ico { width: 26px; height: 26px; }
.zd-sw:hover .zd-sw__c { transform: scale(1.06); }
.zd-sw__ok { position: absolute; right: -2px; bottom: -2px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--zd-gold); color: var(--zd-black);
  border: 2px solid var(--zd-panel); opacity: 0; transform: scale(.6); transition: opacity .2s, transform .2s var(--zd-ease); }
.zd-sw__ok svg { width: 12px; height: 12px; stroke-width: 2.6; }
.zd-sw__l { max-width: 100%; font-size: 12px; line-height: 1.25; color: var(--zd-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Long Swarovski stone names wrap to two lines instead of ellipsis */
.zd-sw__l--2 { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; text-align: center; }
.zd-sw__s { font-size: 11px; color: var(--zd-mute); margin-top: -4px; white-space: nowrap; }
.zd-sw.is-sel .zd-sw__ring { border-color: var(--zd-gold); }
.zd-sw.is-sel .zd-sw__ok { opacity: 1; transform: none; }
.zd-sw.is-sel .zd-sw__l { color: var(--zd-ink); font-weight: 700; }
.zd-sw.is-off { cursor: not-allowed; }
.zd-sw.is-off .zd-sw__c { opacity: .35; transform: none; }
.zd-sw.is-off .zd-sw__ring::after { content: ""; position: absolute; left: 50%; top: 4px; bottom: 4px; width: 2px; background: rgba(229, 154, 143, .9); transform: rotate(45deg); border-radius: 2px; }
.zd-sw.is-off .zd-sw__l { color: var(--zd-mute); text-decoration: line-through; }
.zd-grid--dots { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }

.zd-cta__link { display: none; }

/* Selected material card on desktop */
.zd-mat { display: flex; gap: 14px; align-items: center; margin-top: 18px; padding: 14px; border-radius: 14px; background: rgba(255, 255, 255, .03); border: 1px solid var(--zd-line);
  animation: zd-fade .3s ease-out; }
.zd-mat__img { flex: none; width: 76px; height: 76px; border-radius: 50%; background: #222 center / cover no-repeat; box-shadow: 0 0 0 1px var(--zd-line), 0 8px 22px rgba(0, 0, 0, .4); }
.zd-mat__t { font-weight: 700; font-size: 14px; color: var(--zd-ink); }
.zd-mat__s { font-size: 12px; color: var(--zd-gold-l); margin-top: 1px; }
.zd-mat__d { margin-top: 3px; font-size: 12.5px; line-height: 1.45; color: #CFCAC0; }

/* Parent choices use cards */
.zd-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.zd-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zd-card { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px; border-radius: 12px; border: 1px solid var(--zd-line);
  background: rgba(255, 255, 255, .025); transition: border-color .2s, background .2s; }
.zd-cards--3 .zd-card { flex-direction: column; align-items: flex-start; padding: 12px; }
.zd-card:hover { border-color: rgba(168, 153, 116, .45); }
.zd-card__img { flex: none; width: 44px; height: 44px; border-radius: 50%; background: #222 center / cover no-repeat; box-shadow: 0 0 0 1px var(--zd-line); }
.zd-cards--3 .zd-card__img { width: 52px; height: 52px; }
.zd-card__txt { display: flex; flex-direction: column; min-width: 0; }
.zd-card__t { font-size: 14px; font-weight: 700; color: var(--zd-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zd-card__s { font-size: 12px; color: var(--zd-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zd-card__ok { position: absolute; top: 8px; right: 8px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--zd-gold); color: var(--zd-black); opacity: 0; transition: opacity .2s; }
.zd-card__ok svg { width: 12px; height: 12px; stroke-width: 2.6; }
.zd-card.is-sel { border-color: var(--zd-gold); background: rgba(168, 153, 116, .12); }
.zd-card.is-sel .zd-card__t { color: var(--zd-ink); }
.zd-card.is-sel .zd-card__ok { opacity: 1; }

/* Dependent options: indent, arrow, and expand or collapse animation */
.zd-dep.is-child { margin: 16px 0 0 10px; padding-left: 16px; border-left: 1px solid rgba(168, 153, 116, .45); }
.zd-dep[data-open="0"] { display: none; }
.zd-dep__t { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zd-gold); margin-bottom: 12px; }
.zd-dep__t b { font-weight: 800; margin-right: 2px; }
.zd-dep.is-opening { animation: zd-open .34s var(--zd-ease); overflow: hidden; }
.zd-dep.is-closing { animation: zd-close .34s var(--zd-ease) forwards; overflow: hidden; }
@keyframes zd-open { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 600px; } }
@keyframes zd-close { from { opacity: 1; max-height: 600px; } to { opacity: 0; max-height: 0; margin-top: 0; } }

.zd-link { display: inline-flex; align-items: center; gap: 8px; color: var(--zd-gold-l); font-size: 13.5px; font-weight: 600; }
.zd-link svg { width: 17px; height: 17px; }
.zd-link:hover { color: var(--zd-ink); }

/* Enamel presets with compact collapsed controls */
.zd-link--tune { margin-top: 14px; }
.zd-tune-dot { width: 16px; height: 16px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(255, 255, 255, .25); }
.zd-sliders { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--zd-ease); }
.zd-sliders.is-open { grid-template-rows: 1fr; }
.zd-sliders__in { overflow: hidden; display: grid; gap: 8px; }
.zd-sliders.is-open .zd-sliders__in { padding-top: 12px; }
.zd-slider { display: grid; grid-template-columns: 96px 1fr; align-items: center; gap: 12px; font-size: 12.5px; color: var(--zd-mute); }
.zd-slider input { -webkit-appearance: none; appearance: none; width: 100%; height: 10px; border-radius: 6px; margin: 8px 0; touch-action: pan-x; }
.zd-slider input::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #fff;
  border: 3px solid var(--zd-black); box-shadow: 0 0 0 1px rgba(255, 255, 255, .5), 0 2px 8px rgba(0, 0, 0, .5); cursor: grab; }
.zd-slider input::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--zd-black); cursor: grab; }
.zd-hex { justify-self: end; font-size: 12px; letter-spacing: .06em; color: var(--zd-mute); font-variant-numeric: tabular-nums; }

/* Workspace footer */
.zd-work__foot { flex: none; display: flex; gap: 8px; justify-content: space-between; padding: 12px var(--zd-pad); border-top: 1px solid var(--zd-line); }
.zd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 0 16px; border-radius: 999px; font-size: 13.5px; font-weight: 700;
  white-space: nowrap; transition: background .2s, color .2s, border-color .2s; }
.zd-btn__i svg { width: 17px; height: 17px; }
.zd-btn--ghost { color: var(--zd-mute); padding-left: 10px; }
.zd-btn--ghost:hover { color: var(--zd-ink); }
.zd-btn--next { margin-left: auto; border: 1px solid rgba(168, 153, 116, .6); color: var(--zd-gold-l); padding-right: 12px; max-width: 100%; overflow: hidden; }
.zd-btn--next span:first-child { overflow: hidden; text-overflow: ellipsis; }
.zd-btn--next:hover { background: var(--zd-gold); color: var(--zd-black); }
.zd-btn--gold { background: var(--zd-gold); color: var(--zd-black); }

.zd-cta-bar { flex: none; padding: 12px var(--zd-pad) 16px; border-top: 1px solid var(--zd-line); background: #0E1319; }
.zd-cta { display: block; width: 100%; padding: 13px 20px; border-radius: 999px; background: var(--zd-gold); color: var(--zd-black);
  font-weight: 800; font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; text-align: center; transition: background .2s; }
.zd-cta:hover { background: var(--zd-gold-h); }
.zd-cta:disabled { opacity: .6; cursor: progress; }
.zd-cta--big { padding: 17px 20px; font-size: 15px; }
.zd-cta-bar.is-main { background: #121820; border-top-color: rgba(168, 153, 116, .35); }
.zd-cta-bar.is-main .zd-cta__cap { color: var(--zd-gold-l); }
.zd-cta__cap { margin-top: 7px; font-size: 11.5px; color: var(--zd-mute); text-align: center; font-variant-numeric: tabular-nums; }

/* Summary */
.zd-summary { display: flex; flex-direction: column; gap: 16px; }
.zd-sum__hint { margin-top: 8px; font-size: 12.5px; color: var(--zd-mute); }
.zd-spec { display: flex; flex-direction: column; gap: 10px; }
.zd-spec__h { display: flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zd-gold); margin-bottom: 2px; }
.zd-spec__n { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(168, 153, 116, .55); font-size: 10.5px; letter-spacing: 0; }
.zd-spec__r { width: 100%; display: grid; grid-template-columns: 34% 1fr 16px; gap: 10px; align-items: center; padding: 8px 6px 8px 28px; border-radius: 0; font-size: 13.5px; transition: background .15s; }
.zd-spec__r:hover { background: rgba(255, 255, 255, .045); }
.zd-spec__l { color: var(--zd-mute); }
.zd-spec__v { color: var(--zd-ink); }
.zd-spec__e { color: var(--zd-mute); opacity: .5; }
.zd-spec__e svg { width: 15px; height: 15px; }
.zd-spec__r:hover .zd-spec__e { opacity: 1; color: var(--zd-gold-l); }
.zd-sum__acts { display: flex; gap: 8px; }
.zd-sum__price { font-size: 20px; font-weight: 800; color: var(--zd-gold); }
.zd-disc { font-size: 12px; color: var(--zd-mute); }

/* Material card */
.zd-pop { position: absolute; z-index: 30; max-width: 260px; padding: 12px 14px; border-radius: 12px; background: #1B212B; border: 1px solid rgba(168, 153, 116, .35);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .55); pointer-events: none; opacity: 0; transform: translateY(4px); transition: opacity .18s, transform .18s; }
.zd-pop.is-on { opacity: 1; transform: none; }
.zd-pop__t { font-weight: 700; font-size: 13.5px; color: var(--zd-ink); }
.zd-pop__d { margin-top: 4px; font-size: 12.5px; color: #CFCAC0; line-height: 1.45; }
.zd-pop__off { margin-top: 6px; font-size: 12.5px; color: #E59A8F; }

/* ================= lead form modal */
.zd-modal { position: absolute; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; background: rgba(5, 7, 10, .72);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); overscroll-behavior: contain; }
.zd-dialog { position: relative; width: min(460px, 100%); max-height: 100%; overflow-y: auto; overscroll-behavior: contain; padding: 28px;
  border-radius: 16px; background: var(--zd-card); border: 1px solid var(--zd-line); box-shadow: 0 24px 64px rgba(0, 0, 0, .6); animation: zd-up .3s var(--zd-ease); }
@keyframes zd-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.zd .zd-dialog h3 { margin: 0 0 6px; font-size: 22px; font-weight: 800; line-height: 1.4; color: var(--zd-ink); text-transform: none; }
.zd .zd-dialog p { margin: 0 0 12px; color: #CFCAC0; font-size: 14px; }
.zd-dialog__code { font-size: 13px; color: var(--zd-mute); }
.zd-dialog__code b { color: var(--zd-ink); letter-spacing: .08em; }
.zd-dialog__x { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 0; color: var(--zd-mute); }
.zd-dialog__x:hover { color: var(--zd-ink); background: rgba(255, 255, 255, .06); }
.zd-dialog__x svg { width: 18px; height: 18px; }
.zd-form { display: grid; gap: 12px; margin-top: 16px; }
.zd-field { display: grid; gap: 5px; font-size: 12.5px; color: var(--zd-mute); }
.zd-field input, .zd-field select, .zd-field textarea { width: 100%; padding: 11px 12px; border-radius: 0; border: 1px solid #2A313C;
  background: #0F141B; color: var(--zd-ink); font: inherit; font-size: 16px; resize: vertical; }
.zd-field input:focus, .zd-field select:focus, .zd-field textarea:focus { border-color: var(--zd-gold); outline: none; }
.zd-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; color: var(--zd-mute); }
.zd-consent input { margin-top: 2px; accent-color: var(--zd-gold); width: 16px; height: 16px; flex: none; }
.zd-consent a { color: var(--zd-gold-l); }
.zd-form__err { margin: 0 !important; min-height: 1em; color: #E59A8F !important; font-size: 12.5px !important; }
.zd-dialog--thanks { text-align: center; }
.zd-dialog--thanks .zd-cta { margin-top: 16px; }

/* ================= medium width: navigator becomes a stepper above the workspace */
@media (min-width: 861px) and (max-width: 1099px) {
  .zd { grid-template-columns: minmax(0, 1fr) minmax(380px, 440px); grid-template-rows: auto minmax(0, 1fr); }
  .zd-stage { grid-row: 1 / span 2; }
  .zd-stage__head { padding-right: 0; }
  .zd-tools { top: var(--zd-pad); right: var(--zd-pad); }
  .zd-tool__l { display: none; }
  .zd-tool { width: 38px; padding: 0; justify-content: center; }
  .zd-tool[data-tip]::after { display: block; }
  .zd-nav { grid-column: 2; grid-row: 1; padding: 12px 12px 10px; overflow: visible; }
  .zd-nav__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
  .zd-nav__item button { grid-template-columns: 1fr; gap: 4px; padding: 7px 8px; }
  .zd-nav__n { width: 22px; height: 22px; font-size: 11px; }
  .zd-nav__name { font-size: 12.5px; line-height: 1.2; }
  .zd-nav__full { display: none; }
  .zd-grid--sign .zd-sw__l { font-size: 11px; }
  .zd-nav__short { display: inline; }
  .zd-nav__val { font-size: 11px; white-space: normal; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
  .zd-nav__item.is-active button::before { display: none; }
  .zd-nav__build { display: none; }
  .zd-work { grid-column: 2; grid-row: 2; border-top: 1px solid var(--zd-line); }
  .zd-work__head { padding-top: 14px; }
}

/* ================= mobile: full-screen preview with a bottom sheet */
@media (max-width: 860px) {
  .zd { --zd-pad: 16px; display: block; height: 100vh; height: 100svh; min-height: 560px; --zd-sheet-h: 53%; }
  .zd[data-sheet="collapsed"] { --zd-sheet-h: 128px; }
  .zd[data-sheet="expanded"] { --zd-sheet-h: 86%; }
  .zd-stage { position: absolute; inset: 0; padding: 12px var(--zd-pad) 0; }
  .zd-stage__head { padding-right: 96px; }
  .zd-brand__t { font-size: 18px; }
  .zd-brand__l { display: none; }
  .zd-zoom { position: absolute; left: 0; right: 0; top: 58px; bottom: calc(var(--zd-sheet-h) - 14px); transition: bottom .32s var(--zd-ease); }
  .zd-tools { top: 12px; right: 12px; gap: 6px; }
  .zd-tool { width: 36px; height: 36px; padding: 0; justify-content: center; }
  .zd-tool__l { display: none; }
  .zd-tool[data-tip]::after { display: block; top: calc(100% + 6px); }
  .zd-toast { top: 64px; bottom: auto; transform: translate(-50%, -12px); font-size: 12.5px; }
  .zd-toast.is-on { transform: translate(-50%, 0); }

  .zd-nav { display: none; }
  .zd-work { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; height: var(--zd-sheet-h); border-left: 0; border-top: 1px solid var(--zd-line);
    border-radius: 18px 18px 0 0; box-shadow: 0 -16px 40px rgba(0, 0, 0, .45); transition: height .32s var(--zd-ease); overflow: hidden; }
  .zd-handle { display: grid; place-items: center; flex: none; height: 22px; touch-action: none; cursor: grab; }
  .zd-handle span { width: 40px; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .22); }
  /* Step strip uses symmetric edge fades in the sheet background colour */
  .zd-mstep-wrap { display: block; position: relative; flex: none; }
  .zd-mstep-wrap::before, .zd-mstep-wrap::after { content: ""; position: absolute; top: 0; bottom: 8px; width: 36px; z-index: 1; pointer-events: none; }
  .zd-mstep-wrap::before { left: 0; background: linear-gradient(90deg, var(--zd-panel), rgba(16, 21, 28, 0)); }
  .zd-mstep-wrap::after { right: 0; background: linear-gradient(270deg, var(--zd-panel), rgba(16, 21, 28, 0)); }
  .zd-mstep { display: flex; flex: none; gap: 2px; overflow-x: auto; padding: 0 28px 8px; scrollbar-width: none; touch-action: pan-x; overscroll-behavior-x: contain; }
  .zd-mstep::-webkit-scrollbar { display: none; }
  .zd-mstep__b { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 7px; border-radius: 999px; font-size: 13px; color: var(--zd-mute); white-space: nowrap; }
  .zd-mstep__b.is-done { color: var(--zd-ink-2); }
  .zd-mstep__b.is-active { background: rgba(168, 153, 116, .16); color: var(--zd-ink); font-weight: 700; }

  .zd-mcur { display: none; align-items: center; gap: 10px; padding: 2px var(--zd-pad) 12px; }
  .zd-mcur__t { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; text-align: left; }
  .zd-mcur__name { font-size: 14px; font-weight: 700; }
  .zd-mcur__val { font-size: 12.5px; color: var(--zd-gold-l); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .zd[data-sheet="collapsed"] .zd-mcur { display: flex; }
  .zd[data-sheet="collapsed"] .zd-work__head, .zd[data-sheet="collapsed"] .zd-tabs2--top, .zd[data-sheet="collapsed"] .zd-content,
  .zd[data-sheet="collapsed"] .zd-work__foot, .zd[data-sheet="collapsed"] .zd-cta-bar { display: none; }

  .zd-work__head { display: none; }
  .zd-tabs2--top { padding: 0 var(--zd-pad) 10px; }
  .zd-content { padding: 0 0 10px; }
  .zd-body2 > * , .zd-summary { padding-left: var(--zd-pad); padding-right: var(--zd-pad); }
  .zd-body2 .zd-grid { margin: 0 calc(-1 * var(--zd-pad)); }
  .zd-tabs2 { display: flex; overflow-x: auto; }
  .zd-tab2 { flex: 0 0 auto; padding: 6px 11px; }
  .zd-tab2__v { display: block; white-space: nowrap; }
  .zd-tabs2 { margin-bottom: 10px; }
  .zd-group + .zd-group, .zd-group + .zd-link { margin-top: 12px; }
  .zd-group__t { margin-bottom: 8px; }

  /* Swatches use a horizontal strip that hints at the next item */
  .zd-grid, .zd-grid--sign, .zd-grid--dots { display: flex; gap: 2px; overflow-x: auto; padding: 2px var(--zd-pad) 4px; scrollbar-width: none; touch-action: pan-x;
    overscroll-behavior-x: contain; scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
  .zd-grid::-webkit-scrollbar { display: none; }
  .zd-grid--sign .zd-sw__s { display: block; }
  .zd-grid--sign .zd-sw__ring { width: 60px; height: 60px; }
  .zd-grid--sign .zd-sw__c { width: 52px; height: 52px; }
  .zd-sw { flex: none; min-width: 78px; max-width: 156px; padding: 4px 6px; scroll-snap-align: start; }
  .zd-sw__ring { width: 60px; height: 60px; }
  .zd-sw__c { width: 52px; height: 52px; }
  .zd-sw:hover .zd-sw__c { transform: none; }
  .zd-cards { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; touch-action: pan-x; margin: 0 calc(-1 * var(--zd-pad)); padding: 0 var(--zd-pad); }
  .zd-cards::-webkit-scrollbar { display: none; }
  .zd-card, .zd-cards--3 .zd-card { flex: none; flex-direction: row; align-items: center; padding: 7px 30px 7px 7px; }
  .zd-card__img, .zd-cards--3 .zd-card__img { width: 34px; height: 34px; }
  .zd-card__t { font-size: 13px; }
  .zd-card__s { display: none; }
  .zd-card__ok { top: 50%; transform: translateY(-50%); right: 7px; width: 18px; height: 18px; }
  .zd-dep.is-child { margin: 8px 0 0 var(--zd-pad); padding-left: 0; border-left: 0; }
  .zd-dep.is-child .zd-grid { margin-left: calc(-1 * var(--zd-pad)); }
  .zd-dep__t { margin-bottom: 8px; }
  .zd-sliders__in { padding-right: var(--zd-pad); }
  .zd-slider { grid-template-columns: 86px 1fr; }
  .zd-hex { display: none; }

  .zd-work__foot { padding: 6px var(--zd-pad); border-top: 0; }
  .zd-btn--ghost { width: 40px; padding: 0; justify-content: center; border: 1px solid var(--zd-line); }
  .zd-btn--ghost .zd-btn__l { display: none; }
  .zd-btn--next { flex: 1 1 auto; justify-content: center; }
  .zd-mat { display: none; }
  /* Steps 1–7 use a compact Build · progress · Submit row instead of a second large button */
  .zd-cta-bar:not(.is-main) { display: flex; align-items: center; gap: 10px; padding: 8px var(--zd-pad) calc(8px + env(safe-area-inset-bottom)); }
  .zd-cta-bar:not(.is-main) .zd-cta { display: none; }
  .zd-cta-bar:not(.is-main) .zd-cta__cap { margin: 0; flex: 1 1 auto; text-align: left; }
  .zd-cta-bar:not(.is-main) .zd-cta__code { display: none; }
  .zd-cta__link { display: inline-flex; align-items: center; gap: 4px; flex: none; color: var(--zd-gold-l); font-size: 13.5px; font-weight: 700; }
  .zd-cta__link svg { width: 16px; height: 16px; }
  .zd-btn { min-height: 40px; }
  .zd-cta-bar { padding: 8px var(--zd-pad) calc(10px + env(safe-area-inset-bottom)); }
  .zd-cta { padding: 12px 16px; font-size: 13px; }
  .zd-cta__cap { margin-top: 5px; font-size: 11px; }
  .zd-spec__r { grid-template-columns: 38% 1fr 14px; padding-left: 26px; font-size: 13px; }
  .zd-code--big { padding: 8px 8px 8px 12px; }
  .zd-code--big .zd-code__v { font-size: 16px; }
  .zd-code--big .zd-code__l { display: none; }
  .zd-sum__hint { display: none; }
  .zd[data-step="summary"] .zd-work__foot { display: none; }
  .zd-summary { gap: 12px; padding-top: 2px; }
  .zd-dialog { padding: 22px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .zd *, .zd *::before, .zd *::after { animation: none !important; transition: none !important; }
}
/* Custom shade controls are open but no custom colour is selected: use a dashed ring */
.zd-sw.is-tune:not(.is-sel) .zd-sw__ring { border-color: var(--zd-gold); border-style: dashed; }
/* Keep the navigator static and wrap long build codes with custom enamel HEX values at hyphens */
.zd-nav { overflow-x: hidden; }
.zd-nav__build, .zd-code { min-width: 0; }
.zd-nav .zd-code__v { white-space: normal; overflow-wrap: anywhere; min-width: 0; }

/* =====================================================================
   Restrained style introduced on 2026-10-15: square corners, hairline borders, and quiet typography.
   Active states use a gold line without fills; material swatches remain circular.
   ===================================================================== */
.zd { --zd-r: 2px; --zd-line: rgba(255, 255, 255, .08); --zd-line-2: rgba(255, 255, 255, .14); }

/* Headings and labels */
.zd .zd-brand__t { font-weight: 700; font-size: 24px; letter-spacing: .22em; }
.zd .zd-brand__l { font-size: 12.5px; letter-spacing: .02em; }
.zd .zd-work__step, .zd .zd-group__t, .zd .zd-nav__bt, .zd .zd-spec__h { font-size: 10.5px; font-weight: 700; letter-spacing: .2em; }
.zd .zd-work__title { font-size: 20px; font-weight: 600; letter-spacing: .01em; margin-top: 6px; }
.zd .zd-group__t { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.zd .zd-group__t::after { content: ""; flex: 1; height: 1px; background: var(--zd-line); }
.zd .zd-work__head { border-bottom: 1px solid var(--zd-line); padding-bottom: 16px; margin-bottom: 14px; }

/* Toolbars and buttons */
.zd .zd-tool { border-radius: var(--zd-r); height: 34px; padding: 0 12px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--zd-line-2); background: rgba(13, 17, 23, .55); }
.zd .zd-tool:hover { background: transparent; border-color: var(--zd-gold); }
.zd .zd-btn { border-radius: var(--zd-r); min-height: 40px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; }
.zd .zd-btn--next { border-color: var(--zd-gold); }
.zd .zd-cta { border-radius: var(--zd-r); letter-spacing: .2em; font-size: 12.5px; }
.zd .zd-cta-bar, .zd .zd-cta-bar.is-main { background: var(--zd-black); }
.zd .zd-link { font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Step navigator */
.zd .zd-nav { background: var(--zd-black); padding-top: 22px; }
.zd .zd-nav__list { gap: 0; }
.zd .zd-nav__item + .zd-nav__item button { border-top: 1px solid var(--zd-line); }
.zd .zd-nav__item button { border-radius: 0; padding: 12px 10px 12px 12px; }
.zd .zd-nav__item button:hover { background: transparent; }
.zd .zd-nav__item.is-active button { background: transparent; }
.zd .zd-nav__item.is-active button::before { top: 0; bottom: 0; width: 1px; border-radius: 0; }
.zd .zd-nav__n { border-radius: var(--zd-r); width: 22px; height: 22px; font-size: 10.5px; }
.zd .zd-nav__item.is-active .zd-nav__n { background: transparent; color: var(--zd-gold-l); border-color: var(--zd-gold); }
.zd .zd-nav__name { font-weight: 600; font-size: 13px; letter-spacing: .01em; }
.zd .zd-nav__val { font-size: 11.5px; }

/* Tabs, cards, and badges */
.zd .zd-tabs2 { gap: 0; }
.zd .zd-tab2 { border-radius: 0; border: 0; border-bottom: 1px solid var(--zd-line-2); background: transparent; padding: 9px 12px 10px 0; }
.zd .zd-tab2 + .zd-tab2 { padding-left: 12px; box-shadow: inset 1px 0 0 var(--zd-line); }
.zd .zd-tab2:hover { background: rgba(255, 255, 255, .025); }
.zd .zd-tab2.is-active { background: transparent; border-bottom-color: var(--zd-gold); }
.zd .zd-tab2.is-active + .zd-tab2, .zd .zd-tab2 + .zd-tab2.is-active { box-shadow: inset 1px 0 0 var(--zd-line); }
.zd .zd-tab2__t { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.zd .zd-card { border-radius: var(--zd-r); background: transparent; }
.zd .zd-card.is-sel { background: transparent; border-color: var(--zd-gold); }
.zd .zd-mat, .zd .zd-code, .zd .zd-pop, .zd .zd-dialog, .zd .zd-toast, .zd .zd-open__row, .zd .zd-field { border-radius: var(--zd-r); }
.zd .zd-mat { background: transparent; border-color: var(--zd-line); }
.zd .zd-code { background: transparent; border-color: var(--zd-line-2); }
.zd .zd-code--big { border-color: rgba(168, 153, 116, .5); }
.zd .zd-code--big .zd-code__v { font-weight: 600; letter-spacing: .08em; }
.zd .zd-code__l { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.zd .zd-code__copy { border-radius: var(--zd-r); }
.zd .zd-act { border-radius: var(--zd-r); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Summary */
.zd .zd-spec__n { border-radius: var(--zd-r); }
.zd .zd-spec__r { border-radius: 0; border-bottom: 1px solid var(--zd-line); font-size: 13px; }
.zd .zd-spec__r:hover { background: rgba(255, 255, 255, .025); }

/* Swatches use material circles and a thin gold selection ring without heavy shadows */
.zd .zd-sw { border-radius: 0; }
.zd .zd-sw__ring { border-width: 1px; }
.zd .zd-sw__c { box-shadow: 0 0 0 1px rgba(255, 255, 255, .08); }
.zd .zd-sw:hover .zd-sw__c { transform: none; }
.zd .zd-sw__ok { width: 16px; height: 16px; border-radius: var(--zd-r); }
.zd .zd-sw__l { font-size: 11.5px; letter-spacing: .02em; }
.zd .zd-sw.is-sel .zd-sw__l { font-weight: 600; }

/* Quieter scene halo */
.zd .zd-halo { opacity: .55; }

@media (max-width: 860px) {
  .zd .zd-tool { width: 34px; padding: 0; }
  .zd .zd-brand__t { font-size: 17px; letter-spacing: .16em; }
  .zd .zd-work { border-radius: 6px 6px 0 0; background: var(--zd-black); }
  .zd .zd-mstep__b { border-radius: 0; padding: 8px 10px; font-size: 12px; letter-spacing: .04em; }
  .zd .zd-mstep__b.is-active { background: transparent; box-shadow: inset 0 -1px 0 var(--zd-gold); }
  .zd .zd-work__head { margin-bottom: 8px; padding-bottom: 10px; }
}
/* Step navigator without numbers: show only the label and selection */
.zd .zd-nav__n { display: none; }
.zd .zd-nav__item button { grid-template-columns: 1fr; padding-left: 14px; }

/* Apple-style section transition: gentle movement, blur to sharpness, and staggered blocks */
@keyframes zd-sw { from { opacity: 0; transform: translate3d(var(--sx, 18px), 6px, 0); } to { opacity: 1; transform: none; } }
.zd-work.is-sw-back { --sx: -18px; }
.zd-work:is(.is-sw, .is-sw-back) :is(.zd-work__head, .zd-tabs2--top, .zd-body2 > *) {
  animation: zd-sw .75s cubic-bezier(.32, .72, 0, 1) both; animation-delay: var(--sd, 0s); }
.zd-work:is(.is-sw, .is-sw-back) .zd-work__head { --sd: 0s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-tabs2--top { --sd: .08s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(1) { --sd: .14s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(2) { --sd: .22s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(3) { --sd: .30s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(n+4) { --sd: .38s; }
@media (prefers-reduced-motion: reduce) { .zd-work :is(.zd-work__head, .zd-tabs2--top, .zd-body2 > *) { animation: none !important; } }
/* Slower section transition in v2 */
.zd-work:is(.is-sw, .is-sw-back) :is(.zd-work__head, .zd-tabs2--top, .zd-body2 > *) { animation-duration: 1.3s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-tabs2--top { --sd: .15s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(1) { --sd: .28s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(2) { --sd: .44s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(3) { --sd: .6s; }
.zd-work:is(.is-sw, .is-sw-back) .zd-body2 > :nth-child(n+4) { --sd: .76s; }
/* Within-step tabs keep the heading and tab row static and switch the subgroup immediately */
.zd-work.is-sw-sub :is(.zd-work__head, .zd-tabs2--top) { animation: none; }
.zd-work.is-sw-sub .zd-body2 > :nth-child(1) { --sd: 0s; }
.zd-work.is-sw-sub .zd-body2 > :nth-child(2) { --sd: .16s; }
.zd-work.is-sw-sub .zd-body2 > :nth-child(3) { --sd: .32s; }
.zd-work.is-sw-sub .zd-body2 > :nth-child(n+4) { --sd: .48s; }

/* Consistent interaction language: subgroup tabs use the same frames as choice cards, with a gold active state */
.zd .zd-tabs2 { gap: 6px; }
.zd .zd-tab2, .zd .zd-tab2 + .zd-tab2 { padding: 9px 12px 10px; border: 1px solid var(--zd-line-2); border-radius: var(--zd-r); background: rgba(255, 255, 255, .025);
  box-shadow: none; cursor: pointer; transition: border-color .2s, background .2s; }
.zd .zd-tab2:hover { border-color: rgba(168, 153, 116, .55); background: rgba(255, 255, 255, .045); }
.zd .zd-tab2.is-active, .zd .zd-tab2.is-active + .zd-tab2, .zd .zd-tab2 + .zd-tab2.is-active { box-shadow: none; }
.zd .zd-tab2.is-active { border-color: var(--zd-gold); background: rgba(168, 153, 116, .12); }
.zd .zd-tab2.is-active .zd-tab2__t { color: var(--zd-gold-l); }
.zd .zd-card { background: rgba(255, 255, 255, .025); }
.zd .zd-card.is-sel { background: rgba(168, 153, 116, .12); }
.zd .zd-tab2, .zd .zd-tab2 + .zd-tab2 { padding: 9px 9px 10px; }
.zd .zd-tab2__v { font-size: 11.5px; }
/* Summary without step numbers */
.zd .zd-spec__n { display: none; }
.zd .zd-spec__r { padding-left: 0; }
/* Hide Step N of 8 above the heading */
.zd .zd-work__step { display: none; }
.zd .zd-work__title { margin-top: 0; }
.zd .zd-cta__cap:empty { display: none; }

/* Storage uses a circular swatch with the capacity, matching colour controls */
.zd-sw__c--txt { background: radial-gradient(120% 120% at 30% 20%, #2b2b2e 0%, #141416 70%); color: var(--zd-gold-l); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; line-height: 1; }
.zd-sw__c--txt b { font-size: 17px; font-weight: 600; letter-spacing: -.01em; font-variant-numeric: lining-nums; }
.zd-sw__c--txt i { font-style: normal; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.zd-sw.is-sel .zd-sw__c--txt { background: radial-gradient(120% 120% at 30% 20%, #3a3427 0%, #19160f 75%); }
.zd-grid.zd-grid--mem { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 4px; }
/* Capacity is already inside the circle, so keep the duplicate label only in aria-label */
.zd-grid--mem .zd-sw__l { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Five Circle tabs including Constellation: desktop grid uses three plus two with full labels */
.zd-tab2__t { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 861px) {
  .zd-tabs2:has(> .zd-tab2:nth-child(5)) { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Estimated price appears at the bottom of every step and prominently in the summary */
.zd-cta__price { display: block; white-space: nowrap; }
.zd-cta__pl { color: var(--zd-mute); }
.zd-cta__price b { color: var(--zd-gold-l); font-weight: 700; font-size: 14px; letter-spacing: .02em; }
.zd-cta-bar.is-main .zd-cta__code { display: block; margin-top: 3px; color: var(--zd-mute); }
.zd-sum__price { padding: 4px 0 20px; margin-bottom: 18px; border-bottom: 1px solid var(--zd-line); }
.zd-sum__pl { display: block; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--zd-gold); font-weight: 700; }
.zd-sum__price b { display: block; margin-top: 8px; font-size: 30px; line-height: 1.1; font-weight: 600; color: #F7F7F7; font-variant-numeric: tabular-nums; }
.zd-sum__pn { margin-top: 8px; font-size: 12.5px; color: var(--zd-mute); }
@media (max-width: 860px) { .zd-cta__price b { font-size: 13px; } .zd-sum__price b { font-size: 26px; } }

/* Caviar · Zodiac Duo — landing page styles using caviar-pages tokens */
:root {
  --gold: var(--caviar-gold); --gold-h: var(--caviar-gold-hover); --gold-dk: var(--caviar-gold-on-light); --gold-l: var(--caviar-gold-light);
  --ink: var(--caviar-ink); --ink-2: #CFCAC0; --mute: var(--caviar-mute); --dark: var(--caviar-text-dark);
  --light: var(--caviar-light); --black: var(--caviar-black); --night: var(--caviar-night); --line: rgba(255, 255, 255, .09);
  --p64: var(--caviar-p64); --p40: var(--caviar-p40); --p24: var(--caviar-p24); --p14: var(--caviar-p14);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.lp { margin: 0; background: var(--black); color: var(--ink); font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px; line-height: 24px; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.lp img { max-width: 100%; display: block; }
.lp a { color: inherit; }
.lp-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--p24); }
.lp-col { max-width: 750px; }
.lp-center { text-align: center; margin-left: auto; margin-right: auto; }
.lp-kicker { font-size: 13px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--gold); }
.lp-h2 { margin: 14px 0 var(--p24); font-weight: 700; font-size: 52px; line-height: 52px; letter-spacing: .01em; }
.lp-lead { font-size: 20px; line-height: 30px; color: var(--ink-2); }
.lp p { margin: 0 0 var(--p14); }
.lp-sec { padding: 120px 0; }

/* Reveal on scroll; content remains visible without JavaScript via noscript */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* Buttons */
.lp-btn { display: inline-flex; align-items: center; gap: 10px; height: 54px; padding: 0 30px; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 0; transition: background .2s, color .2s, border-color .2s; }
.lp-btn svg { width: 18px; height: 18px; }
.lp-btn--gold { background: var(--gold); color: var(--black); }
.lp-btn--gold:hover { background: var(--gold-h); }
.lp-btn--ghost { background: transparent; color: var(--ink); border: 1px solid rgba(242, 239, 232, .4); }
.lp-btn--ghost:hover { border-color: var(--gold); color: var(--gold-l); }
.lp-btn--sm { height: 44px; padding: 0 20px; font-size: 12.5px; margin-top: 10px; }

/* 1. hero */
.lp-hero { position: relative; height: 100vh; height: 100svh; min-height: 640px; overflow: hidden; display: flex; align-items: center; }
.lp-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.lp-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 11, 16, .92) 0%, rgba(8, 11, 16, .55) 38%, rgba(8, 11, 16, 0) 62%),
  linear-gradient(0deg, rgba(13, 17, 23, 1) 0%, rgba(13, 17, 23, .6) 10%, rgba(13, 17, 23, 0) 26%); }
.lp-hero__in { position: relative; z-index: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--p24); }
.lp-hero__in > * { max-width: min(520px, 40vw); }
.lp-hero__t { margin: 18px 0 12px; font-weight: 800; font-size: clamp(52px, 5.6vw, 84px); line-height: .95; letter-spacing: .04em; text-transform: uppercase; }
.lp-hero__l { font-size: 22px; line-height: 30px; color: var(--ink-2); max-width: 460px; }
.lp-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: var(--p40); }
.lp-hero__scroll { position: absolute; left: 50%; bottom: 28px; width: 26px; height: 42px; margin-left: -13px; border: 1.5px solid rgba(242, 239, 232, .45); border-radius: 14px; z-index: 1; }
.lp-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--gold-l); animation: lp-wheel 2s ease-in-out infinite; }
@keyframes lp-wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 80% { opacity: 0; transform: translateY(12px); } 100% { opacity: 0; } }

/* 2. Light introduction section */
.lp-intro { background: linear-gradient(180deg, var(--black) 0, #3a3e44 40px, #c9cacb 110px, var(--light) 170px); color: var(--dark); padding: 200px 0 140px; }
.lp-intro .lp-col { margin: 0 auto; text-align: center; }
.lp-intro .lp-h2 { color: #1d1c1c; }
.lp-intro .lp-lead { color: var(--dark); font-size: 21px; line-height: 32px; }

/* split */
.lp-split { display: grid; grid-template-columns: 1.15fr 1fr; gap: 72px; align-items: center; }
.lp-split--rev { grid-template-columns: 1fr 1.05fr; }
.lp-split--rev > figure { order: 2; }
.lp figure { margin: 0; }
.lp-circle__img img, .lp-craft__img img { border-radius: 18px; box-shadow: 0 30px 80px rgba(0, 0, 0, .55); }
.lp-circle p, .lp-craft p { color: var(--ink-2); }
.lp-facts { list-style: none; margin: var(--p40) 0 0; padding: 0; display: grid; gap: 18px; }
.lp-facts li { display: grid; grid-template-columns: 82px 1fr; align-items: baseline; gap: 16px; padding-top: 18px; border-top: 1px solid var(--line); }
.lp-facts b { font-size: 46px; line-height: 1; font-weight: 800; color: var(--gold); }
.lp-facts span { color: var(--ink-2); }

/* 4. Medallions */
.lp-medal { background: radial-gradient(70% 60% at 50% 40%, var(--night), var(--black) 70%); }
.lp-medal .lp-col p { color: var(--ink-2); }
.lp-metals { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: var(--p40) 0; }
.lp-metals button { font: inherit; font-size: 14px; font-weight: 700; padding: 10px 18px; border-radius: 999px; background: none; color: var(--mute); border: 1px solid var(--line); cursor: pointer; transition: all .2s; }
.lp-metals button:hover { color: var(--ink); }
.lp-metals button.is-on { color: var(--black); background: var(--gold); border-color: var(--gold); }
.lp-medals { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 28px 18px; }
.lp-medals li { text-align: center; }
.lp-medals .m { position: relative; aspect-ratio: 1; border-radius: 50%; filter: drop-shadow(0 14px 22px rgba(0, 0, 0, .55)); transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.lp-medals li:hover .m { transform: translateY(-4px) scale(1.04); }
.lp-medals img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .5s; }
.lp-medals .n { margin-top: 12px; font-weight: 700; font-size: 15px; }
.lp-medals .d { font-size: 12px; color: var(--mute); }

/* 5. Materials */
.lp-mat .lp-col p { color: var(--ink-2); }
.lp-mat__grid { margin-top: var(--p40); display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.lp-card { grid-column: span 6; padding: 22px; border-radius: 20px; background: var(--night); border: 1px solid var(--line); }
.lp-card h3 { margin: 18px 0 8px; font-size: 22px; line-height: 28px; font-weight: 700; }
.lp-card p { color: var(--ink-2); font-size: 16px; line-height: 24px; margin: 0; }
.lp-card--metals { grid-column: span 5; }
.lp-card--wide { grid-column: span 7; }
.lp-card--hand { grid-column: span 5; grid-row: span 2; padding: 0; overflow: hidden; }
.lp-card--hand .lp-card__img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.lp-card__img { width: 100%; border-radius: 12px; }
.lp-swatches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.lp-swatches--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-swatches img { width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px var(--line), 0 10px 22px rgba(0, 0, 0, .45); }

/* 6. Anatomy */
.lp-anat { position: relative; height: 220vh; background: radial-gradient(60% 50% at 50% 50%, var(--night), var(--black) 72%); }
.lp-anat__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; grid-template-columns: 300px minmax(0, 1fr) 300px; gap: 24px; align-items: center;
  max-width: 1400px; margin: 0 auto; padding: 0 var(--p24); }
.lp-anat__head { align-self: start; padding-top: 12vh; position: relative; z-index: 2; }
.lp-anat__stage { position: relative; height: 82vh; display: flex; align-items: center; justify-content: center; perspective: 2200px; }
.lp-anat__phone { position: relative; height: 62vh; aspect-ratio: 1160 / 1616; transform-style: preserve-3d; will-change: transform; }
.lp-anat__g { position: absolute; inset: 0; transform-style: preserve-3d; }
.lp-anat__g { transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.lp-anat__g img { position: absolute; max-width: none; filter: brightness(var(--b, 1)); transition: filter .5s, opacity .5s; backface-visibility: hidden; }
.lp-anat__g.is-dim img { filter: brightness(calc(var(--b, 1) * .3)) saturate(.45); opacity: .55; }
.lp-anat__g.is-front img { filter: brightness(calc(var(--b, 1) * .45)) saturate(.4); opacity: .12; }
.lp-anat__g.is-front .lp-anat__slice { opacity: 0; }
/* Mobile scene uses opacity only, without filters on 3D layers */
.lp-anat.is-lite .lp-anat__g img, .lp-anat.is-lite .lp-anat__g.is-dim img, .lp-anat.is-lite .lp-anat__g.is-front img, .lp-anat.is-lite .lp-anat__g.is-act img { filter: none; }
.lp-anat.is-lite .lp-anat__g.is-dim img { opacity: .35; }
.lp-anat.is-lite .lp-anat__g.is-front img { opacity: .1; }
.lp-anat__g.is-act img:not(.lp-anat__slice) { filter: brightness(1.06); }
.lp-anat__canvas { position: absolute; inset: 0; display: block; }
.lp-anat.is-3d .lp-anat__phone { display: none; }
.lp-anat__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; position: relative; z-index: 2; transition: opacity .5s; }
.lp-anat.is-end .lp-anat__list { opacity: 0; }
.lp-anat__list li { opacity: .32; transition: opacity .4s, transform .4s; padding-left: 16px; border-left: 2px solid transparent; }
.lp-anat__list li.is-on { opacity: 1; border-left-color: var(--gold); }
.lp-anat__list b { display: block; font-size: 17px; }
.lp-anat__list span { display: block; font-size: 14px; line-height: 20px; color: var(--ink-2); }
.lp-anat__foot { position: absolute; left: 0; right: 0; bottom: 5vh; text-align: center; color: var(--gold-l); font-size: 18px; padding: 0 var(--p24); opacity: 0; transition: opacity .6s; }
.lp-anat__foot.is-on { opacity: 1; }

/* 7. Configurator */
.lp-build { padding: 120px 0 0; background: var(--black); }
.lp-build .lp-col p { color: var(--ink-2); }
.lp-build .lp-col { margin-bottom: var(--p40); }

/* 8. Craftsmanship */
.lp-steps { list-style: none; counter-reset: s; margin: var(--p24) 0 0; padding: 0; display: grid; gap: 16px; }
.lp-steps li { counter-increment: s; display: grid; grid-template-columns: 44px 1fr; gap: 4px 14px; }
.lp-steps li::before { content: "0" counter(s); grid-row: span 2; font-weight: 800; color: var(--gold); font-size: 20px; line-height: 24px; }
.lp-steps b { font-size: 18px; }
.lp-steps span { color: var(--ink-2); font-size: 16px; }
.lp-stats { display: flex; justify-content: center; gap: 120px; margin-top: 110px; text-align: center; }
.lp-stats b { display: block; font-weight: 800; font-size: 150px; line-height: 1; color: var(--gold); letter-spacing: -.02em; }
.lp-stats span { display: block; margin-top: 10px; color: var(--ink-2); font-size: 18px; }

/* 9. 1/1 */
.lp-one { background: var(--light); color: var(--dark); padding: 140px 0; }
.lp-one__n { font-weight: 800; font-size: clamp(140px, 22vw, 300px); line-height: .9; color: var(--gold-dk); letter-spacing: -.03em; margin: 18px 0 10px; }
.lp-one .lp-h2 { color: #1d1c1c; }
.lp-one .lp-col { margin: 0 auto; font-size: 19px; line-height: 29px; }

/* 10. Finale */
.lp-final { position: relative; min-height: 90vh; display: flex; align-items: center; overflow: hidden; }
.lp-final__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.lp-final__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 11, 16, .9), rgba(8, 11, 16, .4) 50%, rgba(8, 11, 16, .1)), linear-gradient(180deg, var(--black), transparent 25%); }
.lp-final__in { position: relative; z-index: 1; width: 100%; }
.lp-final__t { font-weight: 800; font-size: clamp(40px, 4.6vw, 72px); line-height: 1.02; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 18px; max-width: min(620px, 44vw); }
.lp-final__in > * { max-width: min(620px, 44vw); }
.lp-final .lp-btn { margin-top: var(--p24); }
.lp-final__s { margin-top: 18px !important; color: var(--mute); font-size: 14px; }

/* Video modal */
.lp-video { padding: 0; border: 0; background: #000; width: min(1200px, 94vw); border-radius: 14px; overflow: visible; }
.lp-video::backdrop { background: rgba(5, 7, 10, .82); backdrop-filter: blur(6px); }
.lp-video video { width: 100%; display: block; border-radius: 14px; }
.lp-video__x { position: absolute; top: -46px; right: 0; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: none; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }

/* ---------- responsive */
@media (max-width: 1100px) {
  .lp-h2 { font-size: 40px; line-height: 44px; }
  .lp-split, .lp-split--rev { grid-template-columns: 1fr; gap: 40px; }
  .lp-split--rev > figure { order: 0; }
  .lp-medals { grid-template-columns: repeat(4, 1fr); }
  .lp-card, .lp-card--metals, .lp-card--wide { grid-column: span 12; }
  .lp-card--hand { grid-column: span 12; grid-row: auto; }
  .lp-anat__sticky { grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; padding-top: 70px; }
  .lp-anat__head { padding-top: 0; text-align: center; }
  .lp-anat__head .lp-h2 { margin-bottom: 0; }
  .lp-anat__stage { height: 52vh; }
  .lp-anat__phone { height: 46vh; }
  .lp-anat__list { display: block; min-height: 96px; text-align: center; }
  .lp-anat__list li { display: none; border: 0; padding: 0; }
  .lp-anat__list li.is-on { display: block; }
  .lp-anat__foot { bottom: 3vh; font-size: 15px; }
  .lp-stats { gap: 48px; }
  .lp-stats b { font-size: 110px; }
}
@media (max-width: 640px) {
  .lp-sec, .lp-intro, .lp-one { padding: 84px 0; }
  .lp-h2 { font-size: 32px; line-height: 36px; }
  .lp-lead, .lp-intro .lp-lead { font-size: 18px; line-height: 27px; }
  .lp-hero__in { align-self: flex-end; padding-bottom: 86px; }
  .lp-hero__in > * { max-width: none; }
  .lp-hero__video { height: 60%; object-position: 72% 40%; }
  .lp-hero__shade { background: linear-gradient(0deg, var(--black) 40%, rgba(13, 17, 23, .5) 52%, rgba(13, 17, 23, 0) 62%); }
  .lp-final__in > *, .lp-final__t { max-width: none; }
  .lp-hero__l { font-size: 18px; line-height: 26px; }
  .lp-btn { height: 50px; padding: 0 22px; font-size: 13px; }
  .lp-medals { grid-template-columns: repeat(3, 1fr); gap: 20px 12px; }
  .lp-facts b { font-size: 38px; }
  .lp-facts li { grid-template-columns: 64px 1fr; }
  .lp-stats { flex-direction: column; gap: 40px; margin-top: 70px; }
  .lp-stats b { font-size: 96px; }
  .lp-build { padding-top: 84px; }
  .lp-final { align-items: flex-end; padding-bottom: 80px; min-height: 100svh; }
  .lp-final__bg { height: 58%; object-position: 72% 35%; }
  .lp-final__shade { background: linear-gradient(0deg, var(--black) 42%, rgba(13, 17, 23, .5) 54%, rgba(13, 17, 23, 0) 66%), linear-gradient(180deg, var(--black), transparent 12%); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .lp-hero__scroll span { animation: none; }
}

/* Width and height reserve image space while CSS still controls display size, preventing layout shifts */
:where(img[width][height]) { height: auto; }

/* ---- configurator launch: preview and button, with the configurator itself full screen */
.lp-launch { display: flex; flex-direction: column; align-items: center; gap: 22px; padding: 0 var(--p24) 120px; }
.lp-launch__img { width: min(300px, 62vw); height: auto; filter: drop-shadow(0 40px 60px rgba(0, 0, 0, .6)); }
.lp-launch__note { margin: -8px 0 0; font-size: 13px; color: var(--mute); }
.lp-cfg { position: fixed; inset: 0; z-index: 1000; background: var(--black); height: 100vh; height: 100dvh; overscroll-behavior: none; }
.lp-cfg[hidden] { display: none; }
.lp-cfg > [data-zodiac-duo], .lp-cfg .zd { height: 100%; max-height: none; min-height: 0; }
.zd-page { position: relative; }
.lp-cfg__close, .zd-page > .lp-cfg__close, .zd > .lp-cfg__close { position: absolute; z-index: 70; top: 14px; right: 14px; width: 40px; height: 40px; display: grid; place-items: center; box-sizing: border-box; border-radius: 2px;
  color: var(--caviar-ink, #F2EFE8); background: rgba(13, 17, 23, .72); border: 1px solid rgba(255, 255, 255, .14); font-size: 0; line-height: 1; text-decoration: none; cursor: pointer; visibility: visible; opacity: 1; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.lp-cfg__close:hover, .zd-page > .lp-cfg__close:hover, .zd > .lp-cfg__close:hover { border-color: var(--caviar-gold, #A89974); color: var(--caviar-gold-light, #C9BC98); }
.lp-cfg__close svg, .zd-page > .lp-cfg__close svg, .zd > .lp-cfg__close svg { width: 20px; height: 20px; }
.lp-cfg .zd-nav { padding-top: 64px; }
html.is-builder, html.is-builder body { overflow: hidden; overscroll-behavior: none; }
@media (max-width: 860px) {
  .lp-cfg__close, .zd-page > .lp-cfg__close, .zd > .lp-cfg__close { top: 12px; right: 12px; width: 36px; height: 36px; }
  .lp-cfg .zd-tools, .zd-page .zd-tools, .zd.zd--with-close .zd-tools { right: 56px; }
  .lp-launch { padding-bottom: 84px; }
}

/* ---- Apple-style configurator entrance: soft fade and scale, blur to sharpness, and staggered elements.
   is-pre is the initial state, is-anim runs the transition, and no class is the normal layout. */
.lp-cfg { --ap-ease: cubic-bezier(.32, .72, 0, 1); --ap-fade: cubic-bezier(.25, .1, .25, 1); }
.lp-cfg.is-pre { opacity: 0; transform: scale(.985); }
.lp-cfg.is-anim { transition: opacity .55s var(--ap-fade), transform .8s var(--ap-ease); }
.lp-cfg.is-out { opacity: 0; transform: scale(.985); transition: opacity .45s var(--ap-fade), transform .55s var(--ap-ease); pointer-events: none; }

.lp-cfg.is-pre .zd-zoom { opacity: 0; transform: translateY(18px) scale(.94); filter: blur(12px); }
.lp-cfg.is-pre .zd-sky { opacity: 0; }
.lp-cfg.is-pre :is(.zd-brand, .zd-tools, .lp-cfg__close, .zd-nav__item, .zd-nav__build, .zd-work__head, .zd-tabs2--top, .zd-content, .zd-work__foot, .zd-cta-bar, .zd-mstep-wrap, .zd-handle) {
  opacity: 0; transform: translateY(10px); filter: blur(4px); }
.lp-cfg.is-anim :is(.zd-zoom, .zd-sky, .zd-brand, .zd-tools, .lp-cfg__close, .zd-nav__item, .zd-nav__build, .zd-work__head, .zd-tabs2--top, .zd-content, .zd-work__foot, .zd-cta-bar, .zd-mstep-wrap, .zd-handle) {
  transition: opacity .7s var(--ap-fade) var(--d, 0s), transform .9s var(--ap-ease) var(--d, 0s), filter .7s var(--ap-fade) var(--d, 0s); }
.lp-cfg.is-anim .zd-sky { transition-duration: 1.4s; }
.lp-cfg.is-anim .zd-zoom { --d: .08s; transition-duration: 1s, 1.25s, 1s; }
.lp-cfg :is(.zd-brand, .lp-cfg__close) { --d: .18s; }
.lp-cfg .zd-tools { --d: .24s; }
.lp-cfg .zd-nav__item:nth-child(1) { --d: .22s; } .lp-cfg .zd-nav__item:nth-child(2) { --d: .26s; }
.lp-cfg .zd-nav__item:nth-child(3) { --d: .30s; } .lp-cfg .zd-nav__item:nth-child(4) { --d: .34s; }
.lp-cfg .zd-nav__item:nth-child(5) { --d: .38s; } .lp-cfg .zd-nav__item:nth-child(6) { --d: .42s; }
.lp-cfg .zd-nav__item:nth-child(7) { --d: .46s; } .lp-cfg .zd-nav__item:nth-child(8) { --d: .50s; }
.lp-cfg .zd-nav__build { --d: .56s; }
.lp-cfg :is(.zd-work__head, .zd-handle, .zd-mstep-wrap) { --d: .28s; }
.lp-cfg .zd-tabs2--top { --d: .34s; }
.lp-cfg .zd-content { --d: .40s; }
.lp-cfg :is(.zd-work__foot, .zd-cta-bar) { --d: .50s; }
/* On phones, the bottom sheet slides up like a system sheet */
@media (max-width: 860px) {
  .lp-cfg.is-pre .zd-work { transform: translateY(42%); }
  .lp-cfg.is-anim .zd-work { transition: transform .95s var(--ap-ease) .12s, height .32s var(--zd-ease); }
}
@media (prefers-reduced-motion: reduce) {
  .lp-cfg.is-pre, .lp-cfg.is-pre * { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* Slower block-by-block v2 entrance: each block appears as a unit in sequence */
.lp-cfg.is-anim { transition: opacity .9s var(--ap-fade), transform 1.2s var(--ap-ease); }
.lp-cfg.is-anim :is(.zd-zoom, .zd-sky, .zd-brand, .zd-tools, .lp-cfg__close, .zd-nav__item, .zd-nav__build, .zd-work__head, .zd-tabs2--top, .zd-content, .zd-work__foot, .zd-cta-bar, .zd-mstep-wrap, .zd-handle) {
  transition: opacity 1.1s var(--ap-fade) var(--d, 0s), transform 1.4s var(--ap-ease) var(--d, 0s), filter 1.1s var(--ap-fade) var(--d, 0s); }
.lp-cfg.is-pre :is(.zd-brand, .zd-tools, .lp-cfg__close, .zd-nav__item, .zd-nav__build, .zd-work__head, .zd-tabs2--top, .zd-content, .zd-work__foot, .zd-cta-bar, .zd-mstep-wrap, .zd-handle) { transform: translateY(16px); filter: blur(6px); }
.lp-cfg.is-anim .zd-sky { transition-duration: 2.2s; }
.lp-cfg.is-anim .zd-zoom { --d: .15s; transition-duration: 1.6s, 1.9s, 1.6s; }
/* 1 phone, 2 top row, 3 steps, 4 build, 5 step heading, 6 options, 7 buttons */
.lp-cfg :is(.zd-brand, .zd-tools, .lp-cfg__close) { --d: .55s; }
.lp-cfg .zd-nav__item:nth-child(n) { --d: .9s; }
.lp-cfg .zd-nav__build { --d: 1.25s; }
.lp-cfg :is(.zd-work__head, .zd-handle, .zd-mstep-wrap) { --d: 1.25s; }
.lp-cfg .zd-tabs2--top { --d: 1.55s; }
.lp-cfg .zd-content { --d: 1.55s; }
.lp-cfg :is(.zd-work__foot, .zd-cta-bar) { --d: 1.9s; }
@media (max-width: 860px) {
  .lp-cfg.is-anim .zd-work { transition: transform 1.5s var(--ap-ease) .7s, height .32s var(--zd-ease); }
  .lp-cfg :is(.zd-work__head, .zd-handle, .zd-mstep-wrap) { --d: 1.1s; }
  .lp-cfg .zd-tabs2--top { --d: 1.35s; } .lp-cfg .zd-content { --d: 1.6s; } .lp-cfg :is(.zd-work__foot, .zd-cta-bar) { --d: 1.9s; }
}

/* Safari renders black edge bands when filters are used inside overflow containers.
   Blur only the phone; other blocks use a clean fade and translation. */
.lp-cfg.is-pre :is(.zd-brand, .zd-tools, .lp-cfg__close, .zd-nav__item, .zd-nav__build, .zd-work__head, .zd-tabs2--top, .zd-content, .zd-work__foot, .zd-cta-bar, .zd-mstep-wrap, .zd-handle) { filter: none; }
.lp-cfg.is-pre .zd-zoom { filter: none; }
.lp-cfg.is-pre .zd-phone { filter: blur(12px); }
.lp-cfg.is-anim .zd-phone { transition: filter 1.6s cubic-bezier(.25, .1, .25, 1) .15s; }

/* Temporary builder-only mode: remove lp--builder-only from body to restore the full landing page */
.lp--builder-only > section:not(#build) { display: none !important; }
.lp--builder-only #build { min-height: 100vh; min-height: 100svh; padding: 64px 0 0; display: flex; flex-direction: column; justify-content: center; }
.lp--builder-only #build .lp-launch { padding-bottom: 64px; }

/* Configurator preloader: the Caviar crown fills with gold while the first phone layers load */
.lp-cfg__pre { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px;
  background: #030407; transition: opacity .9s cubic-bezier(.4,0,.2,1), visibility .9s; }
.lp-cfg__pre.is-done { opacity: 0; visibility: hidden; }
.lp-cfg__pre svg { width: min(150px, 34vw); height: auto; overflow: visible; transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.lp-cfg__pre.is-done svg { transform: scale(1.06); }
.lp-cfg__pct { font: 600 11px/1 "Nunito Sans", sans-serif; letter-spacing: .42em; padding-left: .42em; color: #A89974; font-variant-numeric: tabular-nums; }

/* Open the configurator immediately and hide the invitation block below it */
.lp--builder-only #build > :not(#builder) { display: none !important; }
.lp--builder-only #build { min-height: 0; padding: 0; background: #030407; }
html:has(body.lp--builder-only) { background: #030407; }
