/* Home page. Uses site.css for the header, footer, buttons and form fields; everything else is here.
   Entrance and scroll animations only run when <html> has the "motion" class
   (set by home-boot.js, never for visitors who prefer reduced motion). */

@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500; font-display: swap; src: url("/fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2"); }

.home {
  --display: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --paper: #f5f3ed;
  --ink: #1d2823;
  --soft: #4d5a52;
  --night: #141d18;
  --gold: #c9ab70;
  --gold-deep: #8a6b3a;
  --on-night: #f3f1ea;
  --on-night-soft: #bfc8c0;
  --hair: rgba(29, 40, 35, .12);
  --out: cubic-bezier(.16, 1, .3, 1);
  --io: cubic-bezier(.7, 0, .2, 1);
  --edge: max(32px, calc((100vw - 1200px) / 2));
  font-size: 17px;
  line-height: 1.65;
  background: var(--paper);
}

/* ---- type */
.home h1, .home h2, .home h3 { font-family: var(--display); font-weight: 500; color: inherit; }
.home h1 { max-width: none; margin: 0 0 30px; font-size: clamp(52px, 5.4vw, 82px); line-height: .98; letter-spacing: -.018em; }
.home h2 { margin: 0 0 22px; font-size: clamp(42px, 4.3vw, 66px); line-height: 1.02; letter-spacing: -.015em; }
.home h3 { margin: 0 0 6px; font-size: 28px; font-weight: 600; line-height: 1.15; letter-spacing: -.01em; }
.home :where(p) { margin-bottom: 0; }
.hx-line { display: block; }

/* ---- header, buttons, links */
.home .header-inner { transition: min-height .5s var(--out); }
.home .site-header.is-scrolled .header-inner { min-height: 70px; }
.home .main-nav a { font-size: 15px; font-weight: 500; letter-spacing: 0; color: var(--soft); }
.home .button {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 56px; padding: 0 30px; border-radius: 2px;
  font-size: 16px; font-weight: 600; letter-spacing: .005em; gap: 10px;
  transition: background .5s var(--out), color .5s var(--out), border-color .5s var(--out), box-shadow .5s var(--out), transform .5s var(--out);
}
.home .button-small { min-height: 44px; padding: 0 20px; font-size: 14px; }
.home .header-cta { flex-shrink: 0; white-space: nowrap; }
.home .header-cta .cta-short { display: none; }
.home .header-cta.is-short .cta-long { display: none; }
.home .header-cta.is-short .cta-short { display: inline; }
.home .button::after {
  position: absolute; z-index: -1; inset: 0; content: "";
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .22) 50%, transparent 65%);
  transform: translateX(-110%); transition: transform .9s var(--out);
}
.home .button:hover::after { transform: translateX(110%); }
.home .button:hover { transform: translateY(-1px); }
.home .button:active { transform: scale(.985); transition-duration: .15s; }
.home .button span, .home .button:hover span { transform: none; }
.home .button-dark:hover { box-shadow: 0 14px 30px rgba(20, 30, 25, .22); }
.home .button-outline { border-color: rgba(29, 40, 35, .3); }
.home .button-outline:hover { border-color: var(--ink); background: transparent; }
.home .button-outline::after { background: linear-gradient(105deg, transparent 35%, rgba(201, 171, 112, .18) 50%, transparent 65%); }

/* Text link: the underline slides away and comes back on hover. */
.ln { position: relative; display: inline-block; padding-block: 6px; color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.3; }
.ln::after { position: absolute; right: 0; bottom: 2px; left: 0; height: 1px; content: ""; background: currentColor; transform-origin: right; }
.ln:hover::after { animation: ln-swap .8s var(--out); }
.ln-light { color: var(--on-night); }
@keyframes ln-swap { 0% { transform: scaleX(1); transform-origin: right; } 45% { transform: scaleX(0); transform-origin: right; } 46% { transform: scaleX(0); transform-origin: left; } 100% { transform: scaleX(1); transform-origin: left; } }

/* ---- hero: copy on the left, the photo runs to the edge of the screen */
.hx { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); min-height: clamp(640px, calc(100svh - 86px), 960px); }
.hx-copy { align-self: center; max-width: calc(650px + var(--edge) + 96px); padding: 72px clamp(40px, 6vw, 96px) 80px var(--edge); }
.hx-lede { max-width: 30em; margin-bottom: 36px; color: var(--soft); font-size: 19px; line-height: 1.6; }
.hx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.hx-fine { margin-top: 28px; color: var(--soft); font-size: 15px; }

.hx-media { position: relative; margin: 0; }
.hx-frame { position: absolute; inset: 0; overflow: hidden; background: #1b1914; }
.hx-px { position: absolute; inset: -7% 0; will-change: transform; }
.hx-img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 50%; }
.hx-frame::after { position: absolute; inset: 55% 0 0; content: ""; pointer-events: none; background: linear-gradient(rgba(12, 10, 8, 0), rgba(12, 10, 8, .55)); }
.hx-cap { position: absolute; right: 32px; bottom: 30px; display: flex; align-items: center; gap: 14px; color: rgba(255, 255, 255, .88); font-family: var(--display); font-size: 20px; font-style: italic; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.hx-cap::before { width: 34px; height: 1px; content: ""; background: currentColor; opacity: .7; }

.hx-album {
  position: absolute; z-index: 2; left: -76px; bottom: 64px; width: 316px; padding: 15px 15px 13px;
  border-radius: 10px; background: rgba(255, 253, 248, .97); color: var(--ink);
  box-shadow: 0 34px 80px rgba(10, 16, 12, .3), 0 2px 8px rgba(10, 16, 12, .08);
  will-change: transform;
}
.hx-album-head { display: flex; align-items: center; gap: 11px; }
.hx-album-mark { display: grid; flex: 0 0 auto; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #e7ebe3; color: #34493d; font-family: var(--display); font-size: 14px; font-weight: 600; }
.hx-album-title strong, .hx-album-title small { display: block; line-height: 1.3; }
.hx-album-title strong { font-family: var(--display); font-size: 20px; font-weight: 600; }
.hx-album-title small { color: var(--soft); font-size: 13px; font-variant-numeric: tabular-nums; }
.hx-album-grid { --g: 5px; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); margin-top: 12px; }
.hx-tile { display: block; overflow: hidden; border-radius: 4px; background: #e4e2da; aspect-ratio: 1; }
.hx-tile img { width: 100%; height: 100%; object-fit: cover; }
.hx-album-foot { display: flex; align-items: center; gap: 8px; margin-top: 11px; color: var(--soft); font-size: 13px; }
.dot { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #5f8a68; }
.dot::after { position: absolute; inset: -4px; border-radius: 50%; content: ""; background: rgba(95, 138, 104, .28); }

/* ---- how it works */
.hw { padding: 150px 0 140px; }
.hw-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(48px, 7vw, 112px); align-items: center; }
.hw-media { margin: 0; }
.hw-frame { position: relative; overflow: hidden; aspect-ratio: 10 / 9; border-radius: 3px; background: #ddd8cb; }
.hw-px { position: absolute; inset: 0; will-change: transform; }
.hw-px img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%; }
.hw-copy h2 { margin-bottom: 40px; }
.hw-steps { position: relative; display: grid; gap: 36px; margin: 0; padding: 0; list-style: none; }
.hw-steps::before { position: absolute; top: 54px; bottom: 64px; left: 15px; width: 1px; content: ""; background: linear-gradient(var(--gold), rgba(201, 171, 112, .25)); transform: scaleY(var(--line, 1)); transform-origin: top; }
.hw-steps li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 26px; }
.hw-num { position: relative; z-index: 1; padding-bottom: 8px; background: var(--paper); color: var(--gold-deep); font-family: var(--display); font-size: 46px; font-style: italic; font-weight: 500; line-height: .9; text-align: center; }
.hw-steps p { color: var(--soft); font-size: 17px; }
.hw-steps a { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(29, 40, 35, .35); text-decoration-thickness: 1px; text-underline-offset: 4px; transition: text-decoration-color .3s ease; }
.hw-steps a:hover { text-decoration-color: currentColor; }

/* ---- the gallery: a dark sheet that opens up as it scrolls in */
.gl { padding: 0; }
.gl-sheet { position: relative; overflow: hidden; padding: 140px 0; color: var(--on-night); background: var(--night); }
.gl-sheet::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .07; mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.gl-sheet::after { position: absolute; top: -20%; right: -10%; width: 60%; aspect-ratio: 1; border-radius: 50%; content: ""; pointer-events: none; background: radial-gradient(circle, rgba(201, 171, 112, .14), transparent 62%); }
.gl-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(48px, 7vw, 112px); align-items: center; }
.gl-copy > p { max-width: 30em; color: var(--on-night-soft); font-size: 18px; }
.gl-points { display: grid; margin: 36px 0 34px; padding: 0; list-style: none; }
.gl-points li { padding: 17px 0; border-top: 1px solid rgba(243, 241, 234, .13); color: var(--on-night-soft); font-size: 16px; }
.gl-points li:last-child { border-bottom: 1px solid rgba(243, 241, 234, .13); }
.gl-points strong { display: block; margin-bottom: 2px; color: var(--on-night); font-family: var(--display); font-size: 23px; font-weight: 600; letter-spacing: .005em; }

.gl-stage { perspective: 1600px; }
.gl-screen { padding: 16px; border-radius: 12px; color: var(--ink); background: #f7f5ef; box-shadow: 0 50px 100px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .06); transform-origin: 50% 100%; will-change: transform; }
.gl-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 4px 4px 14px; }
.gl-bar strong, .gl-bar small { display: block; line-height: 1.3; }
.gl-bar strong { font-family: var(--display); font-size: 26px; font-weight: 600; }
.gl-bar small { margin-top: 2px; color: var(--soft); font-size: 13px; font-variant-numeric: tabular-nums; }
.gl-btn { flex: 0 0 auto; padding: 9px 15px; border-radius: 3px; color: #fff; background: #263a31; font-size: 13px; font-weight: 600; white-space: nowrap; }
.gl-grid-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.gl-live { position: relative; overflow: hidden; grid-column: span 2; grid-row: span 2; aspect-ratio: 1; border-radius: 4px; background: #2b2a24; }
.gl-live img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity 1.4s ease, transform 7s linear; }
.gl-live img.is-front { opacity: 1; transform: scale(1); }
.gl-badge { position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px 5px 9px; border-radius: 99px; color: #fff; background: rgba(16, 22, 18, .62); font-size: 12px; font-weight: 600; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.gl-live-dot { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #e06a4f; }
.gl-tile { display: block; overflow: hidden; aspect-ratio: 1; border-radius: 4px; background: #e4e2da; }
.gl-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--out); }
.gl-tile:hover img { transform: scale(1.06); }

/* ---- pricing */
.pr { padding: 150px 0 130px; }
.pr-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px 72px; align-items: end; margin-bottom: 52px; }
.pr-head h2 { max-width: 11em; margin: 0; }
.pr-head p { max-width: 30em; color: var(--soft); }
.pr-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.pc { position: relative; display: flex; flex-direction: column; padding: 34px 32px 30px; border: 1px solid var(--hair); border-radius: 6px; background: #ece9e0; transition: transform .7s var(--out), box-shadow .7s var(--out), border-color .7s var(--out); }
.pc::before { position: absolute; top: -1px; right: 32px; left: 32px; height: 1px; content: ""; background: var(--gold); transform: scaleX(0); transition: transform .7s var(--out); }
.pc:hover { transform: translateY(-6px); box-shadow: 0 32px 64px rgba(20, 30, 25, .12); }
.pc:hover::before { transform: scaleX(1); }
.pc-featured { border-color: rgba(201, 171, 112, .4); color: var(--on-night); background: var(--night); box-shadow: 0 30px 60px rgba(20, 30, 25, .18); }
.pc-featured:hover { box-shadow: 0 40px 80px rgba(20, 30, 25, .28); }
.pc-name { margin-bottom: 14px; font-size: 16px; font-weight: 600; }
.pc-amount { font-family: var(--display); font-size: clamp(58px, 5vw, 72px); font-weight: 500; line-height: .9; letter-spacing: -.02em; }
.pc-note { margin: 10px 0 24px; color: var(--soft); font-size: 15px; }
.pc-featured .pc-note { color: var(--on-night-soft); }
.pc ul { display: grid; flex: 1; gap: 11px; margin: 0 0 30px; padding: 24px 0 0; border-top: 1px solid var(--hair); list-style: none; }
.pc-featured ul { border-color: rgba(243, 241, 234, .14); }
.pc li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.5; }
.pc li::before { position: absolute; top: .75em; left: 0; width: 10px; height: 1px; content: ""; background: var(--gold-deep); }
.pc-featured li::before { background: var(--gold); }
.pc .button { align-self: flex-start; }
.pr-foot { max-width: 46em; margin-top: 26px; color: var(--soft); font-size: 14px; }

/* ---- FAQ */
.fq { padding: 120px 0 140px; }
.fq-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px clamp(48px, 7vw, 112px); align-items: start; padding-top: 72px; border-top: 1px solid var(--hair); }
.qa { border-bottom: 1px solid var(--hair); }
.qa:first-child { border-top: 1px solid var(--hair); }
.qa summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 78px; padding: 18px 0; cursor: pointer; list-style: none; font-size: 18px; font-weight: 500; transition: color .3s ease; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary:hover { color: var(--gold-deep); }
.qa-icon { position: relative; flex: 0 0 auto; width: 30px; height: 30px; border: 1px solid var(--hair); border-radius: 50%; transition: transform .6s var(--out), background .4s ease, border-color .4s ease; }
.qa-icon::before, .qa-icon::after { position: absolute; top: 50%; left: 50%; width: 10px; height: 1px; content: ""; background: currentColor; transform: translate(-50%, -50%); }
.qa-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.qa summary:hover .qa-icon { border-color: currentColor; }
.qa[open]:not(.is-closing) .qa-icon { background: var(--ink); border-color: var(--ink); color: var(--paper); transform: rotate(135deg); }
.qa-body { overflow: hidden; }
.qa-body p { max-width: 36em; padding: 0 56px 28px 0; color: var(--soft); font-size: 16px; line-height: 1.7; }
.qa-body a { text-decoration: underline; text-underline-offset: 3px; }

/* ---- create */
.st { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 720px; color: var(--on-night); background: var(--night); }
.st-media { position: relative; overflow: hidden; background: #0e1410; }
.st-px { position: absolute; inset: -8% 0; will-change: transform; }
.st-px img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 50%; }
.st-body { display: flex; align-items: center; padding: 96px clamp(24px, 7vw, 112px); }
.st-inner { width: 100%; max-width: 470px; }
.st-lede { margin-bottom: 32px; color: var(--on-night-soft); font-size: 18px; }
.st-form { display: grid; gap: 18px; }
.home .st-form .form-field label { margin-bottom: 8px; color: var(--on-night); font-size: 15px; font-weight: 500; }
.home .st-form .form-field .optional { color: var(--on-night-soft); }
.home .st-form .form-field input { min-height: 54px; padding: 0 16px; border: 1px solid rgba(243, 241, 234, .14); border-radius: 3px; color: var(--on-night); background: rgba(243, 241, 234, .06); font-size: 16px; transition: border-color .35s ease, background .35s ease, box-shadow .35s ease; color-scheme: dark; }
.home .st-form .form-field input:hover { border-color: rgba(243, 241, 234, .3); }
.home .st-form .form-field input:focus { border-color: var(--gold); background: rgba(243, 241, 234, .09); box-shadow: 0 0 0 3px rgba(201, 171, 112, .22); }
.home .st-form .form-field input::placeholder { color: rgba(243, 241, 234, .42); }
.home .st-form .form-field input[aria-invalid="true"] { border-color: #e59a8a; }
.home .st-form .form-field small { margin-top: 7px; color: var(--on-night-soft); font-size: 14px; }
.st-submit { display: grid; gap: 14px; margin-top: 6px; }
.home .st-form .form-submit { width: 100%; justify-content: center; }
.home .st-form .form-status { min-height: 0; margin: 0; color: var(--on-night-soft); font-size: 14px; }
.home .st-form .form-status:empty { display: none; }
.home .st-form .form-status[data-state="error"] { color: #f2ab9d; }
.home .st-form .form-privacy { margin: 0; color: var(--on-night-soft); font-size: 13px; }
.home .st-form .form-privacy a:hover { color: var(--on-night); }

/* ---- footer */
.home .site-footer { background: var(--paper); }
.home .footer-brand-block > p { font-family: var(--display); font-size: 19px; }
.home .footer-label { margin-bottom: 4px; color: var(--ink); font-size: 13px; font-weight: 600; letter-spacing: 0; }
.home .footer-links a { font-size: 15px; }
.home .footer-bottom { justify-content: space-between; font-size: 13px; }

/* =================================================================== motion */
/* Words rise out of a mask. */
.motion [data-split]:not(.is-split) { visibility: hidden; }
.w { display: inline-block; overflow: hidden; margin-bottom: -.16em; padding-bottom: .16em; vertical-align: top; }
.motion .wi { display: inline-block; transform: translateY(108%); transition: transform 1.15s var(--out); transition-delay: calc(var(--i) * 55ms + var(--d, 0ms)); }
.motion .is-in > .w > .wi, .motion .is-in .w > .wi { transform: none; }

/* Fade and rise. */
.motion [data-in] { opacity: 0; transform: translateY(18px); transition: opacity 1s var(--out), transform 1s var(--out); transition-delay: var(--d, 120ms); }
.motion [data-in].is-in { opacity: 1; transform: none; }

/* Children one after another. */
.motion [data-reveal="stagger"] > * { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--out), transform 1s var(--out); transition-delay: calc(var(--i, 0) * 110ms + 80ms); }
.motion [data-reveal="stagger"].is-in > * { opacity: 1; transform: none; }
.motion .pr-grid.is-in > .pc { transition: opacity 1s var(--out), transform .7s var(--out), box-shadow .7s var(--out); transition-delay: calc(var(--i, 0) * 110ms + 80ms), 0s, 0s; }
.motion .pr-grid.is-in > .pc:hover { transform: translateY(-6px); }

/* Images: a curtain opens while the photo settles. */
.motion [data-reveal="mask"] > :first-child { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s var(--io); }
.motion [data-reveal="mask"] img { transform: scale(1.18); transition: transform 2.2s var(--out); }
.motion [data-reveal="mask"].is-in > :first-child { clip-path: inset(0 0 0 0); }
.motion [data-reveal="mask"].is-in img { transform: none; }

/* Hero: one choreographed entrance once the photo and fonts are ready. */
.motion .hx-frame { clip-path: inset(100% 0 0 0); transition: clip-path 1.6s var(--io) .1s; }
.motion .hx-img { transform: scale(1.22); transition: transform 2.6s var(--out) .1s; }
.motion.is-loaded .hx-frame { clip-path: inset(0 0 0 0); }
.motion.is-loaded .hx-img { transform: none; }
.motion .hx-cap { opacity: 0; transform: translateX(-14px); transition: opacity 1s var(--out) 1.5s, transform 1s var(--out) 1.5s; }
.motion.is-loaded .hx-cap { opacity: 1; transform: none; }
.motion .hx-album { opacity: 0; translate: 0 34px; transition: opacity 1s var(--out), translate 1.2s var(--out); }
.motion .hx-album.is-in { opacity: 1; translate: 0 0; }
.motion .hx-tile-new { opacity: 0; transform: scale(.4); }
.motion .hx-album.is-new .hx-tile-new { opacity: 1; transform: none; transition: opacity .5s ease, transform .9s cubic-bezier(.34, 1.56, .64, 1); }
.motion .hx-album-grid .hx-tile:not(.hx-tile-new) { transition: transform .9s var(--out); }
.motion .hx-album:not(.is-new) .hx-tile:not(.hx-tile-new) { transform: translateX(calc(-100% - var(--g))); }
.motion .hx-album-foot { opacity: 0; transform: translateY(6px); transition: opacity .7s var(--out) .45s, transform .7s var(--out) .45s; }
.motion .hx-album.is-new .hx-album-foot { opacity: 1; transform: none; }
.motion .hx-album.is-new .dot::after { animation: ping 2.4s var(--out) .4s infinite; }
@keyframes ping { 0% { transform: scale(.6); opacity: 1; } 80%, 100% { transform: scale(2.2); opacity: 0; } }

/* Steps: the gold line draws down as you read. */
.motion .hw-steps { --line: 0; }

/* Live badge pulse. */
.motion .gl-live-dot::after { position: absolute; inset: -4px; border-radius: 50%; content: ""; background: rgba(224, 106, 79, .45); animation: ping 1.8s var(--out) infinite; }

/* =================================================================== responsive */
@media (max-width: 1050px) {
  .hx-copy { padding-left: 24px; padding-right: 40px; }
  .hx-album { left: -48px; width: 288px; }
  .hx-cap { display: none; }
  .gl-grid { grid-template-columns: 1fr; }
  .gl-copy { max-width: 620px; }
  .gl-screen { max-width: 720px; }
  .pc { padding: 28px 24px 26px; }
}
@media (max-width: 800px) {
  .home { font-size: 16px; }
  .home h1 { margin-bottom: 20px; font-size: clamp(44px, 12vw, 60px); }
  .home h2 { font-size: clamp(38px, 10vw, 50px); }
  .home h3 { font-size: 25px; }
  .hx { grid-template-columns: 1fr; min-height: 0; }
  .hx-media { order: -1; height: min(42svh, 400px); min-height: 270px; }
  .hx-copy { max-width: 640px; padding: 30px 20px 64px; }
  .hx-lede { margin-bottom: 28px; font-size: 17px; }
  .hx-fine { margin-top: 22px; font-size: 14px; }
  .hx-album { right: 12px; bottom: 12px; left: auto; width: 218px; padding: 10px 10px 9px; border-radius: 8px; box-shadow: 0 14px 34px rgba(10, 16, 12, .32); }
  .hx-album-mark { display: none; }
  .hx-album-title strong { font-size: 17px; }
  .hx-album-title small, .hx-album-foot { font-size: 11px; }
  .hx-album-grid { --g: 3px; margin-top: 7px; }
  .hx-album-foot { gap: 6px; margin-top: 7px; }
  .dot { width: 6px; height: 6px; }
  .hw { padding: 80px 0; }
  .hw-grid { grid-template-columns: 1fr; gap: 36px; }
  .hw-media { margin-inline: -20px; }
  .hw-frame { aspect-ratio: 1; border-radius: 0; }
  .hw-copy h2 { margin-bottom: 28px; }
  .hw-steps { gap: 26px; }
  .hw-steps li { grid-template-columns: 28px minmax(0, 1fr); gap: 20px; }
  .hw-steps::before { left: 13px; top: 48px; }
  .hw-num { font-size: 40px; }
  .hw-steps p { font-size: 16px; }
  .gl-sheet { padding: 84px 0; }
  .gl-grid { gap: 44px; }
  .gl-copy > p { font-size: 17px; }
  .gl-points { margin: 28px 0 30px; }
  .gl-points li { padding: 14px 0; font-size: 15px; }
  .gl-points strong { font-size: 21px; }
  .gl-screen { padding: 10px; border-radius: 10px; }
  .gl-bar { padding: 2px 2px 10px; }
  .gl-bar strong { font-size: 20px; }
  .gl-bar small { font-size: 12px; }
  .gl-btn { padding: 7px 10px; font-size: 12px; }
  .gl-grid-tiles { gap: 4px; }
  .gl-badge { top: 7px; left: 7px; padding: 4px 8px; font-size: 11px; }
  .pr { padding: 84px 0; }
  .pr-head { grid-template-columns: 1fr; margin-bottom: 32px; }
  .pr-head p { font-size: 16px; }
  .pr-grid { grid-template-columns: 1fr; gap: 12px; max-width: 560px; }
  .fq { padding: 40px 0 84px; }
  .fq-grid { grid-template-columns: 1fr; gap: 20px; padding-top: 52px; }
  .qa summary { min-height: 68px; font-size: 17px; }
  .qa-body p { padding-right: 16px; font-size: 15px; }
  .st { grid-template-columns: 1fr; min-height: 0; }
  .st-media { height: 240px; }
  .st-px img { object-position: 70% 60%; }
  .st-body { padding: 52px 20px 72px; }
  .st-inner { max-width: 560px; margin-inline: auto; }
  .st-lede { margin-bottom: 28px; font-size: 17px; }
}
@media (max-width: 560px) {
  /* one-page site: on phones the header is just the name and the main button (links are in the footer) */
  .home .menu-toggle { display: none; }
  .hw-media { margin-inline: -18px; }
  .hx-copy { padding-inline: 18px; }
  .home .header-cta { min-height: 42px; padding-inline: 16px; font-size: 14px; }
  .hx-actions { align-items: stretch; flex-direction: column; gap: 16px; }
  .hx-actions .button { width: 100%; }
  .hx-actions .ln { align-self: flex-start; }
  /* compact plans: price on the left, what's included on the right */
  .pc { display: grid; grid-template-columns: 92px minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; column-gap: 18px; padding: 20px 18px; }
  .pc-name { grid-column: 1; grid-row: 1; margin-bottom: 6px; }
  .pc-amount { grid-column: 1; grid-row: 2; font-size: 50px; }
  .pc-note { grid-column: 1; grid-row: 3; margin: 6px 0 0; font-size: 13px; line-height: 1.35; }
  .pc ul { grid-column: 2; grid-row: 1 / 4; align-self: center; gap: 6px; margin: 0; padding: 0 0 0 18px; border-top: 0; border-left: 1px solid var(--hair); }
  .pc li { padding-left: 15px; font-size: 14px; line-height: 1.4; }
  .pc li::before { width: 8px; top: .7em; }
  .pc .button { grid-column: 1 / -1; grid-row: 4; justify-self: stretch; margin-top: 18px; }
  .pc:not(.pc-featured) .button { display: none; }
  .pc:hover { transform: none; }
  .st-media { height: 210px; }
  .st-body { padding-inline: 18px; }
}
@media (hover: none) {
  .pc:hover, .motion .pr-grid.is-in > .pc:hover { transform: none; box-shadow: none; }
  .pc-featured:hover { box-shadow: 0 30px 60px rgba(20, 30, 25, .18); }
  .home .button:hover { transform: none; }
}
@media (max-width: 359px) {
  .home .header-cta .cta-long { display: none; }
  .home .header-cta .cta-short { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
  .home .button::after { display: none; }
  .gl-live img { transition: opacity .01ms; transform: none; }
}
