
:root{--blush:#fbeef0;--rose:#e7a9bd;--rose-deep:#d1799a;--sage:#c3d3bd;--sage-deep:#9db892;--lav:#d9cdeb;--butter:#f4e6bd;--cream:#fdf7f4;--plum:#4b3a48;--plum-soft:#6d5a68;--gold:#c6a568;--white:#fffdfc;--grad:linear-gradient(135deg,#fbeef0 0%,#f3ecf6 40%,#eaf1ec 100%);--shadow:0 20px 50px -25px rgba(90,60,80,.45)}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:'Jost',sans-serif;color:var(--plum);background:var(--cream);overflow-x:hidden;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.serif{font-family:'Cormorant Garamond',serif;font-weight:500;letter-spacing:.3px}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px;border-radius:4px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--rose-deep);font-weight:500}
.bg-blobs{position:fixed;inset:0;z-index:-2;background:var(--grad);overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;mix-blend-mode:multiply;animation:drift 22s ease-in-out infinite}
.blob.b1{width:46vw;height:46vw;background:#f4c4d3;top:-8%;left:-6%}.blob.b2{width:40vw;height:40vw;background:#cfe0c8;bottom:-10%;right:-8%;animation-delay:-7s}.blob.b3{width:34vw;height:34vw;background:#d9cdec;top:35%;left:45%;animation-delay:-13s}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(4vw,-3vw) scale(1.08)}66%{transform:translate(-3vw,3vw) scale(.96)}}
.skip{position:fixed;top:-60px;left:14px;z-index:200;background:var(--plum);color:#fff;padding:10px 18px;border-radius:0 0 12px 12px;font-size:.8rem;transition:top .2s}
.skip:focus{top:0}
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;transition:.4s}
nav.scrolled{background:rgba(253,247,244,.75);backdrop-filter:blur(14px);box-shadow:0 6px 30px -18px rgba(80,50,70,.4);padding:11px 28px}
.logo{display:flex;align-items:center;gap:9px}
.logo-mark{border-radius:7px;display:block}
.logo-t{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;letter-spacing:.5px;color:var(--plum)}
.logo-t em{font-style:normal;color:var(--rose-deep);margin-left:3px}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--plum-soft);transition:.25s}
.nav-links a:hover{color:var(--rose-deep)}
.btn-wa{display:inline-flex;align-items:center;gap:8px;background:var(--rose-deep);color:#fff;padding:10px 20px;border-radius:40px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;transition:.28s;box-shadow:0 10px 24px -12px rgba(209,121,154,.9)}
.btn-wa:hover{transform:translateY(-2px);background:#c4638a}
.nav-toggle{display:none;background:none;border:0;font-size:1.6rem;color:var(--plum);cursor:pointer;line-height:1;padding:10px 12px;margin:-8px -10px -8px 0}
/* ---------- hero ---------- */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
#hero-canvas{position:absolute;inset:0;z-index:1}
.hero-fallback{position:absolute;inset:0;z-index:0;background:linear-gradient(160deg,#fbeef0 0%,#f0e4f2 30%,#e3ecf4 55%,#e2eee2 80%,#f7ecd9 100%);background-size:300% 300%;animation:silk 18s ease-in-out infinite}
@keyframes silk{0%,100%{background-position:0% 20%}50%{background-position:100% 80%}}
.hero-inner{position:relative;z-index:2;padding:0 20px;max-width:900px}
.hero .eyebrow{opacity:0;animation:rise .9s .2s forwards}
.hero h1{font-size:clamp(2.7rem,9vw,7rem);line-height:.98;margin:14px 0 10px;color:var(--plum);opacity:0;animation:rise 1s .35s forwards}
.hero h1 em{font-style:italic;color:var(--rose-deep)}
.hero p.lead{font-size:clamp(1rem,2.2vw,1.35rem);color:var(--plum-soft);font-weight:300;max-width:560px;margin:0 auto 30px;opacity:0;animation:rise 1s .55s forwards}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;animation:rise 1s .75s forwards}
.btn-primary{background:var(--plum);color:#fff;padding:15px 34px;border-radius:44px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;transition:.3s;box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:8px;justify-content:center;cursor:pointer;border:0;font-family:'Jost'}
.btn-primary:hover{transform:translateY(-3px);background:#5c4658}
.btn-ghost{border:1.5px solid var(--rose);color:var(--rose-deep);padding:15px 30px;border-radius:44px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;transition:.3s;background:rgba(255,255,255,.35);display:inline-flex;align-items:center;gap:8px;justify-content:center;cursor:pointer;font-family:'Jost'}
.btn-ghost:hover{background:var(--rose);color:#fff}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
.hero .eyebrow,.hero h1,.hero p.lead,.hero-cta{transform:translateY(28px)}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--plum-soft);opacity:.75;display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-cue .line{width:1px;height:40px;background:linear-gradient(var(--rose-deep),transparent);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}
section{position:relative;z-index:2}
.section-head{text-align:center;max-width:640px;margin:0 auto 54px}
.section-head h2{font-size:clamp(2.2rem,5vw,3.4rem);color:var(--plum);margin:10px 0 12px}
.section-head p{color:var(--plum-soft);font-weight:300}
.pad{padding:100px 0}
.values{padding:30px 0 0}
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vitem{display:flex;gap:13px;align-items:center;background:rgba(255,255,255,.5);border:1px solid rgba(215,160,180,.28);border-radius:16px;padding:16px 18px}
.vitem svg{width:26px;height:26px;color:var(--rose-deep);flex:none}
.vitem b{display:block;font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--plum);font-weight:600;line-height:1.1}
.vitem span{font-size:.8rem;color:var(--plum-soft)}
/* ---------- featured ring ---------- */
.stage{perspective:1600px;height:520px;position:relative;margin-top:20px}
.ring{position:absolute;top:0;left:50%;width:280px;height:420px;margin-left:-140px;transform-style:preserve-3d;cursor:grab;touch-action:pan-y}
.ring:active{cursor:grabbing}
.card3d{position:absolute;top:0;left:0;width:280px;height:420px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:#fff;backface-visibility:hidden;border:5px solid #fff;display:block}
.card3d img{width:100%;height:100%;object-fit:cover}
.card3d .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 14px 12px;background:linear-gradient(transparent,rgba(75,58,72,.82));color:#fff}
.card3d .cap .nm{font-family:'Cormorant Garamond',serif;font-size:1.05rem;line-height:1.15;max-height:2.4em;overflow:hidden}
.card3d .cap .pr{font-size:.82rem;color:#ffe4ee;margin-top:3px}
.stage-hint{text-align:center;margin-top:26px;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum-soft);opacity:.8}
/* ---------- lookbook ---------- */
.lookbook{overflow:hidden}
.lb-ch{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center;margin-bottom:110px}
.lb-ch:last-child{margin-bottom:0}
.lb-ch.flip .lb-txt{order:2}.lb-ch.flip .lb-visual{order:1}
.lb-num{font-family:'Cormorant Garamond',serif;font-size:5.5rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--rose);opacity:.8}
.lb-txt h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3.6vw,2.9rem);color:var(--plum);margin:8px 0 14px;line-height:1.05}
.lb-txt p{color:var(--plum-soft);font-weight:300;max-width:400px;margin-bottom:22px}
.lb-link{display:inline-flex;align-items:center;gap:8px;color:var(--rose-deep);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--rose);padding-bottom:4px;transition:.25s}
.lb-link:hover{gap:14px;color:#b6547d}
.lb-visual{position:relative;height:520px}
.lb-visual .lp{position:absolute;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;will-change:transform}
.lb-visual .lp img{width:100%;height:100%;object-fit:cover}
.lb-visual .lp1{width:62%;height:82%;top:0;left:4%;z-index:2}
.lb-visual .lp2{width:46%;height:60%;bottom:0;right:0;z-index:3}
/* ---------- collection tools ---------- */
.tools{display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:40px}
#search{width:min(430px,92%);padding:13px 22px;border-radius:40px;border:1.5px solid var(--rose);background:rgba(255,255,255,.6);font-family:'Jost';font-size:.95rem;color:var(--plum);outline:none;transition:.25s}
#search:focus{border-color:var(--rose-deep);box-shadow:0 0 0 4px rgba(231,169,189,.25)}
#search::placeholder{color:#b9a3af}
.filters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.chip{border:1.5px solid var(--rose);background:rgba(255,255,255,.4);color:var(--rose-deep);padding:8px 20px;border-radius:30px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:.25s;font-family:'Jost'}
.chip.active,.chip:hover{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:30px}
.pcard{position:relative;border-radius:18px;overflow:hidden;background:var(--white);box-shadow:0 14px 40px -26px rgba(80,50,70,.5);transform-style:preserve-3d;transition:box-shadow .3s;will-change:transform;display:block;color:var(--plum)}
.pcard:hover{box-shadow:0 26px 60px -28px rgba(80,50,70,.6)}
.pcard .imgwrap{position:relative;aspect-ratio:3/3.8;overflow:hidden;background:#f3e9ee}
.pcard .imgwrap img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.pcard:hover .imgwrap img{transform:scale(1.06)}
.pcard .imgwrap .add{position:absolute;top:10px;right:10px;z-index:3;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--rose-deep);font-size:1.35rem;line-height:1;cursor:pointer;box-shadow:0 6px 16px -8px rgba(80,50,70,.6);transition:.2s;display:grid;place-items:center;padding:0}
.pcard .imgwrap .add:hover{background:var(--rose-deep);color:#fff;transform:scale(1.08)}
.pcard .imgwrap .add.added{background:var(--sage-deep);color:#fff}
.pcard .body{padding:16px 16px 18px}
.pcard .nm{font-family:'Cormorant Garamond',serif;font-size:1.16rem;line-height:1.16;color:var(--plum);max-height:2.4em;overflow:hidden}
.pcard .pr{margin-top:6px;font-size:1rem;color:var(--rose-deep);font-weight:500}
.pcard .order{margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:linear-gradient(135deg,var(--sage-deep),#8fae86);color:#fff;border:0;padding:11px;border-radius:30px;font-family:'Jost';font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.28s;position:relative;overflow:hidden}
.pcard .order:hover{filter:brightness(1.06);transform:translateY(-1px)}
.pcard .order::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s}
.pcard .order:hover::after{left:130%}
.pcard .view{display:block;text-align:center;margin-top:10px;font-size:.74rem;letter-spacing:.1em;color:var(--plum-soft)}
.tag{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);color:var(--plum);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:20px;z-index:2}
/* ---------- atelier services ---------- */
.atelier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.svc{position:relative;border-radius:20px;padding:30px 24px 26px;border:1px solid rgba(215,160,180,.3);box-shadow:0 14px 40px -30px rgba(80,50,70,.5);display:block;color:var(--plum);transition:transform .3s,box-shadow .3s;overflow:hidden}
.svc:hover{transform:translateY(-6px);box-shadow:0 26px 60px -30px rgba(80,50,70,.55)}
.svc.s1{background:linear-gradient(150deg,#fdf3f5,#f9dde6)}
.svc.s2{background:linear-gradient(150deg,#f6f1fb,#e4d8f1)}
.svc.s3{background:linear-gradient(150deg,#f2f7f0,#d9e6d3)}
.svc.s4{background:linear-gradient(150deg,#fdf8ea,#f4e6bd)}
.svc .ic{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.75);display:grid;place-items:center;margin-bottom:16px;box-shadow:0 8px 20px -12px rgba(80,50,70,.4)}
.svc .ic svg{width:26px;height:26px;color:var(--rose-deep)}
.svc.s2 .ic svg{color:#9b7fc0}.svc.s3 .ic svg{color:var(--sage-deep)}.svc.s4 .ic svg{color:var(--gold)}
.svc h3{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:600;line-height:1.1;margin-bottom:8px}
.svc p{font-size:.86rem;color:var(--plum-soft);font-weight:300;line-height:1.5;margin-bottom:18px}
.svc .go{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);display:inline-flex;align-items:center;gap:7px;transition:gap .25s}
.svc:hover .go{gap:13px}
/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.about .txt h2{font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:18px;color:var(--plum)}
.about .txt p{color:var(--plum-soft);margin-bottom:16px;font-weight:300}
.about .stats{display:flex;gap:34px;margin-top:26px;flex-wrap:wrap}
.about .stats .n{font-family:'Cormorant Garamond',serif;font-size:2.4rem;color:var(--rose-deep);line-height:1}
.about .stats .l{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plum-soft)}
.about .visual{position:relative;height:460px}
.about .visual .ph{position:absolute;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff}
.about .visual .ph img{width:100%;height:100%;object-fit:cover}
.about .visual .p1{width:64%;height:78%;top:0;left:0;z-index:2}.about .visual .p2{width:52%;height:58%;bottom:0;right:0}
/* ---------- follow / notify band ---------- */
.band{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.band-card{position:relative;border-radius:24px;padding:44px 38px;overflow:hidden;color:var(--plum);box-shadow:var(--shadow);display:block;transition:transform .3s}
.band-card:hover{transform:translateY(-5px)}
.band-card.ig{background:linear-gradient(140deg,#fbe4ec,#eed9ef 55%,#dfe3f3)}
.band-card.notify{background:linear-gradient(140deg,#eaf3e7,#f7f0d8)}
.band-card h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1;margin-bottom:10px}
.band-card p{color:var(--plum-soft);font-weight:300;max-width:380px;margin-bottom:20px}
.band-card .cta{display:inline-flex;align-items:center;gap:9px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plum);border-bottom:1px solid var(--plum-soft);padding-bottom:4px}
.band-card .bc-ic{position:absolute;right:26px;top:26px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.7);display:grid;place-items:center}
.band-card .bc-ic svg{width:24px;height:24px;color:var(--rose-deep)}
.band-card.notify .bc-ic svg{color:var(--sage-deep)}
/* ---------- contact ---------- */
.contact{background:linear-gradient(135deg,#f7dfe7,#e6dcef 55%,#dcebe0);border-radius:34px;padding:64px 40px;text-align:center;box-shadow:var(--shadow)}
.contact h2{font-size:clamp(2rem,5vw,3.2rem);color:var(--plum);margin-bottom:12px}
.contact p{color:var(--plum-soft);max-width:520px;margin:0 auto 26px;font-weight:300}
.contact-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:30px}
.c-meta{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;color:var(--plum-soft);font-size:.9rem}
.c-meta a:hover{color:var(--rose-deep)}
.reveal{opacity:0;transform:translateY(38px)}
.reveal.in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
/* ---------- product page ---------- */
.pdp-wrap{padding-top:120px;padding-bottom:90px}
.crumb{font-size:.76rem;letter-spacing:.05em;color:var(--plum-soft);margin-bottom:26px}
.crumb a:hover{color:var(--rose-deep)}
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.pdp-img{border-radius:22px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;position:sticky;top:100px;background:#f6ebef}
.pdp-img img{width:100%;height:auto;display:block}
.pdp-info .tag{position:static;display:inline-block;margin-bottom:14px}
.pdp-info h1{font-size:clamp(2.1rem,4.5vw,3rem);color:var(--plum);line-height:1.08;margin-bottom:10px}
.pdp-info .price{font-size:1.6rem;color:var(--rose-deep);font-weight:500;margin-bottom:22px}
.pdp-info .desc{color:var(--plum-soft);font-weight:300;font-size:1.05rem;margin-bottom:26px}
.pdp-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.btn-wa2{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--sage-deep),#8fae86);color:#fff;padding:15px 26px;border-radius:44px;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;transition:.3s;box-shadow:0 12px 28px -14px rgba(122,150,112,.95)}
.btn-wa2:hover{transform:translateY(-3px);filter:brightness(1.03)}
.ask{display:inline-block;margin-bottom:20px;color:var(--rose-deep);font-size:.92rem}
.ask:hover{text-decoration:underline}
.pdp-links{display:flex;gap:8px 18px;flex-wrap:wrap;margin-bottom:24px;font-size:.84rem}
.pdp-links a{color:var(--plum-soft);border-bottom:1px dashed var(--rose);padding:6px 0 3px;transition:.2s}
.pdp-links a:hover{color:var(--rose-deep)}
.pdp-note{font-size:.86rem;color:var(--plum-soft);border-top:1px solid #eaddE3;padding-top:20px;line-height:1.8}
.pdp-note b{color:var(--plum);font-weight:500}
.pdp-bar{display:none}
.more{margin-top:80px}
.more h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;text-align:center;color:var(--plum);margin-bottom:30px}
.more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.more-card{border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 14px 40px -28px rgba(80,50,70,.5);transition:transform .3s;display:block;color:var(--plum)}
.more-card:hover{transform:translateY(-4px)}
.more-card img{width:100%;height:auto;aspect-ratio:3/3.7;object-fit:cover}
.more-card .mc{padding:12px}
.more-card .mc .n{font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--plum);line-height:1.1;max-height:2.2em;overflow:hidden}
.more-card .mc .p{font-size:.85rem;color:var(--rose-deep);margin-top:4px}
.cat-wrap{padding-top:118px;padding-bottom:80px}
.cat-head{text-align:center;margin-bottom:44px}
.cat-head h1{font-size:clamp(2.4rem,6vw,3.6rem);color:var(--plum)}
.cat-head p{color:var(--plum-soft);font-weight:300;max-width:520px;margin:10px auto 0}
/* ---------- simple pages (forms, size guide) ---------- */
.page-wrap{padding-top:130px;padding-bottom:90px;max-width:860px;margin:0 auto}
.page-head{text-align:center;margin-bottom:40px}
.page-head h1{font-size:clamp(2.2rem,5.5vw,3.4rem);color:var(--plum);line-height:1.05}
.page-head p{color:var(--plum-soft);font-weight:300;max-width:560px;margin:14px auto 0}
.form-card{background:rgba(255,255,255,.65);border:1px solid rgba(215,160,180,.3);border-radius:24px;padding:38px 34px;box-shadow:0 20px 50px -35px rgba(90,60,80,.5)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.frow.single{grid-template-columns:1fr}
.field label{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plum-soft);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:12px 16px;border-radius:14px;border:1.5px solid rgba(209,121,154,.45);background:rgba(255,255,255,.8);font-family:'Jost';font-size:.95rem;color:var(--plum);outline:none;transition:.25s;-webkit-appearance:none;appearance:none}
.field select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d1799a' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rose-deep);box-shadow:0 0 0 4px rgba(231,169,189,.22)}
.field textarea{min-height:90px;resize:vertical}
.field .hint{font-size:.76rem;color:#a08c9a;margin-top:5px}
.form-foot{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.form-foot .note{font-size:.8rem;color:var(--plum-soft);max-width:430px}
.wa-preview{margin-top:20px;background:#f4f9f2;border:1px solid #d4e4cd;border-radius:16px;padding:16px 18px;font-size:.86rem;color:#4b5a48;white-space:pre-wrap;display:none}
.wa-preview.show{display:block}
/* size guide */
.sg-scroll{overflow-x:auto;border-radius:18px;box-shadow:0 14px 40px -30px rgba(80,50,70,.5)}
.sg-table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.75);min-width:520px}
.sg-table th{background:linear-gradient(135deg,#f7dfe7,#ead9ef);font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--plum);padding:13px 10px;font-weight:600}
.sg-table td{padding:12px 10px;text-align:center;font-size:.92rem;color:var(--plum-soft);border-top:1px solid #f3e4ea}
.sg-table td:first-child{font-weight:500;color:var(--plum)}
.sg-note{margin:26px auto;max-width:640px;background:linear-gradient(150deg,#fdf3f5,#f6ecf7);border-radius:18px;padding:22px 26px;font-size:.9rem;color:var(--plum-soft);border:1px solid rgba(215,160,180,.3)}
.sg-note b{color:var(--plum)}
.howto{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.howto .hw{background:rgba(255,255,255,.6);border:1px solid rgba(215,160,180,.28);border-radius:18px;padding:22px 18px;text-align:center}
.howto .hw svg{width:40px;height:40px;margin:0 auto 12px;color:var(--rose-deep)}
.howto .hw b{display:block;font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--plum);font-weight:600;margin-bottom:6px}
.howto .hw span{font-size:.82rem;color:var(--plum-soft);line-height:1.5}
/* ---------- fabric studio ---------- */
.studio-wrap{padding-top:120px;padding-bottom:80px}
.studio{display:grid;grid-template-columns:1.35fr 1fr;gap:36px;align-items:stretch}
.studio-stage{position:relative;border-radius:26px;overflow:hidden;background:linear-gradient(150deg,#f2dfe8,#ddd4ec 55%,#d5dce6);box-shadow:var(--shadow);min-height:480px;border:6px solid #fff}
.studio-stage::after{content:'';position:absolute;left:18%;right:18%;bottom:8%;height:9%;background:radial-gradient(ellipse at center,rgba(100,75,95,.22),transparent 70%);pointer-events:none}
#studio-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}
.studio-stage .badge-viz{position:absolute;top:16px;left:16px;z-index:3;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);color:var(--plum-soft);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 13px;border-radius:20px}
.studio-stage .drag-hint{position:absolute;bottom:14px;left:0;right:0;text-align:center;z-index:3;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum-soft);opacity:.7}
.studio-panel{background:rgba(255,255,255,.65);border:1px solid rgba(215,160,180,.3);border-radius:26px;padding:30px 28px;box-shadow:0 20px 50px -35px rgba(90,60,80,.5);display:flex;flex-direction:column;gap:22px}
.studio-panel h2{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:var(--plum);font-weight:600}
.sp-label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--plum-soft);margin-bottom:10px}
.sw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sw{position:relative;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;font-family:'Jost'}
.sw i{display:block;width:44px;height:44px;border-radius:50%;border:3px solid #fff;box-shadow:0 6px 16px -8px rgba(80,50,70,.55);transition:transform .2s}
.sw:hover i{transform:scale(1.1)}
.sw.active i{outline:2.5px solid var(--rose-deep);outline-offset:2px}
.sw span{font-size:.68rem;color:var(--plum-soft);line-height:1.1;text-align:center}
.fab-chips{display:flex;gap:9px;flex-wrap:wrap}
.fchip{border:1.5px solid var(--rose);background:rgba(255,255,255,.5);color:var(--rose-deep);padding:8px 16px;border-radius:30px;font-size:.76rem;letter-spacing:.08em;cursor:pointer;transition:.25s;font-family:'Jost'}
.fchip.active,.fchip:hover{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.studio-cta{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.studio-cta .note{font-size:.78rem;color:var(--plum-soft)}
.studio-fallback{position:absolute;inset:0;display:none;place-items:center;text-align:center;padding:30px;color:var(--plum-soft)}
.studio-stage.no3d .studio-fallback{display:grid}
.studio-stage.no3d #studio-canvas{display:none}
/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:110;background:rgba(75,58,72,.55);backdrop-filter:blur(8px);opacity:0;transition:opacity .25s}
.lightbox.on{opacity:1}
.lightbox .lb-scroll{position:absolute;inset:0;overflow:auto;display:grid;place-items:center;padding:30px 14px}
.lightbox img{max-width:min(94vw,900px);width:auto;height:auto;max-height:none;border-radius:14px;box-shadow:0 30px 90px -30px rgba(0,0,0,.6);cursor:zoom-out}
.lightbox .lb-x{position:fixed;top:14px;right:16px;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(253,247,244,.9);color:var(--plum);font-size:1.7rem;line-height:1;cursor:pointer;box-shadow:0 10px 26px -12px rgba(0,0,0,.5)}
.share-link{display:inline-flex;align-items:center;gap:7px;margin-left:18px;background:none;border:0;color:var(--plum-soft);font-size:.92rem;cursor:pointer;font-family:'Jost';padding:0}
.share-link:hover{color:var(--rose-deep)}
/* ---------- fab / drawer / toast ---------- */
.fab{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:12px}
.fab-wa,.fab-bag{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;border:0;cursor:pointer;box-shadow:0 12px 30px -10px rgba(60,40,55,.5);transition:transform .2s}
.fab-wa{background:linear-gradient(135deg,var(--sage-deep),#8fae86);color:#fff}
.fab-bag{background:var(--rose-deep);color:#fff;position:relative}
.fab-wa:hover,.fab-bag:hover{transform:translateY(-3px)}
.fab-bag .badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 5px;border-radius:12px;background:var(--plum);color:#fff;font-size:.72rem;font-weight:600;display:none;place-items:center;border:2px solid var(--cream)}
.fab-bag.pulse{animation:bagpulse .5s ease}
@keyframes bagpulse{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
.drawer-ov{position:fixed;inset:0;background:rgba(60,40,55,.35);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.3s;z-index:70}
.drawer-ov.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(400px,92vw);background:var(--cream);z-index:71;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-30px 0 80px -40px rgba(0,0,0,.5)}
.drawer.open{transform:none}
.dh{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 14px;border-bottom:1px solid #eeddE4}
.dh h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--plum)}
.dx{background:none;border:0;font-size:1.8rem;color:var(--plum-soft);cursor:pointer;line-height:1}
.ditems{flex:1;overflow-y:auto;padding:8px 18px}
.dempty{color:var(--plum-soft);text-align:center;padding:40px 10px;font-size:.95rem}
.ditem{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #f0e6ea}
.ditem img{width:64px;height:80px;object-fit:cover;border-radius:8px}
.di-b{flex:1;min-width:0}
.di-n{font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--plum);display:block;line-height:1.1}
.di-p{color:var(--rose-deep);font-size:.9rem;margin:2px 0 8px}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:26px;height:26px;border-radius:50%;border:1px solid var(--rose);background:#fff;color:var(--rose-deep);cursor:pointer;font-size:1rem;line-height:1}
.qty span{min-width:18px;text-align:center;font-size:.9rem}
.di-x{margin-left:auto;background:none;border:0;color:var(--plum-soft);font-size:.78rem;cursor:pointer;text-decoration:underline}
.dfoot{padding:18px 22px 24px;border-top:1px solid #eeddE4;background:rgba(255,255,255,.5)}
.drow{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;color:var(--plum-soft)}
.drow b{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--plum)}
.dsend{width:100%;justify-content:center;margin-bottom:10px}
.dclear{width:100%;background:none;border:0;color:var(--plum-soft);font-size:.82rem;cursor:pointer;padding:6px}
.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--plum);color:#fff;padding:11px 22px;border-radius:30px;font-size:.85rem;opacity:0;pointer-events:none;transition:.3s;z-index:80}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* ---------- fly to bag ---------- */
.flyimg{position:fixed;z-index:90;border-radius:14px;object-fit:cover;pointer-events:none;box-shadow:0 16px 40px -18px rgba(80,50,70,.6);transition:transform .6s cubic-bezier(.5,-0.05,.75,.5),opacity .6s ease;will-change:transform}
/* ---------- custom cursor ---------- */
.cursor-ring{position:fixed;top:0;left:0;width:34px;height:34px;border:1.5px solid var(--rose-deep);border-radius:50%;pointer-events:none;z-index:150;transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .3s,border-color .25s;opacity:0;mix-blend-mode:multiply}
.cursor-ring.on{opacity:.75}
.cursor-ring.hover{width:52px;height:52px;border-color:var(--sage-deep)}
.cursor-dot{position:fixed;top:0;left:0;width:5px;height:5px;background:var(--rose-deep);border-radius:50%;pointer-events:none;z-index:150;transform:translate(-50%,-50%);opacity:0}
.cursor-dot.on{opacity:.85}
@media(hover:none),(pointer:coarse){.cursor-ring,.cursor-dot{display:none}}
/* ---------- page transition veil ---------- */
.veil{position:fixed;inset:0;z-index:120;background:linear-gradient(135deg,#fbeef0,#efe6f4 50%,#e7efe6);pointer-events:none;opacity:0;transition:opacity .28s ease}
.veil.on{opacity:1;pointer-events:auto}
/* ---------- preloader ---------- */
#preloader{position:fixed;inset:0;z-index:100;background:var(--grad);display:grid;place-items:center;transition:opacity .6s}
#preloader.done{opacity:0}
.pl-in{display:flex;flex-direction:column;align-items:center;gap:16px}
#preloader .logo-t{font-size:2.3rem}
.pl-bar{width:90px;height:2px;background:linear-gradient(90deg,transparent,var(--rose-deep),transparent);background-size:200% 100%;animation:plbar 1.1s linear infinite}
@keyframes plbar{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* ---------- footer ---------- */
footer{position:relative;z-index:2;background:rgba(255,255,255,.45);border-top:1px solid rgba(215,160,180,.25);margin-top:40px;padding:50px 0 26px}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;padding-bottom:26px;border-bottom:1px solid rgba(215,160,180,.25)}
.foot-top h4{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);margin-bottom:12px}
.foot-top a{display:block;color:var(--plum-soft);font-size:.9rem;padding:7px 0}
.foot-top a:hover{color:var(--rose-deep)}
.foot-bot{padding-top:20px;text-align:center;color:var(--plum-soft);font-size:.82rem}
/* ---------- responsive ---------- */
@media(max-width:1020px){
  .atelier-grid{grid-template-columns:repeat(2,1fr)}
  .howto{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  .nav-links{position:fixed;inset:0 0 0 auto;width:78%;max-width:320px;background:rgba(253,247,244,.98);backdrop-filter:blur(16px);flex-direction:column;justify-content:center;gap:26px;transform:translateX(100%);visibility:hidden;transition:transform .4s,visibility 0s .4s;box-shadow:-20px 0 60px -30px rgba(0,0,0,.4)}
  .nav-links.open{transform:translateX(0);visibility:visible;transition:transform .4s}.nav-toggle{display:block;z-index:60}
  .about{grid-template-columns:1fr;gap:36px}.about .visual{height:380px}
  .pad{padding:74px 0}.vgrid{grid-template-columns:repeat(2,1fr)}
  .lb-ch,.lb-ch.flip{grid-template-columns:1fr;gap:26px;margin-bottom:70px}
  .lb-ch.flip .lb-txt{order:1}.lb-ch.flip .lb-visual{order:2}
  .lb-visual{height:400px}
  .band{grid-template-columns:1fr}
  .studio{grid-template-columns:1fr}
  .studio-stage{min-height:380px}
  .pdp{grid-template-columns:1fr;gap:30px}.pdp-img{position:static}
  .more-grid{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr 1fr;gap:24px}
}
@media(max-width:640px){
  nav{padding:12px 18px}.wrap{padding:0 18px}
  .grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .pcard .nm{font-size:1rem}.pcard .body{padding:12px}.pcard .order{font-size:.66rem;padding:10px}
  .stage{height:440px}.ring,.card3d{width:220px;height:330px}.ring{margin-left:-110px}
  .contact{padding:44px 20px;border-radius:22px}
  .pdp-wrap{padding-top:100px;padding-bottom:110px}.cat-wrap{padding-top:100px;padding-bottom:60px}
  .page-wrap{padding-top:110px;padding-bottom:120px}.studio-wrap{padding-top:100px;padding-bottom:60px}
  .form-card{padding:26px 20px}
  .frow{grid-template-columns:1fr;gap:14px;margin-bottom:14px}
  .btn-primary,.btn-ghost,.btn-wa2{padding:14px 22px;font-size:.76rem}
  .fab{right:16px;bottom:16px}.fab-wa,.fab-bag{width:52px;height:52px}
  .page-product .fab-wa{display:none}
  .foot-top{grid-template-columns:1fr;gap:20px;text-align:center}.logo[style]{justify-content:center!important}
  .atelier-grid{grid-template-columns:1fr 1fr;gap:12px}
  .svc{padding:20px 16px 18px}.svc h3{font-size:1.2rem}.svc p{font-size:.78rem;margin-bottom:12px}
  .svc .ic{width:42px;height:42px;margin-bottom:12px}.svc .ic svg{width:21px;height:21px}
  .band-card{padding:32px 24px}
  .lb-num{font-size:4rem}
  .lb-visual{height:330px}
  .howto{gap:12px}.howto .hw{padding:16px 12px}
  .sw-grid{grid-template-columns:repeat(4,1fr);gap:8px}.sw i{width:38px;height:38px}
  /* sticky order bar on product pages */
  .pdp-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(253,247,244,.92);backdrop-filter:blur(14px);border-top:1px solid rgba(215,160,180,.35);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px;align-items:center}
  .pdp-bar .pb-p{font-family:'Cormorant Garamond',serif;font-size:1.25rem;color:var(--plum);font-weight:600;flex:1;line-height:1.1}
  .pdp-bar .pb-p small{display:block;font-family:'Jost';font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--plum-soft);font-weight:400}
  .pdp-bar .btn-wa2{padding:11px 18px;font-size:.7rem;box-shadow:none}
  .pdp-bar .pb-add{width:44px;height:44px;flex:none;border-radius:50%;border:1.5px solid var(--rose);background:#fff;color:var(--rose-deep);font-size:1.4rem;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
  .page-product .fab{bottom:78px}
  .toast{bottom:140px}
}
@media(max-width:430px){ .grid{grid-template-columns:1fr 1fr;gap:12px}.vgrid{grid-template-columns:1fr} }
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  #preloader{display:none}
  .hero .eyebrow,.hero h1,.hero p.lead,.hero-cta{opacity:1;transform:none}
  .reveal{opacity:1;transform:none}
  .veil{display:none}
  .cursor-ring,.cursor-dot{display:none}
}
