/* Crochet Gift Guide — VIP premium theme (ui-ux-pro-max: Liquid Glass, restrained)
   Design system: design-system/crochetgiftguide/MASTER.md
   Palette: premium black + gold accent. Type: Cormorant (display) / Montserrat (body).
   Rules honored: semantic tokens only, 4.5:1 contrast, 44px+ touch targets,
   mobile-first 375/768/1024/1440, 16px base, no horizontal scroll, CLS-safe,
   transform-only motion, visible focus, reduced-motion respected, SVG-free
   (no icons used at all — no emoji anywhere). One external stylesheet (fonts). */
:root{
--color-primary:#1C1917;--color-on-primary:#FFFFFF;
--color-secondary:#44403C;--color-on-secondary:#FFFFFF;
--color-accent:#A16207;--color-on-accent:#FFFFFF;
--color-background:#FAFAF9;--color-foreground:#0C0A09;
--color-card:#FFFFFF;--color-card-foreground:#0C0A09;
--color-muted:#E8ECF0;--color-muted-foreground:#475569;
--color-border:#D6D3D1;--color-destructive:#DC2626;--color-on-destructive:#FFFFFF;
--color-ring:#1C1917;--color-cta-bg:#F7F1E5;
--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;
--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px rgba(0,0,0,0.10);
--shadow-lg:0 10px 15px rgba(0,0,0,0.10);--shadow-xl:0 20px 25px rgba(0,0,0,0.15);
--font-display:'Cormorant',Georgia,'Times New Roman',serif;
--font-body:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-size:16px;line-height:1.6}
a{color:var(--color-accent)}
:focus-visible{outline:3px solid var(--color-ring);outline-offset:3px}
::selection{background:#F5E6C8;color:var(--color-foreground)}
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--color-accent);transform:scaleX(0);transform-origin:0 50%;z-index:100}
@supports (animation-timeline:scroll()){
.progress{animation:cg-progress linear both;animation-timeline:scroll(root)}
@keyframes cg-progress{to{transform:scaleX(1)}}
}
header.site{position:sticky;top:0;z-index:50;background:rgba(250,250,249,0.88);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--color-border)}
header.site .wrap{max-width:1140px;margin:0 auto;padding:0 20px;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
header.site .brand{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1.1;color:var(--color-primary);text-decoration:none;padding:10px 0}
header.site nav{display:flex;flex-wrap:wrap;gap:4px 8px}
header.site nav a{display:inline-flex;align-items:center;min-height:44px;padding:10px 10px;color:var(--color-foreground);font-size:15px;font-weight:500;text-decoration:none;border-radius:8px;transition:color 200ms ease,background-color 200ms ease;cursor:pointer}
header.site nav a:hover{color:var(--color-accent);background:rgba(161,98,7,0.08)}
header.site nav a[href*="etsy.com"]{color:var(--color-accent);font-weight:600}
main{max-width:1140px;margin:0 auto;padding:32px 20px 72px}
article.post{max-width:700px;margin:0 auto;overflow-wrap:anywhere}
article.post h1{font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1.15;text-wrap:balance;margin:12px 0 10px}
article.post h1::after{content:"";display:block;width:64px;height:3px;background:var(--color-accent);margin:18px 0 0;border-radius:2px}
article.post h2{font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1.25;text-wrap:balance;margin:36px 0 10px}
article.post h3{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.3;text-wrap:balance;margin:28px 0 8px}
article.post p{font-size:17px;line-height:1.75;margin:0 0 18px}
article.post p a,article.post li a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
article.post ul,article.post ol{padding-left:24px}
article.post li{margin-bottom:8px}
article.post li::marker{color:var(--color-accent)}
article.post .meta{font-size:14px;color:var(--color-muted-foreground);margin-bottom:20px}
article.post .meta a{color:var(--color-muted-foreground);text-decoration:underline;text-underline-offset:2px}
article.post figure{margin:28px 0}
article.post img{max-width:100%;height:auto;border-radius:12px;display:block;box-shadow:var(--shadow-sm)}
article.post figcaption{font-size:13px;color:var(--color-muted-foreground);margin-top:8px;text-align:center}
.hero{max-width:1140px;margin:0 auto;text-align:center;padding:48px 20px 16px}
.hero h1{font-family:var(--font-display);font-size:40px;font-weight:700;line-height:1.1;text-wrap:balance;margin:0 0 14px}
.hero h1::after{content:"";display:block;width:64px;height:3px;background:var(--color-accent);margin:18px auto 0;border-radius:2px}
.hero p{max-width:680px;margin:0 auto 10px;font-size:17px;line-height:1.7;color:var(--color-secondary)}
.grid{display:grid;grid-template-columns:1fr;gap:24px;margin-top:32px}
.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow 200ms ease,transform 200ms ease}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card a{text-decoration:none;color:inherit;display:block;cursor:pointer}
.card img{width:100%;height:200px;object-fit:cover;display:block}
.card .pad{padding:18px 20px 22px}
.card h3{font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.25;text-wrap:balance;margin:0 0 8px}
.card p{font-size:14px;color:var(--color-muted-foreground);margin:0;line-height:1.6}
.chips{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:22px 0 6px}
.chips a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid var(--color-border);background:var(--color-card);border-radius:999px;font-size:14px;font-weight:500;text-decoration:none;color:var(--color-foreground);transition:border-color 200ms ease,color 200ms ease;cursor:pointer}
.chips a:hover{border-color:var(--color-accent);color:var(--color-accent)}
.faq{max-width:700px;margin:48px auto 0;border-top:1px solid var(--color-border);padding-top:12px}
.faq h2{font-family:var(--font-display);font-size:30px}
.faq details{border:1px solid var(--color-border);border-radius:12px;background:var(--color-card);padding:0;margin:12px 0;box-shadow:var(--shadow-sm)}
.faq summary{font-weight:600;font-size:16px;padding:16px 20px;cursor:pointer}
.faq summary::marker{color:var(--color-accent)}
.faq p{margin:0 20px 16px;font-size:16px;line-height:1.7}
.related{max-width:700px;margin:48px auto 0;border-top:1px solid var(--color-border);padding-top:10px}
.related h2{font-family:var(--font-display);font-size:28px}
.related ul{padding-left:22px}
.related li{margin-bottom:10px}
.related a{color:var(--color-accent)}
.cta{max-width:700px;margin:40px auto 0;background:var(--color-cta-bg);border:1px solid var(--color-border);border-radius:12px;padding:24px 28px;text-align:center;box-shadow:var(--shadow-sm)}
.cta a.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:14px;background:var(--color-accent);color:var(--color-on-accent);padding:12px 28px;border-radius:999px;text-decoration:none;font-size:16px;font-weight:600;transition:opacity 200ms ease,transform 200ms ease;cursor:pointer}
.cta a.button:hover{opacity:0.92;transform:translateY(-1px)}
.cta a:not(.button){color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}
footer.site{border-top:1px solid var(--color-border);background:var(--color-card);font-size:14px;color:var(--color-muted-foreground)}
footer.site .wrap{max-width:1140px;margin:0 auto;padding:28px 20px}
footer.site a{display:inline-flex;align-items:center;min-height:44px;color:var(--color-muted-foreground);margin-right:20px;text-decoration:none}
footer.site p{line-height:1.7}
@media(max-width:480px){.card img{height:180px}}
@media(min-width:768px){
article.post p{font-size:18px}
article.post h1{font-size:44px}
article.post h2{font-size:30px}
article.post h3{font-size:24px}
.hero{padding:64px 20px 20px}
.hero h1{font-size:56px}
.grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1024px){
main{padding:40px 20px 80px}
.grid{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
.progress{display:none}
}