/* Enquire · Thank you · 404
   The enquiry is framed as correspondence: a one-question-at-a-time conversation that composes a
   note to the founders as you answer; the thank-you page is their reply. */

/* Light sections: gold focus rings fall below 3:1 on bone/sand, so use the deep gold there. */
.t-light :focus-visible, .t-sand :focus-visible { outline-color: var(--gold-deep); }
/* Secondary text links: full 44px tap targets on touch. */
@media (pointer: coarse) { main .link-arrow { min-height: 44px; } }

/* ==========================================================================
   ENQUIRE — hero (kept short: this page exists to reach the first question)
   ========================================================================== */
.enq-hero { min-height: min(62svh, 600px); padding-top: calc(var(--header-h) + var(--announce-h) + 44px); padding-bottom: clamp(40px, 4.6vw, 72px); }
@media (max-width: 639px) { .enq-hero { min-height: 54svh; } }
/* A soft scrim sits behind the copy column, so the small kicker holds AA over the lit garden at every width. */
.enq-hero .page-hero__media::after { background:
  radial-gradient(ellipse 62% 48% at 20% 46%, rgba(13, 12, 10, 0.58), transparent 72%),
  linear-gradient(to top, var(--ink) 0%, rgba(13, 12, 10, 0.72) 30%, rgba(13, 12, 10, 0.4) 62%, rgba(13, 12, 10, 0.5) 100%); }
.enq-hero h1 { max-width: 11ch; }
.enq-hero .eyebrow { color: var(--gold-2); }
.enq-hero .eyebrow, .nf-hero .eyebrow { text-shadow: 0 0 16px rgba(13, 12, 10, 0.9), 0 0 4px rgba(13, 12, 10, 0.7); }
/* Wide screens: the promise sits beside the title rather than under it (from the width where both fit). */
@media (min-width: 1260px) {
  .enq-hero .page-hero__inner { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; column-gap: clamp(48px, 6vw, 120px); }
  .enq-hero .eyebrow { flex: 1 0 100%; }
  .enq-hero h1 { flex: none; }
  .enq-hero .page-hero__intro { flex: 0 1 25rem; min-width: 19rem; padding-bottom: 0.5em; }
}

/* ==========================================================================
   ENQUIRE — status ledger + the conversation
   ========================================================================== */
.enq { padding-bottom: var(--section); }
.enq-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.enq-status li { display: grid; gap: 6px; align-content: start; padding: 16px 14px 18px 0; }
@media (max-width: 899px) {
  .enq-status li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
  .enq-status li:nth-child(n + 3) { border-top: 1px solid var(--line); }
}
@media (min-width: 900px) {
  .enq-status { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .enq-status li { gap: 8px; padding: 22px 24px 24px 0; }
  .enq-status li:nth-child(n + 2) { padding-left: 28px; border-left: 1px solid var(--line); }
}
.enq-status__k { font-family: var(--f-ui); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.enq-status__v { display: flex; align-items: center; gap: 10px; font-family: var(--f-display); font-weight: 300; font-size: clamp(1.3rem, 1.05rem + 1vw, 2.1rem); line-height: 1.1; color: var(--fg); }
.enq-status__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); flex: none; animation: pulse 2.8s infinite; }
@media (prefers-reduced-motion: reduce) { .enq-status__dot { animation: none; } }

.enq__grid { display: grid; gap: 40px; margin-top: clamp(44px, 4.6vw, 68px); }
.enq__main { display: grid; gap: 32px; min-width: 0; max-width: 760px; }
.enq__head { display: grid; gap: 16px; }
.enq__head-a, .enq__head-b { display: grid; gap: 16px; justify-items: start; align-content: start; }
.enq__head .lede { max-width: 34rem; }
@media (min-width: 1024px) {
  .enq__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); column-gap: clamp(56px, 6.5vw, 120px); row-gap: clamp(36px, 3.2vw, 52px); align-items: start; }
  .enq__head { grid-column: 1 / -1; grid-template-columns: subgrid; column-gap: normal; align-items: end; }
  .enq__head-a { gap: 20px; }
  .enq__head-b { gap: 14px; padding-bottom: 6px; }
}
.enq__alt { font-size: 1.02rem; color: var(--muted); text-wrap: pretty; }
/* "Prefer to talk?": beside the heading on desktop; after the form on smaller screens, so it never delays the first question. */
@media (max-width: 1023px) { .enq__alt--head { display: none; } }
@media (min-width: 1024px) { .enq__alt--after { display: none; } }
.enq__alt--after { padding-top: 26px; border-top: 1px solid var(--line); }
.enq__alt a { padding-block: 6px; color: var(--fg); text-decoration: underline; text-decoration-color: rgba(201, 168, 76, 0.45); text-underline-offset: 0.45em; transition: color 0.3s, text-decoration-color 0.3s; }
.enq__alt a:hover { color: var(--gold-2); text-decoration-color: currentColor; }

/* ---------- The form ---------- */
.enq-form { gap: 34px; padding-top: 4px; }
.enq-form__progress { gap: 20px; }
.enq-form__progress [data-step-count] { color: var(--gold); min-width: 4.4em; }
.enq-form .step { gap: 28px; }
.enq-form .step__q { margin-bottom: 30px; font-size: clamp(2rem, 1.35rem + 2.3vw, 3.5rem); line-height: 1.04; letter-spacing: -0.01em; max-width: 20ch; text-wrap: balance; }
.enq-form .step__q em { font-style: italic; color: var(--accent-text); }
.enq-form .field { gap: 14px; }
.enq-form .input { min-height: 64px; font-size: clamp(1.55rem, 1.2rem + 1.3vw, 2.3rem); font-weight: 300; }
/* Keyboard focus: the underline thickens and the label lights up. */
.enq-form .input:focus-visible { box-shadow: 0 1px 0 0 var(--gold); }
.enq-form .textarea:focus-visible { box-shadow: 0 0 0 1px var(--gold); }
.enq-form .field__label { transition: color 0.3s; }
.enq-form .field:focus-within .field__label { color: var(--fg); }
.enq-form .input::placeholder, .enq-form .textarea::placeholder { color: color-mix(in srgb, var(--fg) 50%, transparent); font-style: italic; }
.enq-form .textarea { min-height: 156px; padding: 16px 18px; border: 1px solid color-mix(in srgb, var(--fg) 24%, transparent); background: color-mix(in srgb, var(--fg) 3%, transparent); font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem); font-weight: 300; }
.enq-form .textarea:focus { border-color: var(--gold); }
.enq-form .step__hint { max-width: 34rem; }
.enq-form__opt { margin-left: 10px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 100px; font-size: 0.66rem; letter-spacing: 0.16em; color: var(--muted); }
.enq-form__confide { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 0.98rem; }
.enq-form__confide .i { width: 20px; height: 20px; margin-top: 2px; color: var(--gold); }
.enq-form__aside { font-size: 0.98rem; color: var(--muted); padding: 14px 0 0; }
.enq-form__aside a { color: var(--accent-text); }
.enq-form .step-nav { flex-wrap: nowrap; gap: 12px; margin-top: 6px; }
.enq-form .step-nav .btn { width: auto; white-space: nowrap; }
.enq-form .step-nav .btn--primary { min-width: 200px; }
.enq-form__back { padding-inline: 22px; }
@media (max-width: 560px) {
  .enq-form .step-nav .btn--primary { flex: 1; min-width: 0; padding-inline: 18px; }
  .enq-form .step-nav--final { flex-wrap: wrap; }
  .enq-form .step-nav--final .btn { flex: 1 1 100%; }
  .enq-form .step-nav--final .enq-form__send { order: -1; }
}
.enq-form .consent { font-size: 0.94rem; line-height: 1.55; }
.enq-form .consent a { color: var(--accent-text); }
.enq-form .form-error { margin-top: 2px; }
.enq-form .form-status { margin-top: 4px; }

/* Role / source chips */
.enq-form .choices:not(.choices--rows) { gap: 12px; }
.enq-form .choices:not(.choices--rows) .choice span { min-height: 54px; padding: 12px 24px; font-size: 1.08rem; }
@media (max-width: 639px) {
  .enq-form .choices:not(.choices--rows) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .enq-form .choices:not(.choices--rows) .choice span { width: 100%; justify-content: center; padding-inline: 12px; text-align: center; line-height: 1.2; }
}

/* Reasons: full-width rows */
.choices--rows { display: grid; gap: 0; border-top: 1px solid var(--line); }
.choices--rows .choice { display: block; }
.choices--rows .choice span { position: relative; display: flex; align-items: center; gap: 4px; width: 100%; min-height: 68px; padding: 16px 52px 16px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; font-family: var(--f-display); font-size: clamp(1.22rem, 1.08rem + 0.55vw, 1.6rem); line-height: 1.2; transition: color 0.3s, padding 0.6s var(--ease), background-color 0.3s; }
.choices--rows .choice__n { flex: none; width: 40px; font-family: var(--f-ui); font-style: normal; font-size: 0.66rem; letter-spacing: 0.18em; color: var(--accent-text); }
.choices--rows .choice span::after { content: ''; position: absolute; right: 4px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border: 1px solid color-mix(in srgb, var(--fg) 34%, transparent); border-radius: 50%; transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s; }
.choices--rows .choice input:hover + span { color: var(--gold-2); }
.choices--rows .choice input:checked + span { padding-left: 10px; background: transparent; color: var(--gold-2); font-style: italic; }
.choices--rows .choice input:checked + span::after { background: var(--gold); border-color: var(--gold); box-shadow: inset 0 0 0 5px var(--bg); }
.choices--rows .choice input:focus-visible + span { outline-offset: -1px; }
@media (hover: hover) { .choices--rows .choice input:hover + span { padding-left: 10px; } }

/* Without JavaScript the stepper is an ordinary, single-page form.
   The rule between questions sits on the bottom edge: a fieldset's top edge is where its legend is drawn. */
.no-js .enq-form [data-next], .no-js .enq-form [data-back], .no-js .enq-form__progress, .no-js .enq-review, .no-js .enq-letter { display: none; }
.no-js .enq-form .step:not(:last-of-type) { padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.no-js .enq-form .step:not(:last-of-type) .step-nav { display: none; }
.no-js .enq-form .step__q { margin-bottom: 30px; font-size: var(--fs-s); max-width: none; }

/* ---------- The note (live preview) ---------- */
.enq-letter { display: none; min-width: 0; }
@media (min-width: 1024px) {
  .enq-letter { display: grid; gap: 22px; position: sticky; top: calc(var(--header-h) + 28px); }
  .enq-form .enq-review { display: none; }
}
.enq-letter__k, .enq-review__k { font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); display: flex; align-items: center; gap: 14px; }
.enq-letter__k::before, .enq-review__k::before { content: ''; width: 28px; height: 1px; background: var(--gold); opacity: 0.7; }
.enq-review { display: grid; gap: 16px; margin-top: 6px; }

.enq-letter__paper p { text-wrap: pretty; }
.enq-letter__paper { --fg: var(--paper-text); --muted: var(--paper-muted); --line: rgba(27, 25, 20, 0.14); --accent-text: var(--gold-deep);
  position: relative; display: grid; gap: 10px; padding: clamp(28px, 3vw, 46px) clamp(24px, 3vw, 44px) clamp(26px, 2.6vw, 38px); background: var(--bone); color: var(--paper-text);
  font-family: var(--f-text); font-size: 1.06rem; line-height: 1.55;
  background-image: radial-gradient(120% 80% at 100% 0%, rgba(201, 168, 76, 0.1), transparent 55%), linear-gradient(to bottom, rgba(255, 255, 255, 0.35), transparent 40%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 40px 90px -40px rgba(0, 0, 0, 0.85), 0 12px 30px -18px rgba(0, 0, 0, 0.6); }
.enq-letter__stack { position: relative; }
.enq-letter__stack::before { content: ''; position: absolute; inset: 0; background: var(--bone-2); transform: rotate(1.7deg) translate(8px, 8px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.8); }
.enq-letter__stack .enq-letter__paper { transform: rotate(-0.5deg); }
.enq-letter__seal { position: absolute; top: clamp(18px, 2vw, 28px); right: clamp(18px, 2vw, 28px); width: 58px; height: 58px; opacity: 0.85; }
.enq-letter__to { font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep); padding-right: 70px; }
.enq-letter__to span { color: var(--paper-muted); margin-right: 8px; }
.enq-letter__dear { margin-top: clamp(18px, 2vw, 30px); margin-bottom: 6px; font-family: var(--f-display); font-style: italic; font-size: clamp(1.5rem, 1.2rem + 0.8vw, 1.9rem); line-height: 1.1; }
.enq-letter__paper .f { font-family: var(--f-display); font-style: italic; font-size: 1.14em; line-height: 1.2; color: var(--gold-deep); overflow-wrap: anywhere; font-variant-numeric: lining-nums; }
.enq-letter__paper q.f { quotes: '“' '”'; }
.enq-letter__paper .b { position: relative; display: inline-block; min-width: 6.5em; height: 1.05em; vertical-align: -0.18em; border-bottom: 1px solid rgba(27, 25, 20, 0.3); }
.enq-letter__paper .b--hint { min-width: 0; height: auto; vertical-align: baseline; border: 0; font-style: italic; color: rgba(27, 25, 20, 0.64); }
.enq-letter__decision.is-clamped { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.enq-review .enq-letter__decision.is-clamped { -webkit-line-clamp: 8; }
.enq-letter__off { margin-top: 10px; }
.enq-letter__sign { min-height: 1.6em; }
.enq-letter__sign .f { font-size: clamp(2rem, 1.6rem + 1.2vw, 2.6rem); color: var(--paper-text); line-height: 1; }
.enq-letter__sign .b { min-width: 8em; height: 1.4em; }
.enq-letter__reply { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line); font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-muted); }
.enq-letter__reply .f { font-family: var(--f-text); font-style: normal; font-size: 0.95rem; letter-spacing: 0.02em; text-transform: none; color: var(--paper-text); }
[data-line].is-new { animation: inkIn 0.9s var(--ease); }
@keyframes inkIn { from { opacity: 0.25; filter: blur(2px); } }
@media (prefers-reduced-motion: reduce) { [data-line].is-new { animation: none; } }
.enq-letter__foot { display: grid; gap: 10px; margin-top: 8px; font-family: var(--f-ui); font-size: 0.64rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.enq-letter__foot li { display: flex; align-items: center; gap: 12px; }
.enq-letter__foot li::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); flex: none; }

/* ---------- Notices (?error=1, ?fallback=email) ---------- */
.enq-notice { display: none; gap: 8px; padding: 20px 22px; border: 1px solid rgba(201, 168, 76, 0.6); border-left: 3px solid var(--gold); background: rgba(201, 168, 76, 0.07); font-size: 1rem; color: var(--fg); }
.enq-notice--error { border-color: rgba(232, 164, 143, 0.55); border-left-color: #e8a48f; background: rgba(232, 164, 143, 0.07); }
.enq-notice__title { font-family: var(--f-display); font-size: 1.45rem; line-height: 1.15; }
.enq-notice a { color: var(--gold); }
.enq-notice:focus { outline: none; }
.enq-notice.is-on, .no-js #enquiry-error:target, .no-js #direct:target .enq-notice { display: grid; }

/* ==========================================================================
   ENQUIRE — what happens next (compact journey)
   ========================================================================== */
.enq-path { display: grid; margin-left: 4px; border-left: 1px solid var(--line); }
.enq-path__step { position: relative; display: grid; gap: 10px; align-content: start; padding: 0 0 40px 30px; }
.enq-path__step:last-child { padding-bottom: 0; }
.enq-path__dot { position: absolute; left: -4px; top: 6px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.is-here .enq-path__dot { box-shadow: 0 0 0 5px rgba(201, 168, 76, 0.22); }
.enq-path__when { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent-text); }
.enq-path__here { padding: 4px 11px; border-radius: 100px; background: var(--accent-text); color: var(--bg); font-size: 0.66rem; letter-spacing: 0.16em; }
.enq-path__title { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-s); line-height: 1.12; }
.enq-path__title .num { font-size: 0.78em; margin-right: 4px; }
.enq-path__body { color: var(--muted); font-size: 1rem; max-width: 30rem; }
@media (min-width: 700px) {
  .enq-path { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-left: 0; border-left: 0; column-gap: 40px; }
  .enq-path__step { padding: 32px 0 44px; border-top: 1px solid var(--line); }
  .enq-path__dot { left: 0; top: -4px; }
}
@media (min-width: 1100px) {
  .enq-path { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 0; }
  .enq-path__step { padding: 36px 32px 0 0; }
  .enq-path__step + .enq-path__step { padding-left: 32px; border-left: 1px solid var(--line); }
  .enq-path__step + .enq-path__step .enq-path__dot { left: 32px; }
}

/* ==========================================================================
   ENQUIRE — other ways in
   ========================================================================== */
.enq-ways__grid { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.enq-way { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: clamp(28px, 3.6vw, 54px); background: var(--bg); scroll-margin-top: calc(var(--header-h) + 24px); }
.enq-way:focus { outline: none; }
.enq-way__icon { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(201, 168, 76, 0.4); border-radius: 50%; color: var(--gold); }
.enq-way__title { font-family: var(--f-display); font-weight: 300; font-size: clamp(1.8rem, 1.4rem + 1.3vw, 2.6rem); line-height: 1.05; }
.enq-way__body { color: var(--muted); font-size: 1.02rem; max-width: 26rem; }
.enq-way__cta { margin-top: 6px; }
.enq-way__mail { display: inline-block; padding-block: 8px; font-family: var(--f-display); font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.55rem); color: var(--gold); text-decoration: underline; text-decoration-color: rgba(201, 168, 76, 0.4); text-underline-offset: 0.3em; overflow-wrap: anywhere; transition: color 0.3s, text-decoration-color 0.3s; }
.enq-way__mail:hover { color: var(--gold-2); text-decoration-color: currentColor; }
@media (min-width: 640px) and (max-width: 1099px) {
  .enq-way { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 28px; row-gap: 16px; align-content: start; }
  .enq-way > * { grid-column: 2; }
  .enq-way__icon { grid-column: 1; grid-row: 1 / span 3; }
  .enq-way .enq-notice { grid-column: 1 / -1; }
}
@media (min-width: 1100px) {
  .enq-ways__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .enq-way__cta { margin-top: auto; padding-top: 14px; }
}

/* ==========================================================================
   ENQUIRE — FAQ
   ========================================================================== */
.enq-faq__grid { display: grid; gap: 48px; }
.enq-faq__head { display: grid; gap: 24px; justify-items: start; align-content: start; }
@media (min-width: 1024px) {
  .enq-faq__grid { grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr); gap: clamp(60px, 7vw, 130px); align-items: start; }
  .enq-faq__head { position: sticky; top: calc(var(--header-h) + 40px); }
}
.enq-faq .faq__a a { color: var(--accent-text); }
.enq-faq summary span, .ty-steps__b, .enq-path__body, .enq-way__body { text-wrap: pretty; }
.ty-links__t { text-wrap: balance; }
.enq-faq__back .link-arrow { padding-block: 12px; }
.enq-faq__up { width: 18px; height: 18px; }

/* ==========================================================================
   Shared: drifting mist (thank-you + 404 heroes)
   ========================================================================== */
.ty-hero::before, .nf-hero::before { content: ''; position: absolute; inset: -20% -40%; z-index: 0; pointer-events: none; opacity: 0.5; filter: blur(34px);
  background: radial-gradient(38% 28% at 28% 42%, rgba(235, 228, 214, 0.16), transparent 70%), radial-gradient(32% 24% at 72% 34%, rgba(235, 228, 214, 0.12), transparent 70%), radial-gradient(40% 26% at 55% 78%, rgba(201, 168, 76, 0.08), transparent 70%);
  -webkit-mask-image: linear-gradient(to bottom, #000 45%, transparent 85%); mask-image: linear-gradient(to bottom, #000 45%, transparent 85%);
  animation: enqMist 50s ease-in-out infinite alternate; }
.ty-hero .page-hero__inner, .nf-hero .page-hero__inner { position: relative; z-index: 1; }
@keyframes enqMist { from { transform: translate3d(-7%, 0, 0); } to { transform: translate3d(8%, -3%, 0); } }
@media (prefers-reduced-motion: reduce) { .ty-hero::before, .nf-hero::before { animation: none; } }

/* ==========================================================================
   THANK YOU
   ========================================================================== */
.page-hero.ty-hero { min-height: min(88svh, 920px); align-items: center; padding-bottom: clamp(56px, 7vw, 100px); text-align: center; }
.ty-hero::after { content: ''; position: absolute; z-index: 0; left: 50%; top: calc(50% + var(--announce-h) / 2 + var(--header-h) / 2); height: min(calc(100% - var(--announce-h) - var(--header-h) - 24px), 820px); aspect-ratio: 1; border: 1px solid rgba(201, 168, 76, 0.2); border-radius: 50%; pointer-events: none;
  box-shadow: inset 0 0 120px rgba(201, 168, 76, 0.05);
  transform: translate(-50%, -50%) scale(0.94); animation: tyBreathe 11s var(--ease-io) infinite alternate; }
@keyframes tyBreathe { to { transform: translate(-50%, -50%) scale(1.04); border-color: rgba(201, 168, 76, 0.32); } }
@media (prefers-reduced-motion: reduce) { .ty-hero::after { animation: none; } }
.ty-hero .page-hero__inner { justify-items: center; }
.ty-hero h1 { max-width: 12ch; margin-inline: auto; }
.ty-hero .page-hero__intro { max-width: 38rem; margin-inline: auto; }
/* Wide screens: the ring is drawn around the words themselves, so it frames them at any window height
   and never strikes through the copy as it breathes. */
@media (min-width: 1024px) {
  .page-hero.ty-hero { --ty-ring-pad: clamp(116px, 9.5vw, 168px); min-height: min(100svh, 940px); padding-top: calc(var(--header-h) + var(--announce-h) + var(--ty-ring-pad) + 16px); padding-bottom: calc(var(--ty-ring-pad) + 32px); }
  .ty-hero .page-hero__inner { gap: 28px; }
  .ty-hero::after { display: none; }
  .ty-hero .page-hero__inner::before { content: ''; position: absolute; z-index: -1; left: 50%; top: 50%; height: calc(100% + var(--ty-ring-pad) * 2); aspect-ratio: 1; border: 1px solid rgba(201, 168, 76, 0.2); border-radius: 50%; pointer-events: none;
    box-shadow: inset 0 0 120px rgba(201, 168, 76, 0.05); transform: translate(-50%, -50%) scale(0.96); animation: tyBreatheIn 11s var(--ease-io) infinite alternate; }
  .ty-hero h1 { font-size: clamp(5rem, 1rem + 6.4vw, 7.6rem); }
  .ty-hero .page-hero__intro { max-width: 31rem; }
}
@keyframes tyBreatheIn { to { transform: translate(-50%, -50%) scale(1.03); border-color: rgba(201, 168, 76, 0.32); } }
@media (prefers-reduced-motion: reduce) { .ty-hero .page-hero__inner::before { animation: none; } }
.ty-hero .eyebrow { font-family: var(--f-display); font-style: italic; font-weight: 400; font-size: clamp(1.45rem, 1.15rem + 1vw, 2.1rem); letter-spacing: 0; text-transform: none; color: var(--gold); gap: 18px; }
.ty-hero .eyebrow::after { content: ''; width: 28px; height: 1px; background: currentColor; opacity: 0.7; flex: none; }

.ty-from { padding-bottom: clamp(88px, 11vw, 170px); }
.ty-sign { display: grid; justify-items: center; gap: 10px; text-align: center; margin-bottom: clamp(64px, 9vw, 130px); }
.ty-sign__welcome { font-family: var(--f-ui); font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.ty-sign__names { font-family: var(--f-display); font-style: italic; font-weight: 300; font-size: clamp(2.4rem, 1.7rem + 2.4vw, 3.8rem); line-height: 1; color: var(--fg); }
.ty-sign__names span { color: var(--gold); }
.ty-sign__role { font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

.ty-steps { display: grid; max-width: 1120px; margin-inline: auto; border-top: 1px solid var(--line); }
.ty-steps__step { display: grid; grid-template-columns: 54px minmax(0, 1fr); column-gap: 4px; row-gap: 4px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.ty-steps__step > :not(.ty-steps__mark) { grid-column: 2; }
.ty-steps__mark { grid-row: 1 / span 3; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; font-family: var(--f-ui); font-size: 0.66rem; letter-spacing: 0.12em; color: var(--muted); }
.ty-steps__mark .i { width: 18px; height: 18px; }
.is-done .ty-steps__mark { background: var(--gold); border-color: var(--gold); color: var(--ink); box-shadow: 0 0 0 6px rgba(201, 168, 76, 0.16); }
.ty-steps__k { font-family: var(--f-ui); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent-text); }
.ty-steps__t { font-family: var(--f-display); font-weight: 300; font-size: clamp(1.7rem, 1.4rem + 1vw, 2.3rem); line-height: 1.1; color: var(--fg); }
.ty-steps__b { color: var(--muted); font-size: 1rem; }
@media (min-width: 768px) {
  .ty-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
  .ty-steps__step { grid-template-columns: minmax(0, 1fr); padding: 34px 28px 34px 0; border-bottom: 0; }
  .ty-steps__step + .ty-steps__step { padding-left: 28px; border-left: 1px solid var(--line); }
  .ty-steps__step > :not(.ty-steps__mark) { grid-column: 1; }
  .ty-steps__mark { grid-row: auto; margin-bottom: 18px; }
}

.ty-meantime__grid { display: grid; gap: 48px; }
@media (min-width: 900px) { .ty-meantime__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 7vw, 120px); align-items: center; } }
.ty-meantime__copy { display: grid; gap: 26px; justify-items: start; }
.ty-meantime__copy h2 { max-width: 14ch; }
.ty-meantime__src { max-width: 32rem; padding-top: 18px; border-top: 1px solid var(--line); color: var(--fg); }
.ty-meantime__src a { color: inherit; }
.ty-breath { padding: clamp(40px, 5vw, 72px) clamp(20px, 3vw, 48px); box-shadow: 0 40px 80px -50px rgba(13, 12, 10, 0.6); }
.ty-breath .breath__stage { width: min(68vw, 360px); }

.ty-reads { margin-top: clamp(80px, 11vw, 160px); }
.ty-reads__title { margin-bottom: 26px; }
.ty-links { border-top: 1px solid var(--line); }
.ty-links__row { display: grid; grid-template-columns: 36px minmax(0, 1fr) 28px; gap: 6px 16px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: color 0.3s, padding 0.6s var(--ease); }
.ty-links__n { grid-row: 1 / span 2; align-self: start; padding-top: 0.7em; font-family: var(--f-ui); font-size: 0.64rem; letter-spacing: 0.2em; color: var(--accent-text); }
.ty-links__k { font-family: var(--f-display); font-weight: 300; font-size: clamp(1.75rem, 1.25rem + 1.8vw, 3rem); line-height: 1.05; }
.ty-links__t { grid-column: 2; color: var(--muted); font-size: 1rem; max-width: 34rem; }
.ty-links__go { grid-column: 3; grid-row: 1 / span 2; color: var(--accent-text); transition: transform 0.5s var(--ease); }
.ty-links__go .i-arrow, .ty-links__go .i { width: 22px; height: 22px; }
@media (min-width: 900px) {
  .ty-links__row { grid-template-columns: 56px minmax(0, 0.85fr) minmax(0, 1.15fr) 40px; padding: 30px 0; }
  .ty-links__n, .ty-links__go { grid-row: auto; }
  .ty-links__n { padding-top: 0; align-self: center; }
  .ty-links__t { grid-column: 3; }
  .ty-links__go { grid-column: 4; justify-self: end; }
  .ty-links__row:hover { padding-left: 14px; color: var(--accent-text); }
  .ty-links__row:hover .ty-links__go { transform: translateX(6px); }
}

/* ==========================================================================
   404
   ========================================================================== */
.nf-hero { min-height: min(74svh, 760px); }
.nf-hero .page-hero__media::after { background:
  radial-gradient(ellipse 62% 48% at 20% 40%, rgba(13, 12, 10, 0.5), transparent 72%),
  linear-gradient(to top, var(--ink) 0%, rgba(13, 12, 10, 0.72) 30%, rgba(13, 12, 10, 0.42) 60%, rgba(13, 12, 10, 0.72) 100%); }
.nf-hero .eyebrow { color: var(--gold-2); }
.nf-hero::before { opacity: 0.32; }
.nf-hero .eyebrow::before { display: none; }
.nf-hero h1 { max-width: 12ch; }

/* Trail markers: two stripes = the right way; a cross = the wrong one */
.nf-mark { display: inline-grid; gap: 4px; width: 24px; flex: none; }
.nf-mark i { display: block; height: 4px; background: var(--gold); }
.nf-mark i + i { background: var(--bone); }
.nf-mark--x { position: relative; display: inline-block; width: 20px; height: 20px; }
.nf-mark--x i { position: absolute; left: 50%; top: 50%; width: 24px; height: 4px; margin: -2px 0 0 -12px; background: var(--gold); transform: rotate(45deg); }
.nf-mark--x i + i { background: var(--bone); transform: rotate(-45deg); }

.nf { padding-block: clamp(56px, 8vw, 110px) clamp(96px, 11vw, 170px); }
.nf__title { margin-bottom: 26px; }
.nf-ways { border-top: 1px solid var(--line); }
.nf-ways__row { display: grid; grid-template-columns: 40px minmax(0, 1fr) 28px; gap: 6px 16px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: color 0.3s, padding 0.6s var(--ease); }
.nf-ways__row .nf-mark { grid-row: 1 / span 2; align-self: start; margin-top: 0.75em; }
.nf-ways__k { font-family: var(--f-display); font-weight: 300; font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3.4rem); line-height: 1.02; }
.nf-ways__t { grid-column: 2; color: var(--muted); font-size: 1rem; text-wrap: pretty; }
.nf-ways__go { grid-column: 3; grid-row: 1 / span 2; color: var(--gold); transition: transform 0.5s var(--ease); }
.nf-ways__go .i-arrow { width: 24px; height: 24px; }
@media (min-width: 900px) {
  .nf-ways__row { grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr) 40px; padding: 30px 0; }
  .nf-ways__row .nf-mark { grid-row: auto; align-self: center; margin-top: 0; }
  .nf-ways__t { grid-column: 3; }
  .nf-ways__go { grid-column: 4; grid-row: auto; justify-self: end; }
  .nf-ways__row:hover { padding-left: 14px; color: var(--gold); }
  .nf-ways__row:hover .nf-ways__go { transform: translateX(6px); }
}
.nf-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 30px; font-family: var(--f-ui); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.nf-legend__sep { width: 1px; height: 14px; margin-inline: 10px; background: var(--line); }
