/* Coaching page — lodge / Epicurrence-inspired. Loaded from pages/coaching.js */
.lodge {
          --snow: #d7ebe0;
          --paper: #eef6f0;
          --ink: #121a16;
          --pine: #16382b;
          --flare: #e23b1c;
          --brass: #c4a35a;
          --fog: #4a6356;
          --ember: #ff6b35;
          background: var(--snow);
          color: var(--ink);
          min-height: 100vh;
          overflow-x: hidden;
          font-family: "Figtree", system-ui, sans-serif;
        }
        .lodge h1,
        .lodge h2,
        .lodge h3,
        .lodge .ticket-price,
        .lodge .eyebrow span,
        .lodge .rail-n,
        .lodge .p-n,
        .lodge .t-k,
        .lodge time,
        .lodge .stamp,
        .lodge .ticket-kicker,
        .lodge .mast-ask,
        .lodge .btn {
          font-family: "Archivo Black", Impact, sans-serif;
          font-weight: 400;
          letter-spacing: 0.01em;
        }
        .lodge .skip {
          position: absolute;
          left: -999px;
        }
        .lodge .skip:focus {
          left: 12px;
          top: 12px;
          z-index: 40;
          background: var(--ink);
          color: var(--paper);
          padding: 8px 12px;
        }
        .lodge .mast {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 18px 28px;
          position: sticky;
          top: 0;
          z-index: 20;
          background: color-mix(in srgb, var(--snow) 88%, transparent);
          backdrop-filter: blur(10px);
          border-bottom: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
        }
        .lodge .mast-home,
        .lodge .end a {
          color: var(--ink);
          text-decoration: none;
          font-size: 0.92rem;
          font-weight: 600;
        }
        .lodge .mast-ask {
          background: var(--flare);
          color: #fff;
          text-decoration: none;
          padding: 8px 12px;
          font-size: 0.75rem;
          font-weight: 700;
          letter-spacing: 0.04em;
          text-transform: uppercase;
          white-space: nowrap;
          flex-shrink: 0;
        }
        .lodge .rail {
          display: none;
        }
        .lodge main {
          max-width: 1080px;
          margin: 0 auto;
          padding: 0 24px 80px;
        }
        .lodge .slide {
          padding: 72px 0 24px;
          scroll-margin-top: 72px;
          border-bottom: 1px dashed color-mix(in srgb, var(--ink) 18%, transparent);
        }
        .lodge .eyebrow {
          display: flex;
          align-items: baseline;
          gap: 12px;
          text-transform: uppercase;
          letter-spacing: 0.14em;
          font-size: 0.78rem;
          color: var(--fog);
          margin: 0 0 18px;
          font-weight: 600;
        }
        .lodge .eyebrow span {
          color: var(--flare);
          font-size: 1.1rem;
          letter-spacing: 0;
        }
        .lodge h1 {
          font-size: clamp(2.35rem, 6.6vw, 5.6rem);
          line-height: 0.92;
          text-transform: uppercase;
          margin: 8px 0 20px;
        }
        .lodge h2 {
          font-size: clamp(1.8rem, 4vw, 2.8rem);
          text-transform: uppercase;
          line-height: 1;
          margin: 0 0 16px;
        }
        .lodge h3 {
          font-size: 1.15rem;
          text-transform: uppercase;
          margin: 0 0 6px;
        }
        .lodge .lede,
        .lodge .sub,
        .lodge p {
          font-size: 1.08rem;
          line-height: 1.55;
          max-width: 40rem;
        }
        .lodge .stamp {
          display: inline-block;
          border: 2px solid var(--flare);
          color: var(--flare);
          padding: 4px 10px;
          transform: rotate(-6deg);
          text-transform: uppercase;
          letter-spacing: 0.08em;
          font-size: 0.85rem;
          margin-bottom: 8px;
        }
        .lodge .cover {
          display: grid;
          gap: 32px;
          padding-top: 36px;
          min-width: 0;
        }
        .lodge .cover-copy {
          min-width: 0;
        }
        .lodge .cover-visual {
          position: relative;
          padding-bottom: 36px;
        }
        .lodge .lodge-photo {
          width: 100%;
          height: auto;
          display: block;
          border: 6px solid #fff;
          box-shadow: 8px 12px 0 color-mix(in srgb, var(--pine) 35%, transparent);
        }
        .lodge .badge {
          position: absolute;
          width: 132px;
          height: 132px;
          right: 12px;
          bottom: 8px;
          border-radius: 50%;
          object-fit: cover;
          box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
          transform: rotate(8deg);
        }
        .lodge .ask-row {
          display: flex;
          flex-wrap: wrap;
          gap: 16px;
          align-items: center;
          margin-top: 28px;
        }
        .lodge .ask-note {
          margin: 0;
          color: var(--fog);
          font-size: 0.95rem;
        }
        .lodge .btn {
          display: inline-block;
          background: var(--ink);
          color: var(--paper);
          text-decoration: none;
          padding: 14px 22px;
          font-weight: 700;
          letter-spacing: 0.04em;
          text-transform: uppercase;
          font-size: 0.9rem;
        }
        .lodge .btn:hover {
          background: var(--flare);
        }
        .lodge .btn.invert {
          background: var(--paper);
          color: var(--ink);
        }
        .lodge .btn.invert:hover {
          background: var(--ember);
          color: #fff;
        }
        .lodge .team-grid {
          display: grid;
          gap: 28px;
        }
        .lodge .portrait {
          width: 140px;
          height: 140px;
          object-fit: cover;
          border: 4px solid #fff;
        }
        .lodge .role {
          color: var(--flare);
          font-weight: 600;
          margin-top: 0;
        }
        .lodge .year-stamp {
          display: inline-block;
          border: 2px solid var(--flare);
          color: var(--flare);
          padding: 4px 12px;
          transform: rotate(-4deg);
          text-transform: uppercase;
          letter-spacing: 0.14em;
          font-size: 0.95rem;
          margin: 0 0 22px;
          font-family: "Archivo Black", Impact, sans-serif;
        }
        .lodge .shipped {
          list-style: none;
          padding: 0;
          margin: 0;
          display: flex;
          flex-wrap: wrap;
          gap: 10px 8px;
        }
        .lodge .shipped a {
          display: inline-block;
          color: var(--ink);
          text-decoration: none;
          border-bottom: 1px solid color-mix(in srgb, var(--ink) 22%, transparent);
          padding: 4px 2px;
          font-weight: 600;
        }
        .lodge .shipped a:hover {
          color: var(--flare);
          border-bottom-color: var(--flare);
        }
        .lodge .yc-line {
          display: flex;
          flex-wrap: wrap;
          align-items: center;
          gap: 10px;
          margin: 36px 0 0;
          font-size: 1.35rem;
          font-weight: 400;
          color: var(--ink);
          font-family: Georgia, "Times New Roman", serif;
        }
        .lodge .yc-mark {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          width: 1.35em;
          height: 1.35em;
          background: #ff6600;
          color: #fff;
          font-family: Helvetica, Arial, sans-serif;
          font-weight: 700;
          font-size: 1.05em;
          line-height: 1;
          letter-spacing: -0.04em;
          flex-shrink: 0;
        }
        .lodge .yc-name {
          font-style: italic;
          letter-spacing: -0.02em;
        }
        .lodge .yc-note {
          font-style: italic;
          color: var(--fog);
          font-size: 1.05rem;
        }
        .lodge .problems {
          list-style: none;
          padding: 0;
          margin: 28px 0 0;
          display: grid;
          gap: 18px;
        }
        .lodge .problems li {
          display: grid;
          grid-template-columns: 2.4rem 1fr;
          gap: 12px;
          background: var(--paper);
          padding: 16px 16px 14px;
          border-left: 4px solid var(--pine);
        }
        .lodge .p-n {
          color: var(--flare);
          font-size: 1.1rem;
        }
        .lodge .problems p {
          margin: 0;
          color: var(--fog);
          font-size: 0.98rem;
        }
        .lodge .pillars {
          list-style: none;
          padding: 0;
          margin: 28px 0 0;
          display: grid;
          gap: 14px;
        }
        .lodge .pillars li {
          background: var(--pine);
          color: var(--paper);
          padding: 18px 20px;
        }
        .lodge .pillars strong {
          display: block;
          font-family: "Archivo Black", sans-serif;
          text-transform: uppercase;
          margin-bottom: 6px;
          color: var(--brass);
        }
        .lodge .day {
          list-style: none;
          padding: 0;
          margin: 8px 0 0;
        }
        .lodge .day li {
          display: grid;
          grid-template-columns: 4.5rem 1fr;
          gap: 16px;
          padding: 20px 0;
          border-top: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
        }
        .lodge time {
          color: var(--flare);
          font-size: 1.05rem;
        }
        .lodge .tickets {
          display: grid;
          gap: 16px;
        }
        .lodge .ticket {
          background: var(--pine);
          color: var(--paper);
          padding: 28px 26px 24px;
          position: relative;
          display: flex;
          flex-direction: column;
        }
        .lodge .ticket.in-person {
          background: var(--ink);
          box-shadow: inset 0 0 0 2px var(--brass);
        }
        .lodge .ticket-kicker {
          margin: 0;
          color: var(--brass);
          text-transform: uppercase;
          letter-spacing: 0.12em;
        }
        .lodge .ticket-price {
          font-size: clamp(2.4rem, 7vw, 4.2rem);
          line-height: 0.9;
          margin: 8px 0 12px;
        }
        .lodge .ticket-price span {
          font-size: 1.1rem;
          margin-left: 6px;
        }
        .lodge .ticket-body {
          margin: 0 0 18px;
          max-width: 28rem;
        }
        .lodge .ticket .btn {
          margin-top: auto;
          align-self: flex-start;
        }
        .lodge .ask-note a {
          color: var(--ink);
          font-weight: 600;
        }
        .lodge .ask-note a:hover {
          color: var(--flare);
        }
        .lodge .final-ask .ask-row {
          margin-top: 16px;
        }
        .lodge .final-ask .btn.invert {
          background: var(--paper);
          color: var(--ink);
        }
        .lodge .final-ask .btn.invert:hover {
          background: var(--ember);
          color: #fff;
        }
        .lodge .ticket-aside {
          margin: 20px 0 18px;
          color: var(--fog);
        }
        .lodge .vs {
          list-style: none;
          padding: 0;
          margin: 0;
          display: grid;
          gap: 12px;
        }
        .lodge .vs li {
          padding: 16px 0;
          border-top: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
        }
        .lodge .vs strong {
          display: block;
          font-family: "Archivo Black", sans-serif;
          text-transform: uppercase;
          margin-bottom: 4px;
        }
        .lodge .split {
          display: grid;
          gap: 28px;
        }
        .lodge .yesno {
          list-style: none;
          padding: 0;
          margin: 0;
        }
        .lodge .yesno li {
          padding: 10px 0 10px 28px;
          position: relative;
          border-bottom: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
        }
        .lodge .yesno li::before {
          content: '▲';
          position: absolute;
          left: 0;
          color: var(--pine);
          font-size: 0.75rem;
          top: 14px;
        }
        .lodge .yesno.no li::before {
          content: '×';
          color: var(--flare);
          font-size: 1.1rem;
          top: 8px;
        }
        .lodge .final-ask {
          margin-top: 40px;
          padding: 28px;
          background: var(--ink);
          color: var(--paper);
        }
        .lodge .final-ask h2,
        .lodge .final-ask p {
          color: var(--paper);
        }
        .lodge .final-ask .btn {
          background: var(--flare);
          margin-top: 8px;
        }
        .lodge .end {
          display: flex;
          gap: 20px;
          flex-wrap: wrap;
          padding: 28px 24px 48px;
          max-width: 1080px;
          margin: 0 auto;
        }
        @media (min-width: 900px) {
          .lodge .rail {
            display: flex;
            flex-direction: column;
            position: fixed;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            gap: 6px;
            z-index: 15;
          }
          .lodge .rail a {
            display: flex;
            align-items: center;
            gap: 8px;
            text-decoration: none;
            color: var(--fog);
            font-size: 0.72rem;
            letter-spacing: 0.04em;
            text-transform: uppercase;
          }
          .lodge .rail a:hover,
          .lodge .rail a:focus {
            color: var(--flare);
          }
          .lodge .rail-n {
            font-size: 0.85rem;
            color: var(--pine);
          }
          .lodge .cover {
            grid-template-columns: 1.1fr 0.9fr;
            align-items: center;
            min-height: min(680px, calc(100vh - 70px));
            gap: 48px;
          }
          .lodge .lodge-photo {
            min-height: 420px;
            object-fit: cover;
          }
          .lodge .badge {
            width: 168px;
            height: 168px;
            right: -12px;
          }
          .lodge .team-grid {
            grid-template-columns: 180px 1fr;
            align-items: start;
          }
          .lodge .problems {
            grid-template-columns: 1fr 1fr;
          }
          .lodge .tickets {
            grid-template-columns: 1fr 1fr;
          }
          .lodge .split {
            grid-template-columns: 1fr 1fr;
          }
          .lodge main {
            padding-left: 140px;
          }
        }
        @media (max-width: 640px) {
          .lodge .mast {
            padding: 12px 16px;
          }
          .lodge .mast-name {
            display: none;
          }
          .lodge main {
            padding: 0 16px 64px;
          }
          .lodge h1 {
            font-size: 2.25rem;
          }
          .lodge .lede,
          .lodge .sub,
          .lodge p {
            max-width: 100%;
            overflow-wrap: anywhere;
          }
          .lodge .ask-note {
            max-width: 100%;
          }
        }
        @media (prefers-reduced-motion: reduce) {
          .lodge .badge {
            transform: none;
          }
          .lodge .stamp,
          .lodge .year-stamp {
            transform: none;
          }
        }
