/* TejasVentures — shared site styles */
  :root{
    /* gold and sage theme */
    --ink:#18221B;          /* deep green-black: footer, intro */
    --ink-2:#223027;
    --paper:#E4EBE2;        /* light sage: about, contact */
    --paper-dim:#C7D3C3;    /* sage placeholder behind photos */
    --linen:#F6F8F3;        /* near-white sage: gallery, field */
    --sand:#CFDACB;         /* mid sage: story band */
    --moss:#33473A;         /* deep sage: expeditions */
    --amber:#CFA64B;        /* gold on dark */
    --amber-deep:#8A6618;   /* gold on light */
    --rust:#8A6618;
    --dusk:#3E4C63;
    --on-dark:#F2EFE3;
    --on-dark-dim:rgba(242,239,227,.66);
    --on-paper:#1E2B22;
    --on-paper-dim:rgba(30,43,34,.66);
    --font-display:'Fraunces', serif;
    --font-body:'Work Sans', sans-serif;
    --ease:cubic-bezier(.22,.61,.36,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; scroll-padding-top:calc(70px + env(safe-area-inset-top,0px));}
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
  body{
    background:var(--ink);
    color:var(--on-dark);
    font-family:var(--font-body);
    font-weight:400;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    overflow-x:hidden;
  }
  img,svg{display:block; max-width:100%;}
  .hero .scene, .portrait, .story-img, .frame, .isq, .lb-img{position:relative;}
  .hero .scene::after, .portrait::after, .story-img::after, .frame::after, .isq::after, .lb-img::after{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
    background:radial-gradient(120% 100% at 50% 60%, transparent 55%, rgba(10,11,8,.35) 100%);
  }
  a{color:inherit; text-decoration:none;}
  button{font:inherit; color:inherit; background:none; border:none; cursor:pointer;}
  ::selection{background:var(--amber); color:var(--ink);}

  .wrap{max-width:1240px; margin:0 auto; padding-left:6vw; padding-right:6vw;}
  @media (max-width:700px){ .wrap{padding-left:24px; padding-right:24px;} }

  /* ---------- Custom cursor ring ---------- */
  .ring{
    position:fixed; top:0; left:0; width:34px; height:34px; border-radius:50%;
    border:1px solid rgba(242,239,227,.55); pointer-events:none; z-index:900;
    transform:translate(-50%,-50%); transition:width .25s var(--ease), height .25s var(--ease), border-color .25s var(--ease), opacity .3s;
    mix-blend-mode:difference; opacity:0;
  }
  .ring.show{opacity:1;}
  .ring.big{width:64px; height:64px; border-color:var(--amber);}
  @media (hover:none), (pointer:coarse){ .ring{display:none;} }

  /* ---------- Nav ---------- */
  /* ---------- Nav: centred logo ---------- */
  .site-nav{
    position:fixed; top:0; left:0; right:0; z-index:500;
    display:grid; grid-template-columns:1fr auto 1fr; align-items:center; column-gap:2.5rem;
    padding:20px 6vw 16px; padding-top:calc(20px + env(safe-area-inset-top,0px));
    transition:background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
    background:rgba(0,0,0,.45); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(242,239,227,.3);
  }
  @media (max-width:700px){ .site-nav{padding-left:24px; padding-right:24px;} }
  .site-nav.solid{
    background:rgba(0,0,0,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    padding-top:calc(10px + env(safe-area-inset-top,0px)); padding-bottom:10px;
    border-bottom:1px solid rgba(242,239,227,.22);
  }
  .nav-open .site-nav{backdrop-filter:none; -webkit-backdrop-filter:none;}
  .brand{grid-column:2; grid-row:1; justify-self:center; display:flex; flex-direction:column; align-items:center; gap:.45rem; font-family:var(--font-display); font-size:1.02rem; font-weight:600; letter-spacing:.04em; position:relative; z-index:600; text-align:center;}
  .brand img{width:300px; max-width:56vw; height:auto; aspect-ratio:3/1; flex:none; object-fit:cover; object-position:50% 50%; -webkit-mask-image:linear-gradient(transparent, #000 18%, #000 82%, transparent); mask-image:linear-gradient(transparent, #000 18%, #000 82%, transparent); transition:width .35s var(--ease);}
  .brand span{display:block; max-height:1.6em; overflow:hidden; transition:max-height .35s var(--ease), opacity .3s var(--ease);}
  .site-nav.solid .brand{gap:0;}
  .site-nav.solid .brand img{width:210px;}
  .site-nav.solid .brand span{max-height:0; opacity:0;}
  .nav-links{display:contents;}
  .nav-group{grid-row:1; display:flex; align-items:center; gap:2.2rem; font-size:.92rem;}
  .nav-left{grid-column:1; justify-self:start;}
  .nav-right{grid-column:3; justify-self:end;}
  .nav-group a{position:relative; padding-bottom:3px; white-space:nowrap;}
  .nav-group a::after{content:"";position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--amber); transition:right .3s var(--ease);}
  .nav-group a:hover::after{right:0;}
  .nav-group a.nav-book{color:var(--amber);}
  .nav-group a.nav-book::after{right:0;}
  .nav-group a:focus-visible, .brand:focus-visible{outline:2px solid var(--amber); outline-offset:4px;}
  @media (max-width:1000px){ .site-nav{column-gap:1.5rem;} .nav-group{gap:1.4rem; font-size:.86rem;} }
  .nav-toggle{display:none; width:26px; height:20px; position:relative; z-index:600; grid-column:3; grid-row:1; justify-self:end;}
  .nav-toggle span{position:absolute; left:0; right:0; height:1px; background:var(--on-dark); transition:transform .3s var(--ease), opacity .3s var(--ease);}
  .nav-toggle span:nth-child(1){top:0;} .nav-toggle span:nth-child(2){top:9px;} .nav-toggle span:nth-child(3){top:18px;}
  .nav-open .nav-toggle span:nth-child(1){transform:translateY(9px) rotate(45deg);}
  .nav-open .nav-toggle span:nth-child(2){opacity:0;}
  .nav-open .nav-toggle span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
  @media (max-width:860px){
    .site-nav{padding-top:calc(14px + env(safe-area-inset-top,0px)); padding-bottom:12px;}
    .brand img{width:220px;}
    .brand span{font-size:.9rem;}
    .site-nav.solid .brand img{width:180px;}
    .nav-links{display:flex; position:fixed; inset:0; background:var(--ink); flex-direction:column; justify-content:center; align-items:flex-start; gap:1.6rem; padding:0 32px; transform:translateY(-100%); visibility:hidden; overflow-y:auto; transition:transform .5s var(--ease), visibility 0s .5s; z-index:550;}
    .nav-group{flex-direction:column; align-items:flex-start; gap:1.6rem; font-size:1.6rem; font-family:var(--font-display);}
    .nav-open .nav-links{transform:translateY(0); visibility:visible; transition:transform .5s var(--ease);}
    .nav-toggle{display:block;}
  }

  /* ---------- Hero ---------- */
  .hero{position:relative; height:100svh; min-height:560px; overflow:hidden;}
  .hero .scene{position:absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;}
  .hero .scene svg, .hero .scene img{width:100%; height:100%; object-fit:cover;}
  .hero::before{content:"";position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,29,23,.82) 0%, rgba(20,29,23,.4) 34%, rgba(20,29,23,.06) 58%, transparent 74%); z-index:5; pointer-events:none;}
  .hero-content{position:relative; z-index:10; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:0 6vw 200px;}
  @media (max-width:700px){ .hero-content{padding:0 24px 170px;} }
  .kicker{font-size:.82rem; color:var(--on-dark-dim); margin-bottom:1.1rem; max-width:30ch;}
  .hero h1{
    font-family:var(--font-display); font-style:normal; font-weight:400;
    font-size:clamp(2.1rem, 6vw, 4.6rem); line-height:1.06; max-width:16ch;
    opacity:0; transform:translateY(24px); animation:heroIn 1.1s 3s var(--ease) forwards;
  }
  @media (prefers-reduced-motion:reduce){ .hero h1{opacity:1; transform:none; animation:none;} }
  @keyframes heroIn{ to{opacity:1; transform:translateY(0);} }
  /* hero carousel */
  .hero .slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s var(--ease);}
  .hero .slide.on{opacity:1;}
  .hero .slide img{transform:scale(1.001);}
  .hero .slide.on img{animation:slideDrift 9s linear forwards;}
  @keyframes slideDrift{ from{transform:scale(1.001);} to{transform:scale(1.07);} }
  .hero-ctrl{position:absolute; left:50%; bottom:40px; transform:translateX(-50%); z-index:12; display:flex; align-items:center; gap:1.1rem;}
  .hero-arrow{width:44px; height:44px; border-radius:50%; border:1px solid rgba(242,239,227,.35); color:var(--on-dark); background:rgba(24,34,27,.35); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); font-size:1.1rem; line-height:1; cursor:pointer; transition:background .25s, border-color .25s;}
  .hero-arrow:hover{background:rgba(24,34,27,.7); border-color:var(--amber);}
  .hero-dots{display:flex; align-items:center; gap:.2rem;}
  .hero-dot{width:34px; height:30px; background:none; border:0; cursor:pointer; position:relative;}
  .hero-dot::before{content:""; position:absolute; left:4px; right:4px; top:50%; height:2px; margin-top:-1px; background:rgba(242,239,227,.35); transition:background .3s;}
  .hero-dot:hover::before{background:rgba(242,239,227,.7);}
  .hero-dot.on::before{background:var(--amber);}
  .hero-arrow:focus-visible, .hero-dot:focus-visible{outline:2px solid var(--amber); outline-offset:2px;}
  .ticket p{transition:opacity .4s;}
  .ticket.swap p{opacity:0;}
  @media (max-width:700px){
    .hero-ctrl{left:auto; right:24px; bottom:34px; transform:none;}
    .hero-arrow{display:none;}
    .hero-dot{width:22px;}
  }
  @media (prefers-reduced-motion:reduce){
    .hero .slide{transition:none;}
    .hero .slide.on img{animation:none;}
  }
  .scroll-cue{position:absolute; right:6vw; bottom:34px; z-index:10; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:.72rem; color:var(--on-dark-dim);}
  @media (max-width:700px){ .scroll-cue{display:none;} }
  .scroll-cue .line{width:1px; height:46px; background:linear-gradient(var(--on-dark-dim), transparent); position:relative; overflow:hidden;}
  .scroll-cue .line::after{content:"";position:absolute; top:-40%; left:0; width:100%; height:40%; background:var(--amber); animation:cue 2.2s ease-in-out infinite;}
  @keyframes cue{ 0%{top:-40%;} 60%{top:100%;} 100%{top:100%;} }

  .ticket{
    position:absolute; left:6vw; bottom:34px; z-index:10;
    background:rgba(24,34,27,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    border:1px solid rgba(242,239,227,.28); padding:14px 20px; min-width:190px;
  }
  @media (max-width:700px){ .ticket{left:24px; bottom:24px;} }
  .ticket p{font-size:.8rem; line-height:1.55;}
  .ticket .sp{font-style:italic; color:var(--amber);}

  /* ---------- Sections generic ---------- */
  section{position:relative;}
  .section-pad{padding:9rem 0;}
  @media (max-width:700px){ .section-pad{padding:5.2rem 0;} }
  /* gold italic highlight inside headings */
  .hero h1 em, h1.head em, h2.head em, .about-head em, .tours-head em{font-style:italic; color:var(--amber);}
  .about h2 em, .light h2 em, .contact h2 em{color:var(--amber-deep);}
  .label{font-size:.82rem; color:var(--on-dark-dim); margin-bottom:1.2rem; display:flex; align-items:center; gap:.7rem;}
  .label::before{content:""; width:28px; height:1px; background:var(--amber); flex:none;}
  .light .label::before, .about .label::before, .contact .label::before{background:var(--amber-deep);}
  h1.head, h2.head{font-family:var(--font-display); font-weight:400; font-size:clamp(1.8rem,3.6vw,2.9rem); line-height:1.14; max-width:18ch;}

  /* ---------- About ---------- */
  .about{background:var(--paper); color:var(--on-paper);}
  .about .label{color:var(--on-paper-dim);}
  .about-grid{display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); gap:clamp(3rem,7vw,6.5rem); align-items:center;}
  @media (max-width:900px){ .about-grid{grid-template-columns:1fr;} }
  .about-media{position:relative; margin:0 18px 18px 0;}
  .about-media::before{content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--amber-deep); border-radius:4px; z-index:0;}
  .portrait{aspect-ratio:4/5; overflow:hidden; border-radius:4px; z-index:1; box-shadow:0 24px 50px rgba(30,43,34,.22);}
  .portrait svg, .portrait img{width:100%; height:100%; object-fit:cover;}
  @media (max-width:900px){ .about-media{max-width:440px;} }
  .about-badge{position:absolute; z-index:2; left:-14px; bottom:34px; display:flex; align-items:center; gap:.8rem; padding:.9rem 1.2rem; background:var(--ink); color:var(--on-dark); border-radius:4px; box-shadow:0 12px 30px rgba(0,0,0,.25);}
  .about-badge .n{font-family:var(--font-display); font-style:italic; font-size:2.4rem; line-height:1; color:var(--amber);}
  .about-badge .t{font-size:.78rem; line-height:1.35; color:var(--on-dark-dim);}
  .about-body p{max-width:58ch; color:var(--on-paper-dim); margin-bottom:1.1rem; font-size:1.02rem;}
  .about-body p.lead{font-size:1.16rem; color:var(--on-paper); line-height:1.6;}
  .about-head{font-family:var(--font-display); font-style:normal; font-weight:400; font-size:clamp(2rem, 4vw, 3.2rem); line-height:1.08; color:var(--on-paper); margin:.6rem 0 1.6rem;}
  .about-facts{list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:2.2rem 0 0; background:rgba(30,43,34,.14); border:1px solid rgba(30,43,34,.14); border-radius:6px; overflow:hidden;}
  @media (max-width:640px){ .about-facts{grid-template-columns:1fr;} }
  .about-facts li{background:var(--linen); padding:1.1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.25rem;}
  .about-facts svg{width:26px; height:26px; fill:none; stroke:var(--amber-deep); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; margin-bottom:.45rem;}
  .about-facts .k{font-weight:600; font-size:.92rem; color:var(--on-paper);}
  .about-facts .v{font-size:.85rem; color:var(--on-paper-dim); line-height:1.4;}
  .about-quote{margin:2.2rem 0 0; padding-left:1.4rem; border-left:2px solid var(--amber-deep); font-family:var(--font-display); font-style:italic; font-size:clamp(1.15rem,1.8vw,1.4rem); line-height:1.45; color:var(--on-paper); max-width:46ch;}
  .about-quote cite{display:block; margin-top:.6rem; font-family:var(--font-body); font-style:normal; font-size:.82rem; letter-spacing:.08em; color:var(--amber-deep);}
  .about-cta{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem;}
  .btn{display:inline-flex; align-items:center; justify-content:center; padding:.85rem 1.6rem; border-radius:999px; font-size:.92rem; font-weight:500; transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .2s;}
  .btn:active{transform:scale(.97);}
  .btn:focus-visible{outline:2px solid var(--amber); outline-offset:3px;}
  .btn-gold{background:var(--amber); color:var(--on-paper);}
  .btn-gold:hover{background:#DDB862;}
  .btn-line{border:1px solid rgba(30,43,34,.35); color:var(--on-paper);}
  .btn-line:hover{border-color:var(--amber-deep); color:var(--amber-deep);}
  .stats{margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid rgba(30,43,34,.16);}
  .stats p{font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--on-paper); max-width:44ch;}

  /* ---------- Tours & packages ---------- */
  .tours{background:var(--ink); color:var(--on-dark);}
  .label-icon{color:var(--amber); letter-spacing:.18em; text-transform:uppercase; font-size:.76rem; font-weight:500;}
  .label-icon::before{display:none;}
  .tours-head{font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem, 6vw, 4.8rem); line-height:1.02; letter-spacing:-.01em;}
  .tours-intro{color:var(--on-dark-dim); max-width:52ch; margin-top:1.4rem; font-size:1.02rem;}
  .tour-list{display:grid; grid-template-columns:repeat(2, 1fr); gap:18px; margin-top:3rem;}
  @media (max-width:860px){ .tour-list{grid-template-columns:1fr; gap:14px;} }
  .tour{display:flex; align-items:center; gap:1.3rem; width:100%; text-align:left; padding:1.1rem 1.3rem 1.1rem 1.1rem; border-radius:16px; background:var(--ink-2); border:1px solid rgba(242,239,227,.1); color:var(--on-dark); transition:border-color .3s var(--ease), transform .3s var(--ease), background .3s var(--ease);}
  .tour:hover{border-color:rgba(207,166,75,.6); background:#26352B; transform:translateY(-2px);}
  .tour:focus-visible{outline:2px solid var(--amber); outline-offset:3px;}
  .tour-date{flex:none; width:84px; padding:.7rem 0 .75rem; border-radius:12px; background:rgba(207,166,75,.1); text-align:center;}
  .tour-date .m{font-size:.72rem; letter-spacing:.14em; color:var(--amber); font-weight:600;}
  .tour-date .d{font-family:var(--font-display); font-size:1.25rem; line-height:1.15; margin-top:2px;}
  .seat-dots{display:grid; grid-template-columns:repeat(4, 7px); gap:4px; justify-content:center; margin-top:.55rem;}
  .seat-dots i{width:7px; height:7px; border-radius:50%; background:rgba(242,239,227,.16);}
  .seat-dots i.on{background:var(--amber);}
  .tour-body{flex:1; min-width:0;}
  .tour-body .t{font-family:var(--font-display); font-size:1.28rem; line-height:1.2;}
  .tour-body .dt{color:var(--on-dark-dim); font-size:.9rem; margin-top:.2rem;}
  .seats{display:inline-flex; align-items:center; gap:.5rem; margin-top:.7rem; padding:.3rem .8rem; border-radius:999px; background:rgba(242,239,227,.07); font-size:.84rem; color:var(--on-dark-dim);}
  .seats b{color:var(--on-dark); font-weight:600;}
  .seats::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 3px rgba(207,166,75,.2);}
  .seats.low::before{background:#D9785A; box-shadow:0 0 0 3px rgba(217,120,90,.2);}
  .tour .chev{flex:none; color:var(--on-dark-dim); font-size:1.3rem; transition:transform .3s var(--ease), color .3s;}
  .tour:hover .chev{transform:translateX(4px); color:var(--amber);}
  .tour-all{grid-column:1 / -1; background:transparent; border-style:dashed; border-color:rgba(207,166,75,.4);}
  .tour-all .tour-date{display:flex; align-items:center; justify-content:center; height:64px; padding:0; color:var(--amber);}
  @media (max-width:480px){ .tour{gap:1rem; padding:1rem;} .tour-date{width:72px;} .tour-body .t{font-size:1.12rem;} }

  /* ---------- Archive / gallery ---------- */
  .archive-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1.6rem; margin-bottom:3rem;}
  .filters{display:flex; gap:1.6rem; flex-wrap:wrap; font-size:.9rem;}
  .filters button{color:var(--on-dark-dim); padding-bottom:4px; border-bottom:1px solid transparent; transition:color .25s, border-color .25s;}
  .filters button:hover{color:var(--on-dark);}
  .filters button.active{color:var(--amber); border-color:var(--amber);}

  /* tile grid: even rows, first photo in view is a 2x2 tile. Full photo opens in the lightbox */
  .grid, .igrid{max-width:1240px; margin-left:auto; margin-right:auto; padding-left:6vw; padding-right:6vw;}
  @media (max-width:700px){ .grid, .igrid{padding-left:24px; padding-right:24px;} }
  .grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; grid-auto-flow:dense; gap:14px;}
  @media (max-width:960px){ .grid{grid-template-columns:repeat(3,1fr); grid-auto-rows:190px; gap:12px;} }
  @media (max-width:560px){ .grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; gap:10px;} }
  .frame{position:relative; display:block; width:100%; height:100%; background:var(--ink-2); overflow:hidden; border-radius:6px; box-shadow:0 10px 30px rgba(0,0,0,.35); opacity:0; transform:scale(.98); transition:opacity .5s var(--ease), transform .5s var(--ease), box-shadow .4s var(--ease);}
  .frame.big{grid-column:span 2; grid-row:span 2;}
  .grid-more{display:flex; justify-content:center; margin-top:2.4rem;}
  .grid-more [hidden]{display:none;}
  .frame.in{opacity:1; transform:scale(1);}
  .frame.hide{display:none;}
  .frame:hover{box-shadow:0 16px 40px rgba(0,0,0,.5);}
  .frame svg, .frame img{display:block; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .8s var(--ease);}
  .frame:hover img, .frame:hover svg{transform:scale(1.04); filter:saturate(1.1);}
  .frame .no{position:absolute; top:14px; left:14px; font-size:.72rem; color:var(--on-dark-dim); z-index:2;}
  .frame .cap{position:absolute; left:0; right:0; bottom:0; padding:16px; z-index:2; background:linear-gradient(to top, rgba(24,34,27,.86), transparent); opacity:0; transform:translateY(6px); transition:opacity .35s var(--ease), transform .35s var(--ease);}
  .frame:hover .cap, .frame:focus-visible .cap{opacity:1; transform:translateY(0);}
  .frame .cap .t{font-family:var(--font-display); font-style:italic; font-size:1.05rem;}
  .frame .cap .l{font-size:.76rem; color:var(--on-dark-dim); margin-top:2px;}
  .frame:focus-visible{outline:2px solid var(--amber); outline-offset:3px;}

  /* ---------- Story ---------- */
  .story{background:var(--sand);}
  .story-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:0; align-items:stretch;}
  @media (max-width:860px){ .story-grid{grid-template-columns:1fr;} }
  .story-img{aspect-ratio:4/3; overflow:hidden;}
  .story-img svg, .story-img img{width:100%; height:100%; object-fit:cover;}
  .story-text{display:flex; flex-direction:column; justify-content:center; padding:4rem 5vw;}
  @media (max-width:860px){ .story-text{padding:3rem 24px;} }
  .story-text p{color:var(--on-dark-dim); max-width:48ch; margin-top:1.1rem; font-size:1.02rem;}

  /* ---------- Expeditions ---------- */
  .expeditions{background:var(--moss);}
  .log{margin-top:2.6rem; border-top:1px solid rgba(242,239,227,.2);}
  .log-row{display:grid; grid-template-columns:100px 1fr; gap:2rem; padding:1.5rem 0; border-bottom:1px solid rgba(242,239,227,.2);}
  @media (max-width:600px){ .log-row{grid-template-columns:64px 1fr; gap:1rem;} }
  .log-row .yr{font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--amber);}
  .log-row .pl{font-weight:500; margin-bottom:.25rem;}
  .log-row .nt{color:var(--on-dark-dim); font-size:.95rem; max-width:60ch;}

  /* ---------- Field / instagram-style ---------- */
  .field-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem; margin-bottom:2.6rem;}
  .handle{color:var(--amber); font-size:.95rem;}
  .igrid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:640px){ .igrid{grid-template-columns:repeat(3,1fr); gap:8px;} }
  .isq{position:relative; aspect-ratio:1; overflow:hidden; background:var(--ink); border-radius:6px;}
  .isq svg, .isq img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
  .isq:hover svg{transform:scale(1.08);}

  /* ---------- Light sections ---------- */
  .archive{background:var(--linen);}
  .field{background:var(--linen);}
  .light{color:var(--on-paper);}
  .light .label, .light .story-text p{color:var(--on-paper-dim);}
  .light .filters button{color:var(--on-paper-dim);}
  .light .filters button:hover{color:var(--on-paper);}
  .light .filters button.active, .light .handle{color:var(--amber-deep); border-color:var(--amber-deep);}
  .light .frame{background:var(--paper-dim); box-shadow:0 8px 24px rgba(30,43,34,.14);}
  .light .frame:hover{box-shadow:0 14px 34px rgba(30,43,34,.24);}
  .light .frame .cap{color:var(--on-dark);}
  .light .isq{background:var(--paper-dim);}
  .story-text .head{color:var(--on-paper);}
  .story-text .label{color:var(--amber-deep);}

  /* ---------- Journal ---------- */
  .journal{background:var(--sand); color:var(--on-paper);}
  .journal .label{color:var(--on-paper-dim);}
  .journal .label::before{background:var(--amber-deep);}
  .journal h2 em{color:var(--amber-deep);}
  .journal-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1.2rem; margin-bottom:3rem;}
  .journal-intro{color:var(--on-paper-dim); max-width:34ch;}
  .posts{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  @media (max-width:960px){ .posts{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .posts{grid-template-columns:1fr;} }
  .post{display:flex; flex-direction:column; background:var(--linen); border-radius:8px; overflow:hidden; box-shadow:0 10px 28px rgba(30,43,34,.12); transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
  a.post:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(30,43,34,.2);}
  a.post:focus-visible{outline:2px solid var(--amber-deep); outline-offset:3px;}
  .post-img{aspect-ratio:16/10; overflow:hidden; background:var(--paper-dim); position:relative;}
  .post-img img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
  a.post:hover .post-img img{transform:scale(1.05);}
  .post-tag{position:absolute; top:12px; left:12px; z-index:2; background:var(--ink); color:var(--amber); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; padding:.3rem .7rem; border-radius:999px;}
  .post-body{padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1;}
  .post-meta{font-size:.78rem; color:var(--on-paper-dim); letter-spacing:.04em;}
  .post-title{font-family:var(--font-display); font-size:1.35rem; line-height:1.22; margin-top:.5rem; color:var(--on-paper);}
  .post-ex{color:var(--on-paper-dim); font-size:.93rem; margin-top:.6rem; flex:1;}
  .post-more{margin-top:1.1rem; font-size:.88rem; font-weight:500; color:var(--amber-deep);}
  .post.soon{opacity:.8;}
  .post.soon .post-more{color:var(--on-paper-dim);}

  /* ---------- Contact ---------- */
  .contact{background:var(--paper); color:var(--on-paper);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:4rem;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:2.4rem;} }
  .contact-info p{color:var(--on-paper-dim); max-width:42ch; margin-top:1rem;}
  .contact-info .mail{display:inline-block; margin-top:1.6rem; font-family:var(--font-display); font-style:italic; font-size:1.3rem; border-bottom:1px solid var(--on-paper); padding-bottom:2px;}
  form{display:flex; flex-direction:column; gap:1.1rem;}
  .field-row{display:flex; flex-direction:column; gap:.4rem;}
  .field-row label{font-size:.78rem; color:var(--on-paper-dim);}
  .field-row input, .field-row textarea{
    font-family:var(--font-body); font-size:1rem; background:transparent; border:none; border-bottom:1px solid rgba(30,43,34,.3);
    padding:.6rem 0; color:var(--on-paper); resize:none; transition:border-color .25s;
  }
  .field-row input:focus, .field-row textarea:focus{outline:none; border-color:var(--rust);}
  .submit-btn{margin-top:.6rem; align-self:flex-start; padding:.85rem 1.8rem; border-radius:999px; background:var(--moss); color:var(--on-dark); font-size:.92rem; transition:background .3s, transform .2s;}
  .submit-btn:hover{background:var(--amber); color:var(--on-paper);}
  .submit-btn:active{transform:scale(.97);}
  .submit-btn.sent{background:var(--moss);}

  footer{background:var(--ink); padding:3.2rem 0 calc(2.2rem + env(safe-area-inset-bottom,0px)); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:.82rem; color:var(--on-dark-dim);}
  footer .fbrand{font-family:var(--font-display); font-style:italic; color:var(--on-dark); display:flex; align-items:center; gap:.9rem;}
  footer .fbrand img{width:72px; height:72px; border-radius:50%; flex:none;}
  .flinks{display:flex; gap:1.6rem;}
  .flinks a:hover{color:var(--on-dark);}

  /* ---------- Lightbox ---------- */
  .lightbox{position:fixed; inset:0; z-index:1000; background:rgba(10,11,8,.96); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .35s var(--ease);}
  .lightbox.open{opacity:1; pointer-events:auto;}
  .lb-inner{width:min(900px,88vw); max-height:86vh; display:flex; flex-direction:column; gap:1.2rem;}
  .lb-img{width:100%; aspect-ratio:4/3; overflow:hidden;}
  .lb-img svg, .lb-img img{width:100%; height:100%; object-fit:cover;}
  .lb-cap{display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap;}
  .lb-cap .t{font-family:var(--font-display); font-style:italic; font-size:1.4rem;}
  .lb-cap .l{color:var(--on-dark-dim); font-size:.86rem; margin-top:.3rem;}
  .lb-cap .exif{color:var(--on-dark-dim); font-size:.78rem; letter-spacing:.03em; text-align:right;}
  .lb-close{position:absolute; top:26px; right:6vw; font-size:.88rem; color:var(--on-dark-dim); display:flex; align-items:center; gap:.5rem;}
  .lb-close:hover{color:var(--on-dark);}
  .lb-nav{position:absolute; top:50%; transform:translateY(-50%); font-size:1.6rem; color:var(--on-dark-dim); padding:1rem;}
  .lb-nav:hover{color:var(--amber);}
  .lb-prev{left:2vw;} .lb-next{right:2vw;}
  @media (max-width:700px){ .lb-nav{font-size:1.3rem; padding:.6rem;} .lb-close{right:24px; top:20px;} }
  /* ---------- Intro (logo on load) ---------- */
  .intro{position:fixed; inset:0; z-index:2000; background:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer; animation:introOut .9s 2.7s cubic-bezier(.76,0,.24,1) forwards;}
  .intro-mark{position:relative; width:min(56vw, 260px); aspect-ratio:1;}
  .intro-mark img{position:relative; width:100%; height:100%; border-radius:50%; display:block; opacity:0; transform:scale(.72) rotate(-14deg); animation:introLogo 1.3s .15s var(--ease) forwards;}
  .intro-mark .echo{position:absolute; inset:0; border-radius:50%; border:1px solid var(--amber); opacity:0; animation:introEcho 1.9s var(--ease) forwards;}
  .intro-mark .echo:nth-child(1){animation-delay:.75s;}
  .intro-mark .echo:nth-child(2){animation-delay:1.05s;}
  .intro-mark .echo:nth-child(3){animation-delay:1.35s;}
  .intro.skip{display:none;}
  html.intro-on, html.intro-on body{overflow:hidden;}
  @keyframes introLogo{ to{opacity:1; transform:none;} }
  @keyframes introEcho{ 0%{opacity:.75; transform:scale(1);} 100%{opacity:0; transform:scale(2.3);} }
  @keyframes introOut{ to{transform:translateY(-100%); visibility:hidden;} }
  @media (prefers-reduced-motion:reduce){
    .intro{animation:introFade .4s 1.2s forwards;}
    .intro-mark img{opacity:1; transform:none; animation:none;}
    .intro-mark .echo{display:none;}
  }
  @keyframes introFade{ to{opacity:0; visibility:hidden;} }

/* ---------- Blog article page ---------- */
.article-page{background:var(--linen); color:var(--on-paper);}
.article-page .site-nav, .article-page footer{color:var(--on-dark);}
.article-hero{position:relative; min-height:78vh; min-height:78svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink); color:var(--on-dark);}
.article-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.article-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,29,23,.92) 0%, rgba(20,29,23,.45) 45%, rgba(20,29,23,.25) 100%);}
.article-hero .wrap{position:relative; z-index:2; padding-bottom:4rem; width:100%;}
.crumbs{font-size:.82rem; color:var(--on-dark-dim); margin-bottom:1.2rem;}
.crumbs a:hover{color:var(--amber);}
.article-hero h1{font-family:var(--font-display); font-weight:400; font-size:clamp(2.2rem,5vw,4rem); line-height:1.06; max-width:20ch;}
.article-hero h1 em{font-style:italic; color:var(--amber);}
.article-meta{display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.4rem; margin-top:1.6rem; font-size:.88rem; color:var(--on-dark-dim);}
.article-meta .who{display:flex; align-items:center; gap:.7rem; color:var(--on-dark);}
.article-meta img{position:static; width:38px; height:38px; border-radius:50%;}
.article{max-width:720px; margin:0 auto; padding:5rem 24px 6rem; font-size:1.08rem; line-height:1.75;}
.article .standfirst{font-family:var(--font-display); font-size:clamp(1.3rem,2.2vw,1.6rem); line-height:1.45; color:var(--on-paper); margin-bottom:2.4rem;}
.article p{color:rgba(30,43,34,.82); margin-bottom:1.3rem;}
.article h2{font-family:var(--font-display); font-weight:400; font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.15; margin:3.2rem 0 1.1rem; color:var(--on-paper);}
.article h2 em{font-style:italic; color:var(--amber-deep);}
.article h3{font-weight:600; font-size:1.05rem; margin:1.8rem 0 .5rem; color:var(--on-paper);}
.article ul{margin:0 0 1.4rem 1.2rem; color:rgba(30,43,34,.82);}
.article li{margin-bottom:.55rem; padding-left:.3rem;}
.article li::marker{color:var(--amber-deep);}
.article strong{color:var(--on-paper); font-weight:600;}
.article figure{margin:2.6rem -6vw; }
@media (max-width:820px){ .article figure{margin:2.2rem 0;} }
.article figure img{width:100%; border-radius:6px; box-shadow:0 18px 40px rgba(30,43,34,.18);}
.article figcaption{font-size:.84rem; color:var(--on-paper-dim); margin-top:.8rem; text-align:center;}
.tip{margin:2rem 0; padding:1.4rem 1.6rem; background:var(--paper); border-left:3px solid var(--amber-deep); border-radius:0 6px 6px 0;}
.tip .k{font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--amber-deep); font-weight:600; margin-bottom:.4rem;}
.tip p:last-child{margin-bottom:0;}
.settings{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(30,43,34,.14); border:1px solid rgba(30,43,34,.14); border-radius:6px; overflow:hidden; margin:1.6rem 0 2rem;}
@media (max-width:560px){ .settings{grid-template-columns:1fr;} }
.settings > div{background:#fff; padding:1rem 1.2rem;}
.settings .k{font-size:.8rem; color:var(--on-paper-dim);}
.settings .v{font-family:var(--font-display); font-size:1.2rem; color:var(--on-paper);}
.author{display:flex; gap:1.2rem; align-items:center; margin-top:3.5rem; padding-top:2rem; border-top:1px solid rgba(30,43,34,.15);}
.author img{width:72px; height:72px; border-radius:50%; flex:none;}
.author .n{font-family:var(--font-display); font-size:1.2rem;}
.author p{margin:.2rem 0 0; font-size:.95rem;}
.article-cta{background:var(--ink); color:var(--on-dark); text-align:center; padding:5.5rem 24px;}
.article-cta h2{font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.08;}
.article-cta h2 em{font-style:italic; color:var(--amber);}
.article-cta p{color:var(--on-dark-dim); margin:1rem auto 2rem; max-width:46ch;}
.article-cta .btns{display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center;}
.article-cta .btn-line{border-color:rgba(242,239,227,.35); color:var(--on-dark);}
.article-cta .btn-line:hover{border-color:var(--amber); color:var(--amber);}

/* ===================== WordPress additions ===================== */
/* Keep the fixed nav below the admin bar when logged in */
.admin-bar .site-nav{top:32px;}
@media (max-width:782px){ .admin-bar .site-nav{top:46px;} }

/* Pages without a hero photo */
.article-hero.no-img{min-height:auto; padding-top:11rem;}
.article-hero.no-img::after{display:none;}
.page-top{padding-top:11rem;}
@media (max-width:860px){ .page-top, .article-hero.no-img{padding-top:8.5rem;} }

/* Contact form */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-note{font-size:.9rem; margin-top:.4rem; color:var(--moss);}
.form-note.err{color:#A5442A;}
.journal-all{color:var(--amber-deep); white-space:nowrap;}
.journal-all:hover{text-decoration:underline;}

/* Journal pagination */
.pager{margin-top:3rem;}
.pager .nav-links, .nav-open .pager .nav-links{display:flex; position:static; inset:auto; transform:none; visibility:visible; background:none; padding:0; overflow:visible; z-index:auto; transition:none; flex-direction:row; flex-wrap:wrap; gap:.5rem; justify-content:center; align-items:center;} /* WP pagination reuses the "nav-links" class */
.pager .page-numbers{display:inline-flex; min-width:2.6rem; height:2.6rem; padding:0 .9rem; align-items:center; justify-content:center; border:1px solid rgba(30,43,34,.25); border-radius:999px; font-size:.9rem;}
.pager .page-numbers.current, .pager a.page-numbers:hover{border-color:var(--amber-deep); color:var(--amber-deep);}
.pager .screen-reader-text{position:absolute; left:-9999px;}

/* Content written in the block editor */
.article > *:first-child{margin-top:0;}
.article a{color:var(--amber-deep); text-decoration:underline; text-underline-offset:3px;}
.article ol{margin:0 0 1.4rem 1.4rem; color:rgba(30,43,34,.82);}
.article blockquote{margin:2rem 0; padding-left:1.4rem; border-left:3px solid var(--amber-deep); font-family:var(--font-display); font-size:1.3rem; line-height:1.45;}
.article .wp-block-image, .article .wp-block-gallery{margin:2.6rem -6vw;}
@media (max-width:820px){ .article .wp-block-image, .article .wp-block-gallery{margin:2.2rem 0;} }
.article .wp-block-image img{width:100%; height:auto; border-radius:6px; box-shadow:0 18px 40px rgba(30,43,34,.18);}
.article .wp-block-image figcaption, .article .wp-element-caption{font-size:.84rem; color:var(--on-paper-dim); margin-top:.8rem; text-align:center;}
.article img{max-width:100%; height:auto;}
.screen-reader-text{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px);}

/* Gallery page */
.gallery-intro{max-width:56ch; margin-top:1rem; color:var(--on-paper-dim);}
.gallery-intro p{margin-bottom:.8rem;}
.grid-more .btn{gap:.4rem;}
