
:root{
    --ink:#182338;        /* deep midnight blue */
    --ink-soft:#4E5A72;
    --ivory:#F8F4EC;      /* warm ivory */
    --parchment:#F0E9D8;  /* soft parchment */
    --gold:#B79355;       /* muted antique gold */
    --charcoal:#3A3733;   /* earthy charcoal */
    --sky:#7C93A8;        /* himalayan sky blue, very subtle */
    --amber:#C97A44;      /* warm sunrise amber */
    --olive:#6E6A4E;      /* military olive/bronze, historical texture only */
    --label:#8A4E22;       /* legible warm brown for small caption labels, on light backgrounds */
    --label-bg:rgba(183,147,85,0.14);
    --line:rgba(24,35,56,0.12);
    --max-w:700px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{ font-family:'Work Sans', sans-serif; font-weight:300; background:var(--ivory); color:var(--ink-soft); line-height:1.75; overflow-x:hidden; }
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;} }
  a:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  .display{ font-family:'Cormorant Garamond', serif; font-weight:500; }
  .eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--label); background:var(--label-bg); display:inline-block; padding:0.4rem 0.9rem; border-radius:99px; margin-bottom:1.4rem; }

  .nav{ position:fixed; top:0; left:0; right:0; z-index:90; display:flex; align-items:center; justify-content:space-between; padding:1.5rem 2.2rem; background:transparent; border-bottom:1px solid rgba(183,147,85,0.16); transition:background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease, backdrop-filter 0.3s ease, border-color 0.3s ease; }
  .nav.scrolled{ background:rgba(248,244,236,0.96); backdrop-filter:blur(12px); box-shadow:0 1px 12px rgba(24,35,56,0.08); border-bottom-color:var(--line); padding:1rem 2.2rem; }
  .nav-mark{ font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600; font-size:1.1rem; color:var(--gold); text-decoration:none; transition:color 0.3s ease; letter-spacing:0.01em; }
  .nav.scrolled .nav-mark{ color:var(--ink); }
  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:0.4rem; flex-direction:column; gap:5px; }
  .nav-toggle span{ display:block; width:22px; height:2px; background:var(--parchment); transition:background 0.3s ease; }
  .nav.scrolled .nav-toggle span{ background:var(--ink); }
  .nav-links{ display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:1rem 1.7rem; list-style:none; }
  .nav-links a{ font-family:'IBM Plex Mono', monospace; font-size:0.64rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--parchment); text-decoration:none; transition:color 0.25s ease; }
  .nav.scrolled .nav-links a{ color:var(--ink-soft); }
  .nav-links a:hover{ color:var(--amber); }
  @media (max-width:900px){
    .nav-toggle{ display:flex; }
    .nav-links{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start; gap:1.1rem; background:var(--ivory); padding:1.4rem 2.2rem 1.8rem; border-bottom:1px solid var(--line); box-shadow:0 16px 30px rgba(24,35,56,0.2); }
    .nav-links.open{ display:flex; }
    .nav-links a{ color:var(--ink-soft) !important; }
  }

  section{ position:relative; padding:6rem 1.75rem; }
  .inner{ max-width:700px; margin:0 auto; }
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity 1s ease, transform 1s ease; }
  .reveal.visible{ opacity:1; transform:translateY(0); }

  /* ---------- hero (side-by-side: framed contained portrait + text, no full-bleed crop) ---------- */
  .hero{
    position:relative;
    background:
      radial-gradient(ellipse 60% 60% at 15% 30%, rgba(183,147,85,0.10) 0%, rgba(183,147,85,0) 60%),
      var(--ink);
    padding:9rem 3rem 5.5rem;
    overflow:hidden;
  }
  .hero-grid{
    max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:0.85fr 1.15fr; gap:4.5rem; align-items:center;
  }

  .hero-portrait-wrap{
    position:relative; width:100%; max-width:420px; margin:0 auto;
    opacity:0; animation:riseIn 1.2s ease forwards 0.3s;
  }
  .hero-portrait-wrap::before{
    content:''; position:absolute; top:-16px; left:16px; right:-16px; bottom:16px;
    border:1px solid var(--gold); border-radius:12px; z-index:0;
  }
  .hero-portrait{
    position:relative; z-index:1; border-radius:12px; overflow:hidden;
    box-shadow:0 40px 70px -24px rgba(0,0,0,0.55);
  }
  .hero-portrait img{ width:100%; display:block; }
  .hero-caption{
    margin-top:1.2rem; text-align:center;
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:0.95rem; color:#B9AF95;
    opacity:0; animation:riseIn 1.2s ease forwards 0.6s;
  }

  .hero-text{ text-align:left; }
  .hero-eyebrow{
    display:inline-block;
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase;
    color:var(--gold); background:none; padding:0 0 0.5rem; border-radius:0; margin-bottom:1.6rem;
    border-bottom:1px solid rgba(183,147,85,0.35);
    opacity:0; animation:riseIn 1.1s ease forwards 0.2s;
  }
  .hero h1{
    font-size:clamp(2.4rem, 4.6vw, 4rem); line-height:1.08; color:var(--ivory); font-weight:500;
    opacity:0; animation:riseIn 1.2s ease forwards 0.45s;
  }
  .hero .sub{
    font-family:'Cormorant Garamond', serif; font-style:normal; font-weight:400;
    font-size:clamp(1.05rem, 1.7vw, 1.3rem); line-height:1.6; color:#D8CDB0; margin-top:1.3rem; max-width:460px;
    opacity:0; animation:riseIn 1.2s ease forwards 0.7s;
  }
  .hero .tags{
    margin-top:1.2rem; font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.08em; color:#9AA4B8;
    opacity:0; animation:riseIn 1.2s ease forwards 0.95s;
  }
  .hero-ctas{
    margin-top:2.2rem; display:flex; gap:2rem; flex-wrap:wrap;
    opacity:0; animation:riseIn 1.2s ease forwards 1.2s;
  }
  .hero-ctas a{
    color:var(--gold); text-decoration:none; font-family:'IBM Plex Mono', monospace; font-size:0.72rem;
    letter-spacing:0.1em; text-transform:uppercase; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.35rem;
    transition:color 0.3s ease, border-color 0.3s ease;
  }
  .hero-ctas a:hover{ color:var(--ivory); border-color:var(--ivory); }
  .hero-ctas a.secondary{ color:#C7CDD8; border-color:rgba(199,205,216,0.35); }
  .hero-ctas a.secondary:hover{ color:var(--ivory); border-color:var(--ivory); }

  @keyframes riseIn{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }

  @media (max-width:900px){
    .hero{ padding:8rem 1.75rem 4rem; }
    .hero-grid{ grid-template-columns:1fr; gap:2.6rem; }
    .hero-text{ text-align:center; }
    .hero-ctas{ justify-content:center; }
  }

  .intro{ background:var(--ivory); text-align:center; }
  .intro .inner{ max-width:640px; }
  .intro p{ font-family:'Cormorant Garamond', serif; font-size:clamp(1.2rem, 2.3vw, 1.5rem); font-style:italic; color:var(--ink-soft); }
  .intro strong{ color:var(--ink); font-style:normal; font-weight:500; }

  .transform{ background:var(--parchment); }
  .transform .inner{ max-width:820px; }
  .transform-grid{ display:grid; grid-template-columns:1fr auto 1fr; gap:2.5rem; align-items:start; }
  .transform-col{ text-align:center; }
  .transform-col .year{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--label); background:var(--label-bg); display:inline-block; padding:0.35rem 0.85rem; border-radius:99px; margin-bottom:1.1rem; }
  .transform-col h3{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.5rem; color:var(--ink); margin-bottom:0.9rem; }
  .transform-col p{ font-size:0.94rem; color:var(--ink-soft); font-weight:300; }
  .transform-divider{ display:flex; align-items:center; justify-content:center; padding-top:2.2rem; }
  .transform-divider .line{ width:1px; height:70px; background:linear-gradient(180deg, var(--gold), transparent); }
  .transform-close{ text-align:center; margin-top:3.4rem; padding-top:2.4rem; border-top:1px solid var(--line); }
  .transform-close p{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:clamp(1.2rem, 2.4vw, 1.55rem); color:var(--ink); }
  @media (max-width:640px){ .transform-grid{ grid-template-columns:1fr; gap:1.6rem; } .transform-divider{ padding-top:0; } .transform-divider .line{ width:70px; height:1px; margin:0.4rem auto; } }

  .journey{ background:var(--ivory); }
  .journey .inner{ max-width:920px; }
  .journey-head{ text-align:center; max-width:640px; margin:0 auto 4rem; }
  .journey-head h2{ font-size:clamp(1.9rem, 4vw, 2.7rem); color:var(--ink); }
  .chapters{ max-width:860px; margin:0 auto; position:relative; }
  .chapters::before{ content:''; position:absolute; left:14px; top:8px; bottom:8px; width:1px; background:var(--line); }
  @media (max-width:720px){ .chapters::before{ left:8px; } }
  .chapter{ position:relative; padding-left:3.2rem; padding-bottom:3.4rem; }
  .chapter:last-child{ padding-bottom:0; }
  .chapter::before{ content:''; position:absolute; left:8px; top:6px; width:13px; height:13px; border-radius:50%; background:var(--ivory); border:2px solid var(--gold); }
  @media (max-width:720px){ .chapter{ padding-left:2.2rem; } .chapter::before{ left:2px; } }
  .chapter .tag{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); background:var(--label-bg); display:inline-block; padding:0.3rem 0.7rem; border-radius:99px; margin-bottom:0.7rem; }
  .chapter h3{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.7rem; color:var(--ink); margin-bottom:0.7rem; }
  .chapter p{ font-size:0.98rem; color:var(--ink-soft); font-weight:300; max-width:600px; }
  .chapter-photo{ margin-top:1.2rem; max-width:420px; border-radius:12px; overflow:hidden; box-shadow:0 18px 36px -16px rgba(24,35,56,0.35); }
  .chapter-photo img{ width:100%; display:block; filter:grayscale(12%); transition:filter 0.5s ease, transform 0.6s ease; }
  .chapter-photo:hover img{ filter:grayscale(0%); transform:scale(1.03); }
  .journey-more{ text-align:center; margin-top:3.4rem; }
  .journey-more a{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.35rem; }
  .journey-more a:hover{ color:var(--amber); border-color:var(--amber); }

  .philosophy{ background:var(--ink); color:var(--ivory); text-align:center; }
  .philosophy .inner{ max-width:720px; }
  .philosophy .eyebrow{ color:var(--gold); }
  .philosophy h2{ font-size:clamp(2rem, 4.4vw, 3rem); color:var(--ivory); margin:0 auto 1.8rem; line-height:1.22; }
  .philosophy p{ font-size:1.02rem; color:#B9C0CC; font-weight:300; max-width:580px; margin:0 auto 1.1rem; }
  .philosophy .close-line{ margin-top:1.8rem; font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.15rem; color:var(--gold); }

  .teachings{ background:var(--parchment); }
  .teachings-head{ text-align:center; max-width:640px; margin:0 auto 3.5rem; }
  .teachings-head h2{ font-size:clamp(1.9rem, 4vw, 2.7rem); color:var(--ink); }
  .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.4rem 1.6rem; max-width:920px; margin:0 auto; }
  .pillar{ text-align:center; padding:0 0.6rem; }
  .pillar .mark{ width:46px; height:46px; border:1px solid var(--gold); border-radius:50%; margin:0 auto 1.1rem; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--gold); font-size:1.2rem; }
  .pillar h4{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.1rem; color:var(--ink); margin-bottom:0.5rem; }
  .pillar p{ font-size:0.84rem; color:var(--ink-soft); font-weight:300; }
  @media (max-width:820px){ .pillars{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:480px){ .pillars{ grid-template-columns:1fr; max-width:320px; } }

  .watch{ background:var(--ivory); }
  .watch .inner{ max-width:1040px; }
  .watch-head{ text-align:center; max-width:640px; margin:0 auto 3rem; }
  .watch-head h2{ font-size:clamp(1.9rem, 4vw, 2.7rem); color:var(--ink); }
  .watch-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem; }
  .watch-item{ background:var(--parchment); border-radius:12px; overflow:hidden; box-shadow:0 20px 40px -22px rgba(24,35,56,0.3); }
  .watch-frame{ position:relative; width:100%; padding-top:56.25%; background:var(--charcoal); }
  .watch-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .watch-frame.placeholder{ display:flex; align-items:center; justify-content:center; }
  .watch-frame.placeholder span{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:#8A93A5; text-align:center; padding:0 1.5rem; }
  .watch-caption{ padding:1.1rem 1.2rem; }
  .watch-caption .k{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--label); background:var(--label-bg); display:inline-block; padding:0.3rem 0.65rem; border-radius:99px; margin-bottom:0.6rem; }
  .watch-caption h4{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.05rem; color:var(--ink); line-height:1.3; }
  @media (max-width:820px){ .watch-grid{ grid-template-columns:1fr; } }

  .books{ background:var(--parchment); }
  .books .inner{ max-width:980px; }
  .books-head{ text-align:center; max-width:640px; margin:0 auto 3rem; }
  .books-head h2{ font-size:clamp(1.9rem, 4vw, 2.7rem); color:var(--ink); margin-bottom:0.5rem; }
  .books-head .sub{ font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--ink-soft); }
  .book-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
  .book-card{ background:var(--ivory); border-radius:12px; overflow:hidden; box-shadow:0 20px 40px -22px rgba(24,35,56,0.22); }
  .book-cover{ aspect-ratio:2/3; background:linear-gradient(160deg, var(--ink) 0%, #26314A 100%); display:flex; align-items:center; justify-content:center; padding:1.5rem; border-bottom:2px solid var(--gold); }
  .book-cover span{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.2rem; color:var(--gold); text-align:center; line-height:1.3; }
  .book-body{ padding:1.6rem 1.5rem; }
  .book-body h3{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.25rem; color:var(--ink); margin-bottom:0.6rem; line-height:1.3; }
  .book-body p{ font-size:0.88rem; color:var(--ink-soft); font-weight:300; margin-bottom:1rem; }
  .book-body a{ font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.25rem; }
  .book-body a:hover{ color:var(--amber); border-color:var(--amber); }
  @media (max-width:820px){ .book-grid{ grid-template-columns:1fr; max-width:340px; margin:0 auto; } }

  .moments{ background:var(--ivory); }
  .moments .inner{ max-width:980px; }
  .moments-head{ text-align:center; margin-bottom:2.6rem; }
  .moments-head h2{ font-size:clamp(1.7rem, 3.6vw, 2.3rem); color:var(--ink); }
  .moments-head .sub{ font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--amber); margin-top:0.4rem; }
  .moments-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
  .moments-grid figure{ margin:0; border-radius:12px; overflow:hidden; filter:grayscale(15%); }
  .moments-grid img{ width:100%; height:230px; object-fit:cover; display:block; transition:transform 0.6s ease, filter 0.6s ease; }
  .moments-grid figure:hover img{ transform:scale(1.05); filter:grayscale(0%); }
  @media (max-width:720px){ .moments-grid{ grid-template-columns:1fr; } .moments-grid img{ height:280px; } }

  .legacy{ background:linear-gradient(180deg, var(--parchment) 0%, #E7DCC0 100%); text-align:center; }
  .legacy .inner{ max-width:680px; }
  .legacy h2{ font-size:clamp(2rem, 4.4vw, 3rem); color:var(--ink); margin:0 auto 1.4rem; line-height:1.25; }
  .legacy p{ font-size:1.02rem; color:var(--ink-soft); margin:0 auto 2.6rem; font-weight:300; }
  .legacy-photo{ max-width:520px; margin:0 auto 2.6rem; border-radius:12px; overflow:hidden; box-shadow:0 24px 48px -20px rgba(24,35,56,0.3); }
  .legacy-photo img{ width:100%; display:block; }
  .legacy-actions{ display:flex; gap:1.4rem; flex-wrap:wrap; justify-content:center; }
  .legacy-actions a{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.35rem; }
  .legacy-actions a:hover{ color:var(--amber); border-color:var(--amber); }

  .events{ background:var(--ivory); text-align:center; }
  .events .inner{ max-width:640px; }
  .events h2{ font-size:clamp(1.9rem, 4vw, 2.6rem); color:var(--ink); margin-bottom:0.6rem; }
  .events .sub{ font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--ink-soft); margin-bottom:2.4rem; }
  .events-empty{ background:var(--parchment); border-radius:3px; padding:2.6rem 2rem; }
  .events-empty p{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.15rem; color:var(--ink-soft); margin-bottom:1.4rem; }
  .events-empty a{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.3rem; }
  .events-empty a:hover{ color:var(--amber); border-color:var(--amber); }
  .event-card{ background:var(--parchment); border-radius:3px; padding:2.4rem 2.2rem; text-align:left; border-top:2px solid var(--gold); box-shadow:0 20px 40px -22px rgba(24,35,56,0.22); }
  .event-card .k{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); background:var(--label-bg); display:inline-block; padding:0.35rem 0.8rem; border-radius:99px; margin-bottom:1rem; }
  .event-card h3{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.5rem; color:var(--ink); margin-bottom:0.5rem; }
  .event-card .meta{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--ink-soft); margin-bottom:1rem; }
  .event-card p{ font-size:0.94rem; color:var(--ink-soft); font-weight:300; margin-bottom:1.4rem; }
  .event-card a.cta{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.3rem; }
  .event-card a.cta:hover{ color:var(--amber); border-color:var(--amber); }

  .connect{ background:var(--parchment); text-align:center; }
  .connect h2{ font-size:clamp(1.7rem, 3.6vw, 2.2rem); color:var(--ink); margin-bottom:0.6rem; }
  .connect .sub{ font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--ink-soft); margin-bottom:2rem; }
  .connect-form{ display:flex; gap:0.8rem; max-width:420px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
  .connect-form input{ flex:1; min-width:200px; padding:0.85rem 1.1rem; border:1px solid var(--line); border-radius:2px; background:var(--ivory); font-family:'Work Sans', sans-serif; font-size:0.9rem; color:var(--ink); }
  .connect-form button{ padding:0.85rem 1.6rem; background:var(--ink); color:var(--ivory); border:none; border-radius:2px; font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; }

  .contact{ background:var(--ivory); text-align:center; }
  .contact h2{ font-size:clamp(1.7rem, 3.6vw, 2.2rem); color:var(--ink); margin-bottom:1rem; }
  .contact p{ font-size:0.96rem; color:var(--ink-soft); max-width:480px; margin:0 auto 2rem; font-weight:300; }
  .contact-grid{ display:flex; gap:2.2rem; flex-wrap:wrap; justify-content:center; }
  .contact-grid a{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.3rem; }
  .contact-grid a:hover{ color:var(--amber); border-color:var(--amber); }

  footer{ background:var(--ink); color:#8A93A5; text-align:center; padding:3.2rem 1.5rem 2.4rem; }
  footer .fname{ font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600; font-size:1.2rem; color:var(--gold); margin-bottom:0.5rem; }
  footer .fpillars{ font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:#9AA4B8; margin-bottom:1.8rem; }
  footer .fnav{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:1.2rem; }
  footer .fnav a{ color:#C7CDD8; text-decoration:none; }
  footer .fnav a:hover{ color:var(--gold); }
  footer .fnav a:not(:last-child)::after{ content:' · '; color:#5A6478; }
  footer .fsocial{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:2rem; }
  footer .fsocial a{ color:var(--gold); text-decoration:none; }
  footer .fsocial a:hover{ color:var(--ivory); }
  footer .fsocial a:not(:last-child)::after{ content:' · '; color:#5A6478; }
  footer .fcredit{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:0.88rem; color:#9AA4B8; line-height:1.6; margin-top:1.6rem; padding-bottom:1.6rem; border-bottom:1px solid rgba(183,147,85,0.15); max-width:420px; margin-left:auto; margin-right:auto; }
  footer .fcredit a{ color:var(--gold); text-decoration:none; }
  footer .fcredit a:hover{ text-decoration:underline; }
  footer .flegal{ font-family:'IBM Plex Mono', monospace; font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:0.8rem; }
  footer .flegal a{ color:#7A8394; text-decoration:none; }
  footer .flegal a:hover{ color:var(--gold); }
  footer .flegal a:not(:last-child)::after{ content:' · '; color:#5A6478; }
  footer .fcopy{ font-family:'IBM Plex Mono', monospace; font-size:0.6rem; letter-spacing:0.06em; color:#5A6478; }

  .book-body a{ display:inline-block; margin-top:0.8rem; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.25rem; transition:color .3s, border-color .3s; }
  .book-body a:hover{ color:var(--amber); border-color:var(--amber); }
  .fb-embed{ position:relative; width:100%; max-width:560px; margin:0 auto 1.6rem; aspect-ratio:560/314; background:var(--ink); border-radius:12px; overflow:hidden; box-shadow:0 24px 48px -26px rgba(24,35,56,0.45); }
  .fb-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:none; }
  .fb-fallback{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.06em; color:var(--ink-soft); opacity:0.8; margin-bottom:2.6rem; }
  .fb-fallback a{ color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); }

/* ---- interior pages ---- */
.page-hero{ background:radial-gradient(ellipse 60% 60% at 20% 30%, rgba(183,147,85,0.10) 0%, rgba(183,147,85,0) 60%), var(--ink); padding:10rem 1.75rem 5rem; text-align:left; }
  .page-hero .inner{ max-width:820px; }
  .page-hero .eyebrow{ background:none; color:var(--gold); padding:0 0 0.5rem; border-bottom:1px solid rgba(183,147,85,0.35); display:inline-block; margin-bottom:1.5rem; }
  .page-hero h1{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(2.2rem,4.4vw,3.6rem); line-height:1.1; color:var(--ivory); }
  .page-hero p{ color:#D8CDB0; font-family:'Cormorant Garamond',serif; font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.65; margin-top:1.2rem; max-width:620px; }
  .prose{ max-width:720px; margin:0 auto; }
  .prose h2{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(1.7rem,3vw,2.4rem); color:var(--ink); margin:3.5rem 0 1.2rem; line-height:1.2; }
  .prose h2:first-child{ margin-top:0; }
  .prose p{ margin-bottom:1.3rem; }
  .prose .lede{ font-family:'Cormorant Garamond',serif; font-size:1.25rem; line-height:1.65; color:var(--ink); }
  .chapter-mark{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--label); margin-bottom:0.5rem; }
  .pullquote{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.3rem,2.4vw,1.75rem); line-height:1.45; color:var(--ink); border-left:2px solid var(--gold); padding:0.4rem 0 0.4rem 1.6rem; margin:2.6rem 0; }
  .facts{ background:var(--parchment); border-radius:2px; padding:2rem 2.2rem; margin:2.6rem 0; }
  .facts h3{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--label); font-weight:400; margin-bottom:1rem; }
  .facts ul{ list-style:none; }
  .facts li{ padding:0.45rem 0; border-bottom:1px solid rgba(24,35,56,0.08); font-size:0.95rem; }
  .facts li:last-child{ border-bottom:none; }

  .booklist{ max-width:820px; margin:0 auto; }
  .bookrow{ display:grid; grid-template-columns:1fr; gap:0.7rem; padding:2.4rem 0; border-bottom:1px solid var(--line); }
  .bookrow:last-child{ border-bottom:none; }
  .bookrow .yr{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.12em; color:var(--label); text-transform:uppercase; }
  .bookrow h3{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.75rem; color:var(--ink); line-height:1.2; }
  .bookrow p{ font-size:0.97rem; }
  .bookrow .buy{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.3rem; align-self:start; justify-self:start; margin-top:0.4rem; transition:color .3s, border-color .3s; }
  .bookrow .buy:hover{ color:var(--amber); border-color:var(--amber); }
  .award{ display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.63rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); background:var(--label-bg); padding:0.3rem 0.6rem; border-radius:2px; }

  .crisis{ background:var(--ink); color:var(--ivory); border-radius:2px; padding:2.4rem 2.2rem; margin:0 auto 3.5rem; max-width:820px; }
  .crisis .eyebrow{ background:none; color:var(--gold); padding:0; margin-bottom:0.9rem; display:block; }
  .crisis h2{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.9rem; color:var(--ivory); margin-bottom:0.8rem; }
  .crisis p{ color:#C7CDD8; font-size:0.95rem; margin-bottom:1.4rem; }
  .crisis-lines{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1.3rem; }
  .crisis-lines div{ border-top:1px solid rgba(183,147,85,0.35); padding-top:0.9rem; }
  .crisis-lines .k{ font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:0.4rem; }
  .crisis-lines .v{ font-family:'Cormorant Garamond',serif; font-size:1.5rem; color:var(--ivory); line-height:1.2; }
  .crisis-lines a{ color:var(--ivory); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); }

  .reslist{ max-width:820px; margin:0 auto; }
  .resgroup{ margin-bottom:3rem; }
  .resgroup > h2{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.9rem; color:var(--ink); margin-bottom:0.4rem; }
  .resgroup > .sub{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--label); margin-bottom:1.6rem; }
  .res{ padding:1.4rem 0; border-bottom:1px solid var(--line); }
  .res:last-child{ border-bottom:none; }
  .res h3{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.3rem; color:var(--ink); margin-bottom:0.3rem; }
  .res p{ font-size:0.93rem; margin-bottom:0.5rem; }
  .res a{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.08em; color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.45); padding-bottom:0.2rem; }
  .res a:hover{ color:var(--amber); border-color:var(--amber); }
  .res .meta{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:var(--ink-soft); opacity:0.75; margin-top:0.5rem; line-height:1.6; }

  .eventcard{ max-width:760px; margin:0 auto 2rem; background:var(--parchment); border-radius:2px; padding:2.4rem 2.2rem; }
  .eventcard .when{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--label); margin-bottom:0.7rem; }
  .eventcard h3{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.9rem; color:var(--ink); line-height:1.2; margin-bottom:0.7rem; }
  .eventcard p{ font-size:0.97rem; margin-bottom:1.2rem; }
  .eventcard a.more{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.3rem; }
  .eventcard a.more:hover{ color:var(--amber); border-color:var(--amber); }
  .backlink{ text-align:center; padding-bottom:5rem; }
  .backlink a{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--label); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.3rem; }

/* ---- Events & Retreats page ---- */
.g-hero{ background:var(--ivory); padding:9.5rem 1.75rem 4rem; text-align:left; }
.g-hero .inner{ max-width:760px; }
.g-hero .eyebrow{ background:none; color:var(--label); padding:0 0 0.5rem; border-bottom:1px solid rgba(183,147,85,0.35); border-radius:0; }
.g-hero h1{ font-size:clamp(2.3rem,4.6vw,3.7rem); line-height:1.12; color:var(--ink); }
.g-hero p{ font-size:clamp(1.02rem,1.6vw,1.18rem); line-height:1.7; color:var(--ink-soft); margin-top:1.3rem; max-width:600px; }
.g-hero p + p{ margin-top:1rem; }

.chip{ display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase; padding:0.4rem 0.9rem; border-radius:99px; margin-bottom:1rem; }
.chip-gold{ background:var(--label-bg); color:var(--label); }
.chip-outline{ background:transparent; border:1px solid var(--line); color:var(--ink-soft); }

.featured-wrap{ background:var(--ivory); padding-top:1rem; }
.featured-card{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; border-radius:4px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(24,35,56,0.35); }
.featured-photo{ background-size:cover; background-position:center; min-height:560px; }
.featured-content{ background:var(--ink); color:#C7CDD8; padding:3rem 2.6rem; display:flex; flex-direction:column; justify-content:center; }
.featured-content .chip-gold{ background:rgba(183,147,85,0.16); color:var(--gold); }
.featured-content h2{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(1.8rem,3vw,2.3rem); color:var(--ivory); line-height:1.15; margin-bottom:0.2rem; }
.featured-content .sub-title{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.15rem; color:var(--gold); margin-bottom:1.2rem; }
.featured-content .meta{ font-family:'IBM Plex Mono',monospace; font-size:0.74rem; letter-spacing:0.06em; color:#9AA4B8; line-height:1.9; margin-bottom:1.5rem; }
.featured-content p{ font-size:0.93rem; line-height:1.7; margin-bottom:1.1rem; color:#C7CDD8; }
.featured-strip{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); margin:1.2rem 0 1.6rem; padding-top:1.3rem; border-top:1px solid rgba(183,147,85,0.25); }
.featured-content .cta-dark{ align-self:flex-start; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); text-decoration:none; border-bottom:1px solid rgba(183,147,85,0.5); padding-bottom:0.35rem; transition:color .3s ease, border-color .3s ease; }
.featured-content .cta-dark:hover{ color:var(--ivory); border-color:var(--ivory); }
@media (max-width:860px){ .featured-card{ grid-template-columns:1fr; } .featured-photo{ min-height:320px; } }

.timeline-wrap{ background:var(--parchment); }
.timeline-head{ text-align:center; max-width:640px; margin:0 auto 3.5rem; }
.timeline-head h2{ font-size:clamp(1.9rem,4vw,2.6rem); color:var(--ink); margin-bottom:0.8rem; }
.timeline-head p{ font-size:0.98rem; color:var(--ink-soft); }
.timeline{ position:relative; max-width:740px; margin:0 auto; padding-left:2.6rem; }
.timeline::before{ content:''; position:absolute; left:5px; top:4px; bottom:4px; width:2px; background:var(--ink); opacity:0.14; }
.timeline-item{ position:relative; margin-bottom:2.6rem; }
.timeline-item:last-child{ margin-bottom:0; }
.timeline-item::before{ content:''; position:absolute; left:-2.6rem; top:0.35rem; width:12px; height:12px; border-radius:50%; background:var(--ivory); border:3px solid var(--gold); }
.timeline-card{ background:var(--ivory); border-radius:2px; padding:2.1rem 2.3rem; box-shadow:0 16px 32px -20px rgba(24,35,56,0.18); }
.timeline-card .tdate{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:0.8rem; }
.timeline-card h3{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.5rem; color:var(--ink); margin-bottom:0.2rem; }
.timeline-card .tloc{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--label); margin-bottom:1rem; }
.timeline-card p{ font-size:0.92rem; color:var(--ink-soft); margin-bottom:0.9rem; }
.timeline-card .pillars-line{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.06em; color:var(--label); margin-bottom:1rem; }
.timeline-card .status-note{ display:inline-block; margin-top:0.3rem; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); font-style:italic; }
@media (max-width:600px){ .timeline{ padding-left:1.8rem; } .timeline-item::before{ left:-1.8rem; } .timeline-card{ padding:1.8rem 1.5rem; } }

.g-quote{ position:relative; background-size:cover; background-position:center; padding:8rem 1.75rem; text-align:center; }
.g-quote::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(24,35,56,0.55) 0%, rgba(24,35,56,0.72) 100%); }
.g-quote .inner{ position:relative; max-width:620px; }
.g-quote h2{ font-weight:500; font-size:clamp(1.9rem,3.6vw,2.6rem); color:var(--ivory); line-height:1.25; margin-bottom:1.2rem; }
.g-quote p{ font-family:'Work Sans',sans-serif; font-size:1rem; font-weight:300; color:#E4DFD2; line-height:1.7; }

.g-invite{ background:var(--ivory); text-align:center; }
.g-invite .inner{ max-width:680px; }
.g-invite h2{ font-size:clamp(1.9rem,4vw,2.5rem); color:var(--ink); margin-bottom:1rem; }
.g-invite p{ font-size:0.98rem; color:var(--ink-soft); margin-bottom:1.4rem; }
.g-invite .categories{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--label); margin-bottom:2rem; line-height:2; }
.g-invite .cta-light{ font-family:'IBM Plex Mono',monospace; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.35rem; transition:color .3s ease, border-color .3s ease; }
.g-invite .cta-light:hover{ color:var(--amber); border-color:var(--amber); }

.g-stay{ background:var(--parchment); text-align:center; }
.g-stay .inner{ max-width:640px; }
.g-stay h2{ font-size:clamp(1.7rem,3.6vw,2.2rem); color:var(--ink); margin-bottom:0.9rem; }
.g-stay p{ font-size:0.98rem; color:var(--ink-soft); margin-bottom:1.6rem; }
.g-stay .cta-light{ display:inline-block; margin-bottom:2rem; font-family:'IBM Plex Mono',monospace; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.35rem; transition:color .3s ease, border-color .3s ease; }
.g-stay .cta-light:hover{ color:var(--amber); border-color:var(--amber); }
.g-stay .social-row{ display:flex; gap:1.8rem; justify-content:center; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; }
.g-stay .social-row a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:0.3rem; transition:color .3s ease, border-color .3s ease; }
.g-stay .social-row a:hover{ color:var(--amber); border-color:var(--amber); }
