/* GoodSide homepage sections (below the approved hero). Uses the hero's tokens and faces: --lav, --lav-ink, --ink,
   --cream, --yolk, --pad, --ease; Corp (display), Basis (text), Pressura (mono). Scoped to .gs-* for Squarespace code blocks.
   The page ground fades between tones as sections arrive (site.js sets body background), so there are no colour edges. */

html { scroll-behavior: smooth; }
/* hero tweaks (content wiring, look unchanged): nav links never wrap; the lede keeps its sense breaks when there's room */
.nav__links a { white-space: nowrap; }
@media (min-width: 1280px) { .lede { max-width: none; } .lede .ll { display: block; white-space: nowrap; } }
@media (min-width: 1101px) and (max-width: 1279px) { .nav__right .onair { display: none; } }
/* the page is cream; the hero keeps its lavender, and each coloured section paints its own ground with feathered
   top and bottom edges, so one colour fades into the next as you scroll (no hard colour lines) */
body { background: var(--cream); }
.hero { background: var(--lav); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: var(--gs-feather); pointer-events: none; z-index: 1;
  background: linear-gradient(var(--lav), rgba(209, 191, 226, 0)); }
:root { --gs-feather: clamp(80px, 12vh, 140px); }
.gs[data-tone] { isolation: isolate; }
.gs[data-tone]::before { content: ""; position: absolute; left: 0; right: 0; top: calc(var(--gs-feather) * -1); bottom: calc(var(--gs-feather) * -1); z-index: -1; pointer-events: none;
  background: var(--gs-ground);
  -webkit-mask: linear-gradient(transparent, #000 var(--gs-feather), #000 calc(100% - var(--gs-feather)), transparent);
          mask: linear-gradient(transparent, #000 var(--gs-feather), #000 calc(100% - var(--gs-feather)), transparent); }
.gs[data-tone="ink"] { --gs-ground: var(--ink); }
.gs[data-tone="lav"] { --gs-ground: var(--lav); }
.gs, .gs-end { --gs-fg: var(--ink); --gs-rule: var(--ink); --gs-soft: #3a3440; color: var(--gs-fg); }
.gs[data-tone="ink"], .gs-end { --gs-fg: var(--cream); --gs-rule: rgba(251, 244, 236, .38); --gs-soft: rgba(251, 244, 236, .74); }
.gs { position: relative; padding: clamp(112px, 15vh, 168px) var(--pad); }
.gs-in { max-width: 1440px; margin: 0 auto; }
.gs-mono { font: 400 12.5px/1.3 "Pressura", monospace; letter-spacing: .09em; text-transform: uppercase; }
.gs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* the channel tag: the checker squares fill in as you go down the page (their menu card's checks) */
.gs-osd { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; font: 400 12.5px/1 "Pressura", monospace; letter-spacing: .09em; text-transform: uppercase; }
.gs-ch { display: inline-flex; align-items: center; gap: 10px; }
.gs-ch::before { content: ""; width: 42px; height: 9px; flex: none;
  background: linear-gradient(90deg, currentColor calc(var(--n) * 11px), color-mix(in srgb, currentColor 22%, transparent) 0);
  -webkit-mask: repeating-linear-gradient(90deg, #000 0 9px, transparent 0 11px); mask: repeating-linear-gradient(90deg, #000 0 9px, transparent 0 11px); }
.gs-ch[data-n="1"] { --n: 1; } .gs-ch[data-n="2"] { --n: 2; } .gs-ch[data-n="3"] { --n: 3; } .gs-ch[data-n="4"] { --n: 4; }
.gs-osd > span + span::before { content: "\00b7"; margin-right: 14px; }

.gs-h2 { margin: 0; font: 700 clamp(54px, 6.6vw, 132px)/.86 "Corp", sans-serif; text-transform: uppercase; letter-spacing: .005em; }
.gs-h2 > span { display: block; }
.gs-finale-h .xl, .gs-items li, .gs-lede, .gs-cake-desc { text-wrap: pretty; }
.gs-finale-h .xl { text-wrap: balance; }
.gs-lede { margin: 0; font-size: clamp(18px, 1.45vw, 23px); line-height: 1.48; max-width: 30em; }
.gs-link { display: inline-flex; align-items: center; gap: 8px; font: 700 18px/1 "Corp", sans-serif; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; padding-bottom: 5px; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1.5px no-repeat; transition: background-size .5s var(--ease); }
.gs-link svg { width: 16px; height: 16px; transition: transform .45s var(--ease); }
.gs-link:hover { background-size: 30% 1.5px; }
.gs-link:hover svg { transform: translate(3px, -3px); }

/* buttons: the hero's ink pill family (rounds square on hover) */
.gs-btn { display: inline-flex; align-items: center; gap: 12px; padding: 15px 26px 13px; border: 2px solid var(--ink); border-radius: 100px; text-decoration: none; cursor: pointer;
  font: 700 21px/1 "Corp", sans-serif; letter-spacing: .07em; text-transform: uppercase;
  transition: border-radius .55s cubic-bezier(.3,.7,.2,1), background-color .45s var(--ease), color .45s var(--ease), box-shadow .45s var(--ease), transform .45s var(--ease); }
.gs-btn svg { width: 17px; height: 17px; flex: none; transition: transform .45s var(--ease); }
.gs-btn:hover { border-radius: 10px; }
.gs-btn:hover svg { transform: translateX(3px); }
.gs-btn--ink { background: var(--ink); color: var(--cream); box-shadow: -4px 4px 0 var(--lav-ink); }
.gs-btn--ink:hover { box-shadow: -2px 2px 0 var(--lav-ink); transform: translate(-1px, 1px); }
.gs-btn--cream { background: var(--cream); color: var(--ink); border-color: var(--cream); box-shadow: -4px 4px 0 var(--lav); }
.gs-btn--cream:hover { box-shadow: -2px 2px 0 var(--lav); transform: translate(-1px, 1px); }
.gs-btn--glass { color: var(--cream); border-color: rgba(251, 244, 236, .8); background: rgba(22, 22, 22, .25); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gs-btn--glass:hover { background: var(--cream); color: var(--ink); }
.gs-btn:focus-visible, .gs-link:focus-visible, .gs-cake:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* the floor line every figure stands on (the hero's) */
.gs-floor { height: 2px; background: var(--ink); transform-origin: left; }

/* entrance: only with JS, never hides text without it */
.js .gs-rise { opacity: 0; transform: translateY(22px); }
.js .gs-rise.is-in { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform 1s var(--ease); }
.js .gs-floor { transform: scaleX(0); }
.js .gs-floor.is-in { transform: none; transition: transform 1.4s var(--ease); }

/* ---------- CH 01 · the pastry case ---------- */
.gs-case { padding-top: clamp(96px, 13vh, 150px); }
.gs-case-grid { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.gs-bakers { grid-column: 1 / span 5; grid-row: 1; margin: 0; position: relative; }
.gs-bakers img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border: 2px solid var(--ink); border-radius: 14px; box-shadow: -8px 8px 0 var(--lav); }
.gs-bakers figcaption { margin: 14px 0 22px; }
.gs-case-copy { grid-column: 7 / span 6; grid-row: 1; align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding-bottom: 34px; }
.gs-case .gs-h2 { font-size: clamp(50px, 5.5vw, 108px); }
.gs-case-body { max-width: calc(100% - min(17vw, 250px)); }
.gs-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: clamp(30px, 4.5vh, 48px) 0 34px; border-top: 1.5px solid var(--ink); }
.gs-facts div { padding: 14px 14px 0 0; }
.gs-facts div + div { padding-left: 16px; border-left: 1.5px solid var(--ink); }
.gs-facts dt { margin-bottom: 8px; color: var(--gs-soft); }
.gs-facts dd { margin: 0; font: 700 clamp(26px, 2.3vw, 38px)/1 "Corp", sans-serif; text-transform: uppercase; letter-spacing: .03em; }
.gs-stamp { grid-column: 11 / span 2; grid-row: 1; justify-self: end; align-self: stretch; width: 100%; max-width: 230px; height: 100%; max-height: 100%; object-fit: contain; object-position: 100% 100%; margin-bottom: -2px; transform-origin: 50% 100%; }
.js .gs-stamp { transform: rotate(-4deg); transition: transform 1.2s var(--ease); }
.js .gs-stamp.is-in { transform: none; }

/* ---------- CH 02 · large cakes ---------- */
.gs-cakes-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.gs-screen-wrap { grid-column: 1 / span 6; position: sticky; top: max(28px, calc(50vh - 340px)); }
.gs-screen { position: relative; aspect-ratio: 1; overflow: hidden; background: #0d0d0f; border-radius: 9% / 9%; border: 2px solid rgba(251, 244, 236, .9); box-shadow: -10px 10px 0 var(--lav-ink); }
.gs-screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .12s linear; filter: saturate(1.08) contrast(1.04); }
.gs-screen img.is-on { opacity: 1; }
.gs-snow { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; image-rendering: pixelated; z-index: 2; }
.gs-glass { position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: radial-gradient(120% 95% at 28% 16%, rgba(255,255,255,.14), rgba(255,255,255,0) 40%),
              radial-gradient(110% 110% at 50% 50%, rgba(0,0,0,0) 58%, rgba(8,4,14,.5) 100%),
              repeating-linear-gradient(to bottom, rgba(0,0,0,.13) 0 1px, rgba(0,0,0,0) 1px 3px); }
.gs-screen-osd { position: absolute; z-index: 4; left: 7%; top: 7%; font: 400 15px/1 "Pressura", monospace; letter-spacing: .06em; color: #e9ffe6;
  text-shadow: 0 0 6px rgba(190,255,190,.7), 1px 0 rgba(255,60,120,.5), -1px 0 rgba(60,200,255,.5); }
.gs-cakes-side { grid-column: 8 / span 5; }
.gs-cakes .gs-h2 { font-size: clamp(46px, 4.3vw, 88px); margin-bottom: clamp(30px, 4.5vh, 52px); }
.gs-cakelist { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--gs-rule); }
.gs-cake { all: unset; box-sizing: border-box; position: relative; isolation: isolate; width: 100%; cursor: pointer;
  display: grid; grid-template-columns: 44px 1fr; column-gap: 12px; row-gap: 6px; padding: 18px 10px 18px 4px; border-bottom: 1.5px solid var(--gs-rule); color: var(--cream); }
.gs-cake::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--lav); transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ease); }
.gs-cake:hover::before { transform: scaleX(1); background: rgba(209, 191, 226, .14); }
.gs-cake.is-live::before { transform: scaleX(1); background: var(--lav); }
.gs-cake.is-live { color: var(--ink); }
.gs-cake .gs-mono { padding-top: 6px; }
.gs-cake-name { font: 700 clamp(24px, 2vw, 32px)/1 "Corp", sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.gs-cake-desc { grid-column: 2; font-size: 15.5px; line-height: 1.42; opacity: .82; max-width: 34em; }
.gs-tags { grid-column: 2; display: flex; gap: 8px; flex-wrap: wrap; }
.gs-tags i { font: 400 11px/1 "Pressura", monospace; font-style: normal; letter-spacing: .08em; text-transform: uppercase; padding: 5px 8px 4px; border: 1.2px solid currentColor; border-radius: 100px; }
.gs-sizes { display: grid; grid-template-columns: repeat(3, 1fr); margin: clamp(30px, 4.5vh, 48px) 0 0; }
.gs-sizes div { display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 10px; padding: 0 12px 0 0; }
.gs-sizes div + div { padding-left: 18px; border-left: 1.5px solid var(--gs-rule); }
.gs-sizes b { font: 700 clamp(44px, 3.9vw, 70px)/.9 "Corp", sans-serif; color: var(--lav); }
.gs-sizes span { font: 700 clamp(26px, 2.1vw, 36px)/1 "Corp", sans-serif; letter-spacing: .03em; }
.gs-sizes em { grid-column: 1 / -1; margin-top: 10px; font-style: normal; color: var(--gs-soft); }
.gs-order { margin-top: clamp(30px, 4.5vh, 48px); }
.gs-pick { margin: 0 0 14px !important; color: var(--gs-soft); }
.gs-pick b { font-weight: 400; color: var(--lav); }
.gs-order p { margin: 16px 0 0; font-size: 15px; line-height: 1.5; color: var(--gs-soft); max-width: 34em; }

/* ---------- CH 03 · monthly menu ---------- */
.gs-menu-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: clamp(40px, 6vh, 72px); }
.gs-next { margin: 0 0 6px; text-align: right; display: grid; gap: 10px; justify-items: end; }
.gs-next b { font: 700 clamp(26px, 2.2vw, 36px)/1 "Corp", sans-serif; letter-spacing: .04em; text-transform: uppercase; padding: 10px 16px 8px; border: 2px solid var(--ink); border-radius: 100px; background: var(--cream); }
.gs-card { position: relative; max-width: 1180px; margin: 0 auto; background: var(--cream); border: 2px solid var(--ink); border-radius: 6px; box-shadow: -10px 10px 0 var(--lav-ink); padding: 0 clamp(22px, 5vw, 80px); }
/* their card's border: two rows of offset black squares */
.gs-checks { --s: clamp(20px, 2.6vw, 38px); height: calc(var(--s) * 2); margin: clamp(22px, 3.4vw, 44px) 0 0;
  background: conic-gradient(var(--ink) 25%, transparent 0 50%, var(--ink) 0 75%, transparent 0) 0 0 / calc(var(--s) * 2) calc(var(--s) * 2); }
.gs-checks--b { margin: clamp(30px, 4vw, 52px) 0 clamp(22px, 3.4vw, 44px); }
.gs-card-title { margin: clamp(18px, 2.6vw, 36px) 0 clamp(20px, 3vw, 44px); text-align: center; font: 700 clamp(64px, 9.4vw, 176px)/.84 "Corp", sans-serif; text-transform: uppercase; color: var(--lav-ink); letter-spacing: .01em; }
.gs-card-flow { column-count: 2; column-gap: clamp(28px, 5vw, 80px); }
.gs-card-flow h4 { break-after: avoid; }
.gs-card-flow h4 ~ h4 { margin-top: 30px; }
.gs-items li { break-inside: avoid; }
.gs-card h4 { margin: 0 0 12px; color: var(--lav-ink); }
.gs-items { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--ink); }
.gs-items li { padding: 10px 0 9px; border-bottom: 1px solid rgba(22, 22, 22, .2); font-size: clamp(16px, 1.2vw, 19px); line-height: 1.3; }
.gs-items i, .gs-key i { display: inline-block; margin-left: 6px; font: 400 10.5px/1 "Pressura", monospace; font-style: normal; letter-spacing: .06em; padding: 4px 6px 3px; background: var(--lav); border-radius: 3px; vertical-align: 2px; }
.gs-key { margin: 14px 0 0; color: var(--gs-soft); }
.gs-key i { margin: 0 6px 0 0; }
.gs-preorder { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: clamp(30px, 4vw, 48px); padding-top: 22px; border-top: 2px solid var(--ink); }
.gs-preorder p { margin: 0; font-size: 17px; line-height: 1.45; white-space: nowrap; }
@media (max-width: 1199px) { .gs-preorder { display: block; } .gs-preorder p { white-space: normal; margin-bottom: 20px; } }

/* ---------- CH 04 · Fort St ---------- */
.gs-visit .gs-h2 { font-size: clamp(50px, 5.5vw, 108px); }
.gs-visit-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: clamp(40px, 6vh, 64px); }
.gs-status { margin-bottom: 8px; padding: 12px 18px 10px; border: 2px solid var(--ink); border-radius: 100px; background: var(--cream); font-size: 13px; }
.gs-week { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); border: 2px solid var(--ink); border-radius: 6px; overflow: hidden; background: var(--cream); }
.gs-week li { position: relative; display: grid; align-content: start; gap: 8px; padding: 22px 18px 26px; min-height: 172px; }
.gs-week li + li { border-left: 1.5px solid var(--ink); }
.gs-week b { font: 700 clamp(28px, 2.4vw, 40px)/1 "Corp", sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.gs-week span { font: 700 clamp(20px, 1.6vw, 26px)/1 "Corp", sans-serif; text-transform: uppercase; letter-spacing: .05em; }
.gs-week em { font-style: normal; color: var(--gs-soft); }
.gs-week li:not(.is-open) { color: #7c7086; background: repeating-linear-gradient(135deg, rgba(184, 163, 207, .32) 0 2px, transparent 2px 11px); }
.gs-week li.is-open { background: var(--lav); }
.gs-week li.is-today::after { content: "Today"; position: absolute; right: 12px; top: 14px; font: 400 11px/1 "Pressura", monospace; letter-spacing: .08em; text-transform: uppercase; padding: 5px 8px 4px; border-radius: 100px; background: var(--ink); color: var(--cream); }
.gs-week li.is-today { box-shadow: inset 0 0 0 4px var(--ink); }
.gs-week li.is-today.is-open { background: var(--yolk); }
.gs-visit-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: clamp(44px, 6vh, 72px); }
.gs-visit-cols > div { padding: 18px 28px 0 0; border-top: 2px solid var(--ink); }
.gs-visit-cols > div + div { padding-left: 28px; border-left: 1.5px solid var(--ink); }
.gs-visit-cols h3 { margin: 0 0 16px; font-weight: 400; color: var(--gs-soft); }
.gs-visit-cols p { margin: 0 0 16px; font-size: 16.5px; line-height: 1.5; }
.gs-visit-cols a:not(.gs-link) { text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.gs-big { font: 700 clamp(28px, 2.4vw, 40px)/1 "Corp", sans-serif !important; letter-spacing: .03em; text-transform: uppercase; }
.gs-big a { text-decoration: none; }
.gs-sub { display: flex; gap: 8px; margin-top: 4px; }
.gs-sub input { flex: 1; min-width: 0; padding: 14px 18px 12px; border: 2px solid var(--ink); border-radius: 100px; background: #fff; font: 400 16px/1 "Basis", sans-serif; color: var(--ink); }
.gs-sub input:focus { outline: none; box-shadow: 0 0 0 4px var(--lav); }
.gs-sub .gs-btn { padding: 13px 20px 11px; font-size: 19px; box-shadow: none; }
.gs-sub-done { margin-top: 12px; }

/* ---------- CH 05 · finale + footer: one screen ---------- */
.gs-end { display: flex; flex-direction: column; min-height: 100svh; background: var(--ink); }
.gs-finale { position: relative; flex: 1; min-height: 340px; overflow: hidden; display: flex; align-items: flex-end; padding: 0 var(--pad) clamp(28px, 5vh, 56px); isolation: isolate; }
.gs-finale > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; z-index: -2; transform: scale(1.06); transition: transform 2.4s var(--ease); }
.gs-finale.is-in > img { transform: none; }
.gs-finale::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(22,22,22,.05) 0%, rgba(22,22,22,.18) 38%, rgba(22,22,22,.86) 100%); }
.gs-glass--soft { z-index: 0; opacity: .55; }
.gs-finale-osd { position: absolute; z-index: 1; left: var(--pad); top: clamp(22px, 4vh, 40px); margin: 0; font: 400 15px/1 "Pressura", monospace; letter-spacing: .08em; text-transform: uppercase; color: #e9ffe6;
  text-shadow: 0 0 6px rgba(190,255,190,.7), 1px 0 rgba(255,60,120,.5), -1px 0 rgba(60,200,255,.5); }
.gs-finale-row { position: relative; z-index: 1; width: 100%; max-width: 1440px; margin: 0 auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.gs-finale-h { margin: 0; }
.gs-finale-h .xl { display: block; --xl-font: "Corp", sans-serif; --xl-fill: var(--cream); --xl-ink: var(--ink); --xl-line: .022em; --xl-shadow: .05em;
  font-size: clamp(60px, 7.6vw, 150px); line-height: .88; letter-spacing: .02em; font-variation-settings: normal; max-width: 8.4em; padding-left: .06em; }
.gs-finale-act { display: grid; gap: 18px; justify-items: end; padding-bottom: 6px; }
.gs-status--dark { margin: 0; color: var(--cream); background: rgba(22, 22, 22, .45); border-color: rgba(251, 244, 236, .7); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gs-status--dark .onair__lamp { border-color: var(--cream); }
.gs-finale-ctas { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.gs-foot { padding: clamp(34px, 5.5vh, 60px) var(--pad) 0; color: var(--cream); }
.gs-foot-cols { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; }
.gs-foot-brand img { width: 210px; height: auto; filter: invert(.96) sepia(.12); }
.gs-foot-brand p { margin: 16px 0 0; max-width: 24em; font-size: 15px; line-height: 1.5; color: rgba(251, 244, 236, .74); }
.gs-foot h4 { margin: 4px 0 14px; color: var(--lav); font-weight: 400; }
.gs-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: 15.5px; }
.gs-foot a { color: var(--cream); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.gs-foot a:hover { background-size: 100% 1px; }
.gs-legal { max-width: 1440px; margin: clamp(28px, 4.5vh, 48px) auto 0; padding: 18px 0 22px; border-top: 1px solid rgba(251, 244, 236, .25); display: flex; justify-content: space-between; gap: 20px; color: rgba(251, 244, 236, .6); }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  .gs-case-body { max-width: none; }
  .gs-stamp { display: none; }
  .gs-screen-wrap { grid-column: 1 / span 5; }
  .gs-cakes-side { grid-column: 7 / span 6; }
  .gs-foot-cols { grid-template-columns: repeat(3, 1fr); }
  .gs-foot-brand { grid-column: 1 / -1; display: flex; align-items: center; gap: 28px; }
  .gs-foot-brand p { margin: 0; }
}

/* ---------- phone ---------- */
@media (max-width: 860px) {
  .gs { padding: 88px var(--pad) 96px; }
  .gs-h2, .gs-case .gs-h2, .gs-cakes .gs-h2 { font-size: min(11.6vw, 64px); }
  .gs-visit .gs-h2 { font-size: min(10.6vw, 60px); }
  .gs-cakes-grid { display: block; }
  .gs-case-grid { display: flex; flex-direction: column; align-items: stretch; }
  .gs-case-copy { display: contents; }
  .gs-case-top { order: 1; margin-bottom: 30px; }
  .gs-bakers { order: 2; }
  .gs-case-body { order: 3; padding: 4px 0 30px; }
  .gs-bakers img { box-shadow: -6px 6px 0 var(--lav); }
  .gs-stamp { display: block; order: 2; position: relative; z-index: 2; align-self: flex-end; width: 30%; max-width: 150px; height: auto; margin: -54% 0 0 0; pointer-events: none; }
  .gs-bakers figcaption { margin-right: 34%; }
  .gs-facts dd { font-size: 24px; }
  .gs-facts div + div { padding-left: 12px; }
  .gs-screen-wrap { position: relative; top: 0; margin-bottom: 34px; }
  .gs-screen { box-shadow: -6px 6px 0 var(--lav-ink); }
  .gs-cake { grid-template-columns: 34px 1fr; padding: 16px 8px 16px 2px; }
  .gs-sizes div { grid-template-columns: 1fr; padding-right: 8px; }
  .gs-sizes div + div { padding-left: 12px; }
  .gs-sizes em { margin-top: 6px; font-size: 10.5px; letter-spacing: .05em; }
  .gs-btn { font-size: 19px; padding: 15px 22px 13px; }
  .gs-order .gs-btn { width: 100%; justify-content: space-between; }
  .gs-menu-head, .gs-visit-head { display: block; }
  .gs-next { text-align: left; justify-items: start; margin-top: 24px; }
  .gs-card { padding: 0 18px; box-shadow: -6px 6px 0 var(--lav-ink); }
  .gs-card-title { font-size: min(18vw, 96px); }
  .gs-card-flow { column-count: 1; }
  .gs-preorder { display: block; }
  .gs-preorder p { margin-bottom: 20px; }
  .gs-status { display: inline-flex; margin-top: 22px; }
  .gs-week { grid-template-columns: 1fr; }
  .gs-week li { min-height: 0; grid-template-columns: 76px 1fr auto; align-items: baseline; padding: 14px 16px 12px; gap: 12px; }
  .gs-week li + li { border-left: 0; border-top: 1.5px solid var(--ink); }
  .gs-week b { font-size: 26px; }
  .gs-week li.is-today::after { position: static; grid-column: 3; grid-row: 1; justify-self: end; }
  .gs-week li.is-today em { display: none; }
  .gs-visit-cols { grid-template-columns: 1fr; gap: 30px; }
  .gs-visit-cols > div + div { padding-left: 0; border-left: 0; }
  .gs-end { min-height: 0; }
  .gs-finale { min-height: 78svh; padding-bottom: 30px; }
  .gs-finale-row { display: block; }
  .gs-finale-h .xl { font-size: min(13vw, 76px); }
  .gs-hide-m { display: none; }
  .gs-finale-act { justify-items: start; margin-top: 22px; }
  .gs-finale-ctas { justify-content: flex-start; }
  .gs-foot { padding-bottom: 92px; }
  .gs-foot-cols { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
  .gs-foot-brand { display: block; }
  .gs-foot-brand p { margin-top: 14px; }
  .gs-legal { flex-direction: column; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .gs-rise, .js .gs-floor, .js .gs-stamp { opacity: 1 !important; transform: none !important; }
  .gs-finale > img { transform: none; }
}
