/* Twin Peaks Gazette — dark v4 (generated). Fonts in fonts.css */

:root{
  --fir:#1f3a2e;
  --deep:#13241c;
  --mist:#e9ebe6;
  --gray:#8a948d;
  --wood:#6b4a2f;
  --cherry:#8c2a24;
  --paper:#f3f1ea;
  --ink:#26302a;
  --rule:#d6dad3;
  --max:1120px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'EB Garamond',Georgia,serif;
  font-size:18px;
  line-height:1.55;
}
a{color:var(--fir);text-decoration:none}
a:hover{color:var(--cherry)}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 48px}

/* Top nav — Super Grok structure, v3 palette */
.site-nav{
  background:var(--deep);
  color:var(--mist);
  position:relative;
  z-index:2;
}
.site-nav .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:72px;
  padding-top:0;
  padding-bottom:0;
}
.wordmark{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:20px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--mist);
  white-space:nowrap;
}
.site-nav nav{display:flex;flex-wrap:wrap;justify-content:flex-end}
.site-nav nav a{
  color:var(--mist);
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:400;
  margin-left:28px;
  padding:6px 0;
}
.site-nav nav a:hover,
.site-nav nav a[aria-current="page"]{color:#e8d3b0}

/* Hero */
.hero{
  position:relative;
  height:620px;
  background:url(/assets/img/falls.jpg?v=8b1c5129) center 30%/cover no-repeat;
  color:var(--mist);
  display:flex;
  align-items:flex-end;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(13,26,20,.35) 0%, rgba(13,26,20,.12) 32%, rgba(13,26,20,.15) 48%, rgba(13,26,20,.78) 78%, var(--deep) 100%);
}
.hero-inner{position:relative;z-index:1;padding:0 0 64px}
.kicker{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#c9a27a;
  margin:0 0 14px;
}
.hero h1{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:70px;
  line-height:1.05;
  margin:0 0 16px;
  max-width:none;
  color:var(--mist);
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero .tag{
  margin:0;
  max-width:46em;
  font-size:21px;
  font-style:italic;
  color:#e9ebe6;
  font-weight:400;
  line-height:1.45;
}

/* Section labels */
.lab{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:3px;
  color:var(--wood);
  text-transform:uppercase;
  margin:0 0 6px;
}
h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:44px;
  color:var(--fir);
  margin:0 0 28px;
}

/* Index of the Archive */
.archive-index{padding:80px 0 24px}
.ix{
  display:flex;
  align-items:baseline;
  gap:16px;
  text-decoration:none;
  color:inherit;
  padding:16px 0;
  border-bottom:1px solid var(--rule);
}
.ix:first-of-type{border-top:1px solid var(--rule)}
.ix .n{
  font-family:'Cormorant Garamond',serif;
  color:var(--cherry);
  width:28px;
  flex:0 0 28px;
  font-size:22px;
  font-weight:500;
}
.ix .body{flex:1;min-width:0}
.ix .row{
  display:flex;
  align-items:baseline;
  gap:16px;
}
.ix .row b{
  font-family:'Cormorant Garamond',serif;
  font-size:26px;
  font-weight:500;
  color:var(--fir);
  line-height:1.15;
  white-space:nowrap;
  flex:0 0 auto;
}
.ix .body i{
  color:var(--gray);
  font-size:16px;
  font-style:italic;
  font-weight:400;
  display:block;
  margin-top:2px;
}
.ix .dots{
  flex:1 1 auto;
  min-width:48px;
  overflow:hidden;
  white-space:nowrap;
  color:#8a948d;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  letter-spacing:3px;
  line-height:1;
}
.ix .dots::before{
  content:" · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·";
}
.ix .c{
  font-family:'IBM Plex Mono',monospace;
  font-size:15px;
  color:var(--wood);
  flex:0 0 auto;
}
.ix:hover .row b{color:var(--cherry)}
.note{
  font-size:15px;
  color:var(--gray);
  margin:18px 0 0;
  font-style:italic;
}

/* Preserved Records */
.records{padding:48px 0 24px}
.card{
  background:var(--deep);
  color:var(--mist);
  padding:40px 48px;
  border-top:6px solid var(--wood);
  display:grid;
  grid-template-columns:1.4fr auto;
  gap:40px;
  align-items:center;
}
.card .lab{color:#c9a27a}
.card h2{color:var(--mist);margin-bottom:14px}
.card p{color:#c8d0c8;margin:0 0 22px;max-width:38em;line-height:1.6}
.stats{display:flex;gap:36px}
.stats b{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:36px;
  font-weight:500;
  color:var(--mist);
  line-height:1;
  margin-top:6px;
}
.stats span{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:2px;
  color:#aab5ad;
  text-transform:uppercase;
}
.stat{display:flex;flex-direction:column;align-items:flex-start}
.stat svg{width:22px;height:22px;stroke:#c9a27a;fill:none;stroke-width:1.5;margin-bottom:4px}
.btn{
  display:inline-block;
  background:var(--cherry);
  color:#fff;
  padding:13px 24px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.btn:hover{color:#fff;background:#6e201b}

/* Episode guide cards */
.guides{padding:64px 0 24px;background:var(--mist);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:56px}
.epg{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.epg.seasons{grid-template-columns:repeat(3,1fr)}
.ep{
  background:var(--deep);
  color:var(--mist);
  display:block;
  text-decoration:none;
  color:var(--mist);
}
.ep:hover{color:var(--mist)}
.ep .pic{
  height:168px;
  background-size:cover;
  background-position:center 40%;
  position:relative;
}
.ep .pic::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(13,26,20,.65));
}
.ep div.body{padding:18px 20px 22px}
.ep small{
  font-family:'IBM Plex Mono',monospace;
  color:#c9a27a;
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.ep h3{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;
  font-weight:500;
  margin:4px 0 6px;
  color:var(--mist);
}
.ep p{margin:0;color:#c8d0c8;font-style:italic;font-size:16px}

/* Catalogue */
.catalogue{padding:72px 0 24px}
.cat{
  columns:2;
  column-gap:64px;
  list-style:none;
  padding:0;
  margin:0;
}
.cat li{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid var(--rule);
  break-inside:avoid;
}
.cat a{color:var(--fir);font-weight:400;min-width:0}
.cat a:hover{color:var(--cherry)}
.cat .num{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  color:var(--wood);
  flex:0 0 28px;
}
.cat .ttl{flex:1;font-size:17px}
.cat .mark{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:var(--gray);
  letter-spacing:1px;
  white-space:nowrap;
}

/* Footer */
footer{
  margin-top:80px;
  background:var(--deep);
  color:#aab5ad;
  padding:44px 0;
  font-size:15px;
}
footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
footer b{
  font-family:'Cormorant Garamond',serif;
  color:var(--mist);
  font-size:24px;
  letter-spacing:3px;
  font-weight:500;
  display:block;
  margin-bottom:6px;
}
footer .right{text-align:right}
footer .right i,footer .footer-quote,footer #footer-quote{font-style:italic;display:inline-block;max-width:36em;margin-top:6px}

/* Section page */
.banner{
  position:relative;
  height:340px;
  background-size:cover;
  background-position:center 45%;
  color:var(--mist);
  display:flex;
  align-items:flex-end;
}
.banner.diner{background-image:url(/assets/img/diner.jpg?v=14a3a273)}
.banner::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(13,26,20,.45) 0%, rgba(13,26,20,.12) 40%, rgba(19,36,28,.88) 100%);
}
.banner-inner{position:relative;z-index:1;padding:0 0 40px;width:100%}
.banner h1{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:60px;
  margin:0 0 8px;
  line-height:1;
  color:var(--mist);
}
.banner .meta{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#c9a27a;
}
.crumb{
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  color:var(--gray);
  padding:28px 0 8px;
}
.crumb a{color:var(--wood);font-weight:400}

/* Season 1 list */
.elist{padding:12px 0 40px}
.ep-row{
  display:grid;
  grid-template-columns:56px 1fr auto;
  gap:20px;
  align-items:baseline;
  padding:22px 0;
  border-bottom:1px solid var(--rule);
  text-decoration:none;
  color:inherit;
}
.ep-row:first-of-type{border-top:1px solid var(--rule)}
.ep-row .n{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;
  color:var(--cherry);
  font-weight:500;
}
.ep-row h2{
  font-size:32px;
  margin:0 0 4px;
}
.ep-row .sub{
  margin:0;
  color:var(--gray);
  font-style:italic;
  font-size:16px;
}
.ep-row .date{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:1px;
  color:var(--wood);
  text-align:right;
  white-space:nowrap;
}
.ep-row:hover h2{color:var(--cherry)}
.elist-intro{
  color:var(--gray);
  font-style:italic;
  margin:0 0 28px;
  max-width:42em;
}

@media (max-width:1100px){
  .hero h1{font-size:56px}
  .epg{grid-template-columns:repeat(2,1fr)}
  .card{grid-template-columns:1fr;gap:28px;padding:32px}
}

/* Dark companion theme. Does not alter the light stylesheet. */
body.dark{
  --page:#0c1410;
  --panel:#13241c;
  --panel-2:#15261e;
  --band:#101c16;
  --parchment:#e6e1d4;
  --parchment-bright:#f3f1ea;
  --muted:#a8b3aa;
  --rule:#2a3d32;
  --wood-lite:#c9a27a;
  --cherry-lite:#c24a42;
  background:var(--page);
  color:var(--parchment);
}
body.dark a{color:var(--parchment-bright)}
body.dark a:hover{color:var(--cherry-lite)}

body.dark .site-nav{
  background:#0a100c;
  border-bottom:1px solid var(--rule);
}
body.dark .site-nav nav a[aria-current="page"],
body.dark .site-nav nav a:hover{color:var(--wood-lite)}

body.dark .hero::before{
  background:linear-gradient(180deg, rgba(10,16,12,.45) 0%, rgba(10,16,12,.12) 32%, rgba(10,16,12,.18) 48%, rgba(10,16,12,.82) 78%, var(--page) 100%);
}
body.dark .hero h1,
body.dark .hero .tag{color:var(--parchment-bright)}

body.dark .lab{color:var(--wood-lite)}
body.dark h2{color:var(--parchment-bright)}

body.dark .ix{border-bottom-color:var(--rule)}
body.dark .ix:first-of-type{border-top-color:var(--rule)}
body.dark .ix .n{color:var(--cherry-lite)}
body.dark .ix .row b{color:var(--parchment-bright)}
body.dark .ix .body i{color:var(--muted)}
body.dark .ix .dots{color:#5e7266}
body.dark .ix .c{color:var(--wood-lite)}
body.dark .ix:hover .row b{color:var(--cherry-lite)}
body.dark .note{color:var(--muted)}

body.dark .card{
  background:var(--panel);
  border-top-color:#6b4a2f;
  box-shadow:inset 0 0 0 1px rgba(42,61,50,.6);
}
body.dark .card h2,
body.dark .stats b{color:var(--parchment-bright)}
body.dark .card p{color:#c8d0c8}
body.dark .btn{background:#8c2a24;color:#fff}
body.dark .btn:hover{background:#6e201b;color:#fff}

body.dark .guides{
  background:var(--band);
  border-top-color:var(--rule);
  border-bottom-color:var(--rule);
}
body.dark .ep{background:var(--panel)}
body.dark .ep h3{color:var(--parchment-bright)}
body.dark .ep p{color:#c8d0c8}

body.dark .cat li{border-bottom-color:var(--rule)}
body.dark .cat a{color:var(--parchment-bright)}
body.dark .cat a:hover{color:var(--cherry-lite)}
body.dark .cat .num{color:var(--wood-lite)}
body.dark .cat .mark{color:var(--muted)}

body.dark footer{
  background:#0a100c;
  color:var(--muted);
  border-top:1px solid var(--rule);
}
body.dark footer b{color:var(--parchment-bright)}

body.dark .banner::before{
  background:linear-gradient(180deg, rgba(10,16,12,.5) 0%, rgba(10,16,12,.14) 40%, rgba(12,20,16,.92) 100%);
}
body.dark .banner h1{color:var(--parchment-bright)}
body.dark .crumb{color:var(--muted)}
body.dark .crumb a{color:var(--wood-lite)}
body.dark .elist-intro{color:var(--muted)}
body.dark .ep-row{border-bottom-color:var(--rule)}
body.dark .ep-row:first-of-type{border-top-color:var(--rule)}
body.dark .ep-row .n{color:var(--cherry-lite)}
body.dark .ep-row h2{color:var(--parchment-bright)}
body.dark .ep-row .sub{color:var(--muted)}
body.dark .ep-row .date{color:var(--wood-lite)}
body.dark .ep-row:hover h2{color:var(--cherry-lite)}

/* Article reading typography — used with style.css + style-dark.css */
.banner.redroom{background-image:url(/assets/img/redroom.jpg?v=bfbdff38)}
.banner .banner-inner h1{max-width:18ch}

.reading-col .crumb{padding-left:0;padding-right:0;margin:28px 0 8px}
body.reading-parchment .crumb-wrap{
  font-size:20px;
  max-width:calc(70ch + 112px);
  margin:0 auto;
  padding:0; /* align with the outer edge of the parchment sheet */
}

.reading-col{
  max-width:70ch;
  margin:0 auto;
  padding:8px 0 96px;
  font-family:'EB Garamond',Georgia,serif;
  font-size:20px;
  line-height:1.7;
  font-weight:400;
}
.reading-col .byline{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  line-height:1.6;
  margin:8px 0 28px;
}
.reading-col .byline a{font-weight:400}
.reading-col .switch{
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
  margin:0 0 28px;
  font-family:'IBM Plex Mono',monospace;
}
.featured{margin:0 0 2.2em}
.featured img{width:100%;height:auto;display:block}
.reading-col p{margin:0 0 1.15em}
.reading-col h2{
  font-family:'Cormorant Garamond',serif;
  font-size:1.55em;
  font-weight:500;
  line-height:1.25;
  margin:2em 0 .65em;
}
.reading-col figure{margin:1.85em 0}
.reading-col figure img{width:100%;height:auto;display:block}
.reading-col figcaption{
  font-size:.82em;
  font-style:italic;
  line-height:1.45;
  margin-top:.55em;
  text-align:center;
}
.reading-col .aside{
  margin:0 0 1.1em 0;
  padding:.15em 0 .15em 1.15em;
  border-left:2px solid;
  font-size:.97em;
}
.reading-col .quote{
  margin:1.5em 0 1.5em;
  padding:.2em 0 .2em 1.2em;
  border-left:3px solid;
  font-style:italic;
  font-size:1.02em;
}
.reading-col .script-note{
  font-size:.88em;
  font-style:italic;
  margin:0 0 1.6em 1.15em;
}
.reading-col .fn{font-size:.72em;line-height:0;position:relative;top:-.3em}
.reading-col .fn a{text-decoration:none;font-weight:600;padding:0 .1em}
.reading-col .notes{
  font-size:.86em;
  line-height:1.6;
  list-style:none;
  padding-left:0;
  margin:0 0 2em;
}
.reading-col .notes li{margin:0 0 .7em;padding-left:1.6em;position:relative}
.reading-col .notes li .n{position:absolute;left:0}
.reading-col .notes .back{font-size:.9em;white-space:nowrap}

/* Fully dark reading */
body.reading-dark .reading-col{color:#e6e1d4}
body.reading-dark .reading-col h2{color:#f3f1ea}
body.reading-dark .byline,
body.reading-dark .switch{color:#c9a27a}
body.reading-dark .byline a,
body.reading-dark .switch a{color:#c9a27a}
body.reading-dark .switch a[aria-current="page"]{color:#f3f1ea}
body.reading-dark .reading-col a{color:#e8d3b0}
body.reading-dark .reading-col a:hover{color:#c24a42}
body.reading-dark .aside{border-left-color:#3d5348;color:#d5d0c4}
body.reading-dark .quote{border-left-color:#c9a27a;color:#f3f1ea}
body.reading-dark .script-note{color:#a8b3aa}
body.reading-dark figcaption{color:#a8b3aa}
body.reading-dark .fn a{color:#c9a27a}

/* Parchment panel on dark chrome */
body.reading-parchment .reading-panel{
  background:#f3f1ea;
  color:#26302a;
  font-size:20px; /* ch must match the 20px reading column */
  max-width:calc(70ch + 112px);
  margin:0 auto 96px;
  padding:48px 56px 80px;
  box-shadow:0 16px 48px rgba(0,0,0,.45);
}
body.reading-parchment .reading-col{padding:0}
body.reading-parchment .reading-col h2{color:#1f3a2e}
body.reading-parchment .byline,
body.reading-parchment .switch{color:#6b4a2f}
body.reading-parchment .byline a,
body.reading-parchment .switch a{color:#6b4a2f}
body.reading-parchment .switch a[aria-current="page"]{color:#1f3a2e}
body.reading-parchment .reading-col a{color:#6b4a2f}
body.reading-parchment .reading-col a:hover{color:#8c2a24}
body.reading-parchment .aside{border-left-color:#c9b89a;color:#3a403a}
body.reading-parchment .quote{border-left-color:#8c2a24;color:#1f3a2e}
body.reading-parchment .script-note{color:#5b6660}
body.reading-parchment figcaption{color:#5b6660}
body.reading-parchment .fn a{color:#8c2a24}
body.reading-parchment footer{margin-top:0}

@media (max-width:800px){
  body.reading-parchment .reading-panel{padding:32px 22px 56px;margin-left:16px;margin-right:16px}
  .epg.seasons{grid-template-columns:1fr}
}


/* Additional banners */
.banner.falls{background-image:url(/assets/img/falls.jpg?v=8b1c5129)}
.banner.bridge{background-image:url(/assets/img/bridge.jpg?v=9f3275a6)}
.banner.clearing{background-image:url(/assets/img/clearing.jpg?v=2913635d)}
.banner.return{background-image:url(/assets/img/return.jpg?v=13861d9d)}
.banner.welcome{background-image:url(/assets/img/welcome.jpg?v=de23858f)}
.banner.palmer{background-image:url(/assets/img/palmer.jpg?v=c6886414)}
.banner.losthighway{background-image:url(/assets/img/losthighway.jpg?v=eff29823);background-position:center 20%}
.banner.eraserhead{background-image:url(/assets/img/eraserhead.jpg?v=8a739895);background-position:center 10%}
.hero{background-image:url(/assets/img/falls.jpg?v=8b1c5129);background-position:center 30%;background-size:cover;background-repeat:no-repeat}

/* About / 404 / TODO */
.page-body{max-width:70ch;margin:0 auto;padding:8px 0 96px;font-size:20px;line-height:1.7;color:var(--parchment)}
.page-body h2{font-size:1.6em;margin:1.6em 0 .5em}
.page-body p{margin:0 0 1.1em}
.todo{
  border-left:3px solid var(--wood-lite, #c9a27a);
  padding:14px 18px;
  margin:1.4em 0;
  background:var(--panel, #13241c);
  color:var(--parchment, #e6e1d4);
  font-size:17px;
  line-height:1.55;
}
.todo strong{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--wood-lite,#c9a27a);display:block;margin-bottom:6px;font-weight:500}
.err-page{padding:80px 0 120px;text-align:left}
.err-page h1{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:72px;margin:0 0 16px;color:var(--parchment-bright,#f3f1ea)}
.err-page p{font-size:20px;max-width:36em;color:var(--parchment,#e6e1d4)}

/* Category children */
.subcats{display:flex;flex-wrap:wrap;gap:12px 20px;margin:0 0 32px}
.subcats a{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--wood-lite,#c9a27a);
  border-bottom:1px solid transparent;
}
.subcats a:hover{color:var(--cherry-lite,#c24a42)}

/* Date-only byline when author is omitted */
.reading-col .byline .who{display:block}

/* Contact form */
.contact-form{margin:1.4em 0 0;max-width:36em}
.contact-form p{margin:0 0 1em}
.contact-form label{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--wood-lite,#c9a27a);
  margin-bottom:8px;
}
.contact-form .optional{letter-spacing:1px;text-transform:none;color:var(--muted,#a8b3aa);font-size:11px}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
  width:100%;
  background:var(--panel,#13241c);
  color:var(--parchment-bright,#f3f1ea);
  border:1px solid var(--rule,#2a3d32);
  border-radius:0;
  padding:12px 14px;
  font-family:'EB Garamond',Georgia,serif;
  font-size:18px;
  line-height:1.45;
}
.contact-form textarea{resize:vertical;min-height:10em}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:1px solid var(--wood-lite,#c9a27a);
  border-color:var(--wood-lite,#c9a27a);
}
.contact-form .hp{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.contact-form .cf-turnstile{margin:0 0 1.1em}
.contact-form .form-actions{margin:1.2em 0 0}
.contact-form button.btn{border:0;cursor:pointer}
.form-note{color:var(--muted,#a8b3aa);font-size:17px}
.form-status{padding:14px 18px;margin:0 0 1.2em;font-size:18px;line-height:1.5}
.form-status-ok{border-left:3px solid var(--wood-lite,#c9a27a);background:var(--panel,#13241c)}
.form-status-err{border-left:3px solid var(--cherry-lite,#c24a42);background:var(--panel,#13241c)}

/* Home v5 layout */
.home-main{padding:64px 0 24px}
.home-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:48px;
  align-items:start;
}
.home-index h2{margin-bottom:28px}
.home-cards{display:flex;flex-direction:column;gap:16px}
.home-row{
  display:grid;
  grid-template-columns:40% minmax(0,1fr);
  background:var(--panel,#13241c);
  text-decoration:none;
  color:var(--mist,#e9ebe6);
  min-height:0;
  overflow:hidden;
}
.home-row:hover{color:var(--mist,#e9ebe6)}
.home-row .pic{
  background-size:cover;
  background-position:center 40%;
  background-repeat:no-repeat;
  height:100%;
  min-height:160px;
  overflow:hidden;
}
.home-row .body{
  padding:22px 26px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.home-row small{
  font-family:'IBM Plex Mono',monospace;
  color:var(--wood-lite,#c9a27a);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.home-row h3{
  font-family:'Cormorant Garamond',serif;
  font-size:32px;
  font-weight:500;
  margin:4px 0 6px;
  color:var(--parchment-bright,#f3f1ea);
  line-height:1.1;
}
.home-row:hover h3{color:var(--cherry-lite,#c24a42)}
.home-row .sub{
  margin:0;
  color:#c8d0c8;
  font-style:italic;
  font-size:16px;
}
.home-row .blurb{
  margin:10px 0 0;
  color:var(--muted,#a8b3aa);
  font-style:normal;
  font-size:16px;
  line-height:1.45;
}

body.dark .home-row{background:var(--panel);box-shadow:inset 0 0 0 1px rgba(42,61,50,.6)}
body.dark .home-row h3{color:var(--parchment-bright)}
body.dark .home-row:hover h3{color:var(--cherry-lite)}
body.dark .home-row .sub{color:#c8d0c8}
body.dark .home-row .blurb{color:var(--muted)}

.board-side{
  background:var(--panel,#13241c);
  border-top:6px solid var(--wood,#6b4a2f);
  padding:0 0 28px;
  position:sticky;
  top:24px;
}
.board-side-pic{
  display:block;
  height:160px;
  background-size:cover;
  background-position:center 42%;
  margin-bottom:22px;
}
.board-side .lab{padding:0 24px;margin:0 0 6px}
.board-side-count{
  font-family:'Cormorant Garamond',serif;
  font-size:32px;
  font-weight:500;
  color:var(--parchment-bright,#f3f1ea);
  margin:0 24px 10px;
  line-height:1.1;
}
.board-side-blurb{
  margin:0 24px 18px;
  color:var(--muted,#a8b3aa);
  font-size:16px;
  font-style:italic;
  line-height:1.45;
}
.board-side-forums{
  list-style:none;
  margin:0 24px 22px;
  padding:0;
  border-top:1px solid var(--rule,#2a3d32);
}
.board-side-forums a{
  display:block;
  padding:9px 0;
  border-bottom:1px solid var(--rule,#2a3d32);
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--parchment,#e6e1d4);
}
.board-side-forums a:hover{color:var(--cherry-lite,#c24a42)}
.board-side .btn{margin:0 24px}

body.dark .board-side{
  background:var(--panel);
  box-shadow:inset 0 0 0 1px rgba(42,61,50,.6);
}
body.dark .board-side-count{color:var(--parchment-bright)}
body.dark .home-main{background:transparent}

@media (max-width:900px){
  .home-split{grid-template-columns:1fr;gap:40px}
  .board-side{position:static}
}
@media (max-width:800px){
  .home-row{grid-template-columns:1fr}
  .home-row .pic{aspect-ratio:16/9;min-height:0;height:auto}
  .home-row .body{padding:18px 20px 20px}
  .hero h1{font-size:42px}
  .home-main .wrap,
  .hero .wrap,
  .site-nav .wrap,
  footer .wrap{padding-left:20px;padding-right:20px}
}

/* About gallery */
.gallery-page{padding:0 0 96px}
.gallery-intro{
  font-size:20px;
  line-height:1.7;
  color:var(--parchment);
  margin:12px 0 32px;
  max-width:42em;
}
.gallery-page h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:36px;
  color:var(--parchment-bright,#f3f1ea);
  margin:56px 0 24px;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:28px 20px;
}
.gallery-tile{margin:0}
.gallery-tile a{
  display:block;
  background:var(--panel,#13241c);
  overflow:hidden;
}
.gallery-tile img{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  object-position:center 45%;
}
.gallery-tile figcaption{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  line-height:1.45;
  letter-spacing:.02em;
  color:var(--muted,#a8b3aa);
  margin-top:10px;
}
@media (max-width:800px){
  .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px 14px}
  .gallery-page h2{font-size:28px}
}

/* Compact header menu on small screens.
   Desktop links live outside <details> so they stay visible when it is closed. */
.nav-toggle{
  list-style:none;
  cursor:pointer;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--mist);
  padding:10px 0;
  background:none;
  border:0;
}
.nav-toggle::-webkit-details-marker,
.nav-toggle::marker{display:none}
.nav-toggle:focus-visible,
.lightbox button:focus-visible,
.site-nav nav a:focus-visible{
  outline:1px solid var(--wood-lite,#c9a27a);
  outline-offset:4px;
}
@media (min-width:801px){
  .site-nav .nav-menu{display:none}
  .site-nav .nav-desktop{display:flex;flex-wrap:wrap;justify-content:flex-end}
}
@media (max-width:800px){
  .site-nav .wrap{
    flex-wrap:nowrap;
    position:relative;
  }
  .site-nav .nav-desktop{display:none}
  .site-nav .nav-menu{margin-left:auto}
  .nav-menu nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:#0a100c;
    border-bottom:1px solid var(--rule,#2a3d32);
    flex-direction:column;
    justify-content:flex-start;
    padding:8px 0 16px;
    z-index:5;
  }
  .nav-menu[open] nav{display:flex}
  .nav-menu nav a{
    margin-left:0;
    padding:14px 20px;
    min-height:44px;
    display:flex;
    align-items:center;
    border-top:1px solid var(--rule,#2a3d32);
  }
}

/* Gallery lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:64px 72px 80px;
}
.lightbox[hidden]{display:none !important}
.lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,16,12,.92);
}
.lightbox-frame{
  position:relative;
  z-index:1;
  max-width:min(1120px,100%);
  max-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.lightbox-image{
  max-width:100%;
  max-height:calc(100vh - 170px);
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 8px 40px rgba(0,0,0,.45);
}
.lightbox-caption{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  line-height:1.45;
  letter-spacing:.02em;
  color:var(--parchment,#e6e1d4);
  text-align:center;
  margin:16px 0 0;
  max-width:42em;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next{
  position:absolute;
  z-index:2;
  background:transparent;
  border:0;
  color:var(--mist,#e9ebe6);
  font-family:'IBM Plex Mono',monospace;
  cursor:pointer;
  line-height:1;
  padding:8px 12px;
}
.lightbox-close{
  top:16px;
  right:16px;
  font-size:32px;
}
.lightbox-prev,
.lightbox-next{
  top:50%;
  transform:translateY(-50%);
  font-size:48px;
  padding:12px 16px;
}
.lightbox-prev{left:8px}
.lightbox-next{right:8px}
body.lightbox-open{overflow:hidden}
@media (max-width:800px){
  .lightbox{padding:56px 16px 72px}
  .lightbox-prev,
  .lightbox-next{font-size:36px;padding:8px 10px}
  .lightbox-image{max-height:calc(100vh - 150px)}
}

/* Recent News (home + archive) */
.recent-news{
  padding:56px 0 80px;
  border-top:1px solid var(--rule,#2a3d32);
}
.recent-news h2,
.news-year h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  color:var(--parchment-bright,#f3f1ea);
}
.recent-news h2{margin:0 0 28px;font-size:44px}
.news-list{
  list-style:none;
  margin:0;
  padding:0;
}
.news-list li{
  padding:16px 0;
  border-bottom:1px solid var(--rule,#2a3d32);
}
.news-list li:first-child{border-top:1px solid var(--rule,#2a3d32)}
.news-list a{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:26px;
  font-weight:500;
  line-height:1.25;
  color:var(--parchment-bright,#f3f1ea);
  text-decoration:none;
}
.news-list a:hover{color:var(--cherry-lite,#c24a42)}
.news-meta{
  display:block;
  margin-top:6px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.04em;
  color:var(--muted,#a8b3aa);
}
.news-more{
  margin:22px 0 0;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  letter-spacing:0.04em;
}
.news-more a{color:var(--wood-lite,#c9a27a)}
.news-more a:hover{color:var(--cherry-lite,#c24a42)}
.news-archive{padding:8px 0 96px}
.news-years{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:0 0 36px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.news-years a{color:var(--wood-lite,#c9a27a)}
.news-years a:hover{color:var(--cherry-lite,#c24a42)}
.news-year{margin:0 0 48px}
.news-year h2{font-size:36px;margin:0 0 16px}
@media (max-width:800px){
  .recent-news{padding:40px 0 64px}
  .recent-news h2{font-size:36px}
  .news-list a{font-size:22px}
  .recent-news .wrap{padding-left:20px;padding-right:20px}
}
