/* ───────────────────────────────────────────────────────────────────────────
   STATIC HOMEPAGE STYLES (Direction D)
   Static twin of the inline React styles that used to live in index.html.
   Palette + fonts come from theme.css (load it BEFORE this file).
   Used by the page generated with tools/gen-home-page.js.

   Desktop/mobile duality: the React version branched on a JS viewport hook.
   The static build emits BOTH variants and lets CSS choose (same approach as
   the hub card-grid/list), so nothing about layout depends on JS.
   ─────────────────────────────────────────────────────────────────────────── */
/* No max-width here: the header and footer must run edge to edge like every
   other page. Each section caps its own inner content (.hp-inner 1280,
   .hp-hero-head 1200, .hp-carousel-wrap 1320), so capping the page wrapper only
   inset the full-bleed chrome. */
.hp-page{background:var(--ss-cream);color:var(--ss-ink);font-family:var(--ss-body)}
.hp-eyebrow{font-family:var(--ss-body);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ss-sage-deep);font-weight:500}
.hp-em{font-family:var(--ss-display);font-style:italic;font-weight:400;color:var(--ss-wine)}
.hp-btn{font-family:var(--ss-body);font-size:12px;letter-spacing:.28em;text-transform:uppercase;padding:16px 36px;display:inline-block;font-weight:500;text-decoration:none;background:var(--ss-wine);color:var(--ss-cream);border:1px solid var(--ss-wine)}
.hp-btn--outline{background:transparent;color:var(--ss-wine);border:1px solid var(--ss-wine)}
.hp-btn--light{background:var(--ss-cream);color:var(--ss-wine);border:1px solid var(--ss-cream)}
.hp-btn--ghost{background:transparent;color:var(--ss-ink);border:none;border-bottom:1px solid var(--ss-ink);padding:0 0 4px;letter-spacing:.3em}
.hp-cta-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.hp-section{padding:120px 64px}

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hp-hero{background:var(--ss-cream);padding:80px 64px 60px;position:relative;overflow:hidden}
.hp-hero-head{text-align:center;max-width:1200px;margin:0 auto 28px;position:relative;z-index:1}
.hp-hero-head .hp-eyebrow{margin-bottom:24px}
.hp-h1{font-family:var(--ss-display);font-weight:400;font-size:96px;line-height:1.18;letter-spacing:-.015em;color:var(--ss-ink);margin:0}
.hp-lede{font-family:var(--ss-body);font-weight:300;font-size:17px;line-height:1.65;color:var(--ss-ink-soft);max-width:900px;margin:26px auto 0;white-space:nowrap}
.hp-carousel-wrap{max-width:1320px;margin:48px auto 0;position:relative;z-index:1}

/* Desktop: flex cards, the selected one grows */
.hp-cards{display:flex;gap:16px;align-items:stretch}
.hp-card{display:block;text-decoration:none;color:inherit;position:relative;overflow:hidden;height:480px;flex-grow:1;flex-basis:0;min-width:0;transition:flex-grow 600ms cubic-bezier(.4,0,.2,1),filter 400ms,opacity 400ms;filter:saturate(.7);opacity:.92}
.hp-card[data-on="1"]{flex-grow:2.4;filter:none;opacity:1}
/* Definite height, not min-height: with an auto-height flex item the image's
   height:100% resolves to its INTRINSIC height, so animating flex-grow
   animated the image height too and the whole hero shrank/grew on each cycle. */
.hp-card img{width:100%;height:100%;object-fit:cover;display:block}
.hp-card-wash{position:absolute;inset:0;background:linear-gradient(to top,rgba(42,28,32,.6) 0%,rgba(42,28,32,.15) 50%,transparent 100%)}
.hp-card[data-on="1"] .hp-card-wash{background:linear-gradient(to top,rgba(42,28,32,.82) 0%,rgba(42,28,32,.45) 35%,rgba(42,28,32,.08) 62%,transparent 100%)}
.hp-card-label{position:absolute;left:16px;right:16px;bottom:18px;color:var(--ss-cream);transition:left 400ms,right 400ms,bottom 400ms}
.hp-card[data-on="1"] .hp-card-label{left:32px;right:32px;bottom:28px}
.hp-card-now{font-family:var(--ss-body);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--ss-blush);font-weight:700;margin-bottom:10px;text-shadow:0 1px 10px rgba(42,28,32,.7);visibility:hidden}
.hp-card[data-on="1"] .hp-card-now{visibility:visible;font-size:11px}
.hp-card-name{font-family:var(--ss-display);font-weight:400;font-size:22px;line-height:1.05;letter-spacing:-.005em;text-shadow:0 2px 16px rgba(42,28,32,.5);transition:font-size 400ms}
.hp-card[data-on="1"] .hp-card-name{font-size:48px}
.hp-card-explore{margin-top:18px;display:none;align-items:center;gap:14px}
.hp-card[data-on="1"] .hp-card-explore{display:flex}
.hp-card-explore span{font-family:var(--ss-body);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ss-cream);border-bottom:1px solid var(--ss-cream);padding-bottom:3px}

/* Desktop tab strip */
.hp-tabstrip{display:flex;align-items:center;justify-content:space-between;margin-top:32px}
.hp-tabs{display:flex;gap:24px;font-family:var(--ss-body);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ss-ink-soft)}
.hp-tabs button{background:none;border:none;cursor:pointer;padding:8px 0;font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ss-ink-soft);border-bottom:1px solid transparent;transition:color 200ms,border-color 200ms}
.hp-tabs button[aria-selected="true"]{color:var(--ss-wine);border-bottom-color:var(--ss-wine);font-weight:600}
.hp-autonote{font-family:var(--ss-body);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ss-sage-deep)}

/* Mobile carousel (hidden on desktop) */
.hp-mobcar{display:none}
.hp-mobcar-stage{position:relative;overflow:hidden;aspect-ratio:5/6;max-height:540px}
.hp-mobcar-slide{position:absolute;inset:0;opacity:0;transition:opacity 400ms;pointer-events:none}
.hp-mobcar-slide[data-on="1"]{opacity:1;pointer-events:auto}
.hp-mobcar-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hp-mobcar-wash{position:absolute;inset:0;background:linear-gradient(to top,rgba(42,28,32,.82) 0%,rgba(42,28,32,.45) 32%,rgba(42,28,32,.08) 62%,transparent 100%)}
.hp-mobcar-cap{position:absolute;left:20px;right:20px;bottom:22px;color:var(--ss-cream)}
.hp-mobcar-cap .hp-card-now{visibility:visible;font-size:9.5px}
.hp-mobcar-cap .hp-card-name{font-size:36px;line-height:1}
.hp-mobcar-cap a{display:inline-block;margin-top:14px;font-family:var(--ss-body);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ss-cream);border-bottom:1px solid var(--ss-cream);padding-bottom:3px;text-decoration:none}
.hp-dots{display:flex;justify-content:center;gap:10px;margin-top:18px}
.hp-dots button{width:8px;height:8px;border-radius:4px;background:var(--ss-rule);border:none;padding:0;cursor:pointer;transition:all 250ms}
.hp-dots button[aria-selected="true"]{width:24px;background:var(--ss-wine)}
.hp-chips{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.hp-chips button{width:100%;background:transparent;color:var(--ss-ink);border:1px solid var(--ss-rule);padding:13px 16px;font-family:var(--ss-body);font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;cursor:pointer;text-align:center}
.hp-chips button[aria-selected="true"]{background:var(--ss-wine);color:var(--ss-cream);border-color:var(--ss-wine)}

/* ── GARLAND SEAM ────────────────────────────────────────────────────────── */
.hp-garland{display:flex;justify-content:center;opacity:.6}
.hp-garland svg{display:block;max-width:100%}

/* ── CUSTOM CAKE SECTION ─────────────────────────────────────────────────── */
.hp-cakes{background:var(--ss-cream);padding:0 64px 64px}
.hp-inner{max-width:1280px;margin:0 auto}
.hp-2col{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;max-width:1200px;margin:0 auto 72px}
.hp-h2{font-family:var(--ss-display);font-weight:400;font-size:72px;line-height:1;color:var(--ss-ink);margin:0;letter-spacing:-.01em}
.hp-sub{font-family:var(--ss-display);font-style:italic;font-size:22px;color:var(--ss-wine-soft);margin:16px 0 0}
.hp-body{font-family:var(--ss-body);font-weight:300;font-size:16px;line-height:1.75;color:var(--ss-ink-soft);margin:0}

/* Desktop: sticky crossfading image + two-column index */
.hp-cakes-split{display:grid;grid-template-columns:.72fr 1fr;gap:64px;align-items:start}
.hp-stack{position:sticky;top:140px}
.hp-stack-frame{position:relative;width:100%;aspect-ratio:1/1.25;max-height:calc(100vh - 164px);border:3px solid var(--ss-wine)}
.hp-stack-img{position:absolute;inset:0;opacity:0;transition:opacity 500ms ease;pointer-events:none}
.hp-stack-img[data-on="1"]{opacity:1;pointer-events:auto}
.hp-stack-img img{width:100%;height:100%;object-fit:cover;display:block}
.hp-stack-cap{position:absolute;left:0;right:0;bottom:0;background:var(--ss-wine);color:var(--ss-cream);padding:14px 22px;display:flex;align-items:baseline;gap:14px}
.hp-stack-cap .hp-cap-num{font-family:var(--ss-body);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;opacity:.7}
.hp-stack-cap .hp-cap-name{font-family:var(--ss-display);font-style:italic;font-size:20px;letter-spacing:.01em}
.hp-index-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;flex-wrap:wrap;gap:8px}
.hp-index-note{font-family:var(--ss-display);font-style:italic;font-size:16px;color:var(--ss-sage-deep)}
.hp-cat-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;border-top:1px solid var(--ss-rule)}
.hp-cat-cell{border-bottom:1px solid var(--ss-rule);min-width:0}
.hp-cat-row{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:baseline;padding:18px 14px;background:transparent;border-left:3px solid transparent;text-decoration:none;color:inherit;transition:background 220ms,border-left-color 220ms;min-width:0}
.hp-cat-row[data-on="1"]{background:rgba(154,15,70,.06);border-left-color:var(--ss-wine)}
.hp-cat-num{font-family:var(--ss-display);font-style:italic;font-size:16px;color:var(--ss-sage-deep);font-weight:400;min-width:22px;transition:color 220ms}
.hp-cat-row[data-on="1"] .hp-cat-num{color:var(--ss-wine)}
.hp-cat-name{font-family:var(--ss-display);font-weight:400;font-size:24px;color:var(--ss-ink);line-height:1.1;letter-spacing:-.005em}
.hp-cat-note{font-family:var(--ss-body);font-weight:300;font-size:12px;color:var(--ss-ink-soft);margin-top:4px;letter-spacing:.01em}
.hp-cat-arrow{font-family:var(--ss-display);font-size:22px;color:var(--ss-ink-soft);line-height:1;transition:transform 220ms,color 220ms}
.hp-cat-row[data-on="1"] .hp-cat-arrow{color:var(--ss-wine);transform:translateX(6px)}

/* Mobile tappable list (hidden on desktop) */
.hp-cakes-list{display:none;flex-direction:column}
.hp-cakes-list a{display:grid;grid-template-columns:76px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--ss-rule);text-decoration:none;color:inherit}
.hp-cakes-list .hp-thumb{width:76px;height:76px;overflow:hidden}
.hp-cakes-list .hp-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hp-cakes-list .hp-lt{font-family:var(--ss-display);font-weight:400;font-size:23px;color:var(--ss-ink);line-height:1.08;letter-spacing:-.005em}
.hp-cakes-list .hp-ln{font-family:var(--ss-body);font-weight:300;font-size:12px;color:var(--ss-ink-soft);margin-top:3px}
.hp-cakes-list .hp-la{font-family:var(--ss-display);font-size:20px;color:var(--ss-wine)}

/* ── CUPCAKES / COOKIES SPOTLIGHTS ───────────────────────────────────────── */
.hp-spot{background:var(--ss-cream);padding:0 64px 120px}
.hp-spot-head{text-align:center;margin-bottom:72px}
.hp-spot-head .hp-h2{font-size:64px;line-height:1.05}
.hp-spot-head .hp-sub{font-size:22px;margin-top:6px}
.hp-spot-grid{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}
.hp-h3{font-family:var(--ss-display);font-weight:400;font-size:56px;line-height:1.05;color:var(--ss-ink);margin:0;letter-spacing:-.01em}
.hp-h3-sub{font-family:var(--ss-display);font-style:italic;font-size:24px;color:var(--ss-sage-deep);margin-top:6px}
.hp-spot-body{font-family:var(--ss-body);font-weight:300;font-size:15px;line-height:1.8;color:var(--ss-ink-soft);margin:22px 0;max-width:460px}
.hp-tags{display:flex;gap:10px;margin-bottom:28px;flex-wrap:wrap}
.hp-tag{font-family:var(--ss-body);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ss-sage-deep);border:1px solid var(--ss-sage);border-radius:999px;padding:7px 16px;background:rgba(255,255,255,.5)}
.hp-2x2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.hp-2x2 figure{margin:0}
.hp-2x2 img{width:100%;height:280px;object-fit:cover;display:block;border:1px solid var(--ss-ink)}
.hp-2x2 figcaption{font-family:var(--ss-display);font-style:italic;font-weight:400;font-size:16px;color:var(--ss-wine);text-align:center;line-height:1.3;margin-top:12px;min-height:42px}
.hp-cookies-text{max-width:460px;margin-left:auto}

/* ── TEA ─────────────────────────────────────────────────────────────────── */
.hp-tea{background:var(--ss-blush-soft);position:relative;overflow:hidden}
.hp-tea-grid{display:grid;grid-template-columns:1fr 1fr;min-height:900px;align-items:stretch}
.hp-tea-img{position:relative;min-height:900px}
.hp-tea-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hp-tea-content{padding:100px 80px 100px 100px;display:flex;flex-direction:column;justify-content:center;position:relative}
.hp-tea-content .hp-eyebrow{color:var(--ss-wine);margin-bottom:22px}
.hp-tea-content .hp-h2{font-size:80px;line-height:.98;letter-spacing:-.015em}
.hp-tea-content .hp-sub{max-width:520px;line-height:1.35}
.hp-tea-content .hp-spot-body{max-width:520px;margin:20px 0 0}
.hp-tiers{margin-top:48px}
.hp-tier{display:grid;grid-template-columns:auto 1fr auto;gap:24px;padding:22px 0;border-bottom:1px solid var(--ss-rule);align-items:baseline}
.hp-tier:first-child{border-top:1px solid var(--ss-rule)}
.hp-tier-num{font-family:var(--ss-display);font-style:italic;font-size:20px;color:var(--ss-sage-deep);line-height:1;min-width:24px}
.hp-tier-name{font-family:var(--ss-display);font-weight:500;font-size:26px;color:var(--ss-ink);line-height:1.1;letter-spacing:-.005em}
.hp-tier-note{font-family:var(--ss-body);font-weight:300;font-size:13px;color:var(--ss-ink-soft);margin-top:6px;line-height:1.55;max-width:420px}
.hp-tier-price{text-align:right}
.hp-tier-price .hp-p{font-family:var(--ss-display);font-size:28px;color:var(--ss-wine);letter-spacing:.01em;line-height:1}
.hp-tier-price .hp-pp{font-family:var(--ss-body);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ss-sage-deep);margin-top:5px;white-space:nowrap}
.hp-tea-cta{margin-top:44px;gap:22px}
.hp-peony{position:absolute;pointer-events:none}

/* ── REVIEWS ─────────────────────────────────────────────────────────────── */
.hp-reviews{background:var(--ss-cream);padding:120px 64px}
.hp-reviews-head{text-align:center;margin-bottom:56px}
/* Garland seam above the reviews (added 2026-09-30, when the tea section that
   used to sit between cookies and reviews was retired). Cookies and reviews
   share the cream ground, so without it there was ~240px of blank cream and no
   visible edge. Same pattern as the cupcake/cookie spotlights: no top padding,
   the garland is the top of the section. */
.hp-reviews--seam{padding-top:0}
.hp-reviews-head .hp-h2{font-size:52px}
.hp-reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1280px;margin:0 auto}
.hp-review{background:var(--ss-cream-warm);padding:44px 36px;text-align:center;border:1px solid var(--ss-rule)}
.hp-stars{color:var(--ss-rose);letter-spacing:.4em;font-size:14px;margin-bottom:16px}
.hp-review-pull{font-family:var(--ss-display);font-style:italic;font-weight:400;font-size:28px;color:var(--ss-wine);margin:0 0 16px;line-height:1.15}
.hp-review-body{font-family:var(--ss-body);font-weight:300;font-size:13px;line-height:1.7;color:var(--ss-ink-soft);margin:0 0 24px}
.hp-review-author{font-family:var(--ss-body);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--ss-sage-deep)}

/* ── VISIT ───────────────────────────────────────────────────────────────── */
.hp-visit{background:var(--ss-cream-warm);padding:120px 64px}
.hp-visit-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;max-width:1280px;margin:0 auto}
.hp-visit .hp-h2{font-size:56px;line-height:1.05}
.hp-divider{margin:22px 0 26px}
.hp-addr{font-family:var(--ss-body);font-weight:300;font-size:15px;line-height:1.8;color:var(--ss-ink)}
.hp-addr .hp-soft{color:var(--ss-ink-soft)}
.hp-addr .hp-soft a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.hp-hours{margin-top:32px;padding-top:24px;border-top:1px solid var(--ss-rule)}
.hp-hours .hp-eyebrow{margin-bottom:14px}
.hp-hours-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dotted var(--ss-rule);font-family:var(--ss-body);font-size:14px;color:var(--ss-ink)}
.hp-hours-row span:last-child{color:var(--ss-ink-soft)}
.hp-visit-map{position:relative;overflow:hidden;min-height:500px;border:1px solid var(--ss-rule)}
.hp-visit-map iframe{width:100%;height:100%;min-height:500px;border:0;display:block;filter:saturate(.85) contrast(.95)}

/* ── FINAL CTA ───────────────────────────────────────────────────────────── */
.hp-final{background:var(--ss-wine);padding:120px 64px;text-align:center;color:var(--ss-cream);position:relative;overflow:hidden}
.hp-final .hp-eyebrow{color:var(--ss-blush);margin-bottom:22px}
.hp-final h2{font-family:var(--ss-display);font-weight:400;font-size:72px;color:var(--ss-cream);margin:0;letter-spacing:-.01em;line-height:1.05;position:relative}
.hp-final h2 .hp-em{color:var(--ss-blush)}
.hp-final p{font-family:var(--ss-body);font-weight:300;font-size:17px;line-height:1.7;max-width:560px;margin:28px auto 36px;color:rgba(250,246,240,.8);position:relative}
.hp-final .hp-btn{position:relative}

@media (max-width:1023px){
 .hp-section,.hp-reviews,.hp-visit,.hp-final{padding-left:32px!important;padding-right:32px!important;padding-top:80px!important;padding-bottom:80px!important}
 .hp-reviews.hp-reviews--seam{padding-top:0!important}
 .hp-cakes,.hp-spot{padding-left:32px!important;padding-right:32px!important}
 .hp-garland{margin-bottom:40px!important}
 .hp-2col,.hp-spot-grid,.hp-cakes-split{grid-template-columns:1fr!important;gap:48px!important}
 .hp-h2{font-size:56px!important}
 .hp-h1{font-size:72px!important}
 .hp-hero{padding:56px 32px 48px!important}
 .hp-lede{white-space:normal!important}
 .hp-tea-grid{grid-template-columns:1fr!important}
 .hp-tea-content{padding:64px 32px!important}
 .hp-tea-img,.hp-tea-grid{min-height:460px!important}
 .hp-visit-map{min-height:360px!important}
 .hp-visit-grid{grid-template-columns:1fr!important}
 .hp-reviews-grid{grid-template-columns:1fr 1fr!important;gap:24px!important}
 .hp-stack{position:static!important}
}
@media (max-width:767px){
 .hp-section,.hp-reviews,.hp-visit,.hp-final{padding-left:16px!important;padding-right:16px!important;padding-top:56px!important;padding-bottom:56px!important}
 .hp-reviews.hp-reviews--seam{padding-top:0!important}
 .hp-cakes,.hp-spot{padding-left:16px!important;padding-right:16px!important;padding-bottom:56px!important}
 .hp-garland{margin-bottom:16px!important}
 .hp-h1{font-size:44px!important}
 .hp-hero{padding:40px 18px 8px!important}
 .hp-h2{font-size:38px!important;line-height:1.1!important}
 .hp-h3,.hp-tea-content .hp-h2,.hp-final h2{font-size:32px!important}
 .hp-eyebrow{font-size:10px!important;letter-spacing:.24em!important}
 .hp-reviews-grid{grid-template-columns:1fr!important}
 .hp-spot-grid{gap:36px!important}
 .hp-2x2{gap:10px!important}
 .hp-2x2 img{height:200px!important}
 .hp-2x2 figcaption{font-size:14px!important;min-height:36px}
 /* swap in the mobile variants, drop the desktop-only ones */
 .hp-cards,.hp-tabstrip,.hp-cakes-split{display:none!important}
 .hp-mobcar{display:block!important}
 .hp-cakes-list{display:flex!important}
 .hp-cookies-text{margin-left:0!important}
 /* cookies section: photos below the copy on mobile */
 .hp-cookies-grid .hp-2x2{order:2}
 .hp-cookies-grid .hp-cookies-text{order:1}
}

/* ── PHOTO HERO (d.photoHero, live 2026-10-01 — was concept "Version C") ──────
   Full-bleed shop photo, centered copy + three category buttons, no panel.
   Height fits the screen: the inline script in the hero sets --hc-top (banner
   + header height) and --hc-dock (mobile bottom bar). The scrim is darkest
   behind the copy, plus a feathered glow on .hc-copy::before, so cream type
   holds contrast over the busy photo. */
.hc-hero{position:relative;height:calc(100svh - var(--hc-top,200px) - var(--hc-dock,0px));min-height:400px;display:flex;align-items:center;justify-content:center;padding:40px 32px;overflow:hidden;background:var(--ss-ink);text-align:center}
.hc-photo{position:absolute;inset:0}
.hc-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}
.hc-photo::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 62% at 50% 52%,rgba(38,12,18,.72),rgba(38,12,18,.42) 70%,rgba(38,12,18,.32))}
.hc-copy{position:relative;max-width:820px;display:flex;flex-direction:column;align-items:center;isolation:isolate}
.hc-copy::before{content:"";position:absolute;z-index:-1;inset:-14% -18%;background:radial-gradient(ellipse at center,rgba(20,6,10,.5) 0%,rgba(20,6,10,.34) 42%,rgba(20,6,10,0) 72%);filter:blur(18px);pointer-events:none}
.hc-eyebrow{font-family:var(--ss-body);font-size:12px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--ss-blush)}
.hc-h1{font-family:var(--ss-display);font-weight:400;font-size:clamp(46px,7.6svh,76px);line-height:1.02;letter-spacing:-.02em;color:var(--ss-cream);margin:20px 0 0;text-wrap:balance;text-shadow:0 2px 24px rgba(38,12,18,.35)}
.hc-h1 em{font-style:italic;color:var(--ss-blush)}
.hc-lede{font-family:var(--ss-body);font-weight:400;font-size:18px;line-height:1.7;color:var(--ss-cream);margin:clamp(14px,2.2svh,22px) 0 clamp(22px,4svh,40px);max-width:560px;text-wrap:pretty}
.hc-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.hc-btn,.hc-btn:hover{display:inline-flex;align-items:center;justify-content:center;min-width:200px;padding:17px 30px;font-family:var(--ss-body);font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;text-decoration:none;color:var(--ss-cream);border:1px solid var(--ss-cream);background:rgba(38,12,18,.18);transition:background .2s,color .2s,border-color .2s}
.hc-btn:hover{background:var(--ss-cream);color:var(--ss-wine);border-color:var(--ss-cream)}
.hc-hero ~ .hp-cakes{padding-top:96px}
@media (max-width:900px){
 .hc-hero ~ .hp-cakes{padding-top:56px}
 .hc-hero{min-height:440px;padding:48px 22px}
 .hc-h1{font-size:44px}
 .hc-lede{font-size:16px;margin:18px 0 30px}
 .hc-links{flex-direction:column;align-self:stretch;max-width:340px;margin:0 auto;width:100%}
 .hc-btn{min-width:0;width:100%}
}
