/* Salus shared layer: base, type, header, floating menu, buttons, cursor, treats, journal, footer, inner scaffolding */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; background: var(--ink); }
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-scrolling iframe { pointer-events: none; }
body { margin: 0; background: var(--umber); color: var(--sand); font-family: var(--sans); font-size: .938vw; line-height: 1.33; font-weight: 400; overflow-x: clip; -webkit-font-smoothing: antialiased; }
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
p { margin: 0 0 2vw; }
ul { list-style: none; margin: 0; padding: 0; }
main { display: block; position: relative; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 1rem; top: -4rem; z-index: 2000; background: var(--sand); color: var(--umber); padding: .7rem 1.1rem; border-radius: 2rem; font-weight: 600; transition: top .2s; }
.skip:focus { top: 1rem; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* ---------- type (reference scale, Newsreader 200 italic for display) ---------- */
.h1, h1, .h2, h2, .h3, h3, h4, .h4, .h5, h5 { font-family: var(--serif); font-style: italic; font-weight: 200; margin-top: 0; letter-spacing: -.01em; }
.h1, h1 { font-size: 11.458vw; line-height: 1; text-transform: uppercase; margin-bottom: 0; }
.h2, h2 { font-size: 6.25vw; line-height: .9; text-transform: uppercase; margin-bottom: 1.5vw; }
.h3, h3 { font-size: 5.208vw; line-height: 1; text-transform: none; margin-bottom: 2vw; }
.h4, h4 { font-size: 3.646vw; line-height: 1; margin-bottom: 1vw; text-transform: none; }
.h5, h5 { font-size: 2.604vw; line-height: 1; margin-bottom: 1vw; text-transform: none; }
.h6, h6 { font-family: var(--sans); font-style: normal; font-size: 1.25vw; line-height: 1; font-weight: 300; letter-spacing: -.037vw; margin: 0; }
.kicker { font-weight: 600; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 1vw; }

/* split text: words keep together, chars animate */
.split .w { display: inline-block; white-space: nowrap; }
.split .c { display: inline-block; will-change: auto; }
.js .split:not(.split-ready) { opacity: 0; }

/* ---------- header ---------- */
.hdr { position: absolute; top: 0; left: 0; width: 100%; z-index: 20; display: flex; justify-content: space-between; align-items: flex-start; padding: 1.668vw var(--left); color: var(--sand); line-height: 1; font-weight: 600; text-transform: uppercase; }
.hdr-col { position: relative; width: 46%; height: 2.589vw; display: flex; align-items: center; }
.hdr-col::before, .hdr-col::after { content: ""; position: absolute; left: 0; height: 1px; width: 0; }
.hdr-col::before { top: 0; background: rgba(255, 255, 255, .5); }
.hdr-col::after { bottom: 0; background: var(--sand); }
.hdr-tag { height: 100%; display: inline-flex; align-items: center; padding-right: 1.17vw; position: relative; }
.hdr-tag::after { content: ""; position: absolute; top: 0; right: 0; width: 1px; height: 0; background: var(--sand); }
.hdr-nav { justify-content: flex-end; }
.hdr-nav > ul { display: flex; height: 100%; }
.hdr-nav > ul > li { position: relative; height: 100%; }
.hnav { height: 100%; display: inline-flex; align-items: center; padding: 0 1.344vw; position: relative; overflow: hidden; transition: color .2s; }
.hdr-nav > ul > li:last-child .hnav { padding-right: 0; }
.hnav::before { content: ""; position: absolute; top: 0; left: 0; width: 1px; height: 0; background: var(--sand); }
.hnav::after { content: ""; position: absolute; top: 100%; left: 0; width: 100%; height: 100%; background: var(--sand); z-index: 1; transition: top .2s; }
.hnav .lbl { position: relative; z-index: 2; display: flex; align-items: center; }
.hnav .lbl::before { content: ""; width: .365vw; height: .365vw; border-radius: 50%; background: var(--sand); margin-right: 1vw; transition: background .2s; }
.hnav:hover, .hnav:focus-visible, .has-sub:hover > .hnav, .has-sub:focus-within > .hnav { color: var(--umber); }
.hnav:hover::after, .hnav:focus-visible::after, .has-sub:hover > .hnav::after, .has-sub:focus-within > .hnav::after { top: 0; }
.hnav:hover .lbl::before, .hnav:focus-visible .lbl::before, .has-sub:hover > .hnav .lbl::before { background: var(--umber); }
.hdr-nav > ul > li:last-child .hnav::after { width: calc(100% + 0px); }
.sub { position: absolute; right: 0; top: 100%; min-width: 15vw; background: var(--sand); color: var(--umber); padding: .8vw 0; border-top: 2px solid var(--clay); box-shadow: 0 10px 30px rgba(0, 0, 0, .15); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.has-sub:hover .sub, .has-sub:focus-within .sub { opacity: 1; visibility: visible; }
.sub a { display: block; padding: .85vw 1.7vw; font-size: .9vw; transition: background .2s, color .2s; }
.sub a:hover, .sub a:focus-visible { background: var(--sand-2); color: var(--clay); }
.hdr-logo { position: absolute; top: 0; left: 48.3%; transform: translateX(-50%); color: var(--sand); }
.hdr-logo svg { height: 6.826vw; width: auto; }
@keyframes line1 { from { width: 0; } to { width: 100%; } }
@keyframes line2 { from { height: 0; } to { height: 100%; } }
.hdr.go .hdr-left::before, .hdr.go .hdr-left::after { animation: line1 1s forwards; }
.hdr.go .hdr-nav::before, .hdr.go .hdr-nav::after { animation: line1 1s .8s forwards; }
.hdr.go .hdr-tag::after { animation: line2 1s .5s forwards; }
.hdr.go .hnav::before { animation: line2 1s 1.5s forwards; }
.hdr[data-intro="late"].go .hdr-left::before, .hdr[data-intro="late"].go .hdr-left::after { animation-delay: 0s; }
.hdr[data-intro="late"].go .hdr-nav::before, .hdr[data-intro="late"].go .hdr-nav::after { animation-delay: .5s; }
.hdr[data-intro="late"].go .hdr-tag::after, .hdr[data-intro="late"].go .hnav::before { animation-delay: 1s; }

/* ---------- floating menu ---------- */
.fm { position: fixed; top: 50%; right: var(--left); transform: translateY(-50%); z-index: 50; display: flex; flex-direction: column; align-items: center; gap: .688vw; }
.fm-menu { width: 2.266vw; height: 6.432vw; display: flex; flex-direction: column; align-items: center; background: var(--sand); color: var(--umber); border-radius: 1.719vw; padding: 1.1vw 0; font-weight: 700; text-transform: uppercase; box-shadow: 0 0 5px 5px rgba(0, 0, 0, .02); transition: background .2s, color .2s; }
.fm-ico svg { height: .951vw; width: auto; margin-bottom: .521vw; transition: transform .3s var(--ease-out); }
.fm-word { display: block; transform: rotate(-90deg); transform-origin: 100% 0; position: relative; left: -1.9vw; font-size: .938vw; letter-spacing: .02em; white-space: nowrap; }
.fm-audio { position: relative; width: 2.266vw; height: 2.266vw; border-radius: 50%; background: var(--sand); color: var(--umber); box-shadow: 0 0 5px 5px rgba(0, 0, 0, .02); transition: background .2s, color .2s, transform .2s; }
.fm-audio svg { position: absolute; top: 50%; left: 50%; width: 1.3vw; transform: translate(-50%, -50%); }
.fm-audio .snd-on { display: none; }
.fm-audio[aria-pressed="true"] .snd-on { display: block; }
.fm-audio[aria-pressed="true"] .snd-off { display: none; }
.fm-audio[aria-pressed="true"] .w1 { animation: wave 1.6s ease-in-out infinite; }
.fm-audio[aria-pressed="true"] .w2 { animation: wave 1.6s .25s ease-in-out infinite; }
@keyframes wave { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
.fm-menu:hover, .fm-audio:hover { background: var(--sand-2); }
.fm.active .fm-menu, .fm.active .fm-audio { background: var(--umber); color: var(--sand); }
.fm.active .fm-ico svg { transform: rotate(90deg); }
.fm-panel { position: fixed; top: 50%; right: 1vw; z-index: 49; width: 14.896vw; background: var(--sand); border-radius: 1.719vw; display: flex; flex-direction: column; padding: 2vw 0; box-shadow: 0 0 5px 5px rgba(0, 0, 0, .01); transform: translateY(-50%) scale(.35); transform-origin: right; opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; }
.fm-panel[hidden] { display: flex; }
.fm-panel.active { opacity: 1; visibility: visible; transform: translateY(-50%) scale(1); }
.fm-panel a { display: block; padding: .2vw 2vw; color: var(--umber); opacity: .55; font-size: 1.25vw; transition: opacity .2s; }
.fm-panel a.on, .fm-panel a:hover, .fm-panel a:focus-visible { opacity: 1; }

/* ---------- buttons: cap lines + dot + label, white fill on hover ---------- */
.btn { position: relative; display: inline-flex; align-items: center; height: 2.813vw; border-radius: 1.5vw; width: max-content; color: var(--sand); font-family: var(--sans); font-size: .938vw; font-weight: 600; line-height: normal; text-transform: uppercase; letter-spacing: .01em; background: transparent; transition: color .2s, background-color .2s; }
.btn-cap { align-self: stretch; width: 1.45vw; border: 1px solid currentColor; transition: opacity .2s; }
.btn-cap.l { border-right: 0; border-radius: 1.5vw 0 0 1.5vw; }
.btn-cap.r { border-left: 0; border-radius: 0 1.5vw 1.5vw 0; }
.btn-dot { width: .37vw; height: .37vw; border-radius: 50%; background: currentColor; margin-right: 1vw; transition: background .2s; }
.btn-lbl { white-space: nowrap; }
.btn:hover, .btn:focus-visible { color: #4a3526; background-color: var(--white); }
.btn:hover .btn-cap, .btn:focus-visible .btn-cap { opacity: 0; }
.btn-umber { color: var(--umber); }
.btn-clay { color: var(--clay); }
.btn-solid { background: var(--white); color: #4a3526; }
.btn-solid .btn-cap { opacity: 0; }
.btn-solid:hover, .btn-solid:focus-visible { background: var(--sand-2); }

/* ---------- custom cursor (fine pointers only) ---------- */
.cursor { position: fixed; left: 0; top: 0; z-index: 3000; pointer-events: none; display: none; mix-blend-mode: difference; }
.has-cursor .cursor { display: block; }
.cur-mr, .cur-md { position: absolute; left: 0; top: 0; will-change: transform; }
.cur-dot, .cur-ring { position: absolute; left: 0; top: 0; border-radius: 50%; }
.cur-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: #efe5d4; transition: transform .25s var(--ease-out), opacity .2s; }
.cur-ring { width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1px solid rgba(239, 229, 212, .8); display: grid; place-items: center; transition: transform .45s var(--ease-out), background-color .3s, border-color .3s, opacity .3s; }
.cur-lbl { font: 600 10px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--sand-2); opacity: 0; transform: scale(.4348); transition: opacity .2s; white-space: nowrap; }
.cursor.is-link .cur-ring { transform: scale(1.45); }
.cursor.is-link .cur-dot { transform: scale(0); }
.cursor.is-label { mix-blend-mode: normal; }
.cursor.is-label .cur-ring { transform: scale(2.3); background: var(--clay); border-color: var(--clay); }
.cursor.is-label .cur-lbl { opacity: 1; }
.cursor.is-label .cur-dot { transform: scale(0); }
.cursor.is-down .cur-ring { transform: scale(.82); }
.cursor.is-label.is-down .cur-ring { transform: scale(2.05); }
.cursor.is-hidden .cur-ring, .cursor.is-hidden .cur-dot { opacity: 0; }

/* ---------- navi bars (thin rules that draw in) ---------- */
.navi { display: flex; align-items: center; margin: 0 var(--left); color: var(--sand); position: relative; font-weight: 700; text-transform: uppercase; }
.navi > div { height: 4.586vw; display: flex; align-items: center; position: relative; }
.navi::before { content: ""; position: absolute; left: 0; height: 1px; width: 0; background: rgba(255, 255, 255, .5); }
.navi-start { padding-right: 1.771vw; margin-right: 1.771vw; }
.navi-start::after { content: ""; position: absolute; top: 0; right: 0; width: 1px; height: 0; background: var(--sand); }
.navi-start svg { height: 3.8vw; width: auto; color: var(--sand); }
.navi-middle .h6 { font-weight: 300; text-transform: none; }
.navi-end { margin-left: auto; }

/* ---------- top section + curves (inner pages) ---------- */
.top-section { position: relative; color: var(--sand-2); text-align: center; padding: 15.313vw var(--left) 16vw; background: var(--umber); overflow: hidden; }
.top-section::before { content: ""; position: absolute; inset: 0; background: url(../media/hero-poster-sm.webp) center / cover; mix-blend-mode: multiply; opacity: .3; }
.top-section > * { position: relative; }
.top-section h1 { color: var(--sand); }
.top-lede { width: 26.875vw; margin: 1.6vw auto 0; }
.curve { position: relative; overflow: hidden; }
.curve-bg { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 109.38vw; height: 100%; background: var(--sand); border-top-left-radius: var(--arch); border-top-right-radius: var(--arch); z-index: 0; }
.curve > :not(.curve-bg) { position: relative; z-index: 1; }

/* ---------- ritual cards ---------- */
.tgrid { display: grid; grid-template-columns: repeat(3, 1fr); margin: -4vw -1vw; }
.tcard { padding: 4vw 1vw; text-align: center; color: var(--umber); }
.tcard-name { color: var(--umber); margin-bottom: 0; }
.tcard-name a { transition: color .2s; }
.tcard-name a:hover { color: var(--clay); }
.tcard-img { position: relative; margin-top: 2vw; }
.tcard-img::before { content: ""; position: absolute; top: 52%; left: 52%; transform: translate(-50%, -50%) rotate(4deg); width: 18.653vw; height: 26.19vw; background: var(--stone); border-radius: 3.125vw; transition: .3s; }
.tcard-frame { display: block; width: 18.653vw; height: 26.19vw; border-radius: 3.125vw; overflow: hidden; margin-bottom: 1.563vw; position: relative; left: 50%; transform: translateX(-60%) rotate(-4deg); z-index: 2; transition: .3s; }
.tcard-frame img { width: 100%; height: 100%; object-fit: cover; }
.tcard:nth-child(3n+2) .tcard-frame { transform: translateX(-40%) rotate(4deg); }
.tcard:nth-child(3n+2) .tcard-img::before { transform: translate(-50%, -50%) rotate(-4deg); left: 48%; }
.tcard-img::after { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 18.653vw; height: 26.19vw; margin-top: -.78vw; background: linear-gradient(0deg, rgba(20, 12, 8, .45), rgba(20, 12, 8, .55)); border-radius: 3.125vw; z-index: 3; transition: .3s; opacity: 0; visibility: hidden; }
.tcard-img:hover .tcard-frame, .tcard-img:focus-within .tcard-frame { transform: translateX(-50%) rotate(0); }
.tcard-img:hover::before, .tcard-img:focus-within::before { top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(0); opacity: 0; }
.tcard-img:hover::after, .tcard-img:focus-within::after { opacity: 1; visibility: visible; transition-delay: .2s; }
.tcard-desc { position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 18.653vw; height: calc(100% - 1.563vw); padding: 3.385vw 1.752vw 2.865vw; display: flex; flex-direction: column; align-items: center; text-align: center; color: var(--sand-2); z-index: 5; opacity: 0; visibility: hidden; transition: .3s; }
.tcard-desc p { margin-bottom: auto; }
.tcard-desc .btn { margin-top: 1.354vw; }
.tcard-img:hover .tcard-desc, .tcard-img:focus-within .tcard-desc { top: 0; opacity: 1; visibility: visible; transition-delay: .2s; }
.tcard-info { display: flex; flex-wrap: wrap; justify-content: center; gap: .5vw; }
.pill { color: var(--sand-2); font-weight: 600; background: var(--clay); border-radius: 2vw; padding: .5vw 1vw; }

/* ---------- house treats (exclusive) ---------- */
.treats { position: relative; padding: 8vw 8vw 0; color: var(--sand); background: var(--ink); text-align: center; overflow: hidden; }
.treats-title { position: relative; z-index: 2; padding: 0 10vw; }
.treats-kicker { margin: 0; }
.treats-cards { position: relative; z-index: 3; display: flex; justify-content: space-between; padding: 0 2vw; }
.treat { position: relative; width: 25vw; height: 37.177vw; border-radius: 3.125vw; overflow: hidden; }
.treat-1 { margin-top: -15vw; transform: rotate(-5deg); }
.treat-2 { margin-top: -5vw; transform: rotate(5deg); }
.treat img { width: 100%; height: 100%; object-fit: cover; }
.treat-txt { position: absolute; bottom: 1vw; left: 50%; transform: translateX(-50%); width: 90%; height: 17vw; background: var(--clay); border-radius: 1.979vw; padding: 1.979vw 2.4vw; display: flex; align-items: center; flex-direction: column; justify-content: space-between; }
.treat-txt .h5 { margin: 0; }
.treat-txt p { margin: 0; font-size: .86vw; opacity: .9; }
.treats::after { content: ""; position: absolute; z-index: 1; bottom: 0; left: -15%; width: 130%; height: 21.9vw; background: var(--sand); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }

/* ---------- journal marquee (insta) ---------- */
.journal { position: relative; padding: 8vw 0 10vw; background: var(--sand); color: var(--umber); text-align: center; }
.journal-title { padding: 0 var(--left2); }
.marquee { overflow: hidden; margin: 1.5vw 0 2vw; }
.marquee-track { display: flex; gap: 2.448vw; width: max-content; animation: marquee 40s linear infinite; }
.marquee-set { display: flex; gap: 2.448vw; flex-shrink: 0; }
.marquee img { width: 28.646vw; height: 28.646vw; object-fit: cover; border-radius: 1.042vw; flex-shrink: 0; }
@keyframes marquee { to { transform: translateX(calc(-50% - 1.224vw)); } }
.journal-btn { position: relative; display: inline-flex; align-items: center; height: 12.396vw; padding: 0 3vw; border-radius: 4.5vw; color: var(--umber); transition: background-color .2s; }
.journal-btn:hover, .journal-btn:focus-visible { background: var(--white); }
.journal-btn > svg { width: 7.646vw; margin-right: 2vw; }
.journal-btn .h2 { margin: 0; }
.jb-line { position: absolute; width: 4.516vw; }
.jb-line.l { top: 0; left: 0; }
.jb-line.r { bottom: 0; right: 0; transform: rotate(180deg); }

/* ---------- footer ---------- */
.ft { position: relative; display: flex; flex-direction: column; padding: 5.313vw var(--left) var(--left); background: var(--ink); color: var(--sand); }
.ft-action { text-align: center; }
.ft-logo { display: inline-block; color: var(--sand); }
.ft-logo svg { width: 5.2vw; height: auto; }
.ft-line { font-size: 2.083vw; margin: 20vw 0 0; }
.ft-ctas { display: flex; justify-content: space-between; margin: 2vw 0 2.292vw; }
.ft-ctas a { width: 49%; height: 11.5vw; border-radius: 4.271vw; border: 1px solid var(--sand); display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; overflow: hidden; }
.ft-ctas a::before { content: ""; position: absolute; top: 100%; left: 0; width: 100%; height: 100%; background: var(--sand); z-index: 1; transition: top .3s ease-in-out; }
.ft-ctas a:hover::before, .ft-ctas a:focus-visible::before { top: 0; }
.ft-ctas a > * { position: relative; z-index: 2; transition: color .2s; }
.ft-ctas .h2 { margin-bottom: .5vw; }
.ft-sub { color: var(--sand-2); }
.ft-ctas a:hover > *, .ft-ctas a:focus-visible > * { color: var(--clay); }
.ft-bar { display: flex; align-items: center; border-top: 1px solid var(--sand); border-bottom: 1px solid var(--sand); text-transform: uppercase; }
.ft-bar > div { height: 2.604vw; display: flex; align-items: center; padding: 0 2.214vw; }
.ft-c1 { padding-left: 0 !important; border-right: 1px solid var(--sand); }
.ft-c2 { padding: 0 !important; border-right: 1px solid var(--sand); }
.ft-c2 a { height: 100%; display: flex; align-items: center; padding: 0 2.214vw; position: relative; overflow: hidden; }
.ft-c2 a::before { content: ""; position: absolute; top: 100%; left: 0; width: 100%; height: 100%; background: var(--sand); z-index: 1; transition: top .2s; }
.ft-c2 a:hover::before, .ft-c2 a:focus-visible::before { top: 0; }
.ft-c2 a span { position: relative; z-index: 2; transition: color .2s; }
.ft-c2 a:hover span, .ft-c2 a:focus-visible span { color: var(--umber); }
.ft-c3 { padding-right: 0 !important; margin-left: auto; border-left: 1px solid var(--sand); }
.ft-fine { padding-top: 3.028vw; text-align: center; color: var(--sand-3); }
.ft-fine p { margin: 0 auto .8vw; max-width: 46vw; }
.ft-kicker { font-weight: 600; text-transform: uppercase; color: var(--sand); }
.ft-legal { text-transform: uppercase; font-size: .78vw; margin-top: 1.6vw !important; }

/* ---------- phones ---------- */
@media (max-width: 767px) {
  body { font-size: 3.562vw; }
  .h1, h1 { font-size: 17vw; margin-bottom: 5vw; }
  .h2, h2 { font-size: 11.5vw; line-height: 1; margin-bottom: 5vw; }
  .h3, h3 { font-size: 9vw; line-height: 1.1; margin-bottom: 5vw; }
  .h4, h4 { font-size: 8vw; margin-bottom: 3vw; }
  .h5, h5 { font-size: 7.5vw; }
  .h6, h6 { font-size: 4.58vw; letter-spacing: -.137vw; }
  p { margin-bottom: 5vw; }
  .kicker { margin-bottom: 3vw; }
  .hdr { padding: 5vw var(--left); flex-direction: column; align-items: center; }
  .hdr-col { width: 100%; height: 9vw; justify-content: center; }
  .hdr-nav { display: none; }
  .hdr-tag { padding-right: 0; }
  .hdr-tag::after { display: none; }
  .hdr-logo { position: relative; left: 0; transform: none; margin-top: 6vw; }
  .hdr-logo svg { height: 22.9vw; }
  .fm { top: auto; right: auto; bottom: 5vw; left: 50%; transform: translateX(-50%); flex-direction: row; gap: 1.688vw; }
  .fm-menu { width: 25vw; height: 10vw; border-radius: 8vw; padding: 2.1vw; flex-direction: row-reverse; justify-content: center; align-items: center; gap: 4vw; box-shadow: 0 0 5px 5px rgba(0, 0, 0, .04); }
  .fm-word { transform: none; left: 0; font-size: 3.562vw; }
  .fm-ico svg { height: 4vw; margin: 0; transform: rotate(90deg); }
  .fm.active .fm-ico svg { transform: none; }
  .fm-audio { width: 10vw; height: 10vw; box-shadow: 0 0 5px 5px rgba(0, 0, 0, .04); }
  .fm-audio svg { width: 4.6vw; }
  .fm-panel { top: auto; right: auto; bottom: 2vw; left: 50%; width: 80%; border-radius: 10vw; padding: 5vw 0 20vw; transform: translateX(-50%) scale(.35); transform-origin: bottom; }
  .fm-panel.active { transform: translateX(-50%) scale(1); }
  .fm-panel a { padding: 1.6vw 8vw; font-size: 4.8vw; }
  .btn { font-size: 3.562vw; height: 11.272vw; border-radius: 6vw; }
  .btn-cap { width: 5vw; }
  .btn-cap.l { border-radius: 6vw 0 0 6vw; }
  .btn-cap.r { border-radius: 0 6vw 6vw 0; }
  .btn-dot { width: 1.781vw; height: 1.781vw; margin-right: 4vw; }
  .navi > div { height: 17.303vw; }
  .navi-start svg { height: 10.178vw; }
  .navi-start { padding-right: 3.771vw; margin-right: 3.771vw; }
  .top-section { padding: 50vw var(--left) 30vw; }
  .top-lede { width: auto; margin-top: 4vw; }
  .tgrid { grid-template-columns: 1fr; margin: -8vw 0; }
  .tcard { padding: 8vw 0; }
  .tcard-img { margin: 7vw auto 0; width: 70vw; }
  .tcard-img::before { top: 53%; left: 53%; }
  .tcard-frame, .tcard-img::after, .tcard-img::before { width: 60vw; height: 80vw; border-radius: 7vw; }
  .tcard:nth-child(3n+2) .tcard-img::before { left: 47%; }
  .tcard-frame { margin-bottom: 7vw; }
  .tcard-img::after { margin-top: -3.5vw; }
  .tcard-desc { width: 60vw; height: calc(100% - 7vw); padding: 8vw 4vw 6vw; }
  .tcard-info { gap: 2.5vw; }
  .pill { border-radius: 5vw; padding: 2.5vw 4vw; }
  .treats { padding: 18vw var(--left) 0; }
  .treats-title { padding: 0 0 5vw; }
  .treats-cards { flex-direction: column; align-items: center; padding: 0; gap: 4vw; }
  .treat, .treat-1, .treat-2 { width: 70vw; height: 97vw; border-radius: 9vw; margin: 2vw auto; transform: none; }
  .treat-txt { bottom: 3vw; height: 42vw; border-radius: 6vw; padding: 5vw 6vw; }
  .treat-txt p { font-size: 3.4vw; }
  .journal { padding: 15vw 0 20vw; }
  .journal-title { padding-bottom: 5vw; }
  .marquee-track, .marquee-set { gap: 6vw; }
  .marquee img { width: 58.646vw; height: 58.646vw; border-radius: 5vw; }
  @keyframes marquee { to { transform: translateX(calc(-50% - 3vw)); } }
  .journal-btn { height: 14vw; padding: 0 8vw; border-radius: 8.5vw; margin-top: 5vw; }
  .journal-btn > svg { width: 8vw; margin-right: 3vw; }
  .journal-btn .h2 { font-size: 6.5vw; }
  .jb-line { width: 6vw; }
  .ft { padding: 20vw var(--left) 28vw; }
  .ft-logo svg { width: 14vw; }
  .ft-line { font-size: 6.083vw; margin-top: 38.103vw; }
  .ft-ctas { flex-direction: column; gap: 4vw; margin: 5.834vw 0 10.171vw; }
  .ft-ctas a { width: 100%; height: 30vw; border-radius: 20.603vw; }
  .ft-ctas .h2 { margin-bottom: 3vw; font-size: 9.267vw; }
  .ft-bar { flex-direction: column; gap: 3vw; padding-top: 3.508vw; border-bottom: 0; }
  .ft-bar > div { height: auto; padding: 0 !important; border: 0 !important; }
  .ft-c2 a { padding: 1vw 2vw; }
  .ft-c3 { margin-left: 0; }
  .ft-fine { padding-top: 8vw; }
  .ft-fine p { max-width: none; margin-bottom: 3vw; }
  .ft-legal { font-size: 3vw; }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
