/* BeautyScanner holding page, Velours world (from docs/prototypes/v10-velours-bs.html + lux/bs-house.css). */
:root{
  --ivory:#FDFAF4;--parch:#F4EDE0;--blush:#F2E8E5;--blush-2:#EAD9D5;--void:#0E0A07;--void2:#1A1410;
  --rose:#B84D65;--rose-dk:#9C3E55;--rose-lt:#D48A9A;--gold:#A07840;--gold-lt:#C8A870;
  --dark:#1A1410;--muted:#645B52;--border:#D8CCBE;
  --on:#FAF6EE;--on-2:rgba(250,246,238,.82);
  --serif:"Cormorant Garamond",Georgia,serif;--sans:"Jost",system-ui,sans-serif;--mono:"DM Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.22,1,.36,1);--slow:cubic-bezier(.65,0,.35,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--ivory);color:var(--dark);font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--rose-lt);color:var(--void)}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:3px}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:4px}
svg.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.13em;flex:none}
.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;line-height:1.02;text-wrap:balance}
h1 em,h2 em,h3 em{font-style:italic;font-weight:500;color:var(--rose)}
section{padding:clamp(80px,9vw,128px) 0}
h2{font-size:clamp(38px,4.6vw,66px)}
.head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:clamp(36px,4.5vw,56px)}
.head p{color:var(--muted);max-width:44ch;font-size:17px}

/* velvet night */
.velvet{position:relative;isolation:isolate;background:radial-gradient(110% 80% at 18% 0%,#3B1720 0%,#22100F 42%,var(--void) 100%);color:var(--on)}
.velvet::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.velvet h1 em,.velvet h2 em{color:var(--rose-lt)}

/* nav */
.nav{position:absolute;inset:0 0 auto;z-index:50;height:80px;display:flex;align-items:center;color:var(--on)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:19px;letter-spacing:.01em}
.brand b{font-style:italic;font-weight:600;color:var(--rose-lt)}
.brand svg{width:26px;height:26px;color:var(--rose-lt)}
.nav .cta{font-weight:600;font-size:15px;text-decoration:none;color:var(--rose-lt);border-bottom:1px solid currentColor;padding-bottom:2px}

/* hero */
.hero{min-height:100svh;display:grid;align-items:center;padding:120px 0 80px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,6vw,96px);align-items:center}
.soon{display:inline-flex;align-items:center;gap:10px;margin-bottom:28px;padding:8px 16px;border:1px solid rgba(200,168,112,.45);border-radius:999px;font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--on-2)}
.soon::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold-lt);box-shadow:0 0 0 0 rgba(200,168,112,.6);animation:pulse 2.6s var(--ease) infinite}
.hero h1{font-size:clamp(56px,7.6vw,112px);line-height:.92;letter-spacing:-.03em}
.hero h1 em{display:block}
.hero .lede{margin:26px 0 0;max-width:46ch;color:var(--on-2);font-size:clamp(17px,1.35vw,20px)}
.proofline{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:38px;padding-top:22px;border-top:1px solid rgba(200,168,112,.25);font-size:15px;color:var(--on-2)}
.proofline b{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--gold-lt);margin-right:8px}
.arch{position:relative;aspect-ratio:3/4;border-radius:999px 999px 8px 8px;overflow:hidden;box-shadow:0 60px 120px -40px rgba(0,0,0,.8)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;animation:drift 14s var(--ease) both}
.arch::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(200,168,112,.5)}
.curtain{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;z-index:2;pointer-events:none}
.curtain i{background:#2A1215;animation:open-l 1.7s var(--slow) .35s both}
.curtain i:last-child{animation-name:open-r}
.arch figcaption{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;white-space:nowrap;background:rgba(14,10,7,.7);border:1px solid rgba(200,168,112,.45);border-radius:999px;padding:10px 18px;font-size:15px;display:flex;gap:10px;align-items:center;color:var(--on)}
.arch figcaption b{font-family:var(--serif);font-style:italic;font-weight:600;color:var(--gold-lt);font-size:19px}

/* strip */
.strip{overflow:hidden;padding:20px 0;border-bottom:1px solid var(--border);background:var(--ivory)}
.strip .track{display:flex;gap:56px;width:max-content;animation:roll 48s linear infinite}
.strip span{font-family:var(--serif);font-size:24px;font-weight:500;font-style:italic;color:var(--muted);white-space:nowrap}
.strip span::after{content:"·";margin-left:56px;color:var(--gold)}

/* what you'll find: arch cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.card{display:grid;gap:14px;align-content:start}
.card figure{position:relative;aspect-ratio:3/4;border-radius:999px 999px 6px 6px;overflow:hidden;background:var(--blush-2)}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.card:hover img{transform:scale(1.05)}
.card figure span{position:absolute;left:18px;bottom:16px;font-family:var(--mono);font-size:15px;padding:6px 12px;border-radius:999px;background:rgba(253,250,244,.92);color:var(--dark)}
.card h3{font-size:30px;line-height:1.08}
.card p{font-size:16px;color:#4A3E34;line-height:1.55;max-width:32ch}
.foil{position:relative;overflow:hidden}
.foil::after{content:"";position:absolute;inset:-20% -60%;background:linear-gradient(105deg,transparent 42%,rgba(255,236,206,.5) 50%,transparent 58%);transform:translateX(-60%);pointer-events:none;mix-blend-mode:soft-light}
.card:hover .foil::after{transition:transform 1.3s var(--slow);transform:translateX(60%)}
.find{background:var(--blush)}

/* alternatives */
.alt .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,100px);align-items:center}
.pair{position:relative;aspect-ratio:4/5;border-radius:999px 999px 8px 8px;overflow:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.75)}
.pair img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pair .after{clip-path:inset(0 0 0 50%);animation:wipe 7s var(--slow) 1s infinite alternate}
.pair .line{position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--gold-lt);animation:line 7s var(--slow) 1s infinite alternate}
.pair .tag{position:absolute;bottom:22px;font-family:var(--serif);font-style:italic;font-weight:600;font-size:20px;color:var(--on);text-shadow:0 2px 12px rgba(0,0,0,.7)}
.pair .tag.l{left:24px}.pair .tag.r{right:24px}
.alt p.lede{color:var(--on-2);max-width:46ch;margin:20px 0 36px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(200,168,112,.35)}
.facts div{padding:22px 16px 0 0}
.facts b{display:block;font-family:var(--mono);font-weight:500;font-size:clamp(28px,2.8vw,40px);color:var(--gold-lt);line-height:1}
.facts span{display:block;margin-top:8px;font-size:16px;color:var(--on-2)}
.alt .note{margin-top:28px;font-size:15px;color:var(--on-2);max-width:52ch}

/* method */
.method{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,34px);counter-reset:m}
.method li{list-style:none;counter-increment:m;padding-top:22px;border-top:1px solid var(--border)}
.method li::before{content:counter(m);display:block;font-family:var(--serif);font-size:44px;font-style:italic;color:var(--rose);line-height:1;margin-bottom:12px}
.method b{display:block;font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.15}
.method p{font-size:16px;color:var(--muted);margin-top:8px}
.trust{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:40px;padding-top:26px;border-top:1px solid var(--border);font-size:16px;font-weight:500;color:var(--muted)}
.trust span{display:inline-flex;gap:8px;align-items:center}.trust svg{color:var(--rose-dk);font-size:18px}

/* contact box */
.contact{position:relative;overflow:hidden}
.orb{position:absolute;border-radius:50%;pointer-events:none;animation:float 16s ease-in-out infinite alternate}
.o1{width:620px;height:620px;right:-200px;top:-260px;background:radial-gradient(circle at 35% 35%,rgba(212,138,154,.55),rgba(184,77,101,.15) 60%,transparent 70%)}
.o2{width:420px;height:420px;left:-140px;bottom:-200px;background:radial-gradient(circle at 60% 40%,rgba(200,168,112,.45),transparent 68%);animation-delay:-6s}
.nbox{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center;border:1px solid rgba(200,168,112,.5);border-radius:6px;padding:clamp(36px,6vw,84px)}
.nbox::before{content:"";position:absolute;inset:10px;border:1px solid rgba(200,168,112,.2);border-radius:3px;pointer-events:none}
.nbox p{color:var(--on-2);margin-top:16px;max-width:44ch}
.links{display:grid;gap:14px}
.links a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;border:1px solid rgba(250,246,238,.3);border-radius:999px;text-decoration:none;font-weight:500;transition:border-color .3s,background .3s}
.links a:hover{border-color:var(--gold-lt);background:rgba(250,246,238,.06)}
.links a svg{color:var(--gold-lt);transition:transform .5s var(--ease)}
.links a:hover svg{transform:translateX(5px)}

footer{background:var(--void);color:var(--on-2);padding:56px 0 40px;font-size:15px}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 40px;align-items:start}
footer p{max-width:60ch}
footer a{color:var(--on)}

/* motion: content is visible by default; .js only adds the reveal */
.rise{animation:rise 1.2s var(--ease) both}
.d2{animation-delay:.12s}.d3{animation-delay:.24s}.d4{animation-delay:.36s}
.js .rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.inview{opacity:1;transform:none}
.js .cards .card.rv:nth-child(2){transition-delay:.08s}.js .cards .card.rv:nth-child(3){transition-delay:.16s}.js .cards .card.rv:nth-child(4){transition-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(22px)}}
@keyframes open-l{to{transform:translateX(-101%)}}
@keyframes open-r{to{transform:translateX(101%)}}
@keyframes drift{from{transform:scale(1.12)}}
@keyframes roll{to{transform:translateX(-50%)}}
@keyframes wipe{from{clip-path:inset(0 0 0 30%)}to{clip-path:inset(0 0 0 70%)}}
@keyframes line{from{left:30%}to{left:70%}}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(200,168,112,0)}100%{box-shadow:0 0 0 0 rgba(200,168,112,0)}}
@keyframes float{to{transform:translate(-40px,30px)}}

@media (max-width:1100px){
  .wrap{width:calc(100% - 56px)}
  .hero .wrap,.alt .wrap,.nbox{grid-template-columns:1fr}
  .arch,.pair{max-width:440px;width:100%;margin-inline:auto}
  .cards,.method{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .wrap{width:calc(100% - 32px)}
  body{font-size:17px}
  .hero{padding-top:104px}.hero h1{font-size:clamp(50px,14vw,68px)}
  .head{flex-direction:column;align-items:flex-start}
  .cards{grid-template-columns:1fr 1fr;gap:18px}.card h3{font-size:24px}
  .method{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .curtain{display:none}
  .js .rv{opacity:1;transform:none}
}
