*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#1E2A1D;color:#F3E6D8;font-family:'Jost',system-ui,sans-serif;overflow-x:hidden}
a{color:#F2C9CC;text-decoration:none}a:hover{color:#FFE4E6}
button{font:inherit}
input,select,textarea{font:inherit}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #F2C9CC;outline-offset:2px}
.serif{font-family:'Cormorant Garamond',serif}
.wrap{max-width:1240px;margin:0 auto}
.eyebrow{margin:0 0 14px;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:#F2C9CC}
.eyebrow.dark{color:#9A4F5C}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 30px;border-radius:999px;font-size:16px;font-weight:500;letter-spacing:.04em;border:0;cursor:pointer;transition:transform .35s,background .35s,color .35s}
.btn:hover{transform:translateY(-3px) scale(1.02)}
.btn-pink{background:#F2C9CC;color:#2A1B1E}
.btn-pink:hover{color:#2A1B1E}
.btn-outline{background:transparent;border:1px solid rgba(243,230,216,.5);color:#F3E6D8}
.btn-outline:hover{color:#F3E6D8}
.btn-green{background:#1E2A1D;color:#F3E6D8}
.btn-green:hover{color:#F3E6D8}
.btn-wine{background:#7A3A47;color:#FFF6EE}
.btn-wine:hover{color:#FFF6EE}
.btn-wine-outline{background:transparent;border:1px solid #7A3A47;color:#7A3A47;min-height:48px;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.btn-wine-outline:hover{color:#7A3A47}
.lang{display:flex;border:1px solid rgba(243,230,216,.35);border-radius:999px;padding:3px}
.lang button{min-height:36px;min-width:40px;border:0;border-radius:999px;background:transparent;color:#F3E6D8;font-weight:500;font-size:13px;cursor:pointer}
.lang button[aria-pressed="true"]{background:#F3E6D8;color:#1E2A1D}

/* motion */
@keyframes kv-float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-22px) rotate(6deg)}}
@keyframes kv-spinA{from{transform:rotateX(72deg) rotateZ(0deg)}to{transform:rotateX(72deg) rotateZ(360deg)}}
@keyframes kv-spinB{from{transform:rotateY(68deg) rotateZ(360deg)}to{transform:rotateY(68deg) rotateZ(0deg)}}
@keyframes kv-tilt{0%,100%{transform:rotateY(-10deg) rotateX(6deg)}50%{transform:rotateY(10deg) rotateX(-4deg)}}
@keyframes kv-glow{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes kv-rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes kv-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes kv-shimmer{from{background-position:0% 50%}to{background-position:200% 50%}}
@keyframes kv-petal{0%{transform:translate3d(0,-10vh,0) rotate(0deg);opacity:0}10%{opacity:.85}100%{transform:translate3d(60px,110vh,0) rotate(540deg);opacity:0}}
@keyframes kv-pulse{0%{box-shadow:0 0 0 0 rgba(242,201,204,.55)}100%{box-shadow:0 0 0 22px rgba(242,201,204,0)}}
@keyframes kv-rotate{to{transform:rotate(360deg)}}
@keyframes kv-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes kv-shine-move{0%,55%{transform:translateX(-120%) skewX(-20deg)}100%{transform:translateX(380%) skewX(-20deg)}}
@keyframes kv-morph{0%,100%{border-radius:42% 58% 63% 37%/41% 44% 56% 59%;transform:rotate(0deg)}33%{border-radius:62% 38% 35% 65%/58% 37% 63% 42%;transform:rotate(60deg)}66%{border-radius:38% 62% 58% 42%/36% 62% 38% 64%;transform:rotate(-40deg)}}
@keyframes kv-twinkle{0%,100%{opacity:0;transform:scale(.4) rotate(0deg)}50%{opacity:1;transform:scale(1) rotate(90deg)}}
@keyframes kv-sway{0%,100%{transform:rotate(-5deg) skewX(2deg)}50%{transform:rotate(6deg) skewX(-3deg)}}
@keyframes kv-draw{0%{stroke-dashoffset:520}30%,100%{stroke-dashoffset:0}}
@keyframes kv-mask{0%,8%{clip-path:inset(0 0 100% 0);opacity:.85}40%,78%{clip-path:inset(0 0 0 0);opacity:.85}92%,100%{clip-path:inset(0 0 0 0);opacity:0}}
@keyframes kv-steam{0%{transform:translateY(10px) scaleX(.8);opacity:0}30%{opacity:.8}100%{transform:translateY(-40px) scaleX(1.2);opacity:0}}
@keyframes kv-bubble{0%{transform:translateY(0) scale(.4);opacity:0}20%{opacity:.9}100%{transform:translateY(-90px) scale(1.1);opacity:0}}
@keyframes kv-iron{0%{transform:translateY(0);opacity:0}8%{opacity:1}78%{transform:translateY(150px);opacity:1}90%,100%{transform:translateY(150px);opacity:0}}
@keyframes kv-wavyout{0%,15%{opacity:1}70%,100%{opacity:0}}
@keyframes kv-straightin{0%,15%{clip-path:inset(0 0 100% 0)}78%,100%{clip-path:inset(0 0 0 0)}}
@keyframes kv-lash{0%,8%{transform:scaleY(0)}22%,86%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes kv-tweez{0%{transform:translate(50px,118px) rotate(-8deg)}50%{transform:translate(168px,118px) rotate(6deg)}100%{transform:translate(50px,118px) rotate(-8deg)}}
@keyframes kv-browhair{0%,12%{transform:rotate(42deg)}34%,84%{transform:rotate(-14deg)}100%{transform:rotate(42deg)}}
@keyframes kv-spoolie{0%{transform:translate(40px,104px) rotate(-25deg);opacity:0}8%{opacity:1}55%{transform:translate(184px,86px) rotate(-5deg);opacity:1}65%,100%{transform:translate(200px,86px) rotate(-5deg);opacity:0}}
@keyframes kv-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
@keyframes kv-in{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
@keyframes kv-check{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}
@keyframes kv-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes kv-burst{0%{transform:translate(0,0) scale(.3);opacity:1}100%{transform:translate(var(--x),var(--y)) scale(1) rotate(220deg);opacity:0}}

.kv-rise{animation:kv-rise 1.1s cubic-bezier(.2,.7,.2,1) both}
.kv-d1{animation-delay:.15s}.kv-d2{animation-delay:.3s}.kv-d3{animation-delay:.45s}.kv-d4{animation-delay:.6s}
.kv-in{animation:kv-in .7s cubic-bezier(.2,.7,.2,1) both}
.kv-stage{perspective:1200px}
.kv-tilt{animation:kv-tilt 9s ease-in-out infinite;transform-style:preserve-3d}
.kv-ringA{animation:kv-spinA 14s linear infinite}
.kv-ringB{animation:kv-spinB 18s linear infinite}
.kv-glow{animation:kv-glow 6s ease-in-out infinite}
.kv-float{animation:kv-float 7s ease-in-out infinite}
.kv-rotate{animation:kv-rotate 16s linear infinite}
.kv-blob{animation:kv-morph 16s ease-in-out infinite}
.kv-petal{position:absolute;top:0;border-radius:80% 0 80% 0;animation:kv-petal linear infinite;pointer-events:none}
.kv-card{transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s;transform-style:preserve-3d}
.kv-card:hover{transform:translateY(-10px) rotateX(6deg) rotateY(-4deg);box-shadow:0 40px 80px -30px rgba(90,40,50,.45)}
.kv-card:hover .kv-icon{transform:translateZ(40px) rotate(-8deg)}
.kv-icon{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.kv-pulse{animation:kv-pulse 2.2s ease-out infinite}
.kv-shine{position:relative;overflow:hidden}
.kv-shine::after{content:"";position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.6),rgba(255,255,255,0));animation:kv-shine-move 3.8s ease-in-out infinite;pointer-events:none}
.kv-shimmer{background:linear-gradient(90deg,#F3E6D8 0%,#F2C9CC 25%,#F3E6D8 50%,#F2C9CC 75%,#F3E6D8 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:kv-shimmer 6s linear infinite;font-style:italic}
.kv-marquee{animation:kv-marquee 32s linear infinite}
.kv-marquee-slow{animation:kv-marquee 48s linear infinite}
.kv-marquee-slow:hover{animation-play-state:paused}
.kv-twinkle{transform-box:fill-box;transform-origin:center;animation:kv-twinkle 3s ease-in-out infinite}
.kv-hair{transform-box:view-box;transform-origin:106px 46px;animation:kv-sway 4.4s ease-in-out infinite}
.kv-drawline{stroke-dasharray:520;stroke-dashoffset:520;animation:kv-draw 3.4s cubic-bezier(.6,.1,.3,1) forwards}
.kv-mask{animation:kv-mask 6.5s ease-in-out infinite}
.kv-steam{transform-box:fill-box;transform-origin:center bottom;animation:kv-steam 3.2s ease-out infinite}
.kv-bubble{transform-box:fill-box;transform-origin:center;animation:kv-bubble 4s ease-in infinite}
.kv-iron{transform-box:view-box;animation:kv-iron 5s cubic-bezier(.45,.05,.4,1) infinite}
.kv-wavy{animation:kv-wavyout 5s ease-in-out infinite}
.kv-straight{animation:kv-straightin 5s cubic-bezier(.45,.05,.4,1) infinite}
.kv-lash{transform-box:fill-box;transform-origin:50% 0%;animation:kv-lash 6s cubic-bezier(.3,.6,.3,1) infinite}
.kv-tweez{transform-box:view-box;transform-origin:0 0;animation:kv-tweez 6s ease-in-out infinite}
.kv-browhair{transform-box:fill-box;transform-origin:50% 100%;animation:kv-browhair 6s cubic-bezier(.3,.6,.3,1) infinite}
.kv-spoolie{transform-box:view-box;transform-origin:0 0;animation:kv-spoolie 6s ease-in-out infinite}
.kv-blink{transform-box:fill-box;transform-origin:center;animation:kv-blink 5s ease-in-out infinite}
.kv-scene{display:flex;flex-direction:column;gap:14px;padding:22px 22px 26px;border-radius:30px;background:rgba(243,230,216,.05);border:1px solid rgba(243,230,216,.14);color:#F3E6D8;transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s,border-color .6s}
.kv-scene:hover{transform:translateY(-12px);box-shadow:0 50px 90px -40px rgba(242,170,180,.55);border-color:rgba(242,201,204,.55);color:#F3E6D8}
.kv-scene svg{width:100%;height:auto;display:block;overflow:visible}
.kv-scene h3{font-weight:600;font-size:30px}
.kv-scene .go{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#F2C9CC}
.kv-scene p{margin:0;font-size:14px;line-height:1.6;color:#D9CBBB}
.kv-progress{display:none}
@supports (animation-timeline: scroll()){.kv-progress{display:block;animation:kv-grow linear both;animation-timeline:scroll(root)}}
.kv-reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.kv-reveal.on{opacity:1;transform:none}
details summary{list-style:none;cursor:pointer}
details summary::-webkit-details-marker{display:none}
details[open] .kv-plus{transform:rotate(45deg)}
.kv-plus{transition:transform .4s}
.kv-check{stroke-dasharray:120;stroke-dashoffset:120;animation:kv-check 1s .4s cubic-bezier(.6,.1,.3,1) forwards}
.kv-pop{animation:kv-pop .8s cubic-bezier(.2,.7,.2,1) both}
.kv-burst{position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:80% 0 80% 0;animation:kv-burst 1.6s cubic-bezier(.2,.7,.2,1) forwards}
.kv-choice{transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s,box-shadow .35s;cursor:pointer}
.kv-choice:hover{transform:translateY(-4px)}
.kv-bar{transition:width .7s cubic-bezier(.2,.7,.2,1)}

/* layout pieces */
header.nav{position:sticky;top:0;z-index:20;background:rgba(30,42,29,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(243,230,216,.12)}
header.nav nav{max-width:1240px;margin:0 auto;padding:14px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:12px;color:#F3E6D8;min-height:44px}
.brand:hover{color:#F3E6D8}
.brand img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.brand span{font-family:'Cormorant Garamond',serif;font-size:24px;letter-spacing:.14em}
.navlinks{display:flex;gap:28px;font-size:14px;letter-spacing:.12em;text-transform:uppercase}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#6A3A44}
.field input,.field select,.field textarea{min-height:48px;padding:0 16px;border-radius:14px;border:1px solid rgba(122,58,71,.3);background:#fff;color:#2E2224;font-size:16px;text-transform:none;letter-spacing:0}
.field textarea{padding:14px 18px;resize:vertical}
.wa-float{position:fixed;right:20px;bottom:20px;z-index:30;width:60px;height:60px;border-radius:50%;background:#F2C9CC;color:#2A1B1E;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px -10px rgba(0,0,0,.5);transition:transform .35s}
.wa-float:hover{transform:translateY(-3px) scale(1.05);color:#2A1B1E}
@media (max-width:760px){.hide-sm{display:none !important}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}.kv-reveal{opacity:1;transform:none}}
