/* Layout: warm scrapbook-meets-deal-flyer. One 1120px column; hero pairs big type with a taped polaroid stack of Gracey;
   handwritten notes, sticker badges and coupon-cut cards carry the personality; color blocks band the page. */
:root{
  --bg:#fff6f3; --card:#ffffff; --ink:#1e1420; --soft:#5f5260; --line:#f2dcd6;
  --primary:#b0245f; --primary-dk:#87164a; --primary-soft:#fde4ee;
  --cta:#ff6a1a; --cta-dk:#f25a0a;      /* orange is reserved for buy/deal buttons */
  --hl:#ffd84d; --neutral:#f6ece1;
  --display:"Bricolage Grotesque",ui-rounded,system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,sans-serif;
  --hand:"Caveat","Bradley Hand","Segoe Print",cursive;
  --wrap:1120px; --read:700px; --r:20px;
  color-scheme:light;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 18px/1.7 var(--body);padding-inline:16px}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin-inline:auto}
.read{max-width:var(--read);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:var(--ink);color:#fff;padding:8px 12px;z-index:9}
.hand{font-family:var(--hand);font-weight:700}

/* announcement bar */
.ticker{background:var(--ink);color:#fff;margin-inline:-16px;padding:9px 16px;text-align:center;font:600 14px/1.4 var(--body)}
.ticker a{color:var(--cta);font-weight:800}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1.5px solid var(--line);margin-inline:-16px;padding-inline:16px}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:70px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:center;gap:9px;font:800 25px/1 var(--display);letter-spacing:-.03em;text-decoration:none}
.logo .tag{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--primary);color:#fff;font-size:18px;transform:rotate(-8deg);box-shadow:3px 3px 0 var(--hl)}
.nav{display:flex;gap:22px;flex-wrap:wrap;margin-left:auto;align-items:center}
.nav a{text-decoration:none;font:700 15px/1 var(--body);color:var(--soft)}
.nav a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font:800 16px/1 var(--body);padding:16px 24px;border-radius:999px;background:var(--cta);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.btn:hover{background:var(--cta-dk);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn.ghost{background:var(--card);color:var(--ink)}
.nav .btn{padding:11px 18px;font-size:15px;color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
@media (max-width:700px){.nav{width:100%;margin-left:0;padding-bottom:12px;gap:16px}.nav .btn{margin-left:auto}}

/* type */
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1.05;letter-spacing:-.03em;margin:0;font-weight:800}
h1{font-size:clamp(40px,6.2vw,72px)}
h2{font-size:clamp(28px,3.8vw,40px)}
h3{font-size:22px;line-height:1.2}
mark{background:linear-gradient(transparent 52%,var(--hl) 52%,var(--hl) 90%,transparent 90%);color:inherit;padding-inline:.06em}
.squiggle{color:var(--primary);text-decoration:underline wavy var(--hl);text-decoration-thickness:.08em;text-underline-offset:.16em;text-decoration-skip-ink:none}
.eyebrow{display:inline-block;font:800 13px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--primary-dk);background:var(--primary-soft);padding:9px 13px;border-radius:999px}
.muted{color:var(--soft)}
p{margin:0}
.prose{display:grid;gap:18px}
.prose a{color:var(--primary-dk);font-weight:700;text-decoration-thickness:2px;text-underline-offset:3px}
.prose h2{margin-top:14px}
.prose ul,.prose ol{margin:0;padding-left:22px;display:grid;gap:8px}

/* hero */
.hero{padding-block:52px 40px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:center}
.hero-copy{display:grid;gap:22px;justify-items:start}
.hero .lede{max-width:50ch;font-size:20px;color:var(--soft)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.live{display:inline-flex;align-items:center;gap:8px;font:700 14px/1.3 var(--body);color:var(--soft)}
.live i{width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
@media (prefers-reduced-motion:no-preference){.live i{animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px var(--primary-soft)}}}

/* polaroids */
.snaps{position:relative;min-height:470px}
.polaroid{position:absolute;background:#fff;padding:12px 12px 46px;border-radius:6px;box-shadow:0 20px 40px -18px rgba(0,0,0,.35);width:min(300px,62%)}
.polaroid img,.polaroid .ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;background:var(--primary-soft)}
.polaroid figcaption{position:absolute;left:0;right:0;bottom:10px;text-align:center;font:700 22px/1 var(--hand);color:#333}
.polaroid::before{content:"";position:absolute;top:-12px;left:50%;width:86px;height:26px;transform:translateX(-50%) rotate(-3deg);background:color-mix(in srgb,var(--hl) 80%,transparent);border-radius:2px}
.polaroid.a{right:6%;top:0;transform:rotate(4deg);z-index:2}
.polaroid.b{left:0;top:110px;transform:rotate(-6deg)}
.note{position:absolute;z-index:3;font:700 28px/1.05 var(--hand);color:var(--ink);transform:rotate(-6deg)}
.note.hi{left:4%;top:12px}
.note.hi::after{content:"";display:block;width:70px;height:40px;margin:4px 0 0 60px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 40'%3E%3Cpath d='M2 4 C 30 2, 50 12, 62 32' fill='none' stroke='%231f2a1c' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M52 30 L63 34 L64 22' fill='none' stroke='%231f2a1c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat}
.sticker{position:absolute;z-index:4;display:grid;place-items:center;text-align:center;width:118px;height:118px;border-radius:50%;background:var(--primary);color:#fff;font:800 15px/1.1 var(--display);text-transform:uppercase;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);transform:rotate(12deg);padding:12px}
.sticker.s1{right:0;bottom:24px}
@media (prefers-reduced-motion:no-preference){.sticker.s1{animation:wobble 6s ease-in-out infinite}@keyframes wobble{50%{transform:rotate(4deg) scale(1.03)}}}
@media (max-width:860px){.hero{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:36px 16px}.snaps{min-height:400px}.polaroid{width:min(240px,58%)}}

/* sections */
section{padding-block:44px}
.band{background:var(--primary);color:#fff;margin-inline:-16px;padding:48px 16px;border-block:2px solid var(--ink)}
.band .eyebrow{background:#fff;color:var(--primary-dk)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.sec-head .hand{font-size:26px;color:var(--primary);display:block;transform:rotate(-2deg);margin-bottom:2px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:24px}
.card{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;text-decoration:none;padding:14px 14px 20px;background:var(--card);border:2px solid var(--ink);border-radius:var(--r);box-shadow:5px 5px 0 var(--ink);transition:transform .12s,box-shadow .12s;color:var(--ink)}
.card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.card h3{font-size:21px;padding-inline:6px}
.card .meta{font:800 13px/1 var(--body);color:var(--primary-dk);padding-inline:6px;text-transform:uppercase;letter-spacing:.05em}
.card .pick{position:absolute;top:-14px;right:14px;background:var(--hl);color:var(--ink);font:700 22px/1 var(--hand);padding:6px 12px;border-radius:10px;transform:rotate(5deg);border:2px solid var(--ink)}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:8px;background:var(--neutral);border-radius:12px;padding:12px;aspect-ratio:3/1.2}
.thumbs img{width:100%;height:100%;object-fit:contain;min-width:0;min-height:0;mix-blend-mode:multiply}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{font:700 15px/1 var(--body);padding:13px 18px;border:2px solid var(--ink);border-radius:999px;text-decoration:none;background:var(--card);color:var(--ink)}
.chip:hover{background:var(--hl)}
.join{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:16px}
.join a{background:var(--card);color:var(--ink);border:2px solid var(--ink);border-radius:var(--r);padding:20px 22px;text-decoration:none;display:grid;gap:4px;box-shadow:4px 4px 0 var(--ink);transition:transform .12s}
.join a:hover{transform:translate(-2px,-2px)}
.join strong{font:800 21px/1.2 var(--display)}
.join span{color:var(--soft);font-size:16px;line-height:1.5}

/* meet gracey */
.meet{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:48px;align-items:center}
.meet .polaroid{position:relative;width:100%;transform:rotate(-3deg)}
.meet .prose{max-width:58ch}
.meet .sig{font:700 34px/1 var(--hand);color:var(--primary-dk)}
@media (max-width:760px){.meet{grid-template-columns:minmax(0,1fr)}.meet .polaroid{max-width:280px;margin-inline:auto}}
.how{background:var(--primary-soft);border:2px solid var(--ink);border-radius:28px;padding:40px clamp(20px,5vw,56px)}
.how .prose{max-width:62ch}

/* faq */
.faq{display:grid;gap:12px}
.faq details{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:16px 20px}
.faq summary{cursor:pointer;font:800 18px/1.4 var(--body);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 24px/1 var(--display);color:var(--primary)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:8px;color:var(--soft);max-width:65ch}

/* article */
.crumbs{font:700 14px/1.4 var(--body);color:var(--soft);padding-top:28px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--primary-dk)}
.post-head{display:grid;gap:16px;padding-block:18px 26px}
.byline{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font:600 15px/1.4 var(--body);color:var(--soft)}
.byline img,.byline .av{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);background:var(--primary-soft)}
.byline a{color:var(--ink);font-weight:800}
.disclose{font-size:15px;color:var(--soft);background:var(--neutral);border-radius:12px;padding:10px 14px}
.disclose a{color:var(--ink);font-weight:700}
.tldr{position:relative;background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:26px 24px 22px;display:grid;gap:10px;box-shadow:5px 5px 0 var(--primary)}
.tldr .hand{position:absolute;top:-20px;left:18px;background:var(--hl);font-size:26px;padding:2px 12px;border-radius:8px;transform:rotate(-3deg)}
.tldr ul{margin:0;padding-left:20px;display:grid;gap:6px}
.tldr a{color:var(--primary-dk);font-weight:800}
.items{list-style:none;padding:0;margin:48px 0 0;display:grid;gap:56px}
.item{display:grid;gap:16px}
.item h2{font-size:clamp(23px,3vw,30px);display:flex;gap:14px;align-items:flex-start}
.item h2 .n{flex:none;display:grid;place-items:center;min-width:46px;height:46px;border-radius:50%;background:var(--primary);color:#fff;border:2px solid var(--ink);font:800 20px/1 var(--display);transform:rotate(-6deg);margin-top:-4px}
.item .shot{background:var(--card);display:flex;justify-content:center;padding:22px;border:2px solid var(--ink);border-radius:var(--r)}
.item .shot img{max-height:360px;width:auto;object-fit:contain}
.item .why{justify-self:start;font:700 24px/1.2 var(--hand);color:var(--primary-dk);transform:rotate(-1.5deg)}
.item .why::before{content:"↳ "}
.buy{justify-self:start}
.post-foot{display:grid;gap:28px;padding-block:52px}
.author{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:center;padding:20px;border-radius:var(--r);background:var(--card);border:2px solid var(--ink)}
.author img,.author .av{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);background:var(--primary-soft)}

/* footer */
.foot{background:var(--ink);color:#fff;margin-top:56px;padding-block:48px;margin-inline:-16px;padding-inline:16px}
.foot .wrap{display:grid;gap:18px}
.foot .logo .tag{background:var(--hl);color:var(--ink);box-shadow:none}
.foot .hand{font-size:28px;color:var(--hl)}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}
.foot a{color:#e8e6dd;text-decoration:none;font-size:16px}.foot a:hover{color:#fff}
.foot small{color:#bdbab0;font-size:14px;max-width:70ch;line-height:1.6}

.ph{display:grid;place-items:end center;padding-bottom:14px;background:linear-gradient(160deg,var(--primary-soft),var(--neutral))}
.ph span{font:700 22px/1 var(--hand);color:var(--soft)}
.ph::before{content:"";width:46%;aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--primary) 30%,transparent);place-self:center}
.btn.ghost:hover{background:var(--hl)}

.pinit{margin:0;display:grid;justify-items:center;gap:12px;text-align:center}
.pinit img{width:min(320px,80%);border-radius:16px;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
.pinit .hand{font-size:28px;color:var(--primary)}
