/* =========================================================
   NECHIS — Premium Skincare  ·  Warm Amber / Woody edition
   ========================================================= */
:root{
  --linen:#fbf7f0; --cream:#f4ede3; --sand:#eae0cf;
  --wood:#8a6f4b;  --amber:#a8632a; --gold:#c2a04e; --gold-soft:#d8be7e;
  --espresso:#241c14; --ink:#1a1410; --body:#4a4036; --muted:#8c8073;
  --line:#e3d9c8;

  --maxw:1280px;
  --pad-x:clamp(20px,5vw,64px);
  --pad-y:clamp(72px,10vw,128px);
  --ease:cubic-bezier(.16,1,.3,1);
  --font-kr:"Pretendard Variable",Pretendard,-apple-system,system-ui,sans-serif;
  --font-en:"Inter","Helvetica Neue",var(--font-kr);
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:var(--font-kr);color:var(--body);background:var(--cream);
  font-size:17px;line-height:1.8;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--cream)}
.en{font-family:var(--font-en)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad-x);width:100%}
section{position:relative}

.eyebrow{font-family:var(--font-en);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.h2{font-size:clamp(28px,4.2vw,52px);font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--ink)}
.h3{font-size:clamp(19px,2.3vw,25px);font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.lead{font-size:clamp(17px,1.6vw,20px);color:var(--body)}
.muted{color:var(--muted)}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1.05s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:.08s}
[data-reveal][data-delay="2"]{transition-delay:.16s}
[data-reveal][data-delay="3"]{transition-delay:.24s}

/* buttons */
.btn{display:inline-block;font-family:var(--font-en);font-size:13px;letter-spacing:.06em;
  padding:15px 36px;border-radius:40px;border:1px solid var(--ink);color:var(--ink);
  transition:background .45s var(--ease),color .45s var(--ease)}
.btn:hover{background:var(--ink);color:var(--cream)}
.btn.solid{background:var(--ink);color:var(--cream)}
.btn.solid:hover{background:var(--amber);border-color:var(--amber)}

/* =========================================================
   HEADER
   ========================================================= */
.header{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;
  justify-content:space-between;padding:22px var(--pad-x);
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .4s var(--ease)}
.header.solid{background:rgba(251,247,240,.85);backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);box-shadow:0 1px 0 var(--line);padding-block:15px}
.brandmark{font-family:var(--font-en);font-weight:600;font-size:20px;letter-spacing:.34em;
  color:var(--ink);padding-left:.34em;opacity:0;animation:fadeIn .8s ease .3s forwards}
.nav{display:flex;gap:clamp(18px,2.4vw,40px);align-items:center}
.nav a{font-family:var(--font-en);font-size:13px;font-weight:500;color:var(--body);transition:opacity .3s}
.nav a:hover{opacity:.5}
.nav-toggle{display:none;font-family:var(--font-en);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);background:none;border:none;cursor:pointer}
@media(max-width:820px){.nav{display:none}.nav-toggle{display:block}}

/* =========================================================
   1 · HERO  — wordmark + dropper drip → lineup cascade
   ========================================================= */
.hero{min-height:100svh;position:relative;overflow:hidden;background:var(--cream)}
.hero-glow{position:absolute;inset:0;z-index:0;opacity:0;animation:glowIn 1.4s var(--ease) forwards;
  background:
    radial-gradient(120% 80% at 50% 8%,#fffaf2 0%,#f4ede3 42%,#e8dcc8 100%),
    linear-gradient(115deg,transparent 30%,rgba(255,248,232,.7) 48%,transparent 62%);}
.hero-glow::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;
  background:linear-gradient(transparent,rgba(138,111,75,.10))}
@keyframes glowIn{to{opacity:1}}

.hero-inner{position:relative;z-index:2;min-height:100svh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:92px var(--pad-x) 72px;gap:clamp(10px,1.5vh,18px)}

.hero-eyebrow{opacity:0;animation:fadeUp 1s var(--ease) .35s forwards}
.hero-brand{font-family:var(--font-en);font-weight:500;letter-spacing:.06em;line-height:.9;color:var(--ink);
  font-size:clamp(62px,15vw,178px);display:flex;gap:.02em}
.hero-brand span{display:inline-block;opacity:0;transform:translateY(40px);
  animation:letterUp .95s var(--ease) forwards}
.hero-brand span:nth-child(1){animation-delay:.45s}
.hero-brand span:nth-child(2){animation-delay:.53s}
.hero-brand span:nth-child(3){animation-delay:.61s}
.hero-brand span:nth-child(4){animation-delay:.69s}
.hero-brand span:nth-child(5){animation-delay:.77s}
.hero-brand span:nth-child(6){animation-delay:.85s}
.hero-tagline{font-family:var(--font-en);font-size:clamp(14px,1.5vw,18px);letter-spacing:.02em;color:var(--body);
  opacity:0;animation:fadeUp 1s var(--ease) 1s forwards}
.hero-tagline b{font-weight:500;color:var(--amber)}

/* stage */
.hero-stage{position:relative;width:100%;max-width:760px;height:clamp(210px,34vh,322px);
  display:flex;align-items:flex-end;justify-content:center}
.pipette{position:absolute;top:0;left:50%;transform:translate(-50%,-104%);z-index:3;
  opacity:0;animation:pipetteIn 1s var(--ease) .7s forwards}
.pipette svg{width:46px;height:auto;filter:drop-shadow(0 6px 8px rgba(40,30,20,.18))}
.falldrop{position:absolute;top:46px;left:50%;width:13px;height:17px;z-index:3;
  background:radial-gradient(circle at 36% 30%,#e7a861,#a8632a 70%,#7a4519);
  border-radius:60% 60% 62% 62%/72% 72% 58% 58%;
  transform:translate(-50%,0) scale(0);
  box-shadow:inset 0 -2px 3px rgba(255,230,190,.5);
  animation:dropSwell .5s var(--ease) 1.55s forwards, dropFall .7s cubic-bezier(.5,0,.85,.6) 2.05s forwards}
.splash{position:absolute;bottom:30px;left:50%;width:20px;height:20px;border-radius:50%;
  border:1.5px solid var(--gold);transform:translate(-50%,0) scale(0);opacity:0;z-index:1;
  animation:splash .8s var(--ease) 2.65s forwards}
.hero-lineup{display:flex;align-items:flex-end;gap:clamp(2px,1vw,18px);z-index:2}
.hero-lineup .serum{height:clamp(176px,32vh,300px);width:auto;opacity:0;transform:translateY(46px) scale(.92);
  transform-origin:bottom center}
.play .hero-lineup .serum{animation:bottleRise .9s var(--ease) forwards}
.play .hero-lineup .serum:nth-child(1){animation-delay:2.7s}
.play .hero-lineup .serum:nth-child(2){animation-delay:2.86s}
.play .hero-lineup .serum:nth-child(3){animation-delay:3.02s}
.play .hero-lineup .serum:nth-child(4){animation-delay:3.18s}

.hero-cta{opacity:0;animation:fadeUp 1s var(--ease) 3.5s forwards}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;
  font-family:var(--font-en);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  opacity:0;animation:fadeIn 1s ease 3.8s forwards}
.scroll-hint::after{content:"";display:block;width:1px;height:34px;margin:12px auto 0;
  background:linear-gradient(var(--muted),transparent);animation:linePulse 2.4s var(--ease) infinite}

@keyframes fadeIn{to{opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes letterUp{to{opacity:1;transform:none}}
@keyframes pipetteIn{from{opacity:0;transform:translate(-50%,-150%)}to{opacity:1;transform:translate(-50%,-104%)}}
@keyframes dropSwell{from{transform:translate(-50%,0) scale(0)}to{transform:translate(-50%,0) scale(1)}}
@keyframes dropFall{0%{transform:translate(-50%,0) scale(1)}80%{transform:translate(-50%,150px) scale(.85)}100%{transform:translate(-50%,162px) scale(.2);opacity:0}}
@keyframes splash{0%{transform:translate(-50%,0) scale(0);opacity:.9}100%{transform:translate(-50%,0) scale(3.4);opacity:0}}
@keyframes bottleRise{to{opacity:1;transform:none}}
@keyframes linePulse{0%,100%{transform:scaleY(.4);opacity:.4;transform-origin:top}50%{transform:scaleY(1);opacity:1;transform-origin:top}}
/* ambient drip after intro */
.play .ambient{animation:ambient 5s ease 4.6s infinite}
@keyframes ambient{0%,82%{opacity:0;transform:translate(-50%,46px) scale(.2)}86%{opacity:1;transform:translate(-50%,46px) scale(1)}100%{opacity:0;transform:translate(-50%,150px) scale(.3)}}

@media(max-width:560px){
  .hero-lineup{gap:0}
  .hero-lineup .serum{height:clamp(150px,26vh,210px);margin-inline:-4px}
}

/* =========================================================
   2 · BRAND STORY (compact)
   ========================================================= */
.story{padding-block:var(--pad-y);background:var(--linen)}
.story .wrap{max-width:880px;text-align:center}
.story .h2{margin:20px 0 28px}
.story-lines p{font-size:clamp(20px,2.6vw,30px);line-height:1.5;font-weight:500;color:var(--ink);margin-bottom:14px;letter-spacing:-.01em}
.story-lines p.dim{color:var(--muted);font-weight:400}
.story-foot{margin-top:34px;color:var(--muted);max-width:46ch;margin-inline:auto}

/* =========================================================
   3 · LINEUP (horizontal product carousel = ingredient + buy)
   ========================================================= */
.lineup{padding-block:var(--pad-y);background:var(--cream);overflow:hidden}
.lineup-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px}
.lineup-head .h2{margin-top:14px}
.car-nav{display:flex;gap:10px}
.car-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--linen);
  cursor:pointer;font-size:17px;color:var(--ink);transition:background .3s,border-color .3s}
.car-nav button:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.car{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:8px;scrollbar-width:none}
.car::-webkit-scrollbar{display:none}
.pcard{scroll-snap-align:center;flex:0 0 clamp(280px,80vw,360px);background:var(--linen);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.pcard .shot{position:relative;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 100% at 50% 18%,#fffaf2,#f1e7d6 70%,#e6d8c1);overflow:hidden}
.pcard .shot .serum{height:78%;width:auto;transition:transform .8s var(--ease)}
.pcard:hover .shot .serum{transform:scale(1.05) translateY(-4px)}
.pcard .body{padding:clamp(24px,3vw,34px);display:flex;flex-direction:column;gap:8px;flex:1}
.pcard .ing-en{font-family:var(--font-en);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.pcard .pname{font-size:20px;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.pcard .pdesc{font-size:14.5px;color:var(--muted);line-height:1.65;flex:1;margin-top:4px}
.pcard .pmeta{display:flex;gap:18px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}
.pcard .pmeta b{display:block;color:var(--muted);font-weight:400;font-size:11px;letter-spacing:.04em;margin-bottom:2px}
.pcard .pmeta span{color:var(--body)}
.pcard .pfoot{display:flex;align-items:center;justify-content:space-between;margin-top:22px}
.pcard .price{font-family:var(--font-en);font-size:20px;color:var(--ink)}
.pcard .price small{font-size:12px;color:var(--muted)}
.btn-buy{font-family:var(--font-en);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream);background:var(--ink);border-radius:40px;padding:11px 22px;
  transition:background .4s var(--ease)}
.btn-buy:hover{background:var(--amber)}
.car-hint{margin-top:18px;font-family:var(--font-en);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center}

/* =========================================================
   4 · FORMULA (science + texture merged)
   ========================================================= */
.formula{padding-block:var(--pad-y);background:linear-gradient(180deg,#1a1410,#241c14);color:rgba(244,237,227,.78);overflow:hidden}
.formula .eyebrow{color:var(--gold-soft)}
.formula-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
.formula-grid>*{min-width:0}
.formula .h2{color:var(--linen);margin:16px 0 24px;max-width:16ch}
.formula p{color:rgba(244,237,227,.6);max-width:44ch}
.formula .orbs{display:flex;gap:18px;margin-top:38px;flex-wrap:wrap}
.orb{width:clamp(78px,9vw,104px);aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-size:11px;letter-spacing:.12em;color:rgba(244,237,227,.72);
  background:radial-gradient(circle at 32% 28%,rgba(255,235,200,.5),rgba(194,160,78,.1) 60%,transparent 75%);
  border:1px solid rgba(216,190,126,.18);animation:float 6s ease-in-out infinite}
.orb:nth-child(2){animation-delay:-1.5s}.orb:nth-child(3){animation-delay:-3s}.orb:nth-child(4){animation-delay:-4.5s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.formula-visual{aspect-ratio:1;border-radius:8px;position:relative;overflow:hidden;
  background:radial-gradient(50% 50% at 60% 35%,rgba(255,240,210,.18),transparent 70%),
  conic-gradient(from 200deg at 42% 58%,#2a2018,#3a2a18,#241c14,#1a1410,#2a2018)}
.drop{position:absolute;border-radius:60% 60% 65% 65%/70% 70% 60% 60%;
  background:radial-gradient(circle at 35% 30%,rgba(255,235,200,.55),rgba(168,99,42,.3));
  border:1px solid rgba(216,190,126,.25);animation:bob 7s ease-in-out infinite}
.drop.d1{width:30%;aspect-ratio:1;top:24%;left:30%}.drop.d2{width:15%;aspect-ratio:1;top:54%;left:58%;animation-delay:-2s}
.drop.d3{width:10%;aspect-ratio:1;top:18%;left:62%;animation-delay:-4s}
@keyframes bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9px) scale(1.03)}}
@media(max-width:760px){.formula-grid{grid-template-columns:1fr;gap:44px}.formula-visual{order:-1;max-width:440px;margin:0 auto;width:100%}}

/* =========================================================
   5 · ROUTINE
   ========================================================= */
.routine{padding-block:var(--pad-y);background:var(--linen)}
.sec-head{max-width:620px;margin:0 auto 54px;text-align:center}
.sec-head .h2{margin-top:16px}
.sec-head p{margin-top:16px;color:var(--muted)}
.routine-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.6vw,32px)}
.routine-grid>*{min-width:0}
.rcard{border:1px solid var(--line);border-radius:8px;padding:clamp(28px,3.6vw,46px);background:var(--cream)}
.rcard.night{background:var(--espresso);color:rgba(244,237,227,.82);border-color:var(--espresso)}
.rtime{font-family:var(--font-en);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.rcard.night .rtime{color:var(--gold-soft)}
.rcard .h3{margin:8px 0 24px}.rcard.night .h3{color:var(--linen)}
.rsteps{list-style:none;display:flex;flex-direction:column;gap:16px}
.rsteps li{display:flex;gap:14px;align-items:baseline;font-size:15px}
.rsteps .n{font-family:var(--font-en);font-size:12px;color:var(--muted);min-width:20px}
.rcard.night .rsteps .n{color:rgba(244,237,227,.45)}
@media(max-width:680px){.routine-grid{grid-template-columns:1fr}}

/* =========================================================
   6 · REVIEWS (horizontal)
   ========================================================= */
.reviews{padding-block:var(--pad-y);background:var(--cream);overflow:hidden}
.rev-row{display:flex;gap:clamp(16px,2vw,26px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
.rev-row::-webkit-scrollbar{display:none}
.rev-card{scroll-snap-align:start;flex:0 0 clamp(260px,72vw,360px);background:var(--linen);
  border:1px solid var(--line);border-radius:8px;padding:clamp(26px,3vw,36px)}
.rev-quote{font-size:16px;line-height:1.75;color:var(--ink);margin-bottom:22px}
.rev-quote::before{content:"“";font-family:var(--font-en);color:var(--gold);font-size:24px;margin-right:2px}
.rev-by{font-size:13px;color:var(--muted)}
.rev-by .star{display:block;color:var(--gold);font-size:12px;margin-bottom:4px;letter-spacing:.1em}

/* =========================================================
   7 · FAQ
   ========================================================= */
.faq{padding-block:var(--pad-y);background:var(--linen)}
.faq-wrap{max-width:820px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;display:flex;
  justify-content:space-between;align-items:center;gap:24px;padding:26px 4px;
  font-family:var(--font-kr);font-size:clamp(16px,2vw,19px);font-weight:500;color:var(--ink)}
.faq-q .ic{width:18px;height:18px;position:relative;flex:none}
.faq-q .ic::before,.faq-q .ic::after{content:"";position:absolute;inset:50% 0 auto 0;height:1.5px;background:var(--ink);transition:opacity .4s}
.faq-q .ic::after{transform:rotate(90deg)}
.faq-item.open .ic::after{opacity:0}
.faq-a{max-height:0;overflow:hidden;transition:max-height .55s var(--ease)}
.faq-a p{padding:0 4px 26px;color:var(--muted);max-width:64ch}

/* =========================================================
   8 · FOOTER
   ========================================================= */
.footer{background:var(--espresso);color:rgba(244,237,227,.6);padding-block:clamp(60px,7vw,88px) 36px}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
.foot-top>*{min-width:0}
.foot-brand .brandmark{color:var(--linen);display:inline-block;margin-bottom:16px;padding-left:0;font-size:22px;opacity:1;animation:none}
.foot-brand p{font-size:13.5px;max-width:30ch;color:rgba(244,237,227,.48)}
.foot-col h4{font-family:var(--font-en);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,237,227,.4);margin-bottom:16px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.foot-col a{font-size:14px;color:rgba(244,237,227,.64);transition:color .3s}
.foot-col a:hover{color:var(--linen)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:clamp(44px,6vw,68px);padding-top:26px;border-top:1px solid rgba(244,237,227,.1);
  font-size:12px;color:rgba(244,237,227,.4);line-height:1.9}
.foot-bottom .biz{max-width:62ch}
@media(max-width:820px){.foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
