  :root{
    --ivory:#F6F2E9;
    --ivory-deep:#EFE8D9;
    --charcoal:#1B1815;
    --charcoal-soft:#2A2620;
    --gold:#AD8A54;
    --gold-light:#D8C39B;
    --line:rgba(27,24,21,0.14);
    --serif:'Cormorant Garamond', serif;
    --sans:'Pretendard', -apple-system, sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{background:var(--ivory);}
  body{
    font-family:var(--sans);
    color:var(--charcoal);
    -webkit-font-smoothing:antialiased;
    word-break:keep-all;
    overflow-wrap:break-word;
  }
  .frame{
    width:100%;
    max-width:1080px;
    margin:0 auto;
    background:var(--ivory);
    position:relative;
    overflow:hidden;
    min-height:100vh;
  }

  /* ---------- IMAGE PLACEHOLDERS ---------- */
  .img-ph{
    width:100%;height:100%;
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    padding:10px 12px;
    box-sizing:border-box;
    background:#E7DFCB;
  }
  .img-ph span{
    font-family:var(--sans);
    font-size:9px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:rgba(27,24,21,0.5);
    font-weight:700;
  }
  .img-ph.dark{background:#3A342A;}
  .img-ph.dark span{color:rgba(246,242,233,0.55);}

  /* ---------- INTRO CURTAIN ---------- */
  .curtain{
    position:fixed;
    inset:0;
    width:100%;
    max-width:1080px;
    margin:0 auto;
    z-index:999;
    display:flex;
    pointer-events:none;
  }
  .curtain-panel{
    flex:1;
    background:var(--charcoal);
    position:relative;
    transition:transform 1.1s cubic-bezier(.76,0,.24,1);
    transition-delay:.35s;
  }
  .curtain-panel.left{transform:translateX(0);}
  .curtain-panel.right{transform:translateX(0);}
  .curtain.open .curtain-panel.left{transform:translateX(-101%);}
  .curtain.open .curtain-panel.right{transform:translateX(101%);}
  .curtain-mark{
    position:absolute;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    text-align:center;
    color:var(--gold-light);
    opacity:1;
    transition:opacity .4s ease;
    white-space:nowrap;
  }
  .curtain.open .curtain-mark{opacity:0;transition:opacity .3s ease;}
  .curtain-mark .brand{
    font-family:var(--serif);
    font-size:22px;
    font-weight:500;
    letter-spacing:0.04em;
  }
  .curtain-mark .x{
    font-size:11px;
    color:var(--gold);
    letter-spacing:0.3em;
    margin:8px 0;
    display:block;
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    height:min(88vh, 760px);
    min-height:500px;
    overflow:hidden;
  }
  .hero-img{
    position:absolute;inset:0;
    width:100%;height:100%;
    transform:scale(1.12);
    transition:transform 2.4s cubic-bezier(.16,1,.3,1);
    transition-delay:.6s;
  }
  .hero.reveal-img .hero-img{transform:scale(1);}
  .hero-gradient{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(15,13,11,0.15) 0%, rgba(15,13,11,0.05) 35%, rgba(15,13,11,0.55) 78%, rgba(15,13,11,0.88) 100%);
  }
  .hero-content{
    position:absolute;
    left:0;right:0;bottom:0;
    padding:0 clamp(20px,5vw,64px) clamp(30px,5vw,56px);
    max-width:640px;
    color:#fff;
  }
  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:10.5px;
    letter-spacing:0.22em;
    color:var(--gold-light);
    border:1px solid rgba(216,195,155,0.5);
    padding:6px 12px;
    border-radius:100px;
    margin-bottom:18px;
    opacity:0;
    transform:translateY(10px);
  }
  .hero-line{
    overflow:hidden;
  }
  .hero-line span{
    display:block;
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(34px, 6vw, 58px);
    line-height:1.12;
    letter-spacing:0.01em;
    transform:translateY(115%);
    transition:transform .95s cubic-bezier(.16,1,.3,1);
  }
  .hero-sub{
    margin-top:16px;
    font-size:clamp(13.5px, 1.6vw, 15.5px);
    line-height:1.7;
    color:rgba(255,255,255,0.82);
    font-weight:300;
    max-width:400px;
    opacity:0;
    transform:translateY(10px);
  }
  .hero.play .eyebrow{
    transition:opacity .7s ease .1s, transform .7s ease .1s;
    opacity:1;transform:translateY(0);
  }
  .hero.play .hero-line:nth-of-type(1) span{transition-delay:1.15s;}
  .hero.play .hero-line:nth-of-type(2) span{transition-delay:1.32s;}
  .hero.play .hero-line span{transform:translateY(0);}
  .hero.play .hero-sub{
    transition:opacity .8s ease 1.65s, transform .8s ease 1.65s;
    opacity:1;transform:translateY(0);
  }
  .scroll-cue{
    position:absolute;
    right:26px; bottom:26px;
    width:26px;height:26px;
    border:1px solid rgba(255,255,255,0.45);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    animation:bob 2.2s ease-in-out infinite;
    opacity:0;
  }
  .hero.play .scroll-cue{opacity:1;transition:opacity .6s ease 2.1s;}
  .scroll-cue i{font-size:13px;color:#fff;}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

  /* ---------- SHARED ---------- */
  section{padding:clamp(48px,8vw,96px) clamp(20px,6vw,72px);}
  section > .kicker,
  section > h2.section-title,
  section > p.body-text{max-width:620px;}
  .kicker{
    font-size:10.5px;
    letter-spacing:0.28em;
    color:var(--gold);
    font-weight:600;
    margin-bottom:14px;
  }
  h2.section-title{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(26px, 3.4vw, 36px);
    line-height:1.28;
    letter-spacing:0.01em;
    color:var(--charcoal);
  }
  .body-text{
    margin-top:16px;
    font-size:clamp(13.5px, 1.5vw, 15px);
    line-height:1.85;
    color:#4c473f;
    font-weight:400;
  }
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- ABOUT ---------- */
  .about{background:var(--ivory);}
  .brand-label{
    margin-top:26px;
    font-size:10px;
    letter-spacing:0.24em;
    color:#a89a7c;
    font-weight:700;
  }
  .brand-list{
    margin-top:14px;
    display:flex;
    flex-wrap:wrap;
    gap:10px 20px;
    max-width:640px;
  }
  .brand-list span{
    font-family:var(--sans);
    font-size:13px;
    font-weight:600;
    letter-spacing:0.01em;
    color:var(--charcoal);
    position:relative;
    padding-right:20px;
  }
  .brand-list span em{
    font-family:var(--serif);
    font-style:italic;
    font-weight:500;
    color:#8a7350;
    margin-left:5px;
  }
  .brand-list span:not(:last-child)::after{
    content:"";
    position:absolute;
    right:0;top:50%;
    transform:translateY(-50%);
    width:3px;height:3px;
    border-radius:50%;
    background:var(--gold);
  }
  .about-imgs{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
    margin-top:32px;
    max-width:820px;
  }
  .ai-item{
    overflow:hidden;
    aspect-ratio:3/4;
  }
  .ai-item .img-ph{
    transition:transform .6s cubic-bezier(.16,1,.3,1);
  }
  .ai-item:hover .img-ph{transform:scale(1.05);}
  .about-banner{
    margin-top:12px;
    max-width:820px;
    height:clamp(220px, 28vw, 360px);
    overflow:hidden;
  }

  /* ---------- OFFER / PROMOTION ---------- */
  .offer{
    background:var(--charcoal);
    color:var(--ivory);
    position:relative;
    overflow:hidden;
  }
  .offer::before{
    content:"10";
    position:absolute;
    font-family:var(--serif);
    font-weight:600;
    font-size:clamp(240px, 30vw, 420px);
    line-height:1;
    color:rgba(173,138,84,0.09);
    right:clamp(-70px,-4vw,-20px);
    top:-30px;
    letter-spacing:-0.04em;
    pointer-events:none;
  }
  .offer .kicker{color:var(--gold-light);}
  .offer h2.section-title{color:var(--ivory);}
  .offer .body-text{color:rgba(246,242,233,0.72);}
  .price-card{
    position:relative;
    margin-top:30px;
    max-width:480px;
    border:1px solid rgba(216,195,155,0.35);
    border-radius:2px;
    padding:clamp(22px,3vw,30px) clamp(20px,3vw,28px);
    background:rgba(255,255,255,0.03);
  }
  .price-row{
    display:flex;
    align-items:baseline;
    gap:12px;
  }
  .price-old{
    font-size:15px;
    color:rgba(246,242,233,0.45);
    text-decoration:line-through;
    font-weight:300;
  }
  .price-new{
    font-family:var(--serif);
    font-size:34px;
    font-weight:600;
    color:var(--gold-light);
  }
  .price-label{
    font-size:11px;
    letter-spacing:0.08em;
    color:rgba(246,242,233,0.55);
    margin-top:6px;
  }
  .badge-10{
    position:absolute;
    top:-12px;right:22px;
    background:var(--gold);
    color:var(--charcoal);
    font-size:10.5px;
    font-weight:700;
    letter-spacing:0.04em;
    padding:6px 14px;
    border-radius:100px;
  }
  .offer-list{
    margin-top:22px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .offer-list li{
    list-style:none;
    display:flex;
    gap:10px;
    align-items:flex-start;
    font-size:12.5px;
    line-height:1.6;
    color:rgba(246,242,233,0.78);
  }
  .offer-list i{color:var(--gold);font-size:15px;margin-top:1px;}
  .fine-print{
    margin-top:16px;
    font-size:10.5px;
    line-height:1.7;
    color:#948d7e;
  }
  .fine-print.on-dark{color:rgba(246,242,233,0.5);}

  /* ---------- COLLECTION ---------- */
  .gallery{background:var(--ivory-deep);}
  .collection-scroll{
    margin-top:26px;
    display:flex;
    gap:14px;
    overflow-x:auto;
    padding-bottom:14px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .collection-scroll::-webkit-scrollbar{height:3px;}
  .collection-scroll::-webkit-scrollbar-thumb{background:var(--line);}
  .collection-scroll::-webkit-scrollbar-track{background:transparent;}
  .c-card{
    position:relative;
    flex:0 0 auto;
    width:clamp(150px, 20vw, 210px);
    aspect-ratio:3/4;
    overflow:hidden;
    scroll-snap-align:start;
  }
  .c-card .img-ph{
    transition:transform .6s cubic-bezier(.16,1,.3,1);
  }
  .c-card:hover .img-ph{transform:scale(1.06);}
  .c-cap{
    position:absolute;left:0;right:0;bottom:0;
    padding:14px 14px;
    background:linear-gradient(0deg, rgba(20,17,14,0.72), transparent);
    color:#fff;
    font-family:var(--serif);
    font-style:italic;
    font-weight:500;
    font-size:13.5px;
    letter-spacing:0.02em;
  }
  .c-card.plate{
    background:var(--charcoal);
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:20px 18px;
  }
  .c4-label{
    font-size:10px;letter-spacing:0.2em;
    color:var(--gold-light);font-weight:700;margin-bottom:10px;
  }
  .c4-text{
    font-family:var(--serif);
    font-style:italic;
    font-size:14px;
    line-height:1.9;
    color:rgba(246,242,233,0.88);
  }

  /* ---------- CTA ---------- */
  .cta{
    background:var(--ivory);
    text-align:left;
  }
  .form-wrap{margin-top:28px;max-width:420px;}
  .field-label{
    font-size:11.5px;
    letter-spacing:0.05em;
    color:#6b6459;
    margin-bottom:10px;
    display:block;
    font-weight:600;
  }
  .toggle-group{
    display:flex;
    gap:10px;
    margin-bottom:22px;
  }
  .toggle-btn{
    flex:1;
    padding:13px 0;
    text-align:center;
    border:1px solid var(--line);
    background:transparent;
    font-family:var(--sans);
    font-size:13.5px;
    font-weight:600;
    color:var(--charcoal);
    border-radius:2px;
    cursor:pointer;
    transition:all .25s ease;
    letter-spacing:0.02em;
  }
  .toggle-btn.active{
    background:var(--charcoal);
    border-color:var(--charcoal);
    color:var(--gold-light);
  }
  .input-group{margin-bottom:16px;}
  .input-group input{
    width:100%;
    padding:14px 4px;
    border:none;
    border-bottom:1px solid var(--line);
    background:transparent;
    font-family:var(--sans);
    font-size:14.5px;
    color:var(--charcoal);
    outline:none;
    transition:border-color .25s ease;
  }
  .input-group input:focus{border-bottom-color:var(--gold);}
  .input-group input::placeholder{color:#a39c8d;}
  .submit-btn{
    width:100%;
    margin-top:10px;
    padding:16px 0;
    background:var(--charcoal);
    color:var(--gold-light);
    border:none;
    font-family:var(--sans);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.03em;
    border-radius:2px;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:8px;
    transition:background .25s ease, transform .15s ease;
  }
  .submit-btn:active{transform:scale(0.98);}
  .submit-btn:hover{background:#2b2620;}
  .success-box{
    display:none;
    margin-top:28px;
    max-width:420px;
    padding:30px 22px;
    background:var(--charcoal);
    color:var(--ivory);
    text-align:center;
    border-radius:2px;
  }
  .success-box.show{display:block;animation:fadeUp .6s ease;}
  @keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
  .success-box i{font-size:28px;color:var(--gold-light);margin-bottom:12px;}
  .success-box h3{font-family:var(--serif);font-weight:500;font-size:20px;margin-bottom:8px;}
  .success-box p{font-size:12px;color:rgba(246,242,233,0.7);line-height:1.6;}

  footer{
    padding:30px clamp(20px,6vw,72px) 42px;
    background:var(--ivory);
    border-top:1px solid var(--line);
  }
  footer .flogo{
    font-family:var(--serif);
    font-size:15px;
    color:var(--charcoal);
    margin-bottom:8px;
  }
  footer p{font-size:10px;line-height:1.7;color:#948d7e;}
  
#beauty-alert {
	display: none;
	position: fixed;
	-webkit-transform: translate3d(0px, 0px, 0px);
	transform: translate3d(0px, 0px, 0px);
	top: 50%;
	left: 50%;
	z-index: 9999;
	background: rgba(255, 0, 0, 0.7);
	width: 250px;
	height: 250px;
	border-radius: 50%;
	text-align: center;
	padding: 50px 20px;
	color: #fff;
	margin-left: -125px;
	margin-top: -125px;
	tab-index: -1;
	position: fixed;
}

#beauty-alert i, #beauty-alert svg {
	color: #fff;
	font-size: 50px;
}

#beauty-alert h3 {
	font-size: 18px;
	margin-top: 15px;
	margin-bottom: 10px;
}  