/* ==========================================================
   FAIM JEWELLERY ARABIA EXPERIENCE  |  Presentation deck (24 sections)
   ========================================================== */
#deck { position: fixed; inset: 0; z-index: 40; background: var(--velvet); }
.d-stage { position: absolute; inset: 0; overflow: hidden; }
.d-slide { position: absolute; inset: 0; display: flex; flex-direction: column; }
.d-slide__in { flex: 1; min-height: 0; padding: 5rem 7rem 2.5rem; display: flex; flex-direction: column; justify-content: center; gap: 1.5rem; position: relative; overflow: auto; }
.d-foot { display: flex; justify-content: space-between; align-items: center; padding: 0 7rem 6.5rem; color: var(--ash); font-size: .95rem; }
.d-foot__mono { width: 1.6rem; height: 1.6rem; opacity: .7; }
.d-progress { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--gold-faint); z-index: 3; }
.d-progress i { position: absolute; inset: 0; background: var(--gold); transform-origin: left; transition: transform .6s var(--ease); }

/* presenter controls */
.d-ctrl { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 4; display: flex; align-items: center; gap: .5rem; padding: .5rem; border-radius: 999px; background: rgba(23,18,15,.88); border: 1px solid var(--gold-faint); opacity: .55; transition: opacity var(--t-fast), bottom .4s var(--ease); white-space: nowrap; }
.d-ctrl:hover, .d-ctrl:focus-within { opacity: 1; }
#deck.has-cc .d-ctrl { bottom: 5.6rem; }
.d-ctrl .icon-btn { color: var(--ivory); width: 3.5rem; height: 3.5rem; border-color: transparent; }
.d-ctrl .icon-btn:hover { border-color: var(--gold-dim); }
.d-ctrl .icon-btn svg { width: 1.35rem; height: 1.35rem; }
.d-ctrl .icon-btn[aria-pressed="true"] { color: var(--gold); }
.d-count { min-width: 4.5rem; text-align: center; font-size: .95rem; color: var(--smoke); font-variant-numeric: tabular-nums; }
.d-vo { display: flex; align-items: center; gap: .35rem; padding-inline-start: .6rem; margin-inline-start: .25rem; border-inline-start: 1px solid var(--gold-faint); }
.d-vo__cc { font-family: var(--text); font-size: .85rem; letter-spacing: .05em; }
.d-vo__cc[aria-pressed="false"] { color: var(--ash); text-decoration: line-through; }
.d-vo__bar { position: relative; width: 7rem; height: 2px; background: var(--gold-faint); margin: 0 .5rem; border-radius: 2px; overflow: hidden; }
.d-vo__bar i { position: absolute; inset: 0; background: var(--gold); transform-origin: left; transform: scaleX(0); }
.d-vo__status { font-size: .8rem; color: var(--smoke); min-width: 5.5rem; padding-inline-end: .6rem; }
#deck.vo-est .d-vo__status { color: var(--ash); }

/* subtitles */
.d-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; margin: 0; padding: 1.6rem 10rem 1.2rem; text-align: center; font-family: 'Cormorant', serif; font-style: italic; font-weight: 400; font-size: 2.05rem; line-height: 1.25; color: var(--ivory); background: linear-gradient(180deg, rgba(14,11,9,0) 0%, rgba(14,11,9,.85) 45%, rgba(14,11,9,.95) 100%); pointer-events: none; white-space: pre-line; min-height: 5.4rem; }
html[lang="ar"] .d-cap { font-family: var(--display); font-style: normal; }

/* overview */
.d-overview { position: absolute; inset: 0; z-index: 5; background: rgba(14,11,9,.96); padding: 4rem 7rem; overflow: auto; }
.d-overview__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.d-overview button { text-align: start; min-height: 6.2rem; padding: 1.1rem 1.4rem; border: 1px solid var(--gold-faint); border-radius: var(--r-s); font-family: var(--display); font-size: 1.5rem; line-height: 1.15; display: flex; gap: 1rem; align-items: flex-start; }
.d-overview button:hover { border-color: var(--gold); background: var(--tray); }
.d-overview button span { font-family: var(--text); font-size: .95rem; color: var(--gold); padding-top: .3rem; min-width: 1.6rem; }

/* cue states: hidden until the narration reaches them */
.d-slide [data-cue="title"]:not(.is-cued), .d-slide [data-cue="line"]:not(.is-cued), .d-slide [data-cue="figures"]:not(.is-cued), .d-slide [data-cue="qr"]:not(.is-cued), .d-slide [data-cue="credit"]:not(.is-cued), .d-slide [data-cue="point"]:not(.is-cued) { opacity: 0; }
.d-slide [data-cue="card"] { transition: box-shadow .6s var(--ease), border-color .6s var(--ease), color .6s var(--ease); }
.d-slide [data-cue="card"].is-cued { box-shadow: 0 0 0 1px var(--gold), 0 0 2.4rem rgba(210,178,113,.22); border-color: var(--gold); border-radius: var(--r-s); }
.d-slide dt[data-cue="card"].is-cued, .d-slide span[data-cue="card"].is-cued, .d-slide p[data-cue="card"].is-cued, .d-slide li[data-cue="card"].is-cued, .d-slide tr[data-cue="card"].is-cued { box-shadow: none; color: var(--gold); }
.d-slide g[data-cue="card"].is-cued rect { fill: #3a2e22; stroke: var(--gold); stroke-width: 2; }
.d-slide g[data-cue="card"].is-cued .d-node__t { fill: var(--gold); }
.d-demo.is-hint { box-shadow: 0 0 0 1px var(--gold), 0 0 2rem rgba(210,178,113,.35); }

/* typography */
.d-h { font-size: 4.6rem; max-width: 18ch; line-height: 1.02; }
.d-h--wide { max-width: 30ch; font-size: 4.2rem; }
.d-h--sm { font-size: 3.2rem; max-width: 24ch; }
.d-h3 { font-size: 2.2rem; margin-bottom: 1.25rem; }
.d-p { font-size: 1.4rem; line-height: 1.55; color: var(--ivory); max-width: 36em; margin-top: 1.5rem; font-weight: 300; }
.d-p--wide { max-width: 60em; }
.d-tag { color: var(--gold); font-size: 1.05rem; letter-spacing: .03em; margin-bottom: 1.1rem; }
.d-src { margin-top: 1.75rem; }
.d-list { margin: 1.75rem 0 0; padding: 0; list-style: none; display: grid; gap: .75rem; font-size: 1.25rem; }
.d-list li { padding-inline-start: 1.6rem; position: relative; }
.d-list li::before { content: ''; position: absolute; inset-inline-start: 0; top: .7em; width: .7rem; height: 1px; background: var(--gold); }
.d-list li[data-cue="card"] { padding-inline-end: .6rem; }
.d-list--cols { grid-template-columns: 1fr 1fr; gap: .8rem 2rem; margin-bottom: 2rem; }
.d-demo { margin-top: 2rem; align-self: flex-start; }
.d-acts { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; align-items: center; }
.d-acts .d-demo { margin-top: 0; }
.d-slide .note { margin-top: 1.1rem; max-width: 60em; }
.d-chips { display: flex; flex-wrap: wrap; gap: .6rem; }
.d-slide .demo-flag { margin-top: 1.25rem; }

/* layouts */
.d-split { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; min-height: 0; }
.d-split--img { grid-template-columns: .9fr 1fr; height: 100%; }
.d-img { align-self: stretch; min-height: 30rem; border-radius: var(--r-m); background-size: cover; background-position: center 25%; position: relative; }
.d-img--contain { background-size: cover; height: 100%; }

/* 1 open */
.ds-open .d-slide__in, .ds-close .d-slide__in { padding-top: 0; padding-bottom: 0; }
.ds-open .d-slide__in { padding: 0; }
.d-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 75% 30%; }
.d-film-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,11,9,.95) 0%, rgba(14,11,9,.7) 40%, rgba(14,11,9,.1) 75%); }
.d-glints { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.d-hero { position: relative; z-index: 2; padding: 0 0 0 7rem; max-width: 80rem; }
.d-open__logo { width: 18rem; height: auto; margin-bottom: 4rem; }
.d-open__title { white-space: nowrap; font-size: 12rem; font-weight: 300; line-height: .9; letter-spacing: -.02em; max-width: none; }
.d-open__line { font-family: var(--display); font-style: italic; font-size: 2.6rem; color: var(--ivory); margin-top: 2rem; }
.d-open__meta { margin-top: 3.5rem; color: var(--smoke); font-size: 1.15rem; line-height: 1.7; }

/* 2 live gallery */
.ds-gallery .d-slide__in { padding: 4rem 4rem 1rem; gap: 1rem; justify-content: flex-start; }
.ds-gallery .d-foot { padding-bottom: 5.4rem; padding-top: .5rem; }
.d-g__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; }
.d-g__head .d-tag { margin-bottom: .5rem; }
.d-g__side { display: flex; align-items: center; gap: 1.5rem; flex: none; }
.d-g__side .d-demo { margin-top: 0; }
.d-g__hint { display: inline-flex; align-items: center; gap: .7rem; font-family: var(--display); font-style: italic; font-size: 1.6rem; color: var(--gold); }
.d-g__hint svg { width: 1.6rem; height: 1.6rem; }
.d-g__frame { flex: 1; min-height: 0; position: relative; border: 1px solid var(--gold-dim); border-radius: var(--r-m); overflow: hidden; background: var(--tray); }
.d-g__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: var(--velvet); }
.d-g__wait { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; }

/* 3 figures */
.d-figs { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 4rem; margin: 0; }
.d-figs div { border-top: 1px solid var(--gold-dim); padding-top: 1.5rem; }
.d-figs dt { font-family: 'Cormorant', serif; font-weight: 300; font-size: 6.4rem; line-height: .9; display: inline-block; padding: 0 .2rem; }
.d-figs dd { margin: .75rem 0 0; color: var(--smoke); font-size: 1.2rem; }

/* 4 heritage */
.d-years { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem 2rem; }
.d-years li { position: relative; padding-inline-start: .9rem; }
.d-years li::before { content: ''; position: absolute; inset-inline-start: 0; top: .4rem; bottom: .4rem; width: 1px; background: var(--gold-faint); transition: background .6s var(--ease); }
.d-years li.is-lit::before { background: var(--gold); }
.d-years b { display: block; font-family: 'Cormorant', serif; font-weight: 400; font-size: 2.4rem; color: var(--gold); line-height: 1; transition: text-shadow .6s var(--ease), color .6s var(--ease); }
.d-years li.is-lit b { color: var(--ivory); text-shadow: 0 0 1.4rem rgba(210,178,113,.55); }
.d-years span { font-size: 1.05rem; color: var(--smoke); }

/* 5 challenge */
.d-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; margin-top: 1.5rem; }
.d-three article { border-top: 1px solid var(--gold-dim); padding-top: 2rem; }
.d-three h3 { font-size: 2.6rem; margin-bottom: 1.25rem; }
.d-three p { font-size: 1.25rem; color: var(--smoke); line-height: 1.6; }
.d-three .d-answer { color: var(--ivory); margin-top: 1.5rem; }

/* 7 journey */
.d-journey { list-style: none; padding: 0; margin: 2.5rem 0 1rem; display: grid; grid-template-columns: repeat(9, 1fr); gap: 0; position: relative; }
.d-journey::before { content: ''; position: absolute; left: 0; right: 0; top: 1.7rem; height: 1px; background: var(--gold-dim); }
.d-journey button { display: flex; flex-direction: column; gap: .6rem; text-align: start; padding: 0 1rem 1rem 0; width: 100%; min-height: 14rem; border-radius: var(--r-s); }
.d-journey button:hover .d-journey__n, .d-journey li.is-lit .d-journey__n { background: var(--gold); color: var(--velvet); }
.d-journey__n { position: relative; width: 3.4rem; height: 3.4rem; border-radius: 50%; border: 1px solid var(--gold); background: var(--velvet); display: grid; place-items: center; font-size: 1.1rem; color: var(--gold); transition: all var(--t-fast); margin-bottom: 1rem; }
.d-journey b { font-family: var(--display); font-weight: 400; font-size: 1.75rem; line-height: 1.1; }
.d-journey span:last-child { color: var(--smoke); font-size: 1rem; }
.d-journey li[data-cue="card"].is-cued { box-shadow: none; }

/* 8 profiles */
.d-profiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem 3rem; margin-top: .5rem; }
.d-profiles article { border-top: 1px solid var(--gold-dim); padding: 1.1rem .6rem 0; }
.d-profiles h3 { font-size: 2.1rem; margin-bottom: .5rem; }
.d-profiles p { color: var(--smoke); font-size: 1.1rem; }
.d-profiles article[data-cue="card"].is-cued { border-top-color: var(--gold); padding-bottom: .6rem; }

/* 9 explorer */
.d-split--x { grid-template-columns: .9fr 1.1fr; align-items: start; }
.d-x { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.d-x__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.d-x__chips--shape { padding-top: .5rem; border-top: 1px solid var(--gold-faint); }
.d-x__count { margin: 0; }
.d-x__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.d-x__item { padding: 0; border-radius: var(--r-s); min-height: var(--touch); }
.d-x__item .vitrine { aspect-ratio: 1; display: block; }
.d-x__item img { padding: 8%; }
.d-x__item:hover .vitrine { outline: 1px solid var(--gold); }
.d-x__open { display: grid; grid-template-columns: 9rem 1fr; gap: 1.25rem; align-items: center; padding: 1rem; border: 1px solid var(--gold-dim); border-radius: var(--r-m); background: var(--tray); min-height: 8rem; }
.d-x__open:empty { display: none; }
.d-x__open .vitrine { aspect-ratio: 1; }
.d-x__open img { padding: 6%; }
.d-x__open h3 { font-size: 1.9rem; }
.d-x__open .d-tag { margin-bottom: .3rem; }
.d-x__open .d-demo { margin-top: .8rem; }
.d-x__open .note { margin-top: .3rem; }

/* 10 product */
.d-pd__img { aspect-ratio: 1.05; position: relative; }
.d-pd__img img { padding: 6%; }
.d-pd__hot { position: absolute; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 .35rem rgba(210,178,113,.25); transform: translate(-50%, -50%); }
.d-pd__name { margin: .5rem 0 .75rem; }
.d-spec { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .35rem 1.5rem; font-size: 1.1rem; color: var(--smoke); }
.d-spec li::before { content: ''; display: inline-block; width: .5rem; height: 1px; background: var(--gold); vertical-align: middle; margin-inline-end: .6rem; }
.d-pd__cert { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.25rem; padding: .6rem 1rem; border: 1px solid var(--gold-dim); border-radius: 999px; font-size: 1.05rem; }
.d-pd__cert svg { width: 1.2rem; height: 1.2rem; color: var(--gold); }
.d-slide p.d-pd__cert[data-cue="card"].is-cued { box-shadow: 0 0 0 1px var(--gold), 0 0 2rem rgba(210,178,113,.25); border-radius: 999px; color: var(--ivory); }

/* 11 rfid cards */
.d-cards { position: relative; height: 36rem; display: flex; justify-content: center; align-items: center; }
.d-glints--local { z-index: 0; }
.d-card { width: 15rem; padding: 1rem; border-radius: .8rem; background: linear-gradient(160deg, #2a221c, #15110e); border: 1px solid var(--gold-dim); transform: rotate(var(--r)) translateY(calc(var(--r) * -1)); margin: 0 -1.5rem; box-shadow: 0 2rem 4rem rgba(0,0,0,.5); position: relative; z-index: 2; }
.d-card .vitrine { aspect-ratio: 1; margin-bottom: .75rem; }
.d-card .vitrine img { padding: 8%; }
.d-card span { font-family: 'Cormorant', serif; font-size: 1.3rem; display: block; }
.d-card em { position: absolute; top: .6rem; inset-inline-end: .7rem; font-style: normal; font-size: .7rem; letter-spacing: .12em; color: var(--ash); }
.d-card-light { position: absolute; left: 5%; right: 5%; bottom: 0; height: 8rem; border-radius: 50%; background: radial-gradient(ellipse, rgba(210,178,113,.35), transparent 70%); filter: blur(10px); }
.d-slide .d-card[data-cue="card"].is-cued { border-radius: .8rem; }

/* 12 gesture */
.d-gest { position: relative; }
.d-gest__img { aspect-ratio: 1.25; }
.d-gest__img img { padding: 6%; }
.d-gest__hand { position: absolute; right: -2rem; bottom: 3rem; width: 7rem; height: 7rem; border-radius: 50%; background: var(--velvet); border: 1px solid var(--gold); display: grid; place-items: center; color: var(--gold); animation: sway 6s ease-in-out infinite; z-index: 3; }
.d-gest__hand svg { width: 3.4rem; height: 3.4rem; }
@keyframes sway { 50% { transform: translateX(-4rem); } }
.d-gx { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .55rem; }
.d-gx li { display: grid; grid-template-columns: 11rem 1fr; gap: 1rem; align-items: baseline; font-size: 1.05rem; color: var(--smoke); padding: .4rem .6rem; border-top: 1px solid var(--gold-faint); }
.ds-gesture .d-h { font-size: 4rem; }
.ds-gesture .d-p { margin-top: 1rem; }
.ds-gesture .d-demo { margin-top: 1.25rem; }
.d-gx b { font-family: var(--display); font-weight: 400; font-size: 1.5rem; color: var(--ivory); }
.d-slide .d-gx li[data-cue="card"].is-cued { color: var(--ivory); }

/* 13 ar */
.d-ar { overflow: hidden; }
.d-ar__frame { position: absolute; inset: 1.5rem; border: 1px solid rgba(239,230,213,.6); border-radius: var(--r-s); pointer-events: none; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: 1.4rem; gap: .3rem; background: linear-gradient(180deg, transparent 60%, rgba(14,11,9,.65)); }
.d-ar__frame span { font-family: var(--display); font-size: 2rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ivory); }
.d-ar__frame em { font-style: normal; font-size: .9rem; color: var(--smoke); }
.d-ar__mono { width: 2.4rem; height: 2.4rem; margin-bottom: .4rem; }
.d-slide .d-ar__frame[data-cue="card"].is-cued { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold), 0 0 2.5rem rgba(210,178,113,.3); }
.d-ar__flag { display: inline-block; margin-top: 1.25rem; }

/* 14 studio */
.d-studio { display: grid; grid-template-rows: 1fr auto; gap: 1.25rem; height: 100%; min-height: 32rem; }
.d-studio .d-img { min-height: 20rem; }
.d-passport { display: grid; grid-template-columns: 3rem 1fr 7rem; gap: 1.25rem; align-items: center; padding: 1rem 1.25rem; border: 1px solid var(--gold-dim); border-radius: var(--r-m); background: var(--tray); }
.d-passport__mono { width: 3rem; height: 3rem; }
.d-passport p { font-size: 1.05rem; color: var(--ivory); }
.d-passport .d-tag { margin-bottom: .3rem; }
.d-passport__qr { padding: .5rem; }
.d-studio__line { margin-top: 1rem; }

/* 15 register mock form */
.d-form { background: var(--tray); border: 1px solid var(--gold-faint); border-radius: var(--r-m); padding: 1.75rem; display: grid; gap: 1.1rem; }
.d-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.d-form__field { display: grid; gap: .45rem; }
.d-form__field > span, .d-form__lbl { font-size: .9rem; color: var(--smoke); letter-spacing: .02em; }
.d-form__lbl { margin: .25rem 0 0; }
.d-form__in { display: block; height: 3.2rem; border: 1px solid var(--gold-dim); border-radius: var(--r-s); font-style: normal; color: var(--ash); padding: .85rem 1rem; font-size: 1.05rem; }
.d-form__phone { display: grid; grid-template-columns: auto 1fr; gap: .5rem; align-items: stretch; }
.d-form__phone b { display: grid; place-items: center; padding: 0 .9rem; border: 1px solid var(--gold-dim); border-radius: var(--r-s); font-weight: 400; color: var(--ivory); white-space: nowrap; }
.d-form__gcc, .d-form__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.d-form__gcc .chip, .d-form__chips .chip { pointer-events: none; }
.d-form__consent { display: grid; grid-template-columns: 1.5rem 1fr; gap: .9rem; align-items: start; font-size: 1.05rem; color: var(--ivory); padding: .6rem; }
.d-form__box { display: block; width: 1.4rem; height: 1.4rem; border: 1px solid var(--gold); border-radius: .25rem; margin-top: .15rem; }

/* 16 gift */
.d-gift__state { margin-top: 1.5rem; padding: .9rem 1rem; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.d-gift__state .note { flex-basis: 100%; margin-top: .4rem; }
.d-gift__state .chip svg { width: 1rem; height: 1rem; margin-inline-end: .4rem; }
.d-gift__state .chip.is-issued { color: var(--velvet); background: var(--gold); border-color: var(--gold); }
.d-gift__offer { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--gold-faint); font-size: 1.15rem; color: var(--ivory); }
.d-gift__offer .d-tag { margin-bottom: .4rem; }
.d-giftcard { justify-self: center; width: 26rem; background: var(--tray); border: 1px solid var(--gold-dim); border-radius: var(--r-m); padding: 2rem; text-align: center; display: grid; justify-items: center; gap: .9rem; }
.d-giftcard__logo { width: 9rem; height: auto; opacity: .9; }
.d-giftcard__qr { width: 13rem; }
.d-giftcard__code { font-size: 1.05rem; color: var(--smoke); }
.d-giftcard__code strong { color: var(--ivory); letter-spacing: .08em; }
.d-giftcard .note { margin-top: 0; }
.d-giftcard .demo-flag { margin-top: .5rem; }

/* 17 whatsapp */
.d-wa__send { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.5rem; padding: .7rem 1rem; border: 1px solid var(--gold-dim); border-radius: 999px; font-size: 1.05rem; }
.d-wa__send svg { width: 1.2rem; height: 1.2rem; color: var(--gold); }
.d-slide p.d-wa__send[data-cue="card"].is-cued { border-radius: 999px; box-shadow: 0 0 0 1px var(--gold), 0 0 2rem rgba(210,178,113,.25); color: var(--ivory); }
.d-wa__consult { margin-top: 1.5rem; }
.d-wa__consult .d-tag { margin-bottom: .6rem; }
.d-wa { display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: end; }
.d-wa__phone { background: #0b1a14; border: 1px solid rgba(239,230,213,.15); border-radius: 1.4rem; padding: 1rem; display: grid; gap: .8rem; }
.d-wa__bar { display: flex; justify-content: space-between; align-items: baseline; padding: .4rem .5rem .7rem; border-bottom: 1px solid rgba(239,230,213,.1); }
.d-wa__bar b { font-weight: 400; color: var(--ivory); font-size: 1.1rem; }
.d-wa__bar span { font-size: .8rem; color: var(--smoke); }
.d-wa__bubble { margin: 0; font-family: var(--text); font-size: 1rem; line-height: 1.55; color: #e9f5ee; background: #1f5c43; border-radius: 1rem 1rem .2rem 1rem; padding: .9rem 1rem; white-space: pre-wrap; word-break: break-word; }
.d-wa__qr { width: 11rem; text-align: center; }
.d-wa__qr .qr { padding: .6rem; }

/* 18 photo wall */
.ds-photowall .d-slide__in { gap: 1rem; }
.d-pw { display: grid; grid-template-columns: 19rem 1fr; gap: 3rem; align-items: stretch; min-height: 0; }
.d-phone { width: 19rem; justify-self: center; }
.d-phone__screen { position: relative; aspect-ratio: 9 / 18; border: 2px solid rgba(239,230,213,.25); border-radius: 2rem; background: var(--velvet); padding: 1.25rem 1rem; display: flex; flex-direction: column; gap: .55rem; overflow: hidden; box-shadow: 0 2rem 4rem rgba(0,0,0,.5); }
.d-phone__screen::before { content: ''; position: absolute; top: .5rem; left: 50%; transform: translateX(-50%); width: 5rem; height: .45rem; border-radius: 999px; background: rgba(239,230,213,.25); }
.d-phone__title { font-family: var(--display); font-size: 1.6rem; margin-top: .8rem; }
.d-phone__lbl { font-size: .72rem; color: var(--smoke); letter-spacing: .04em; text-transform: uppercase; margin-top: .3rem; }
.d-phone__pieces { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.d-phone__pieces .vitrine { aspect-ratio: 1; }
.d-phone__pieces .vitrine[aria-pressed="true"] { outline: 2px solid var(--gold); }
.d-phone__pieces img { padding: 8%; }
.d-phone .chip { font-size: .72rem; padding: .3rem .6rem; min-height: 0; pointer-events: none; }
.d-phone__portrait { height: 3.6rem; border: 1px dashed var(--gold-dim); border-radius: var(--r-s); display: grid; place-items: center; color: var(--gold); }
.d-phone__portrait svg { width: 1.4rem; height: 1.4rem; }
.d-phone__consent { display: grid; grid-template-columns: 1rem 1fr; gap: .5rem; font-size: .72rem; color: var(--ivory); line-height: 1.35; padding: .35rem; }
.d-phone__consent .d-form__box { width: 1rem; height: 1rem; margin-top: 0; }
.d-phone__btn { margin-top: auto; justify-content: center; pointer-events: none; }
.d-phone__cap { text-align: center; }
.d-pw__wall { position: relative; border: 1px solid var(--gold-faint); border-radius: var(--r-m); background: var(--tray); padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; min-height: 0; overflow: hidden; }
.d-pw__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; position: relative; z-index: 1; }
.d-pw__join { display: grid; justify-items: center; gap: .4rem; }
.d-pw__join .qr { width: 7rem; padding: .5rem; }
.d-pw__join .note { margin: 0; }
.d-pw__grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.d-wallcard { background: var(--velvet); border: 1px solid var(--gold-faint); border-radius: var(--r-m); padding: .8rem; }
.d-wallcard .vitrine { aspect-ratio: 1.3; }
.d-wallcard .vitrine img { padding: 6%; }
.d-wallcard p { font-family: var(--display); font-style: italic; font-size: 1.3rem; margin-top: .6rem; }
.d-wallcard .note { display: inline-flex; align-items: center; gap: .3rem; margin-top: .4rem; }
.d-wallcard .note svg { width: .9rem; height: .9rem; }
.d-wallcard.is-pending { opacity: .55; border-style: dashed; }
.d-wallcard.is-pending.is-cued { opacity: 1; }
.d-pw__foot { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.d-pw__foot .d-acts { margin-top: 0; flex: none; }
.d-pw__foot .note { margin-top: 0; }

/* 19 pulse */
.d-pulse { display: grid; gap: 1.25rem; }
.d-pulse__hero { display: grid; grid-template-columns: 11rem 1fr; gap: 1.5rem; align-items: center; padding: 1.1rem; border: 1px solid var(--gold-dim); border-radius: var(--r-m); background: var(--tray); }
.d-pulse__hero .vitrine { aspect-ratio: 1; }
.d-pulse__hero img { padding: 6%; }
.d-pulse__hero h3 { font-size: 2.2rem; }
.d-pulse__hero .d-tag { margin-bottom: .3rem; }
.d-pulse__hero .note { margin-top: .3rem; }
.d-pulse__figs { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 2rem; }
.d-pulse__figs div { border-top: 1px solid var(--gold-dim); padding-top: .9rem; }
.d-pulse__figs dt { font-family: 'Cormorant', serif; font-size: 2.6rem; line-height: 1; display: inline-flex; align-items: center; gap: .7rem; }
.d-pulse__figs dt svg { width: 1.8rem; height: 1.8rem; stroke: var(--gold); fill: none; stroke-width: 1.2; }
.d-pulse__figs dd { margin: .4rem 0 0; color: var(--smoke); font-size: 1.05rem; }

/* 20 dashboard preview */
.d-dash { background: var(--tray); border: 1px solid var(--gold-faint); border-radius: var(--r-m); padding: 1.5rem; display: grid; gap: .5rem; }
.d-dash__row { display: grid; grid-template-columns: 7rem 1fr 4rem 6rem; gap: 1rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--gold-faint); font-size: 1.05rem; }
.d-dash__head { font-size: .85rem; color: var(--smoke); letter-spacing: .04em; text-transform: uppercase; }
.d-dash__head b { font-weight: 400; }
.d-dash__head span[data-cue="card"] { padding: .2rem .4rem; margin-inline-start: -.4rem; display: inline-block; }
.d-dash__row .vitrine { width: 4rem; height: 4rem; }
.d-dash__row .vitrine img { padding: 8%; }
.d-dash__row em { font-style: normal; text-transform: capitalize; text-align: center; border-radius: 999px; padding: .2rem .6rem; font-size: .9rem; }
.d-dash__foot { display: flex; justify-content: space-between; align-items: center; margin-top: .75rem; }
.d-dash .demo-flag { margin-top: 0; }
.d-dash__pin { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .9rem; border: 1px solid var(--gold-dim); border-radius: 999px; font-size: .95rem; color: var(--smoke); }
.d-dash__pin svg { width: 1.1rem; height: 1.1rem; }
.d-slide span.d-dash__pin[data-cue="card"].is-cued { border-radius: 999px; box-shadow: 0 0 0 1px var(--gold), 0 0 1.5rem rgba(210,178,113,.3); }

/* 21 cms */
.d-split--cms { grid-template-columns: 1.3fr .7fr; }
.d-cms { margin-top: 1.25rem; border: 1px solid var(--gold-dim); border-radius: var(--r-m); background: var(--tray); overflow: hidden; }
.d-cms__bar { display: flex; align-items: center; gap: .8rem; padding: .8rem 1.1rem; border-bottom: 1px solid var(--gold-faint); font-size: 1rem; }
.d-cms__bar b { font-weight: 400; color: var(--ivory); }
.d-cms__mono { width: 1.5rem; height: 1.5rem; }
.d-cms__live { margin-inline-start: auto; font-size: .75rem; color: var(--ok); letter-spacing: .08em; text-transform: uppercase; }
.d-cms__live::before { content: ''; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--ok); margin-inline-end: .4rem; }
.d-cms__tabs { display: flex; gap: .2rem; padding: .5rem .8rem 0; border-bottom: 1px solid var(--gold-faint); font-size: .9rem; color: var(--smoke); }
.d-cms__tabs span { padding: .5rem .7rem; border-bottom: 2px solid transparent; }
.d-cms__tabs span[aria-selected="true"] { color: var(--gold); border-bottom-color: var(--gold); }
.d-cms__tbl { width: 100%; border-collapse: collapse; font-size: 1rem; }
.d-cms__tbl th { text-align: start; font-weight: 400; font-family: var(--display); font-size: 1.35rem; color: var(--ivory); padding: .6rem 1.1rem; width: 11rem; white-space: nowrap; vertical-align: top; }
.d-cms__tbl td { padding: .6rem 1.1rem .6rem 0; color: var(--smoke); border-bottom: 1px solid rgba(210,178,113,.07); }
.d-cms__tbl tr:last-child td { border-bottom: 0; }
.d-slide tr[data-cue="card"].is-cued th { color: var(--gold); }
.d-slide tr[data-cue="card"].is-cued td { color: var(--ivory); }
.d-cms__phone { align-self: center; }
.d-cms__screen { padding: 0; }
.d-phone__iframe { position: absolute; inset: 0; width: 390px; height: 780px; border: 0; transform-origin: 0 0; transform: scale(var(--phone-scale, .78)); background: var(--velvet); }
.d-cms__nophone { margin: auto; text-align: center; display: grid; justify-items: center; gap: 1rem; padding: 1rem; }
.d-slide .d-phone[data-cue="card"].is-cued { box-shadow: none; }
.d-slide .d-phone[data-cue="card"].is-cued .d-phone__screen { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold), 0 0 2.5rem rgba(210,178,113,.3); }

/* 22 architecture */
.d-arch { width: 100%; height: auto; max-height: 50vh; }
.d-node rect { fill: var(--tray); stroke: var(--gold-dim); transition: fill .6s var(--ease), stroke .6s var(--ease); }
.d-node--st rect { fill: #1f1914; }
.d-node--ups rect { fill: none; stroke-dasharray: 4 5; }
.d-node text { fill: var(--smoke); font-size: 17px; font-family: var(--text); }
.d-node .d-node__t { fill: var(--ivory); font-size: 22px; font-family: 'Cormorant', serif; transition: fill .6s var(--ease); }
.d-node--ups .d-node__t { font-size: 18px; }
.d-edge { fill: none; stroke: var(--gold); stroke-width: 1.2; opacity: .65; }
.d-edge--dash { stroke-dasharray: 5 6; }
.ds-architecture .d-p--wide { margin-top: .5rem; }

/* 23 plan: tabs, gantt, hardware, kpis */
.d-ptabs { display: flex; gap: .4rem; margin-top: .5rem; border-bottom: 1px solid var(--gold-faint); }
.d-ptabs button { padding: .8rem 1.4rem; min-height: var(--touch); font-family: var(--display); font-size: 1.5rem; color: var(--smoke); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.d-ptabs button[aria-pressed="true"] { color: var(--gold); border-bottom-color: var(--gold); }
.d-ptabs button:hover { color: var(--ivory); }
.d-ptab { min-height: 0; }
.d-hw { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem 3rem; margin-top: 1.5rem; }
.d-hw > div { border-top: 1px solid var(--gold-dim); padding-top: 1.25rem; }
.d-hw h3 { font-size: 2.1rem; margin-bottom: .6rem; }
.d-hw p { color: var(--smoke); font-size: 1.2rem; }
.d-gantt { --lab: 26rem; position: relative; margin-top: 1.25rem; }
.d-gantt__scale { position: relative; height: 2rem; margin-left: var(--lab); border-bottom: 1px solid var(--gold-faint); }
.d-gantt__scale span { position: absolute; font-size: .95rem; color: var(--smoke); transform: translateX(-10%); }
.d-gantt__row { display: grid; grid-template-columns: var(--lab) 1fr; align-items: center; min-height: 3.1rem; border-bottom: 1px solid rgba(210,178,113,.06); }
.d-gantt__label { font-size: 1.1rem; padding-inline-end: 1.5rem; transition: color .6s var(--ease); }
.d-gantt__row.is-lit .d-gantt__label { color: var(--gold); }
.d-gantt__track { position: relative; height: 100%; }
.d-gantt__track i { position: absolute; top: 50%; height: 1rem; transform: translateY(-50%); border-radius: 999px; background: var(--gold-dim); border: 1px solid var(--gold); transition: background .6s var(--ease); }
.d-gantt__track i.is-live, .d-gantt__row.is-lit .d-gantt__track i { background: var(--gold); }
.d-gantt__today { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--ivory); }
.d-gantt__today em { position: absolute; top: -1.8rem; left: .4rem; font-style: normal; font-size: .9rem; color: var(--ivory); white-space: nowrap; }
.d-slide .d-gantt__row[data-cue="step"].is-cued { box-shadow: none; }
.d-split--kpi { margin-top: 1.25rem; align-items: start; }
.d-kpis { margin: 1.5rem 0 0; display: grid; gap: 1rem; }
.d-kpis div { display: grid; grid-template-columns: 11rem 1fr; align-items: baseline; gap: 1.5rem; border-bottom: 1px solid var(--gold-faint); padding-bottom: .8rem; }
.d-kpis dt { font-family: 'Cormorant', serif; font-size: 2.8rem; line-height: 1; color: var(--gold); }
.d-kpis dd { margin: 0; font-size: 1.2rem; }

/* 24 close */
.d-close__img { position: absolute; inset: 0 0 0 auto; width: 46%; background-size: cover; background-position: center 20%; }
.d-close__img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--velvet) 0%, rgba(14,11,9,.2) 40%, rgba(14,11,9,0) 100%); }
.d-fin { position: relative; z-index: 2; max-width: 58rem; }
.d-close__mono { width: 4.5rem; height: 4.5rem; margin-bottom: 3rem; }
.d-close__title { font-size: 6rem; line-height: 1; max-width: none; }
.d-close__sign { display: flex; gap: 5rem; margin-top: 3.5rem; font-size: 1.15rem; color: var(--smoke); line-height: 1.7; }
.d-close__sign b { color: var(--ivory); font-weight: 400; font-size: 1.3rem; }
.d-close__acts { display: flex; gap: 1rem; margin-top: 3rem; align-items: center; }
.d-close__acts .d-demo { margin-top: 0; }
.d-credit { position: absolute; bottom: 2rem; inset-inline-end: 3rem; z-index: 2; font-size: 1rem; }
.d-credit img { height: 2rem; }

/* smaller stages (1366 x 768 and below) */
@media (max-height: 820px) {
  .d-slide__in { padding: 3.5rem 5rem 1.5rem; gap: 1rem; }
  .d-foot { padding: 0 5rem 5.5rem; }
  .d-h { font-size: 3.6rem; }
  .d-h--wide { font-size: 3.3rem; }
  .d-h--sm { font-size: 2.6rem; }
  .d-p { font-size: 1.2rem; margin-top: 1rem; }
  .d-open__title { font-size: 9rem; }
  .d-close__title { font-size: 4.6rem; }
  .d-figs dt { font-size: 4.8rem; }
  .d-split { gap: 3.5rem; }
  .d-img { min-height: 22rem; }
  .d-cards { height: 28rem; }
  .d-three h3, .d-profiles h3, .d-hw h3 { font-size: 2rem; }
  .d-journey button { min-height: 11rem; }
  .d-gantt__row { min-height: 2.6rem; }
  .d-gantt { --lab: 20rem; }
  .d-ptabs button { font-size: 1.3rem; }
  .d-phone { width: 15rem; }
  .d-pw { grid-template-columns: 15rem 1fr; gap: 2rem; }
  .d-pw__grid { grid-template-columns: repeat(5, 1fr); gap: .7rem; }
  .d-wallcard p { font-size: 1.1rem; }
  .d-phone__iframe { --phone-scale: .61; }
  .d-giftcard { width: 22rem; padding: 1.5rem; }
  .d-giftcard__qr { width: 10rem; }
  .d-gx li { padding: .35rem .5rem; font-size: 1rem; }
  .d-gx b { font-size: 1.4rem; }
  .d-x__grid { grid-template-columns: repeat(4, 1fr); }
  .d-cap { font-size: 1.7rem; padding: 1.2rem 8rem 1rem; min-height: 4.4rem; }
  .d-arch { max-height: 44vh; }
  .d-overview { padding: 3rem 5rem; }
  .d-overview button { min-height: 5rem; font-size: 1.3rem; }
}
@media (max-width: 1200px), (max-aspect-ratio: 4/3) {
  .d-slide__in { padding: 4rem 3rem 2rem; justify-content: flex-start; }
  .d-foot { padding: 0 3rem 6rem; }
  .d-split, .d-split--img, .d-split--x, .d-split--cms, .d-split--kpi { grid-template-columns: 1fr; gap: 2.5rem; height: auto; }
  .d-img { min-height: 22rem; }
  .d-three, .d-profiles, .d-hw { grid-template-columns: 1fr 1fr; }
  .d-journey { grid-template-columns: repeat(3, 1fr); row-gap: 1rem; }
  .d-journey::before { display: none; }
  .d-open__title { font-size: 7rem; white-space: normal; }
  .d-hero { padding: 0 2rem; }
  .d-close__img { width: 100%; opacity: .25; }
  .d-gantt { --lab: 14rem; }
  .d-overview__grid { grid-template-columns: repeat(2, 1fr); }
  .d-pw { grid-template-columns: 1fr; }
  .d-pw__grid { grid-template-columns: repeat(3, 1fr); }
  .d-wa { grid-template-columns: 1fr; }
  .d-ctrl { white-space: normal; flex-wrap: wrap; justify-content: center; max-width: calc(100% - 2rem); border-radius: 1.5rem; }
  .d-cap { padding: 1.2rem 2rem 1rem; font-size: 1.5rem; }
}
@media (max-width: 700px) { .d-three, .d-profiles, .d-hw, .d-figs, .d-list--cols, .d-form__row, .d-pulse__figs, .d-x__grid { grid-template-columns: 1fr; } .d-h { font-size: 3.2rem; } .d-pw__grid { grid-template-columns: 1fr 1fr; } }

/* FAIM presentation additions */
.d-three--stack { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 0; }
.d-three--stack h3 { font-size: 2rem; margin-bottom: .5rem; }
.d-years--plan { grid-template-columns: repeat(2, 1fr); margin-top: 0; }
.d-years--plan b { font-size: 1.6rem; }
.d-pw__wall--full { width: 100%; }
@media (max-width: 900px) { .d-years--plan { grid-template-columns: 1fr; } }
