/*
Theme Name: Orienteer
Theme URI: https://deer-hunter2015.com/
Description: Field-guide theme for a games log. The archive is drawn as a route: entries are stations threaded on a course line and grouped by year, over a generated contour field. Built text-first, with grid references and article length carried in the map's own vocabulary.
Author: deer-hunter2015.com
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: orienteer
*/

/* ---------------------------------------------------------------- fonts */
@font-face{font-family:'Saira Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/SairaCondensed-600.woff2') format('woff2');}
@font-face{font-family:'Saira Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/SairaCondensed-700.woff2') format('woff2');}
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/Lora-400.woff2') format('woff2');}
@font-face{font-family:'Lora';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/Lora-400i.woff2') format('woff2');}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/Lora-600.woff2') format('woff2');}
@font-face{font-family:'Azeret Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/AzeretMono-400.woff2') format('woff2');}
@font-face{font-family:'Azeret Mono';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/AzeretMono-500.woff2') format('woff2');}

/* --------------------------------------------------------------- tokens */
:root{
  --paper:#E8E9E0; --paper-2:#DCDED2; --sheet:#F4F4EE;
  --ink:#1B211C; --ink-2:#3C453C; --dim:#666C5D;
  --moss:#2E4A34; --moss-2:#3F6248; --moss-3:#5B7C63;
  --blaze:#DE5410; --blaze-2:#B84109;
  --rule:#B6BBAA; --rule-2:#CBCFC0; --rule-3:#DEE1D6;

  --f-disp:'Saira Condensed',Impact,'Arial Narrow',sans-serif;
  --f-body:'Lora',Georgia,'Times New Roman',serif;
  --f-mono:'Azeret Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1140px; --measure:65ch;
  --s1:6px; --s2:12px; --s3:18px; --s4:28px; --s5:44px; --s6:68px; --s7:100px;
  --station:14px;      /* half-width of the course-line marker */
  --gutter:74px;       /* the course line's own column */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--f-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--moss);text-decoration:none}
a:hover{color:var(--blaze)}
:focus-visible{outline:2px solid var(--blaze);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;background:var(--moss);color:#fff;padding:10px 16px;z-index:99}
.skip:focus{left:8px;top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ------------------------------------------------------------- masthead */
.mast{background:var(--moss);color:#DFE5DA;position:relative;overflow:hidden}
.mast::before{content:"";position:absolute;inset:0;background:url('assets/contour-band.svg') center/cover no-repeat;opacity:.22;pointer-events:none}
.mast__in{position:relative;display:flex;align-items:center;gap:var(--s4);padding:16px 24px;max-width:var(--wrap);margin:0 auto}
.brand{display:flex;align-items:center;gap:13px;color:#fff}
.brand:hover{color:#fff}
.brand__mark{flex:none;width:40px;height:40px}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--f-disp);font-weight:700;font-size:27px;letter-spacing:.06em;text-transform:uppercase}
.brand__sub{font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#A9BFAE;margin-top:6px}
.mast__nav{margin-left:auto}
.mast__nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s3);margin:0;padding:0}
.mast__nav a{
  font-family:var(--f-disp);font-weight:600;font-size:15px;letter-spacing:.11em;text-transform:uppercase;
  color:#C6D4C5;padding:6px 0;display:block;border-bottom:2px solid transparent;
}
.mast__nav a:hover,.mast__nav .current-menu-item>a{color:#fff;border-bottom-color:var(--blaze)}
.mast__toggle{display:none}

/* datum strip — the map's own key line */
.datum{background:var(--paper-2);border-bottom:1px solid var(--rule)}
.datum__in{
  display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;
  max-width:var(--wrap);margin:0 auto;padding:9px 24px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);
}
.datum__in b{color:var(--ink);font-weight:500}
.datum__search{margin-left:auto}

/* ----------------------------------------------------------- searchform */
.sform{display:flex;align-items:center;gap:7px}
.sform input[type=search]{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--rule);padding:3px 2px;width:124px;
}
.sform input[type=search]:focus{border-bottom-color:var(--blaze);outline:none}
.sform button{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  background:none;border:0;color:var(--moss);cursor:pointer;padding:3px 0;
}
.sform button:hover{color:var(--blaze)}

/* ------------------------------------------------------------ the sheet */
/* the lead entry sits on a drawn contour sheet — the one big gesture */
.sheet{position:relative;margin:var(--s5) 0 var(--s6);border:1px solid var(--rule);background:var(--sheet);overflow:hidden}
.sheet::before{content:"";position:absolute;inset:0;background:url('assets/contour-sheet.svg') center/cover no-repeat;opacity:.16;pointer-events:none}
.sheet__in{position:relative;padding:var(--s6) var(--s5)}
.sheet__flag{
  display:inline-flex;align-items:center;gap:9px;margin:0 0 var(--s4);
  font-family:var(--f-mono);font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--blaze);
}
.sheet__flag::before{content:"";width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid var(--blaze)}
.sheet__flag span{color:var(--dim)}
.sheet__title{
  font-family:var(--f-disp);font-weight:700;
  font-size:clamp(2.3rem,6vw,4.1rem);line-height:.98;letter-spacing:.005em;text-transform:uppercase;
  margin:0 0 var(--s3);color:var(--ink);max-width:16ch;text-wrap:balance;
}
.sheet__title a{color:inherit}
.sheet__title a:hover{color:var(--moss)}
.sheet__stand{font-size:1.14rem;line-height:1.6;color:var(--ink-2);margin:0 0 var(--s4);max-width:52ch}
.sheet__plate{margin-top:var(--s4);max-width:560px;border:1px solid var(--rule);padding:5px;background:#fff}

/* the reading-vocabulary of the map, used everywhere */
.gr{
  display:flex;flex-wrap:wrap;gap:7px 16px;align-items:center;
  font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);
}
.gr b{color:var(--ink-2);font-weight:500}
.tag{
  --cc:var(--dim);
  display:inline-flex;align-items:center;gap:6px;color:var(--cc);
  font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
}
.tag::before{content:"";width:9px;height:9px;background:var(--cc);flex:none}
a.tag:hover{color:var(--blaze)}
a.tag:hover::before{background:var(--blaze)}

/* --------------------------------------------------------------- ranges */
.range{padding:0 0 var(--s5)}
.range__head{
  display:flex;align-items:baseline;gap:var(--s3);margin:0 0 var(--s4);padding-bottom:9px;
  border-bottom:2px solid var(--moss);
}
.range__yr{
  font-family:var(--f-disp);font-weight:700;font-size:2rem;line-height:1;letter-spacing:.03em;color:var(--moss);
}
.range__n{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.range__rule{margin-left:auto;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

/* ------------------------------------------------------- course + stations */
.course{position:relative;padding-left:var(--gutter)}
/* the line of the route itself */
.course::before{
  content:"";position:absolute;left:calc(var(--station) + 8px);top:14px;bottom:14px;width:2px;
  background:repeating-linear-gradient(180deg,var(--moss-3) 0 8px,transparent 8px 15px);
}
.stn{position:relative;padding:var(--s4) 0;border-top:1px solid var(--rule-2)}
.stn:first-child{border-top:0;padding-top:0}
.stn__mark{
  position:absolute;left:calc(-1 * var(--gutter) + 1px);top:var(--s4);
  width:calc(var(--station) * 2 + 16px);display:flex;flex-direction:column;align-items:center;gap:7px;
}
.stn:first-child .stn__mark{top:0}
.stn__tri{
  width:0;height:0;border-left:var(--station) solid transparent;border-right:var(--station) solid transparent;
  border-bottom:calc(var(--station) * 1.5) solid var(--moss);
  transition:border-bottom-color .18s ease;
}
.stn__gr{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.05em;color:var(--dim);transition:color .18s ease}
.stn:hover .stn__tri{border-bottom-color:var(--blaze)}
.stn:hover .stn__gr{color:var(--blaze)}
.stn__title{
  font-family:var(--f-disp);font-weight:700;font-size:1.72rem;line-height:1.1;letter-spacing:.01em;
  margin:0 0 10px;text-wrap:balance;
}
.stn__title a{color:var(--ink)}
.stn__title a:hover{color:var(--moss)}
.stn__stand{color:var(--ink-2);margin:0 0 12px;font-size:1rem;line-height:1.58;max-width:60ch}
.stn__row{display:flex;gap:var(--s4);align-items:flex-start}
.stn__plate{flex:none;width:150px;border:1px solid var(--rule);padding:4px;background:#fff}

/* ------------------------------------------------------------ pagination */
.pagination{padding:var(--s5) 0;border-top:2px solid var(--moss)}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em}
.pagination .page-numbers{display:inline-block;padding:8px 13px;border:1px solid var(--rule);color:var(--ink-2);background:var(--sheet)}
.pagination .page-numbers:hover{border-color:var(--moss);color:var(--moss)}
.pagination .page-numbers.current{background:var(--moss);border-color:var(--moss);color:#fff}
.pagination .page-numbers.dots{border-color:transparent;background:none}

/* ---------------------------------------------------------------- entry */
.entry{padding:var(--s5) 0 var(--s5)}
.entry__head{max-width:80ch;margin:0 auto var(--s5)}
.entry__flag{
  display:inline-flex;align-items:center;gap:9px;margin:0 0 var(--s3);
  font-family:var(--f-mono);font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--blaze);
}
.entry__flag::before{content:"";width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid var(--blaze)}
.entry__flag span{color:var(--dim)}
.entry__title{
  font-family:var(--f-disp);font-weight:700;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.02;
  letter-spacing:.01em;text-transform:uppercase;margin:0 0 var(--s3);text-wrap:balance;
}
.entry__stand{font-size:1.14rem;line-height:1.58;color:var(--ink-2);margin:0 0 var(--s4);font-style:italic}
.entry__rule{border:0;border-top:2px solid var(--moss);margin:var(--s4) 0 0}
.entry__plate{max-width:920px;margin:0 auto var(--s5);border:1px solid var(--rule);padding:6px;background:#fff}

.prose{max-width:var(--measure);margin:0 auto;font-size:1.08rem;line-height:1.75}
.prose p{margin:0 0 1.25em}
.prose>*:first-child{margin-top:0}
.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--f-disp);color:var(--ink);line-height:1.14;letter-spacing:.01em;text-transform:uppercase}
.prose h2{font-size:1.72rem;font-weight:700;margin:2.1em 0 .55em;display:flex;align-items:center;gap:12px}
.prose h2::before{content:"";width:0;height:0;flex:none;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:13px solid var(--blaze)}
.prose h3{font-size:1.28rem;font-weight:700;margin:1.9em 0 .45em;color:var(--moss)}
.prose h4{font-size:1.06rem;font-weight:600;margin:1.7em 0 .4em}
.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}
.prose a:hover{text-decoration-color:var(--blaze)}
.prose ul,.prose ol{margin:0 0 1.25em;padding-left:1.4em}
.prose li{margin:0 0 .45em}
.prose li::marker{color:var(--blaze)}
.prose blockquote{margin:1.6em 0;padding:2px 0 2px 20px;border-left:4px solid var(--moss-3);font-style:italic;color:var(--ink-2)}
.prose blockquote p:last-child{margin-bottom:0}
.prose img{margin:1.6em 0;border:1px solid var(--rule);padding:5px;background:#fff}
.prose figure{margin:1.6em 0}
.prose figcaption{font-family:var(--f-mono);font-size:11px;letter-spacing:.09em;color:var(--dim);margin-top:8px;text-transform:uppercase}
.prose code{font-family:var(--f-mono);font-size:.88em;background:var(--paper-2);padding:1px 5px}
.prose pre{background:var(--moss);color:#DAE4D9;padding:18px;overflow:auto;font-family:var(--f-mono);font-size:.85rem;line-height:1.55}
.prose pre code{background:none;padding:0;color:inherit}
.prose table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.95rem}
.prose th,.prose td{border:1px solid var(--rule);padding:9px 11px;text-align:left}
.prose th{background:var(--paper-2);font-family:var(--f-disp);font-weight:700;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2.2em 0}

.filing{max-width:var(--measure);margin:var(--s6) auto 0;border-top:2px solid var(--moss);padding-top:var(--s3)}

/* prev / next stations */
.legs{max-width:var(--wrap);margin:var(--s6) auto 0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule)}
.leg{background:var(--sheet);padding:var(--s4);display:block}
.leg:hover{background:var(--paper-2)}
.leg__k{font-family:var(--f-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--blaze);display:block;margin-bottom:9px}
.leg__t{font-family:var(--f-disp);font-weight:700;font-size:1.16rem;line-height:1.2;text-transform:uppercase;color:var(--ink)}
.leg--next{text-align:right}

/* nearby */
.nearby{padding:var(--s6) 0 0}
.nearby__list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.nearby__i{display:block;border-top:2px solid var(--moss);padding-top:var(--s2)}
.nearby__k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);display:block;margin-bottom:8px}
.nearby__t{font-family:var(--f-disp);font-weight:700;font-size:1.1rem;line-height:1.18;text-transform:uppercase;color:var(--ink)}
.nearby__i:hover .nearby__t{color:var(--blaze)}

/* ------------------------------------------------------------ page/misc */
.pagehead{padding:var(--s5) 0 var(--s4)}
.pagehead__t{font-family:var(--f-disp);font-weight:700;font-size:clamp(2rem,4.6vw,3rem);line-height:1.04;text-transform:uppercase;letter-spacing:.01em;margin:0}
.pagehead__d{color:var(--ink-2);margin:var(--s2) 0 0;max-width:60ch}
.notice{border:1px solid var(--rule);background:var(--sheet);padding:var(--s5);text-align:center;margin:var(--s4) 0 var(--s6)}
.notice h2{font-family:var(--f-disp);font-weight:700;font-size:1.6rem;text-transform:uppercase;margin:0 0 10px}
.notice p{color:var(--ink-2);margin:0 auto var(--s3);max-width:48ch}
.notice .sform{justify-content:center}

/* legend of sections */
.legend{padding:0 0 var(--s5)}
.legend__list{display:flex;flex-wrap:wrap;gap:9px}
.legend__i{
  --cc:var(--dim);
  display:inline-flex;align-items:center;gap:9px;border:1px solid var(--rule);background:var(--sheet);
  padding:7px 13px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);
}
.legend__i::before{content:"";width:11px;height:11px;background:var(--cc);flex:none}
.legend__i b{color:var(--dim);font-weight:400}
.legend__i:hover{border-color:var(--cc);color:var(--ink)}

/* --------------------------------------------------------------- widget */
.widget{border:1px solid var(--rule);background:var(--sheet);padding:var(--s3);margin:0 0 var(--s3)}
.widget-title{font-family:var(--f-disp);font-weight:700;font-size:15px;letter-spacing:.11em;text-transform:uppercase;margin:0 0 10px;color:var(--moss)}
.widget ul{list-style:none;margin:0;padding:0;font-size:.95rem}
.widget li{padding:5px 0;border-bottom:1px solid var(--rule-3)}
.widget li:last-child{border-bottom:0}

/* --------------------------------------------------------------- footer */
.foot{background:var(--moss);color:#C5D3C6;margin-top:var(--s6);position:relative;overflow:hidden}
.foot::before{content:"";position:absolute;inset:0;background:url('assets/contour-band.svg') center/cover no-repeat;opacity:.15;pointer-events:none}
.foot__in{position:relative;max-width:var(--wrap);margin:0 auto;padding:var(--s6) 24px var(--s5);display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--s5)}
.foot h3{font-family:var(--f-disp);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#9FBBA4;margin:0 0 var(--s3)}
.foot p{margin:0 0 1em;font-size:.98rem;line-height:1.62;color:#BACCBB;max-width:44ch}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:0 0 8px}
.foot a{color:#DCE7DC;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.foot a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.foot__brand{display:flex;align-items:center;gap:13px;margin-bottom:var(--s3)}
.foot__brand svg{width:46px;height:46px;flex:none;opacity:.9}
.foot__name{font-family:var(--f-disp);font-weight:700;font-size:22px;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.colophon{
  position:relative;border-top:1px solid rgba(255,255,255,.15);max-width:var(--wrap);margin:0 auto;
  padding:var(--s3) 24px var(--s5);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:#9FBBA4;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);
}

/* ------------------------------------------------------------ responsive */
@media (max-width:900px){
  .nearby__list{grid-template-columns:1fr}
  .foot__in{grid-template-columns:1fr 1fr}
  .foot__about{grid-column:1/-1}
  .sheet__in{padding:var(--s5) var(--s4)}
}
@media (max-width:680px){
  body{font-size:16.5px}
  :root{--gutter:44px;--station:10px}
  .mast__in{flex-wrap:wrap;gap:var(--s2) var(--s3);padding:13px 20px}
  .mast__toggle{
    display:block;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.32);color:#DCE7DC;
    font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;padding:7px 11px;cursor:pointer;
  }
  .mast__nav{flex-basis:100%;margin-left:0;display:none}
  .mast__nav.is-open{display:block}
  .mast__nav ul{flex-direction:column;gap:0}
  .mast__nav li{border-top:1px solid rgba(255,255,255,.13)}
  .mast__nav a{padding:11px 0}
  .wrap{padding:0 20px}
  .datum__in{padding:9px 20px;gap:8px var(--s3);font-size:10.5px}
  .datum__search{margin-left:0;flex-basis:100%}
  .sform input[type=search]{width:100%}
  .sheet{margin:var(--s4) 0 var(--s5)}
  .stn__row{flex-direction:column;gap:var(--s3)}
  .stn__plate{width:100%;max-width:220px;order:2}
  .stn__mark{flex-direction:row;align-items:center;gap:9px;width:auto;left:calc(-1 * var(--gutter))}
  .stn__gr{display:none}
  .course::before{left:calc(var(--station) - 1px)}
  .legs{grid-template-columns:1fr}
  .leg--next{text-align:left}
  .foot__in{grid-template-columns:1fr;padding:var(--s5) 20px var(--s4)}
  .colophon{padding:var(--s3) 20px var(--s4)}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
@media print{
  .mast,.datum,.foot,.pagination,.legs,.nearby,.colophon{display:none}
  body{background:#fff}
}
