:root{--milk:#FFF8F2;--blush:#F4D8E1;--rose:#D987A1;--cherry:#AD3153;--ink:#3a2329;--muted:#6e5157;--gold:linear-gradient(135deg,#f6e3a8,#c9a14a 45%,#fff1c2 55%,#a87b2a);--silver:linear-gradient(135deg,#f4f4f6,#a9adb5 45%,#ffffff 55%,#7d828b);--s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:96px;--serif:"Playfair Display",Georgia,serif;--sans:"Jost",system-ui,sans-serif;--script:"Parisienne",cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--milk);color:var(--ink);font:400 17px/1.6 var(--sans)}
img{max-width:100%}a{color:inherit}h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--cherry);line-height:1.1;margin:0 0 var(--s2)}
h1{font-size:clamp(44px,7vw,96px);letter-spacing:-.02em}h2{font-size:clamp(32px,4.4vw,58px)}h3{font-size:24px}
.eyebrow{font:500 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--rose);margin-bottom:var(--s2);display:block}
.script{font-family:var(--script);color:var(--rose);font-size:1.6em;font-weight:400}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:2px solid var(--cherry);outline-offset:3px}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--s4)}
.announce{background:var(--cherry);color:var(--milk);text-align:center;font-size:13px;letter-spacing:.08em;padding:8px}
header.site{position:sticky;top:0;z-index:50;background:rgba(255,248,242,.88);backdrop-filter:blur(10px);border-bottom:1px solid #f0dfe2;transition:box-shadow .3s}
header.site.scrolled{box-shadow:0 6px 30px -18px rgba(173,49,83,.5)}
.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:72px}
.nav ul{display:flex;gap:var(--s3);list-style:none;margin:0;padding:0;font-size:14px;letter-spacing:.06em}
.nav ul a{text-decoration:none;position:relative}.nav ul a::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:100%;background:var(--cherry);transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav ul a:hover::after,.nav ul a[aria-current]::after{transform:scaleX(1)}
.logo{font:500 40px/1 var(--serif);color:var(--cherry);text-decoration:none;letter-spacing:-.02em}.logo sup{font-size:14px;color:var(--rose)}
.tools{display:flex;justify-content:flex-end;gap:var(--s2)}
.icon-btn{background:none;border:0;cursor:pointer;color:var(--cherry);padding:8px;position:relative;font:inherit}
.count{position:absolute;top:0;right:-2px;background:var(--cherry);color:#fff;border-radius:99px;font-size:10px;min-width:16px;height:16px;line-height:16px;text-align:center}
.menu-btn{display:none}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--cherry);color:var(--milk);border:0;border-radius:99px;padding:15px 30px;font:500 14px var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px var(--cherry)}.btn.ghost{background:transparent;color:var(--cherry);border:1px solid var(--cherry)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
/* placeholder imagery */
.ph{position:relative;overflow:hidden;border-radius:4px;background:radial-gradient(ellipse at 30% 20%,#fff6ee,transparent 60%),linear-gradient(160deg,#f7e6dc,#ecd2c8 50%,#e2c0b6);min-height:240px;display:flex;align-items:center;justify-content:center}
.ph.marble{background:radial-gradient(ellipse at 70% 80%,rgba(255,255,255,.7),transparent 50%),repeating-linear-gradient(115deg,transparent 0 40px,rgba(190,160,150,.12) 41px 43px),linear-gradient(170deg,#f8efe8,#e9d9cf)}
.ph.blush{background:radial-gradient(circle at 70% 30%,#fff 0,transparent 40%),linear-gradient(150deg,var(--blush),#e8b3c3)}
.ph-label{position:absolute;left:12px;bottom:12px;background:rgba(255,248,242,.92);color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:99px;border:1px dashed var(--rose)}
.hook{width:46%;max-width:260px;filter:drop-shadow(0 18px 18px rgba(80,40,30,.25))}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}
/* hero */
.hero{display:grid;grid-template-columns:7fr 5fr;min-height:calc(100vh - 110px);gap:0}
.hero .ph{border-radius:0;min-height:560px}
.hero-copy{padding:var(--s6) var(--s5);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,var(--milk),#fdeff0)}
.hero-copy p{max-width:420px;color:var(--muted)}
.hero .hook{animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-12px) rotate(-2deg)}}
.marquee{overflow:hidden;border-block:1px solid #f0dfe2;background:#fff}.marquee div{display:flex;gap:48px;white-space:nowrap;padding:14px 0;animation:mq 40s linear infinite;font-family:var(--serif);font-style:italic;color:var(--cherry);font-size:22px}
@keyframes mq{to{transform:translateX(-50%)}}
section{padding:var(--s6) 0}
/* unfold demo */
.unfold{background:#fff;}
.unfold-grid{display:grid;grid-template-columns:5fr 7fr;gap:var(--s5);align-items:center}
.stage{position:relative;aspect-ratio:1/1;border-radius:4px;overflow:hidden}
.stage svg{position:absolute;inset:0;width:100%;height:100%}
#arm{transform-origin:200px 170px;transition:transform .3s ease}
.steps{list-style:none;padding:0;margin:var(--s3) 0;counter-reset:s}
.steps li{padding:var(--s2) 0 var(--s2) 52px;border-top:1px solid #f0dfe2;position:relative;color:var(--muted);transition:color .3s}
.steps li::before{counter-increment:s;content:"0" counter(s);position:absolute;left:0;font-family:var(--serif);font-size:24px;color:var(--rose)}
.steps li.active{color:var(--ink)}.steps li.active::before{color:var(--cherry)}
input[type=range]{width:100%;accent-color:var(--cherry)}
/* collection */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4) var(--s3)}
.card{text-decoration:none;display:block}.card .ph{aspect-ratio:4/5;min-height:0;transition:transform .5s}
.card:hover .ph{transform:scale(1.02)}.card:hover .hook{transform:rotate(-6deg) scale(1.05)}.card .hook{transition:transform .5s}
.card h3{margin:var(--s2) 0 4px;font-size:22px}.card p{margin:0;color:var(--muted);font-size:14px}
.tag{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:var(--blush);color:var(--cherry);padding:4px 10px;border-radius:99px;margin-top:8px}
.swatches{display:flex;gap:8px;margin-top:10px}.sw{width:18px;height:18px;border-radius:50%;border:1px solid #fff;box-shadow:0 0 0 1px #d9c1c6}.sw.g{background:var(--gold)}.sw.s{background:var(--silver)}
/* split editorial */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:640px}.split .ph{border-radius:0}.split .copy{padding:var(--s6);display:flex;flex-direction:column;justify-content:center}
.split.rev .copy{order:-1;background:var(--blush)}
.details{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.detail{border-top:1px solid var(--rose);padding-top:var(--s2)}.detail b{font-family:var(--serif);color:var(--cherry);font-size:22px;font-weight:500;display:block}.detail p{font-size:14px;color:var(--muted)}
.pending{font-size:12px;color:var(--cherry);letter-spacing:.1em;text-transform:uppercase}
/* gift note */
.note{background:#fffdf9;box-shadow:0 30px 60px -30px rgba(120,40,60,.4);padding:var(--s4);transform:rotate(-2deg);max-width:380px;border-radius:2px;position:relative;margin-top:var(--s4)}
.note::before{content:"";position:absolute;top:-14px;left:50%;width:70px;height:28px;background:var(--rose);opacity:.6;transform:translateX(-50%) rotate(3deg)}
.note .msg{font-family:var(--script);font-size:30px;color:var(--cherry);min-height:90px;line-height:1.3;word-wrap:break-word}
textarea,input[type=email],input[type=text]{width:100%;border:1px solid #e3c8cf;background:#fff;border-radius:8px;padding:14px;font:inherit;color:var(--ink)}
label{font-size:13px;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:6px}
/* faq */
details{border-top:1px solid #f0dfe2;padding:var(--s3) 0}summary{cursor:pointer;font-family:var(--serif);font-size:22px;color:var(--cherry);list-style:none;display:flex;justify-content:space-between}summary::after{content:"+";transition:transform .25s}details[open] summary::after{transform:rotate(45deg)}details p{color:var(--muted);max-width:720px}
/* waitlist */
.waitlist{background:var(--cherry);color:var(--milk);text-align:center;position:relative;overflow:hidden}
.waitlist h2{color:var(--milk)}.waitlist form{display:flex;gap:8px;max-width:520px;margin:var(--s3) auto 0}.waitlist input{border:0;border-radius:99px;padding:15px 22px}
.waitlist .btn{background:var(--milk);color:var(--cherry)}.waitlist small{display:block;margin-top:var(--s2);opacity:.8}
.form-msg{min-height:1.5em;margin-top:12px}
.hearts span{position:absolute;color:rgba(255,248,242,.15);font-size:40px;animation:rise 12s linear infinite}
@keyframes rise{from{transform:translateY(400px)}to{transform:translateY(-200px) rotate(30deg)}}
footer{padding:var(--s5) 0 var(--s4);font-size:14px;color:var(--muted)}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s4)}.foot ul{list-style:none;padding:0;margin:0;line-height:2}.foot a{text-decoration:none}.foot h4{font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--cherry)}
/* cart drawer */
.scrim{position:fixed;inset:0;background:rgba(58,35,41,.35);opacity:0;pointer-events:none;transition:opacity .3s;z-index:80}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,100%);background:var(--milk);z-index:90;transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;box-shadow:-20px 0 60px -30px rgba(0,0,0,.4)}
body.cart-open .drawer{transform:none}body.cart-open .scrim{opacity:1;pointer-events:auto}
.drawer header{display:flex;justify-content:space-between;align-items:center;padding:var(--s3);border-bottom:1px solid #f0dfe2}.drawer header h2{font-size:28px;margin:0}
.drawer .body{flex:1;overflow:auto;padding:var(--s3)}.drawer .foot-cart{padding:var(--s3);border-top:1px solid #f0dfe2}
.line{display:grid;grid-template-columns:80px 1fr auto;gap:var(--s2);align-items:center;padding-bottom:var(--s2);border-bottom:1px solid #f0dfe2;margin-bottom:var(--s2)}.line .ph{min-height:80px;height:80px}
.qty{display:inline-flex;border:1px solid #e3c8cf;border-radius:99px}.qty button{background:none;border:0;width:30px;cursor:pointer;color:var(--cherry);font-size:16px}.qty span{padding:4px 6px}
.notice{background:var(--blush);color:var(--cherry);font-size:13px;padding:12px 14px;border-radius:8px}
/* product page */
.pdp{display:grid;grid-template-columns:7fr 5fr;gap:var(--s5);padding-top:var(--s4)}
.gallery{display:grid;grid-template-columns:90px 1fr;gap:var(--s2)}.thumbs{display:flex;flex-direction:column;gap:var(--s1)}.thumbs button{border:1px solid transparent;padding:0;border-radius:4px;cursor:pointer;background:none}.thumbs button[aria-pressed=true]{border-color:var(--cherry)}.thumbs .ph{min-height:90px;height:90px}
.main-img .ph{aspect-ratio:4/5;min-height:0}
.buy{position:sticky;top:96px;align-self:start}
.finishes{display:flex;gap:var(--s2);margin:var(--s2) 0 var(--s3)}
.finish{border:1px solid #e3c8cf;background:#fff;border-radius:99px;padding:8px 16px 8px 8px;display:flex;align-items:center;gap:10px;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .2s}
.finish[aria-checked=true]{border-color:var(--cherry);box-shadow:0 0 0 1px var(--cherry)}.finish .sw{width:24px;height:24px}
.meta{font-size:14px;color:var(--muted);border-top:1px solid #f0dfe2;margin-top:var(--s3);padding-top:var(--s2)}
.sizebox{position:relative}.size-ov{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(255,248,242,.8);font-family:var(--serif);color:var(--cherry);font-size:20px;text-align:center;padding:20px}.sizebox.show .size-ov{display:flex}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;background:var(--milk);border-top:1px solid #f0dfe2;padding:12px 16px;display:none;justify-content:space-between;align-items:center;z-index:40;transform:translateY(100%);transition:transform .3s}.sticky-buy.on{transform:none}
.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s5)}
.page-hero{padding:var(--s6) 0 var(--s4);text-align:center}.page-hero p{max-width:640px;margin:0 auto;color:var(--muted)}
.disclaimer{font-size:12px;color:var(--muted);text-align:center;margin-top:var(--s4)}
@media (max-width:900px){.wrap{padding:0 var(--s3)}.nav ul{display:none}.menu-btn{display:block}.nav{grid-template-columns:auto 1fr auto;height:60px}.logo{font-size:32px;text-align:center}
.hero,.unfold-grid,.split,.pdp,.specs{grid-template-columns:1fr}.hero .ph{min-height:420px}.hero-copy{padding:var(--s4) var(--s3) var(--s5)}
.split.rev .copy{order:0}.split .copy{padding:var(--s5) var(--s3)}.cards{grid-template-columns:1fr 1fr;gap:var(--s3) var(--s2)}.details{grid-template-columns:1fr 1fr}.foot{grid-template-columns:1fr 1fr}
.gallery{grid-template-columns:1fr}.thumbs{flex-direction:row;order:2}.thumbs button{flex:1}.buy{position:static}.sticky-buy{display:flex}.waitlist form{flex-direction:column}section{padding:var(--s5) 0}}
.mnav{position:fixed;inset:0;background:var(--milk);z-index:95;padding:var(--s5) var(--s3);display:none;flex-direction:column;gap:var(--s3);font-family:var(--serif);font-size:32px;color:var(--cherry)}.mnav.open{display:flex}.mnav a{text-decoration:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

.cards.two{grid-template-columns:repeat(2,1fr);gap:var(--s5)}.card .ph img{will-change:transform}.card:hover .ph img{transform:scale(1.06)}@media(max-width:600px){.cards.two{grid-template-columns:1fr}}
@keyframes kb{to{transform:scale(1.08) translate(-1%,-1%)}}
