/* ==========================================================
   FAIM JEWELLERY ARABIA EXPERIENCE  |  Opening screen
   Dark cinematic background with glints, gold FAIM logo with a single
   light sweep (2.4 s, once, skipped with reduced motion), five actions.
   ========================================================== */
#launch { position: fixed; inset: 0; z-index: 30; display: grid; grid-template-rows: auto 1fr auto auto; background: var(--velvet); overflow: auto; color: var(--ivory); }
.ln-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 35%, #2A2114 0%, #17120F 45%, var(--velvet) 80%); }
.ln-glints { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .8; }
.ln-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,11,9,.2) 0%, rgba(14,11,9,0) 40%, rgba(14,11,9,.85) 100%); pointer-events: none; }
.ln-head, .ln-hero, .ln-acts, .ln-foot { position: relative; }
.ln-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 2rem 4rem 0; }
.ln-event { color: var(--smoke); font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.ln-lang { min-height: 48px; padding: 0 1.4rem; border: 1px solid rgba(212,175,55,.35); background: rgba(14,11,9,.4); color: var(--ivory); border-radius: 999px; font: inherit; cursor: pointer; }
.ln-hero { align-self: center; text-align: center; padding: 2rem 4rem; display: grid; justify-items: center; gap: 1.2rem; }
.ln-mark { position: relative; width: min(26rem, 70vw); }
.ln-logo-gold { display: block; width: 100%; height: auto; }
/* one slow light sweep across the logo, only here */
.ln-mark::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 35%, rgba(255,246,214,.75) 50%, transparent 65%); background-size: 250% 100%; background-position: 130% 0; -webkit-mask: var(--logo-mask) center / contain no-repeat; mask: var(--logo-mask) center / contain no-repeat; animation: ln-sweep 2.4s cubic-bezier(.45,.05,.25,1) .5s 1 both; }
#launch { --logo-mask: url(../assets/brand/faim-logo-gold-flat.svg); }
@keyframes ln-sweep { from { background-position: 130% 0; } to { background-position: -30% 0; } }
@media (prefers-reduced-motion: reduce) { .ln-mark::after { display: none; animation: none; } }
.reduce-motion .ln-mark::after { display: none; animation: none; }
.ln-name { font-family: var(--display); font-weight: 300; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1.05; color: var(--ivory); }
.ln-sub { font-size: 1.3rem; color: var(--smoke); max-width: 36em; }
.ln-acts { display: grid; grid-template-columns: repeat(6, minmax(0, 14rem)); justify-content: center; gap: 1rem; padding: 0 4rem; }
.ln-act { display: grid; align-content: start; gap: .5rem; min-height: var(--touch, 72px); padding: 1.5rem 1.4rem; border: 1px solid rgba(212,175,55,.28); background: rgba(14,11,9,.55); color: inherit; text-decoration: none; border-radius: 4px; font: inherit; text-align: start; cursor: pointer; transition: border-color .5s, background .5s; }
.ln-act:hover, .ln-act:focus-visible { border-color: var(--brand-gold, #D4AF37); background: rgba(24,19,14,.75); outline: none; }
.ln-act svg { width: 1.8rem; height: 1.8rem; color: var(--brand-gold, #D4AF37); }
.ln-act__t { font-family: var(--display); font-size: 1.55rem; line-height: 1.1; }
.ln-act__s { color: var(--smoke); font-size: .95rem; line-height: 1.45; overflow-wrap: anywhere; }
.ln-qr { display: grid; justify-items: center; gap: 1rem; text-align: center; }
.ln-qr__code { width: 16rem; background: #fff; padding: 1rem; border-radius: 4px; }
.ln-qr__code svg { width: 100%; height: auto; display: block; }
.ln-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; padding: 2rem 4rem 1.75rem; }
.ln-credit { display: flex; align-items: center; gap: .8rem; color: var(--ash); font-size: .9rem; white-space: nowrap; }
.ln-faim { height: 1.4rem; width: auto; opacity: .9; }
.ln-small { color: var(--ash); font-size: .85rem; max-width: 46em; text-align: end; line-height: 1.6; }
.ln-small a, .ln-fs { color: var(--smoke); background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 1400px) { .ln-acts { grid-template-columns: repeat(3, minmax(0, 17rem)); } }
@media (max-width: 900px) {
  .ln-head { padding: 1.25rem 1rem 0; }
  .ln-event { font-size: .75rem; }
  .ln-hero { padding: 1.5rem 1rem; }
  .ln-acts { grid-template-columns: 1fr; padding: 0 1rem; gap: .7rem; }
  .ln-act { padding: 1.1rem 1.2rem; }
  .ln-act__t { font-size: 1.35rem; }
  .ln-foot { flex-direction: column; align-items: center; padding: 1.75rem 1rem 1.5rem; }
  .ln-small { text-align: center; }
  .ln-credit { white-space: normal; justify-content: center; flex-wrap: wrap; }
}

/* demonstration notice: quiet, one line, bottom of the opening screen and the gallery (text from brand.demoNotice) */
.demo-notice { color: var(--ash, #6f665b); font-size: .78rem; letter-spacing: .02em; line-height: 1.5; margin: 0; opacity: .8; }
.ln-foot .demo-notice { flex-basis: 100%; text-align: center; order: 3; }
.ln-foot { flex-wrap: wrap; }
.c-main .demo-notice { text-align: center; padding: .5rem 1rem 1rem; }
