/* ---------- tokens ---------- */
  :root{
    --birch:#eef0e8;
    --birch-2:#e2e6da;
    --panel:#ffffff;
    --ink:#182119;
    --ink-soft:#4a564c;
    --ink-faint:#7c8778;
    --ore:#a4402a;
    --ore-deep:#7c2e1d;
    --teal:#1f5c63;
    --teal-deep:#164047;
    --pine:#1c2e23;
    --pine-2:#243b2c;
    --pine-ink:#e9ede5;
    --line:rgba(24,33,25,0.12);
    --line-strong:rgba(24,33,25,0.22);
    --shadow:0 1px 2px rgba(24,33,25,0.04), 0 22px 50px -26px rgba(24,33,25,0.24);
    --radius:14px;
    --hero-ink:#f4f1e8;
    --hero-ink-soft:rgba(244,241,232,0.82);
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --birch:#0f1712;
      --birch-2:#152019;
      --panel:#182119;
      --ink:#eaeee3;
      --ink-soft:#aab6a3;
      --ink-faint:#7c8977;
      --ore:#d0674a;
      --ore-deep:#e88562;
      --teal:#4f9aa1;
      --teal-deep:#6fb3b9;
      --pine:#0b120d;
      --pine-2:#121d15;
      --pine-ink:#e9ede5;
      --line:rgba(234,238,227,0.14);
      --line-strong:rgba(234,238,227,0.26);
      --shadow:0 1px 2px rgba(0,0,0,0.35), 0 22px 50px -22px rgba(0,0,0,0.6);
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --birch:#0f1712;
    --birch-2:#152019;
    --panel:#182119;
    --ink:#eaeee3;
    --ink-soft:#aab6a3;
    --ink-faint:#7c8977;
    --ore:#d0674a;
    --ore-deep:#e88562;
    --teal:#4f9aa1;
    --teal-deep:#6fb3b9;
    --pine:#0b120d;
    --pine-2:#121d15;
    --pine-ink:#e9ede5;
    --line:rgba(234,238,227,0.14);
    --line-strong:rgba(234,238,227,0.26);
    --shadow:0 1px 2px rgba(0,0,0,0.35), 0 22px 50px -22px rgba(0,0,0,0.6);
    color-scheme: dark;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; }
  body{
    margin:0;
    background:var(--birch);
    color:var(--ink);
    font-family:"Lora", Georgia, serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  h1,h2,h3{
    font-family:"Fraunces", Georgia, serif;
    font-weight:500;
    line-height:1.1;
    margin:0;
    text-wrap:balance;
    letter-spacing:-0.005em;
  }
  .mono{ font-family:"IBM Plex Mono", ui-monospace, monospace; font-variant-numeric:tabular-nums; }
  .eyebrow{
    font-family:"Fraunces", Georgia, serif;
    font-style:italic;
    font-weight:500;
    font-size:0.92rem;
    letter-spacing:0.03em;
    color:var(--ore-deep);
  }
  .wrap{ max-width:1120px; margin:0 auto; padding-left:28px; padding-right:28px; }
  @media (max-width:640px){ .wrap{ padding-left:20px; padding-right:20px; } }

  [hidden]{ display:none !important; }

  /* ---------- top bar ---------- */
  .topbar{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--birch) 88%, transparent);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .topbar-row{
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; padding:14px 0;
  }
  .brand{
    display:flex; align-items:baseline; gap:10px;
    font-family:"Fraunces", serif; font-weight:600; font-size:1.05rem;
    letter-spacing:-0.01em;
  }
  .brand .mark{
    display:inline-flex; align-items:center; justify-content:center;
    width:30px; height:30px; border-radius:50%;
    background:var(--ore); color:#fdf6ef;
    font-family:"IBM Plex Mono", monospace; font-size:0.72rem; font-weight:600;
    flex:none;
  }
  .brand .addr-short{ color:var(--ink-soft); font-family:"Lora",serif; font-style:italic; font-weight:500; font-size:0.88rem; }
  .topbar .cta{
    font-size:0.82rem; font-weight:600; letter-spacing:0.02em;
    padding:9px 18px; border-radius:999px;
    background:var(--pine); color:var(--pine-ink);
    text-decoration:none; white-space:nowrap;
    transition:transform .15s ease, background .15s ease;
  }
  .topbar .cta:hover{ background:var(--ore); }
  .topbar .cta:focus-visible{ outline:2px solid var(--ore); outline-offset:2px; }

  /* ---------- hero ---------- */
  .hero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
  .hero-photo{ position:absolute; inset:0; z-index:0; }
  .hero-slide{
    position:absolute; inset:0;
    background-size:cover; background-position:center 68%;
    opacity:0; transition:opacity 1.8s ease;
    filter:brightness(1.14) saturate(1.05);
  }
  .hero-slide.is-active{ opacity:1; }
  .hero-scrim{
    position:absolute; inset:0; z-index:0;
    background:linear-gradient(100deg, rgba(20,26,20,0.80) 0%, rgba(20,26,20,0.62) 32%, rgba(20,26,20,0.30) 58%, rgba(20,26,20,0.14) 78%, rgba(20,26,20,0.22) 100%);
  }
  .hero-dots{ position:absolute; right:32px; bottom:30px; z-index:2; display:flex; gap:9px; }
  @media (max-width:640px){ .hero-dots{ right:20px; bottom:16px; } }
  .hero-dots button{
    width:7px; height:7px; border-radius:50%; padding:0; border:1px solid rgba(244,241,232,0.7);
    background:rgba(244,241,232,0.25); cursor:pointer; transition:background .2s ease, transform .2s ease;
  }
  .hero-dots button.is-active{ background:var(--hero-ink); transform:scale(1.35); }
  .hero-inner{ position:relative; z-index:1; padding:96px 0 72px; }
  @media (max-width:640px){ .hero-inner{ padding:60px 0 48px; } }
  h1.headline{
    font-size:clamp(2.6rem, 6.4vw, 5rem);
    max-width:16ch;
    margin-bottom:20px;
    letter-spacing:-0.01em;
    color:var(--hero-ink);
  }
  h1.headline em{ font-style:italic; color:var(--ore); font-weight:500; }
  .hero-sub{
    font-size:1.12rem; color:var(--hero-ink-soft); max-width:46ch; margin-bottom:40px;
  }
  .stamp-row{
    display:flex; flex-wrap:wrap; gap:12px;
    max-width:100%;
    margin-bottom:36px;
  }
  .stamp{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:15px 22px;
    min-width:106px;
  }
  .stamp .n{ font-family:"Fraunces", serif; font-weight:500; font-size:1.3rem; }
  .stamp .l{ font-family:"IBM Plex Mono", monospace; font-size:0.62rem; font-weight:400; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-faint); margin-top:5px; display:block; }
  .stamp.price{ background:var(--pine); border-color:var(--pine); }
  .stamp.price .n{ color:var(--pine-ink); }
  .stamp.price .l{ color:color-mix(in srgb, var(--pine-ink) 65%, transparent); }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
  .btn-primary{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--ore); color:#fdf6ef;
    font-weight:600; font-size:0.94rem; letter-spacing:0.01em;
    padding:16px 30px; border-radius:999px;
    text-decoration:none; box-shadow:0 14px 28px -14px rgba(164,64,42,0.55);
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
  }
  .btn-primary:hover{ background:var(--ore-deep); transform:translateY(-2px); box-shadow:0 18px 32px -14px rgba(164,64,42,0.6); }
  .btn-primary:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
  .btn-ghost{
    display:inline-flex; align-items:center; gap:8px;
    color:var(--ink); font-weight:600; font-size:0.95rem;
    text-decoration:none; border-bottom:1px solid var(--line-strong);
    padding-bottom:2px;
  }
  .btn-ghost:hover{ border-color:var(--ore); color:var(--ore); }
  .hero .btn-ghost{ color:var(--hero-ink); border-bottom-color:rgba(244,241,232,0.4); }
  .hero .btn-ghost:hover{ border-color:var(--ore); color:var(--ore); }

  /* ---------- section scaffolding ---------- */
  section{ padding:96px 0; }
  @media (max-width:640px){ section{ padding:60px 0; } }
  @media (max-width:640px){ section{ padding:52px 0; } }
  .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:42px; flex-wrap:wrap; }
  .section-head h2{ font-size:clamp(1.7rem,3.4vw,2.4rem); }
  .section-head .num{ font-family:"Lora",serif; font-style:italic; color:var(--ink-faint); font-size:0.95rem; }
  .alt{ background:var(--birch-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

  /* ---------- the place (prose) ---------- */
  .place-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start; }
  @media (max-width:820px){ .place-grid{ grid-template-columns:1fr; gap:32px; } }
  .prose p{ margin:0 0 1.1em; color:var(--ink-soft); font-size:1.03rem; max-width:60ch; }
  .prose p:last-child{ margin-bottom:0; }
  .prose strong{ color:var(--ink); font-weight:700; }
  .quick-facts{ border:1px solid var(--line-strong); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
  .quick-facts dl{ margin:0; display:grid; grid-template-columns:1fr auto; }
  .quick-facts .row{ display:contents; }
  .quick-facts dt, .quick-facts dd{ padding:13px 20px; margin:0; border-bottom:1px solid var(--line); font-size:0.92rem; }
  .quick-facts .row:last-child dt, .quick-facts .row:last-child dd{ border-bottom:none; }
  .quick-facts dt{ color:var(--ink-soft); font-weight:500; }
  .quick-facts dd{ font-family:"Fraunces",serif; font-weight:500; text-align:right; }

  /* ---------- full description trigger + modal ---------- */
  .desc-trigger{
    display:inline-flex; align-items:center; gap:8px;
    margin-top:8px;
    background:none; border:none; padding:0; cursor:pointer;
    font-family:"Lora",serif; font-style:italic;
    color:var(--ink); font-weight:600; font-size:0.98rem;
    border-bottom:1px solid var(--line-strong); padding-bottom:2px;
    transition:border-color .2s ease, color .2s ease;
  }
  .desc-trigger:hover{ border-color:var(--ore); color:var(--ore-deep); }
  .desc-trigger:focus-visible{ outline:2px solid var(--ore); outline-offset:3px; }
  .desc-modal{
    position:fixed; inset:0; z-index:60;
    display:flex; align-items:flex-start; justify-content:center;
    padding:56px 20px;
    background:rgba(24,33,25,0.55);
    overflow-y:auto;
  }
  .desc-modal-panel{
    position:relative;
    background:var(--panel);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    max-width:720px; width:100%;
    padding:48px 52px 52px;
    margin:auto;
  }
  @media (max-width:640px){ .desc-modal{ padding:0; } .desc-modal-panel{ border-radius:0; min-height:100%; padding:76px 24px 48px; } }
  .desc-modal-close{
    position:absolute; top:18px; right:18px;
    width:38px; height:38px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--birch-2); border:1px solid var(--line);
    color:var(--ink); font-size:1.3rem; line-height:1; cursor:pointer;
    transition:background .2s ease, color .2s ease;
  }
  .desc-modal-close:hover{ background:var(--ore); color:#fdf6ef; }
  .desc-modal-body h3{ font-size:clamp(1.4rem,2.6vw,1.8rem); margin-bottom:6px; max-width:26ch; }
  .desc-modal-body .lede{ font-family:"Lora",serif; font-style:italic; color:var(--ink-soft); font-size:1.02rem; margin:0 0 22px; }
  .desc-modal-body p{ margin:0 0 1.1em; color:var(--ink-soft); font-size:1rem; line-height:1.62; }
  .desc-modal-body p:last-child{ margin-bottom:0; }
  .desc-modal-body strong{ color:var(--ink); font-weight:700; }
  .desc-modal-subhead{ font-family:"Fraunces",serif; font-weight:500; font-size:1.05rem; margin:30px 0 14px; padding-top:22px; border-top:1px solid var(--line); }
  .desc-modal-facts{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
  .desc-modal-facts li{ position:relative; padding-left:18px; color:var(--ink-soft); font-size:0.9rem; line-height:1.5; }
  .desc-modal-facts li::before{ content:"–"; position:absolute; left:0; color:var(--ore-deep); }
  .desc-modal-facts strong{ color:var(--ink); font-weight:700; }

  /* ---------- scenery illustrations ---------- */
  .scenery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  @media (max-width:900px){ .scenery-grid{ grid-template-columns:1fr; } }
  .scene{ margin:0; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; transition:transform .35s ease, box-shadow .35s ease; }
  .scene:hover{ transform:translateY(-4px); box-shadow:0 1px 2px rgba(24,33,25,0.06), 0 30px 60px -26px rgba(24,33,25,0.32); }
  .scene img{ transition:transform .6s ease; }
  .scene:hover img{ transform:scale(1.04); }
  .scene svg{ width:100%; height:auto; display:block; aspect-ratio:4/3; transition:transform .6s ease; }
  .scene:hover svg{ transform:scale(1.04); }
  .scene img{ width:100%; height:auto; display:block; aspect-ratio:4/3; object-fit:cover; }
  .scene-cap{ display:flex; flex-direction:column; gap:4px; padding:18px 20px 20px; }
  .scene-title{ font-family:"Fraunces",serif; font-weight:500; font-size:1.02rem; letter-spacing:-0.005em; }
  .scene-desc{ font-family:"Lora",serif; font-style:italic; color:var(--ink-soft); font-size:0.88rem; line-height:1.45; }

  /* ---------- signpost / distances ---------- */
  .signpost{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:820px){ .signpost{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .signpost{ grid-template-columns:1fr; } }
  .marker{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:28px 26px; position:relative; }
  .marker .time{ font-family:"Fraunces",serif; font-weight:500; font-style:italic; font-size:1.7rem; color:var(--teal-deep); display:block; margin-bottom:4px; }
  .marker .time .u{ font-family:"Lora",serif; font-style:normal; font-size:0.85rem; font-weight:500; color:var(--ink-faint); margin-left:4px; }
  .marker .dest{ font-weight:600; font-size:1.02rem; margin:6px 0 8px; display:block; font-family:"Lora",serif; }
  .marker .desc{ color:var(--ink-soft); font-size:0.9rem; margin:0; }
  .marker.hero-marker{ background:var(--pine); border-color:var(--pine); }
  .marker.hero-marker .time{ color:var(--ore); }
  .marker.hero-marker .time .u{ color:color-mix(in srgb, var(--pine-ink) 60%, transparent); }
  .marker.hero-marker .dest, .marker.hero-marker .desc{ color:var(--pine-ink); }
  .marker.hero-marker .desc{ color:color-mix(in srgb, var(--pine-ink) 72%, transparent); }

  /* ---------- as the crow flies ---------- */
  .crow-flies{ margin-top:52px; padding-top:48px; border-top:1px solid var(--line); }
  .crow-head{ text-align:center; max-width:520px; margin:0 auto 8px; }
  .crow-head h3{ font-size:clamp(1.3rem,2.4vw,1.6rem); margin-bottom:6px; }
  .crow-sub{ font-family:"Lora",serif; font-style:italic; color:var(--ink-faint); font-size:0.95rem; margin:0; }
  .crow-wrap{ max-width:720px; margin:0 auto; }
  .crow-graphic{ width:100%; height:auto; display:block; }
  .crow-line{ stroke:var(--ink-faint); stroke-width:1.6; stroke-dasharray:5 6; fill:none; }
  .crow-pin{ fill:var(--ore); stroke:var(--panel); stroke-width:2.5; }
  .crow-house{ fill:var(--pine); }
  .crow-door{ fill:var(--ore); }
  .crow-house-label{ font-family:"IBM Plex Mono", monospace; font-size:11px; letter-spacing:0.06em; fill:var(--ink-faint); text-transform:uppercase; }
  .crow-name{ font-family:"Lora",serif; font-weight:600; font-size:15px; fill:var(--ink); }
  .crow-time{ font-family:"Fraunces",serif; font-style:italic; font-weight:500; font-size:14px; fill:var(--ore-deep); }
  .crow-land{ fill:#e7ecdb; stroke:var(--line-strong); stroke-width:1.5; }
  .crow-lake{ fill:#8fb7c4; stroke:#5f8fa0; stroke-width:1.5; opacity:0.9; }
  .crow-bearhead{ fill:#8fb7c4; stroke:#5f8fa0; stroke-width:1.2; opacity:0.9; }
  .crow-island{ fill:#e7ecdb; stroke:#5f8fa0; stroke-width:1; }
  .crow-road{ fill:none; stroke:#c7b89a; stroke-width:3; stroke-linecap:round; opacity:0.8; }
  .crow-lake-label{ font-family:"Fraunces",serif; font-style:italic; font-weight:500; font-size:15px; fill:#3d6672; }
  .crow-tree{ fill:var(--pine-2); }
  .crow-trunk{ fill:#6b4a34; }
  .crow-compass path{ fill:var(--ink-faint); }
  .crow-compass text{ font-family:"IBM Plex Mono", monospace; font-size:10px; letter-spacing:0.05em; fill:var(--ink-faint); }
  .crow-trail{ fill:none; stroke:#b9a67e; stroke-width:3.5; stroke-linecap:round; stroke-dasharray:1 8; opacity:0.9; }
  .crow-trail-label{ font-family:"IBM Plex Mono", monospace; font-size:11px; letter-spacing:0.05em; fill:#8a7550; text-transform:uppercase; }
  .crow-leader{ stroke:var(--ink-faint); stroke-width:1; opacity:0.55; }
  .crow-icon path, .crow-icon line, .crow-icon circle, .crow-icon rect{ fill:var(--ore); stroke:none; }
  .crow-icon .crow-icon-ring{ fill:none; stroke:var(--panel); stroke-width:1.4; }
  .crow-icon .crow-icon-hole{ fill:var(--panel); }
  .crow-icon line{ stroke:var(--ore); stroke-width:1.6; fill:none; }

  /* ---------- home features ---------- */
  .spec-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:48px; }
  @media (max-width:820px){ .spec-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:480px){ .spec-grid{ grid-template-columns:repeat(2,1fr); } }
  .spec{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 18px; text-align:left; }
  .spec .n{ font-family:"Fraunces",serif; font-weight:500; font-size:1.55rem; display:block; }
  .spec .l{ font-family:"IBM Plex Mono",monospace; font-weight:400; font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); margin-top:7px; display:block; }
  .feature-list{ columns:2; column-gap:48px; }
  @media (max-width:640px){ .feature-list{ columns:1; } }
  .feature-list .f{ break-inside:avoid; display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
  .feature-list .f svg{ flex:none; margin-top:3px; color:var(--teal-deep); }
  .feature-list .f-title{ font-weight:600; font-size:0.98rem; display:block; font-family:"Lora",serif; }
  .feature-list .f-desc{ color:var(--ink-soft); font-size:0.89rem; margin-top:3px; }

  /* ---------- gallery ---------- */
  .gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:820px){ .gallery{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .gallery{ grid-template-columns:1fr; } }
  .shot{
    aspect-ratio:4/3; border-radius:var(--radius); border:1px solid var(--line);
    background:var(--panel); box-shadow:var(--shadow);
    position:relative; overflow:hidden;
    transition:transform .35s ease, box-shadow .35s ease;
  }
  .shot:hover{ transform:translateY(-4px); box-shadow:0 1px 2px rgba(24,33,25,0.06), 0 30px 60px -26px rgba(24,33,25,0.32); }
  .shot img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; cursor:zoom-in; }

  /* ---------- lightbox ---------- */
  .lightbox{ position:fixed; inset:0; z-index:300; background:rgba(12,16,13,0.94); display:flex; align-items:center; justify-content:center; padding:56px; }
  .lightbox[hidden]{ display:none; }
  .lightbox-img{ max-width:min(90vw,1150px); max-height:84vh; width:auto; height:auto; display:block; border-radius:10px; box-shadow:0 40px 90px -24px rgba(0,0,0,0.65); }
  .lightbox-close, .lightbox-nav{
    position:absolute; display:flex; align-items:center; justify-content:center;
    background:rgba(244,241,232,0.12); color:var(--hero-ink); border:1px solid rgba(244,241,232,0.28);
    border-radius:50%; cursor:pointer; transition:background .25s ease, transform .25s ease;
  }
  .lightbox-close:hover, .lightbox-nav:hover{ background:rgba(244,241,232,0.22); }
  .lightbox-close{ top:22px; right:26px; width:44px; height:44px; font-size:1.6rem; line-height:1; }
  .lightbox-nav{ top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:1.9rem; line-height:1; }
  .lightbox-nav:hover{ transform:translateY(-50%) scale(1.06); }
  .lightbox-prev{ left:18px; }
  .lightbox-next{ right:18px; }
  .lightbox-count{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); font-family:"IBM Plex Mono", monospace; font-size:0.8rem; letter-spacing:0.06em; color:var(--hero-ink-soft); }
  @media (max-width:640px){
    .lightbox{ padding:20px; }
    .lightbox-nav{ width:44px; height:44px; font-size:1.5rem; }
    .lightbox-prev{ left:6px; } .lightbox-next{ right:6px; }
  }
  .shot:hover img{ transform:scale(1.04); }
  .shot .cap{
    position:absolute; left:0; right:0; bottom:0; padding:10px 14px 11px;
    font-family:"Lora",serif; font-style:italic; font-size:0.85rem; color:#f4f1e8;
    background:linear-gradient(180deg, rgba(15,20,15,0) 0%, rgba(15,20,15,0.68) 65%, rgba(15,20,15,0.85) 100%);
  }

  /* ---------- contact / footer ---------- */
  .contact{ background:var(--pine); color:var(--pine-ink); border-top:1px solid var(--line); }
  .contact h2{ color:var(--pine-ink); }
  .contact-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start; }
  @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact p{ color:color-mix(in srgb, var(--pine-ink) 78%, transparent); max-width:52ch; font-size:1.02rem; }
  .contact-card{ background:color-mix(in srgb, var(--pine-ink) 6%, transparent); border:1px solid color-mix(in srgb, var(--pine-ink) 20%, transparent); border-radius:var(--radius); padding:30px; }
  .contact-card .addr{ font-family:"Fraunces",serif; font-size:1.3rem; font-weight:600; margin-bottom:18px; }
  .contact-card a.email{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    color:var(--pine-ink); text-decoration:none; font-weight:600;
    padding:14px 0; border-top:1px solid color-mix(in srgb, var(--pine-ink) 18%, transparent);
  }
  .contact-card a.email:hover{ color:var(--ore); }
  .contact-card .note{ font-size:0.82rem; color:color-mix(in srgb, var(--pine-ink) 62%, transparent); margin-top:14px; }
  footer.site-footer{ background:var(--pine); border-top:1px solid color-mix(in srgb, var(--pine-ink) 14%, transparent); padding:22px 0; }
  footer.site-footer .row{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:0.85rem; color:color-mix(in srgb, var(--pine-ink) 55%, transparent); font-family:"Lora",serif; font-style:italic; }

  @media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; } }
