@font-face{font-family:"Fraunces";src:url(../fonts/Fraunces.ttf) format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:"Bricolage";src:url(../fonts/Bricolage.ttf) format("truetype");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
:root{
  --ink:#3B2620;--ink-2:#6B5048;--cream:#FFF6EC;--paper:#FBEBDD;--toast:#C8743A;--toast-d:#8A4A24;
  --pink:#F4B6C2;--pink-d:#E88FA2;--pista:#CFE0B4;--marigold:#F2A93B;--night:#2A1B2E;
  --r:26px;--bw:2.5px;--shadow:5px 6px 0 var(--ink);
  --display:"Fraunces",Georgia,serif;--body:"Bricolage",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.23 0 0 0 0 0.15 0 0 0 0 0.12 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
h1,h2,h3,.display{font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;font-weight:760;letter-spacing:-.02em;line-height:1.02;margin:0}
h1{font-size:clamp(44px,8vw,96px)}
h2{font-size:clamp(34px,5vw,58px)}
h3{font-size:24px;line-height:1.15}
p{margin:0 0 1em}
.eyebrow{font-family:var(--body);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.squiggle{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cpath d='M2 8 Q 12 1 22 7 T 42 7 T 62 7 T 82 7 T 102 7 T 118 6' fill='none' stroke='%23C8743A' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x 0 100%/120px 12px;padding-bottom:10px}
.ital{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;font-weight:500}

/* announcement + marquee */
.announce{background:var(--ink);color:var(--cream);font-size:14px;overflow:hidden;white-space:nowrap}
.announce .track{display:inline-flex;gap:46px;padding:9px 0;animation:mq 38s linear infinite}
.announce span::before{content:"✦";color:var(--marigold);margin-right:12px}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.announce .track{animation:none}}

/* header */
header.site{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--cream) 92%,transparent);backdrop-filter:blur(8px);border-bottom:var(--bw) solid var(--ink)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px}
.logo img{height:46px;width:auto}
nav.main{display:flex;gap:26px;font-weight:600}
nav.main a{text-decoration:none}
nav.main a:hover{text-decoration:underline wavy var(--toast) 2px;text-underline-offset:6px}
.cart-btn{display:inline-flex;align-items:center;gap:8px;border:var(--bw) solid var(--ink);border-radius:99px;padding:8px 16px;background:var(--pink);font-weight:700;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
.cart-btn b{background:var(--ink);color:var(--cream);border-radius:99px;min-width:24px;height:24px;display:grid;place-items:center;font-size:13px}
@media (max-width:760px){nav.main{display:none}.logo img{height:38px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 17px var(--body);border:var(--bw) solid var(--ink);border-radius:99px;padding:15px 26px;background:var(--toast);color:var(--cream);text-decoration:none;box-shadow:var(--shadow);cursor:pointer;transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 var(--ink)}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.alt{background:var(--cream);color:var(--ink)}
.btn.wa{background:#2BB673;color:#fff}
.btn.block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:var(--bw) solid var(--ink)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding-top:56px;padding-bottom:70px}
.hero h1 em{font-style:italic;font-weight:500;color:var(--toast)}
.hero p.lede{font-size:20px;max-width:30ch;margin:22px 0 30px;color:var(--ink-2)}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero .dates{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.chip{display:inline-flex;align-items:center;gap:8px;border:2px dashed var(--ink);border-radius:99px;padding:7px 14px;font-size:14px;font-weight:600;background:var(--cream)}
.chip i{width:10px;height:10px;border-radius:50%;background:var(--marigold);border:2px solid var(--ink)}
.collage{position:relative;aspect-ratio:1/1.02}
.polaroid{position:absolute;background:#fff;border:var(--bw) solid var(--ink);border-radius:22px;padding:10px 10px 44px;box-shadow:var(--shadow)}
.polaroid img{border-radius:14px;aspect-ratio:1;object-fit:cover;width:100%}
.polaroid figcaption{position:absolute;bottom:10px;left:16px;font-family:var(--display);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;font-size:18px}
.p1{width:58%;left:2%;top:4%;transform:rotate(-6deg)}
.p2{width:50%;right:0;top:0;transform:rotate(5deg)}
.p3{width:52%;left:24%;bottom:0;transform:rotate(-1.5deg)}
.sticker{position:absolute;z-index:3;display:grid;place-items:center;text-align:center;border:var(--bw) solid var(--ink);border-radius:50%;background:var(--marigold);font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;font-weight:700;line-height:1.05}
.hero .sticker{width:124px;height:124px;right:4%;bottom:12%;transform:rotate(12deg);font-size:19px}
.diya{position:absolute;pointer-events:none}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr;padding-top:34px;padding-bottom:46px;gap:28px}.hero p.lede{font-size:18px}.hero .sticker{width:100px;height:100px;font-size:16px}}

/* sections */
section{padding:84px 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:38px;flex-wrap:wrap}
.sec-head p{max-width:42ch;color:var(--ink-2);margin:0}
@media (max-width:760px){section{padding:58px 0}}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:960px){.grid{grid-template-columns:repeat(2,1fr);gap:18px}}
.card{position:relative;display:flex;flex-direction:column;background:var(--cream);border:var(--bw) solid var(--ink);border-radius:var(--r);overflow:hidden;text-decoration:none;box-shadow:var(--shadow);transition:transform .15s}
.card:hover{transform:translateY(-4px) rotate(-.4deg)}
.card .ph{background:var(--tint,var(--pink));border-bottom:var(--bw) solid var(--ink);padding:14px}
.card .ph img{border-radius:16px;aspect-ratio:1;object-fit:cover;width:100%;border:2px solid var(--ink)}
.card .tag{position:absolute;top:24px;left:24px;background:var(--cream);border:2px solid var(--ink);border-radius:99px;padding:4px 11px;font-size:12px;font-weight:700}
.card .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{font-size:22px}
.card .hook{font-size:15px;color:var(--ink-2);margin:0}
.card .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px}
.price{font-family:var(--display);font-variation-settings:"SOFT" 100,"opsz" 144;font-weight:700;font-size:24px}
.card .add{border:2px solid var(--ink);background:var(--pink);border-radius:99px;padding:8px 14px;font:700 14px var(--body);cursor:pointer;color:var(--ink)}
@media (max-width:560px){.card h3{font-size:17px}.card .hook{display:none}.card .tag{top:18px;left:18px;font-size:10px}.price{font-size:19px}.card .add{padding:6px 10px;font-size:12px}.card .body{padding:12px}.card .ph{padding:9px}}

/* night section */
.night{background:var(--night);color:var(--cream);border-top:var(--bw) solid var(--ink);border-bottom:var(--bw) solid var(--ink);position:relative;overflow:hidden}
.night .wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.night .stars{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20% 30%,#F2A93B 50%,transparent 51%),radial-gradient(1.6px 1.6px at 70% 20%,#FFF6EC 50%,transparent 51%),radial-gradient(2px 2px at 85% 70%,#F4B6C2 50%,transparent 51%),radial-gradient(1.4px 1.4px at 40% 80%,#FFF6EC 50%,transparent 51%),radial-gradient(1.8px 1.8px at 55% 50%,#F2A93B 50%,transparent 51%),radial-gradient(1.4px 1.4px at 10% 75%,#FFF6EC 50%,transparent 51%);background-size:340px 300px;opacity:.8}
.night img{border-radius:var(--r);border:var(--bw) solid var(--cream);position:relative}
.night p{color:#E9D9CC;font-size:18px;max-width:40ch}
@media (max-width:860px){.night .wrap{grid-template-columns:1fr}}

/* promise strip */
.promises{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.promise{border:var(--bw) solid var(--ink);border-radius:var(--r);padding:22px;background:var(--paper)}
.promise svg{width:44px;height:44px;margin-bottom:10px}
.promise h3{font-size:20px;margin-bottom:6px}
.promise p{font-size:15px;color:var(--ink-2);margin:0}
@media (max-width:860px){.promises{grid-template-columns:1fr 1fr}}

/* gift finder */
.finder{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.finder a{display:block;text-decoration:none;border:var(--bw) solid var(--ink);border-radius:var(--r);padding:26px;min-height:190px;position:relative;box-shadow:var(--shadow)}
.finder a h3{font-size:30px;max-width:9ch}
.finder a span{position:absolute;right:22px;bottom:18px;font-weight:700}
@media (max-width:760px){.finder{grid-template-columns:1fr}.finder a{min-height:130px}}

/* quote */
.note{background:var(--pink);border-top:var(--bw) solid var(--ink);border-bottom:var(--bw) solid var(--ink)}
.note blockquote{margin:0 auto;max-width:880px;text-align:center;font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;font-size:clamp(28px,4vw,46px);line-height:1.15;font-weight:500}
.note cite{display:block;margin-top:18px;font:600 15px var(--body);font-style:normal}

/* footer */
footer.site{background:var(--ink);color:var(--cream);padding:64px 0 28px}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
footer.site h4{font-family:var(--body);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px;color:var(--pink)}
footer.site a{display:block;text-decoration:none;opacity:.9;margin-bottom:8px;font-size:15px}
footer.site a:hover{opacity:1;text-decoration:underline}
footer.site .fine{border-top:1px solid #5b443c;margin-top:40px;padding-top:20px;font-size:13px;opacity:.75;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer.site .big{margin-top:40px}
footer.site .big img{width:100%;max-width:none;opacity:.95}
@media (max-width:760px){footer.site .cols{grid-template-columns:1fr 1fr}}

/* product page */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;padding:40px 0 70px}
.gallery .main{background:var(--tint,var(--pink));border:var(--bw) solid var(--ink);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.gallery .main img{border-radius:16px;aspect-ratio:1;object-fit:cover;width:100%;border:2px solid var(--ink);background:#fff}
.thumbs{display:flex;gap:10px;margin-top:18px;overflow-x:auto;padding-bottom:6px}
.thumbs button{flex:0 0 78px;height:78px;border:2px solid var(--ink);border-radius:14px;padding:0;overflow:hidden;cursor:pointer;background:#fff;opacity:.6}
.thumbs button.on{opacity:1;outline:3px solid var(--toast);outline-offset:2px}
.thumbs img{width:100%;height:100%;object-fit:cover}
.crumbs{font-size:14px;color:var(--ink-2);padding-top:22px}
.crumbs a{text-decoration:none}
.pinfo .tagline{display:inline-block;background:var(--marigold);border:2px solid var(--ink);border-radius:99px;padding:5px 12px;font-size:13px;font-weight:700;transform:rotate(-2deg);margin-bottom:16px}
.pinfo h1{font-size:clamp(40px,5vw,62px)}
.pinfo .sub{font-size:20px;color:var(--ink-2);margin:14px 0 20px;font-family:var(--display);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;font-weight:400}
.pinfo .pp{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}
.pinfo .pp .price{font-size:40px}
.pinfo .mrp{font-size:13px;color:var(--ink-2)}
.qtyrow{display:flex;gap:12px;margin:22px 0 14px}
.qty{display:flex;align-items:center;border:var(--bw) solid var(--ink);border-radius:99px;overflow:hidden;background:#fff}
.qty button{width:44px;height:52px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--ink)}
.qty input{width:36px;text-align:center;border:0;font:700 17px var(--body);background:none;color:var(--ink)}
.qtyrow .btn{flex:1}
.assure{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 26px;font-size:14px}
.assure div{border:2px solid var(--ink);border-radius:14px;padding:10px 12px;background:var(--paper)}
.assure b{display:block;font-size:15px}
.pcopy p{font-size:17px}
.benefits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}
.benefits div{border-left:4px solid var(--toast);padding:4px 0 4px 12px}
.benefits b{display:block;font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;font-size:19px}
.benefits span{font-size:15px;color:var(--ink-2)}
details{border:var(--bw) solid var(--ink);border-radius:18px;margin-bottom:12px;background:var(--cream)}
details summary{cursor:pointer;list-style:none;padding:16px 50px 16px 18px;font-weight:700;position:relative}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";position:absolute;right:18px;top:10px;font:600 26px var(--display)}
details[open] summary::after{content:"–"}
details .in{padding:0 18px 16px;color:var(--ink-2)}
table.specs{width:100%;border-collapse:collapse;font-size:15px}
table.specs th{text-align:left;width:38%;padding:9px 10px 9px 0;vertical-align:top;font-weight:700}
table.specs td{padding:9px 0;border-bottom:1px dashed #cdb9a8}
table.specs tr:last-child td{border-bottom:0}
.sticky-buy{display:none}
@media (max-width:860px){.pdp{grid-template-columns:1fr;gap:30px;padding-top:18px}.benefits{grid-template-columns:1fr}
  .sticky-buy{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:12px;align-items:center;justify-content:space-between;background:var(--cream);border-top:var(--bw) solid var(--ink);padding:12px 16px}
  .sticky-buy .btn{padding:12px 22px;box-shadow:3px 3px 0 var(--ink)} body.has-sticky{padding-bottom:84px}}

/* cart */
.cart-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;padding:30px 0 80px;align-items:start}
.line{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;border-bottom:2px dashed #cdb9a8;padding:16px 0}
.line img{border:2px solid var(--ink);border-radius:14px;aspect-ratio:1;object-fit:cover}
.line h3{font-size:20px}
.line .rm{background:none;border:0;text-decoration:underline;cursor:pointer;color:var(--ink-2);font:14px var(--body);padding:0;margin-top:4px}
.panel{border:var(--bw) solid var(--ink);border-radius:var(--r);padding:24px;background:var(--paper);box-shadow:var(--shadow)}
.panel h2{font-size:32px;margin-bottom:16px}
.sumrow{display:flex;justify-content:space-between;padding:6px 0}
.sumrow.total{border-top:2px solid var(--ink);margin-top:8px;padding-top:12px;font-weight:800;font-size:20px}
label{display:block;font-weight:700;font-size:14px;margin:12px 0 6px}
input[type=text],input[type=tel],textarea,select{width:100%;border:2px solid var(--ink);border-radius:14px;padding:12px 14px;font:16px var(--body);background:#fff;color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pay{display:grid;gap:10px;margin:16px 0}
.pay label{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--ink);border-radius:14px;padding:12px 14px;background:#fff;margin:0;cursor:pointer;font-weight:600}
.pay label small{display:block;font-weight:400;color:var(--ink-2)}
.empty{text-align:center;padding:60px 0}
.err{color:#B3261E;font-size:14px;min-height:1em;margin-top:8px}
@media (max-width:860px){.cart-layout{grid-template-columns:1fr}.line{grid-template-columns:72px 1fr auto}}

/* prose pages */
.prose{max-width:760px;padding:40px 0 90px}
.prose h1{font-size:clamp(40px,6vw,68px);margin-bottom:18px}
.prose h2{font-size:28px;margin:36px 0 12px}
.prose p,.prose li{color:#4a332c}
.prose .meta{font-size:14px;color:var(--ink-2);margin-bottom:26px}
.prose .box{border:var(--bw) solid var(--ink);border-radius:18px;padding:18px 20px;background:var(--paper);margin:20px 0}
.todo{background:#FFE7A8;border-radius:6px;padding:0 4px}

/* toast + modal */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);background:var(--ink);color:var(--cream);padding:12px 20px;border-radius:99px;font-weight:600;z-index:90;transition:transform .25s;box-shadow:0 8px 30px rgba(0,0,0,.2)}
.toast.show{transform:translate(-50%,0)}
.modal{position:fixed;inset:0;background:rgba(42,27,46,.55);display:none;place-items:center;z-index:95;padding:20px}
.modal.open{display:grid}
.modal .panel{max-width:440px;background:var(--cream)}
.hero h1 em,.ital{padding-right:.12em}
.finder a{overflow:hidden}
.finder a::after{content:"";position:absolute;right:-26px;top:-26px;width:110px;height:110px;border:var(--bw) dashed var(--ink);border-radius:50%;opacity:.35}
@media (max-width:760px){.finder a{padding-bottom:54px}.polaroid figcaption{font-size:14px;left:12px}.polaroid{padding-bottom:36px}}
.pdp>*,.cart-layout>*,.hero .wrap>*,.night .wrap>*{min-width:0}
body{overflow-x:clip}
