/* latin-ext */
@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/archivo-black-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/archivo-black-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/bebas-neue-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/bebas-neue-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/caveat-500-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Special Elite';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/special-elite-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Special Elite';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/special-elite-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/unbounded-700-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =============================================== */

:root{
  --khaki:#3D4A2A;
  --khaki-dark:#2a331d;
  --paper:#F4ECD8;
  --paper-2:#EADFBF;
  --rust:#C2410C;
  --mustard:#D4A017;
  --ink:#1A1A1A;
  --compass:#4A6B7C;
  --fade:#8a7f62;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Special Elite', 'Courier New', monospace;
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  overflow-x:hidden;
  position:relative;
  min-height:100vh;
}

/* Paper + topography background */
body::before{
  content:"";
  position:fixed;inset:0;
  background:
    /* coffee stain 1 */
    radial-gradient(ellipse 180px 140px at 12% 18%, rgba(139,90,43,0.14), transparent 60%),
    /* coffee stain 2 */
    radial-gradient(ellipse 120px 90px at 88% 72%, rgba(139,90,43,0.10), transparent 60%),
    /* coffee stain 3 */
    radial-gradient(ellipse 90px 70px at 45% 92%, rgba(90,60,20,0.08), transparent 60%),
    /* paper vignette */
    radial-gradient(ellipse at center, transparent 40%, rgba(90,70,30,0.18) 100%),
    var(--paper);
  z-index:-3;
  pointer-events:none;
}
/* grain */
body::after{
  content:"";
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.3  0 0 0 0 0.2  0 0 0 0 0.1  0 0 0 0.18 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  opacity:0.35;
  mix-blend-mode:multiply;
  z-index:-2;
  pointer-events:none;
}

/* topographic contour lines overlay */
.topo-bg{
  position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;display:none;
  background-image:none;
  background-size:800px 800px;
}

h1,h2,h3,h4{
  font-family:'Archivo Black','Arial Black',sans-serif;
  font-weight:900;
  letter-spacing:0.01em;
  line-height:0.95;
  color:var(--khaki-dark);
}

.mono{font-family:'Special Elite',monospace}
.hand{font-family:'Caveat',cursive;font-weight:700}
.display{font-family:'Archivo Black','Arial Black',sans-serif}

/* Global container */
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;position:relative}

/* === Top strip === */
.topstrip{
  background:var(--khaki);
  color:var(--paper);
  font-family:'Special Elite',monospace;
  font-size:12px;
  letter-spacing:0.15em;
  padding:10px 24px;
  display:flex;justify-content:space-between;gap:16px;
  border-bottom:2px solid var(--khaki-dark);
  position:relative;
  overflow:hidden;
}
.topstrip::before{
  content:"✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱";
  position:absolute;bottom:2px;left:0;right:0;font-size:6px;opacity:0.4;white-space:nowrap;
}
.topstrip .dot{width:8px;height:8px;background:var(--mustard);border-radius:50%;display:inline-block;margin-right:8px;vertical-align:middle;animation:blink 1.8s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}

/* === HERO === */
.hero{
  position:relative;
  padding:60px 0 80px;
  overflow:hidden;
  border-bottom:5px solid var(--khaki-dark);
  /* Full-screen hero minus the ~38px top info strip. svh keeps it stable on
     mobile (no re-layout as the URL bar shows/hides); vh is the fallback. */
  min-height: calc(100vh - 38px);
  min-height: calc(100svh - 38px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0.55;
}
.hero-bg svg{width:100%;height:100%}

.hero-inner{position:relative;z-index:2;text-align:center}

/* Emblem */
/* Rotation + GPU-layer promotion live on .emblem-wrap. backface-visibility:hidden
   (plus a no-op translateZ to trigger 3D context) forces the whole sticker into
   its own composited layer, where 2D rotation is rasterised with subpixel AA —
   no staircase aliasing on the diagonal edges, no "dashed seam" between border
   and fill. .emblem-year is a sibling inside the wrap, so it rotates together
   with .emblem and stays clear of any filter-effect-region clipping. */
.emblem-wrap{
  display:inline-block;
  position:relative;
  transform:rotate(-1.5deg) translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  margin-bottom:36px;
}
.emblem{
  display:inline-block;
  position:relative;
  padding:18px 40px;
  border:4px solid var(--khaki-dark);
  background:var(--paper-2);
  box-shadow: 3px 4px 0 var(--khaki-dark), 6px 8px 20px rgba(0,0,0,0.15);
}
.emblem::before,.emblem::after{
  content:"";position:absolute;width:18px;height:18px;border:2px solid var(--khaki-dark);background:var(--paper-2);border-radius:50%;
}
.emblem::before{top:-10px;left:-10px}
.emblem::after{bottom:-15px;right:-15px}
.emblem-id{
  font-family:'Archivo Black',sans-serif;font-size:clamp(42px,8vw,76px);
  color:var(--khaki-dark);letter-spacing:0.06em;line-height:1;
}
.emblem-camp{
  font-family:'Special Elite',monospace;font-size:14px;letter-spacing:0.5em;
  color:var(--rust);margin-top:4px;
}
.emblem-year{
  font-family:'Caveat',cursive;font-size:28px;color:var(--compass);
  position:absolute;top:-16px;right:-24px;transform:rotate(8deg);
  background:var(--mustard);padding:2px 14px;border:2px solid var(--khaki-dark);
}

/* Theme of year */
.theme-line{
  font-size:12px;letter-spacing:0.5em;color:var(--rust);margin:28px 0 6px;
  font-family:'Special Elite',monospace;
}
.theme-year{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(72px,16vw,180px);
  line-height:0.82;
  color:var(--khaki-dark);
  letter-spacing:-0.02em;
  text-transform:uppercase;
  position:relative;
  display:inline-block;
  margin:0 auto 8px;
}
.theme-year .and{
  color:var(--rust);
  font-family:'Caveat',cursive;
  font-weight:700;
  font-size:0.55em;
  display:inline-block;
  transform:rotate(-6deg) translateY(-0.1em);
  margin:0 0.08em;
  letter-spacing:0;
}
.theme-year .underline{
  display:block;height:6px;background:var(--rust);margin-top:4px;
  width:70%;margin-left:auto;margin-right:auto;transform:skewX(-8deg);
  border-radius:2px;
}

.sub{
  font-family:'Special Elite',monospace;
  font-size:clamp(14px,1.6vw,18px);
  letter-spacing:0.2em;
  color:var(--khaki-dark);
  margin:18px auto 0;max-width:720px;
  text-transform:uppercase;
}

/* Metadata row (dates + location) */
.meta-row{
  display:flex;gap:20px;justify-content:center;align-items:center;flex-wrap:wrap;
  margin-top:40px;
}
.meta-card{
  background:var(--paper);border:2px solid var(--khaki-dark);
  padding:14px 22px;
  font-family:'Special Elite',monospace;
  position:relative;
  box-shadow:3px 3px 0 var(--khaki-dark);
}
.meta-card:nth-child(1){transform:rotate(-1deg)}
.meta-card:nth-child(2){transform:rotate(1.2deg)}
.meta-card:nth-child(3){transform:rotate(-0.8deg)}
.meta-card .k{font-size:10px;letter-spacing:0.3em;color:var(--rust);text-transform:uppercase}
.meta-card .v{font-family:'Archivo Black',sans-serif;font-size:20px;color:var(--khaki-dark);margin-top:2px;letter-spacing:0.05em}

/* CTA button */
.cta{
  display:inline-block;
  font-family:'Archivo Black',sans-serif;
  background:var(--rust);
  color:var(--paper);
  padding:22px 46px;
  font-size:22px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  text-decoration:none;
  border:3px solid var(--khaki-dark);
  box-shadow:5px 6px 0 var(--khaki-dark);
  transform:rotate(-1deg) translateZ(0);
  transition:transform .15s ease, box-shadow .15s ease;
  margin-top:44px;
  cursor:pointer;
  position:relative;
  will-change:transform;
  backface-visibility:hidden;
}
.cta:hover{transform:rotate(-1deg) translate3d(-2px,-2px,0);box-shadow:7px 8px 0 var(--khaki-dark)}
.cta:active{transform:rotate(-1deg) translate3d(3px,3px,0);box-shadow:2px 3px 0 var(--khaki-dark)}
.cta .arrow{display:inline-block;margin-left:10px;transition:transform .2s}
.cta:hover .arrow{transform:translateX(6px)}

.hand-note{
  font-family:'Caveat',cursive;font-weight:700;
  color:var(--compass);
  font-size:24px;
  display:block;margin-top:18px;transform:rotate(-2deg);
}

/* Compass decoration */
.compass-deco{
  position:absolute;width:160px;height:160px;
  opacity:0.85;
}
.compass-deco.tl{top:30px;left:30px;transform:rotate(-12deg)}
.compass-deco.br{bottom:30px;right:30px;transform:rotate(18deg);width:130px;height:130px}

/* GPS chip */
.gps-chip{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Special Elite',monospace;font-size:12px;letter-spacing:0.15em;
  color:var(--compass);border:1px dashed var(--compass);
  padding:6px 12px;background:rgba(74,107,124,0.06);
}

/* === Sections === */
section{padding:90px 0;position:relative;border-bottom:3px solid var(--khaki-dark)}
section:last-of-type{border-bottom:none}

.section-kicker{
  display:flex;align-items:center;gap:12px;
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:0.4em;
  color:var(--rust);text-transform:uppercase;margin-bottom:14px;
}
.section-kicker::before{content:"";width:40px;height:2px;background:var(--rust)}
.section-title{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(36px,6vw,68px);
  line-height:0.95;color:var(--khaki-dark);
  margin-bottom:28px;max-width:900px;
}

/* === Seats counter === */
.seats{
  background:var(--khaki);color:var(--paper);
  position:relative;overflow:hidden;
  border-top:3px solid var(--khaki-dark);
  border-bottom:3px solid var(--khaki-dark);
}
.seats::before{
  content:"";position:absolute;inset:0;opacity:0.12;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%23F4ECD8' stroke-width='0.8'><circle cx='200' cy='200' r='80'/><circle cx='200' cy='200' r='110'/><circle cx='200' cy='200' r='140'/><circle cx='200' cy='200' r='170'/></g></svg>");
  background-size:400px 400px;
}
.seats .wrap{position:relative}
.seats h2{color:var(--paper)}
.seats .section-kicker{color:var(--mustard)}
.seats .section-kicker::before{background:var(--mustard)}

.seats-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}
.seats-num{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(100px,18vw,220px);
  line-height:0.85;color:var(--mustard);
  letter-spacing:-0.04em;
  text-shadow:4px 4px 0 var(--khaki-dark);
}
.seats-num .total{color:var(--paper);font-size:0.4em;display:block;margin-top:6px;opacity:0.8;letter-spacing:0}
.seats-meta{font-family:'Special Elite',monospace;font-size:14px;letter-spacing:0.2em;color:var(--paper);opacity:0.85;margin-top:12px}

/* Rope progress bar */
.rope-track{
  position:relative;height:26px;background:var(--khaki-dark);
  border:2px solid var(--paper);border-radius:14px;
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.4);
  margin:28px 0 10px;overflow:hidden;
}
.rope-fill{
  height:100%;
  background:
    repeating-linear-gradient(45deg, var(--mustard) 0 8px, var(--rust) 8px 16px);
  border-right:3px solid var(--paper);
  transition:width 1s cubic-bezier(.2,.8,.2,1);
  width:0%;
  position:relative;
}
.rope-fill::after{
  content:"";position:absolute;right:-8px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;background:var(--paper);
  border:3px solid var(--khaki-dark);
}
.rope-markers{display:flex;justify-content:space-between;font-family:'Special Elite',monospace;font-size:11px;color:var(--paper);opacity:0.7;letter-spacing:0.2em}

.deadline-stamp{
  display:inline-block;border:3px solid var(--rust);color:var(--rust);
  padding:10px 18px;font-family:'Archivo Black',sans-serif;
  font-size:16px;letter-spacing:0.12em;text-transform:uppercase;
  transform:rotate(-3deg);background:var(--paper);margin-top:20px;
  filter:drop-shadow(2px 3px 0 rgba(0,0,0,0.3));
}

.countdown{
  display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;
}
.cd-unit{
  background:var(--paper);color:var(--khaki-dark);
  border:2px solid var(--paper);padding:10px 14px;min-width:70px;text-align:center;
  font-family:'Archivo Black',sans-serif;
}
.cd-unit .n{font-size:28px;line-height:1}
.cd-unit .l{font-family:'Special Elite',monospace;font-size:10px;letter-spacing:0.2em;color:var(--rust);margin-top:4px;text-transform:uppercase}

/* === About === */
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:start}
.about-text p{font-size:18px;line-height:1.65;margin-bottom:18px;color:var(--ink);font-family:'Special Elite',monospace}
.about-text p::first-letter{
  font-family:'Archivo Black',sans-serif;font-size:3em;float:left;line-height:0.9;
  margin-right:8px;color:var(--rust);padding-top:4px;
}
.quote-block{
  background:var(--paper-2);
  border-left:6px solid var(--rust);
  padding:28px 24px;
  font-family:'Caveat',cursive;font-weight:700;
  font-size:clamp(22px,2.2vw,28px);
  line-height:1.3;color:var(--khaki-dark);
  transform:rotate(0.6deg);
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,0.08));
  position:relative;
}
.quote-block::before{
  content:"";position:absolute;top:-14px;left:40px;width:90px;height:20px;
  background:rgba(212,160,23,0.5);
  transform:rotate(-4deg);
  border-radius:2px;
  box-shadow:0 2px 4px rgba(0,0,0,0.1);
}

/* sidebar badges */
.sidebar-stamps{display:flex;flex-direction:column;gap:30px;align-items:center}
.stamp{
  border:4px double var(--rust);color:var(--rust);
  padding:14px 22px;font-family:'Archivo Black',sans-serif;
  font-size:20px;letter-spacing:0.15em;transform:rotate(-8deg);
  background:rgba(244,236,216,0.4);text-align:center;
  box-shadow:0 0 0 2px rgba(194,65,12,0.1);
}
.stamp.approved{color:var(--khaki);border-color:var(--khaki);transform:rotate(5deg)}
.stamp .small{display:block;font-family:'Special Elite',monospace;font-size:10px;letter-spacing:0.3em;margin-top:4px}

/* === Included cards (badges) === */
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:40px}
.badge{
  background:var(--paper-2);
  border:3px solid var(--khaki-dark);
  padding:28px 22px 26px;
  position:relative;
  text-align:center;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:4px 5px 0 var(--khaki-dark);
}
.badge:nth-child(1){transform:rotate(-1.5deg)}
.badge:nth-child(2){transform:rotate(1deg)}
.badge:nth-child(3){transform:rotate(-0.8deg)}
.badge:nth-child(4){transform:rotate(1.6deg)}
.badge:hover{transform:translateY(-6px) rotate(0deg);box-shadow:6px 10px 0 var(--khaki-dark)}
.badge::before{
  content:"";position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-6deg);
  width:60px;height:18px;
  background:repeating-linear-gradient(90deg, rgba(212,160,23,0.7) 0 6px, rgba(194,65,12,0.7) 6px 12px);
  box-shadow:0 2px 3px rgba(0,0,0,0.15);
}
.badge-shield{
  width:92px;height:92px;margin:0 auto 16px;
  position:relative;
  display:flex;align-items:center;justify-content:center;
}
.badge-shield > svg.shield-bg{position:absolute;inset:0;width:100%;height:100%}
.badge-shield > svg.shield-icon{position:relative;z-index:2;width:42px;height:42px}
.badge-shield .shield-fill{fill:var(--rust)}
.badge-shield.mustard .shield-fill{fill:var(--mustard)}
.badge-shield.compass .shield-fill{fill:var(--compass)}
.badge-shield.khaki .shield-fill{fill:var(--khaki)}

.badge-title{
  font-family:'Archivo Black',sans-serif;font-size:20px;letter-spacing:0.1em;
  color:var(--khaki-dark);text-transform:uppercase;margin-bottom:8px;
}
.badge-desc{font-family:'Special Elite',monospace;font-size:14px;line-height:1.5;color:var(--ink)}
.badge-num{
  position:absolute;top:8px;right:10px;
  font-family:'Special Elite',monospace;font-size:10px;color:var(--fade);letter-spacing:0.2em;
}

/* === Program === */
.journal-page{
  background:var(--paper-2);
  border:2px solid var(--khaki-dark);
  padding:40px 40px 30px;
  position:relative;
  box-shadow:inset 0 0 60px rgba(90,60,20,0.08), 6px 8px 20px rgba(0,0,0,0.12);
  transform:rotate(-0.5deg);
}
.journal-page::before{
  content:"";position:absolute;left:60px;top:0;bottom:0;width:2px;background:rgba(194,65,12,0.3);
}
.journal-page::after{
  content:"";position:absolute;left:0;right:0;top:0;bottom:0;
  background-image:repeating-linear-gradient(transparent 0 30px, rgba(74,107,124,0.15) 30px 31px);
  pointer-events:none;
}
.journal-header{
  display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:2px solid var(--khaki-dark);padding-bottom:14px;margin-bottom:26px;
  font-family:'Special Elite',monospace;font-size:12px;letter-spacing:0.2em;color:var(--khaki-dark);
  text-transform:uppercase;position:relative;z-index:1;
}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;position:relative;z-index:1}
.day-slot{position:relative}
.day-icon{
  width:58px;height:58px;border:3px solid var(--khaki-dark);border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--paper);
  margin-bottom:14px;box-shadow:3px 3px 0 var(--khaki-dark);
}
.day-icon svg{width:32px;height:32px;display:block}
.day-slot:nth-child(1) .day-icon{background:#F4D58D}
.day-slot:nth-child(2) .day-icon{background:var(--rust);color:var(--paper)}
.day-slot:nth-child(2) .day-icon svg{stroke:var(--paper)}
.day-slot:nth-child(3) .day-icon{background:#4A6B7C}
.day-slot:nth-child(3) .day-icon svg{stroke:var(--paper)}
.day-label{
  font-family:'Archivo Black',sans-serif;font-size:26px;color:var(--khaki-dark);
  letter-spacing:0.08em;margin-bottom:10px;
}
.day-items{list-style:none;padding:0;font-family:'Special Elite',monospace;font-size:14px;line-height:1.7}
.day-items li{padding-left:20px;position:relative;margin-bottom:4px}
.day-items li::before{content:"→";position:absolute;left:0;color:var(--rust);font-weight:bold}
.day-time{font-family:'Caveat',cursive;font-weight:700;color:var(--compass);font-size:18px;margin-bottom:6px;display:block}

.journal-footer{
  margin-top:28px;padding-top:16px;border-top:1px dashed var(--khaki-dark);
  font-family:'Caveat',cursive;font-weight:700;font-size:20px;color:var(--rust);
  text-align:center;position:relative;z-index:1;
}

/* === Location === */
.location-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center}
.location-title{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(64px,11vw,128px);line-height:0.88;color:var(--khaki-dark);
  letter-spacing:-0.02em;text-transform:uppercase;
}
.location-coords{
  font-family:'Special Elite',monospace;font-size:14px;color:var(--compass);
  letter-spacing:0.2em;margin-top:14px;padding:10px 14px;
  border:1px dashed var(--compass);display:inline-block;
}
.location-desc{font-family:'Special Elite',monospace;font-size:16px;line-height:1.7;margin-top:22px;color:var(--ink)}
.transfer-note{
  margin-top:18px;padding:14px 18px;background:var(--paper-2);border-left:4px solid var(--mustard);
  font-family:'Caveat',cursive;font-weight:700;font-size:20px;color:var(--khaki-dark);
}

.map-frame{
  background:var(--paper-2);
  border:3px solid var(--khaki-dark);
  padding:20px;position:relative;
  box-shadow:6px 8px 0 var(--khaki-dark);
  transform:rotate(1.2deg);
}
.map-frame::before{
  content:"ROUTE MAP · BORSHCHAHIVKA → CAMP";
  position:absolute;top:-14px;left:20px;background:var(--mustard);
  font-family:'Special Elite',monospace;font-size:10px;letter-spacing:0.2em;
  padding:4px 10px;border:2px solid var(--khaki-dark);color:var(--khaki-dark);
}
.map-holder{
  position:relative;background:#EFE5C8;
  background-image:
    linear-gradient(to right, rgba(61,74,42,0.25) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(61,74,42,0.25) 1px, transparent 1px),
    linear-gradient(to right, rgba(61,74,42,0.45) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(61,74,42,0.45) 1px, transparent 1px);
  background-size: 20px 20px, 20px 20px, 100px 100px, 100px 100px;
  background-position: 0 0, 0 0, 0 0, 0 0;
  height:320px;overflow:hidden;
  box-shadow: inset -1px -1px 0 rgba(61,74,42,0.45);
}
.map-svg{width:100%;height:100%;display:block;position:relative;z-index:2}
.map-highway{position:absolute;left:0;right:0;top:50%;width:100%;height:20px;z-index:1;display:block;pointer-events:none}
.map-forest{
  position:absolute;left:0;right:0;bottom:0;width:100%;height:60px;z-index:1;display:block;
}

/* === Price === */
.price-section{background:var(--paper)}
.price-stamp{
  background:var(--paper-2);
  border:5px double var(--khaki-dark);
  padding:44px 40px 40px;
  text-align:center;max-width:640px;margin:0 auto;
  position:relative;transform:rotate(-1deg);
  box-shadow:8px 10px 0 var(--khaki-dark);
}
.price-stamp::before,.price-stamp::after{
  content:"";position:absolute;width:30px;height:30px;border:3px solid var(--khaki-dark);
  background:var(--paper);border-radius:50%;
}
.price-stamp::before{top:-16px;left:-16px}
.price-stamp::after{bottom:-20px;right:-20px}
.price-label{font-family:'Special Elite',monospace;font-size:12px;letter-spacing:0.4em;color:var(--rust);margin-bottom:8px}
.price-big{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(72px,14vw,168px);line-height:0.9;color:var(--khaki-dark);
  letter-spacing:-0.03em;
  /* baseline instead of flex-end: puts ₴ on the same typographic baseline as
     the digits, regardless of the currency glyph's internal vertical metrics. */
  display:flex;align-items:baseline;justify-content:center;gap:0.08em;
  white-space:nowrap;
}
.price-big > span{white-space:nowrap;line-height:1}
.price-big .cur{font-size:0.58em;color:var(--rust);font-weight:900;line-height:1}
.price-sub{font-family:'Caveat',cursive;font-weight:700;font-size:26px;color:var(--compass);margin:10px 0 18px}
.price-list{list-style:none;padding:0;margin:20px 0 30px;font-family:'Special Elite',monospace;font-size:14px}
.price-list li{padding:6px 0;border-bottom:1px dotted var(--fade);display:flex;justify-content:space-between;align-items:center}
.price-list li:last-child{border-bottom:none}
.price-list li::before{content:"✓";color:var(--rust);font-weight:bold;margin-right:10px}
.price-list li span:first-of-type{flex:1;text-align:left}
.price-list li span:last-of-type{font-family:'Caveat',cursive;color:var(--fade);font-size:16px}

/* === Form === */
.form-section{background:var(--khaki);color:var(--paper);border-top:3px solid var(--khaki-dark);border-bottom:3px solid var(--khaki-dark)}
.form-section h2{color:var(--paper)}
.form-section .section-kicker{color:var(--mustard)}
.form-section .section-kicker::before{background:var(--mustard)}

.form-paper{
  background:var(--paper);color:var(--ink);
  border:3px solid var(--khaki-dark);
  padding:48px 44px 40px;max-width:780px;margin:30px auto 0;
  position:relative;
  box-shadow:8px 10px 0 rgba(0,0,0,0.3);
}
.form-paper::before{
  content:"APPLICATION FORM № 2026-07";
  position:absolute;top:-16px;left:40px;background:var(--mustard);
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:0.3em;
  padding:6px 14px;border:2px solid var(--khaki-dark);color:var(--khaki-dark);
}
.form-paper::after{
  content:"";position:absolute;top:20px;right:-20px;
  width:80px;height:22px;background:rgba(194,65,12,0.35);
  transform:rotate(12deg);box-shadow:0 2px 5px rgba(0,0,0,0.15);
}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form-field{display:flex;flex-direction:column}
.form-field.full{grid-column:1/-1}
.form-field label{
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:0.2em;
  color:var(--khaki-dark);margin-bottom:6px;text-transform:uppercase;
}
.form-field label .req{color:var(--rust)}
.form-field input,.form-field select,.form-field textarea{
  font-family:'Special Elite',monospace;font-size:15px;
  background:transparent;border:none;border-bottom:2px solid var(--khaki-dark);
  padding:8px 2px;color:var(--ink);outline:none;transition:border-color .2s;
  border-radius:0;
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{
  border-bottom-color:var(--rust);
}
.form-field textarea{resize:vertical;min-height:80px;border:2px dashed var(--khaki-dark);padding:10px}
/* Hide the native up/down spinner arrows on <input type="number"> — the design
   uses a plain underlined text field, and the browser-chrome spinners clash. */
.form-field input[type="number"]{-moz-appearance:textfield;appearance:textfield}
.form-field input[type="number"]::-webkit-outer-spin-button,
.form-field input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.form-field .err{font-family:'Caveat',cursive;color:var(--rust);font-size:16px;margin-top:4px;min-height:20px;display:block}
.form-field.radio-group{grid-column:1/-1}
.radio-row{display:flex;gap:16px;margin-top:6px}
.radio-row label{display:flex;align-items:end;gap:8px;font-family:'Special Elite',monospace;font-size:14px;line-height:1;cursor:pointer;letter-spacing:0}
.radio-row input[type="radio"]{accent-color:var(--rust);width:18px;height:18px}

.checkbox-field{grid-column:1/-1;display:flex;gap:10px;margin-top:8px;align-items:flex-start}
.checkbox-field input{margin-top:4px;accent-color:var(--rust);width:18px;height:18px;flex-shrink:0}
.checkbox-field label{font-family:'Special Elite',monospace;font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--ink)}

.submit-btn{
  grid-column:1/-1;
  font-family:'Archivo Black',sans-serif;
  background:var(--rust);color:var(--paper);
  padding:20px 34px;font-size:18px;letter-spacing:0.08em;
  text-transform:uppercase;border:3px solid var(--khaki-dark);
  /* filter:drop-shadow instead of box-shadow: GPU-rendered with subpixel AA,
     which avoids the staircase aliasing on the rotated button's shadow edge. */
  filter:drop-shadow(5px 6px 0 var(--khaki-dark));cursor:pointer;
  transform:rotate(-0.5deg);transition:transform .15s, filter .15s;
  margin-top:16px;
}
.submit-btn:hover{transform:rotate(-0.5deg) translate(-2px,-2px);filter:drop-shadow(7px 8px 0 var(--khaki-dark))}
.submit-btn:active{transform:rotate(-0.5deg) translate(3px,3px);filter:drop-shadow(2px 3px 0 var(--khaki-dark))}

/* Modal */
.modal-backdrop{
  position:fixed;inset:0;background:rgba(26,26,26,0.75);
  display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;
  animation:fadein .3s ease;
}
.modal-backdrop.open{display:flex}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--paper);border:4px solid var(--khaki-dark);
  max-width:560px;width:100%;padding:40px 36px;position:relative;
  box-shadow:10px 12px 0 rgba(0,0,0,0.4);
  animation:pop .35s cubic-bezier(.2,1,.2,1);
}
@keyframes pop{from{transform:scale(0.85) rotate(-2deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
.modal-close{
  position:absolute;top:10px;right:14px;background:transparent;border:none;
  font-family:'Archivo Black',sans-serif;font-size:24px;color:var(--khaki-dark);cursor:pointer;
}
.modal-icon{
  width:64px;height:64px;margin:0 auto 20px;border:4px solid var(--khaki);border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--mustard);
  font-family:'Archivo Black',sans-serif;font-size:34px;color:var(--khaki-dark);
}
.modal h3{font-family:'Archivo Black',sans-serif;font-size:28px;text-align:center;margin-bottom:10px;color:var(--khaki-dark);letter-spacing:0.04em}
.modal p{font-family:'Special Elite',monospace;font-size:15px;line-height:1.6;margin-bottom:14px;text-align:center}
.modal .purpose-box{
  background:var(--paper-2);border:2px dashed var(--khaki-dark);
  padding:14px;text-align:center;font-family:'Special Elite',monospace;
  font-size:15px;margin:18px 0;color:var(--khaki-dark);
}
.pay-btn{
  display:block;width:100%;font-family:'Archivo Black',sans-serif;
  background:var(--rust);color:var(--paper);padding:18px;border:3px solid var(--khaki-dark);
  font-size:18px;letter-spacing:0.08em;text-transform:uppercase;
  box-shadow:5px 6px 0 var(--khaki-dark);cursor:pointer;text-decoration:none;text-align:center;
  transition:transform .15s, box-shadow .15s;
}
.pay-btn:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 var(--khaki-dark)}
.modal-note{font-family:'Caveat',cursive;font-weight:700;font-size:18px;color:var(--compass);text-align:center;margin-top:20px}

.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--khaki-dark);color:var(--paper);padding:14px 22px;
  font-family:'Special Elite',monospace;font-size:14px;letter-spacing:0.1em;
  border:2px solid var(--mustard);box-shadow:4px 5px 0 rgba(0,0,0,0.3);
  z-index:2000;transition:transform .4s cubic-bezier(.2,.8,.2,1);
  visibility:hidden;opacity:0;
}
.toast.show{transform:translateX(-50%) translateY(0);visibility:visible;opacity:1}

/* === FAQ === */
.faq-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:30px;align-items:start}
.faq-card{
  background:var(--paper-2);border:2px solid var(--khaki-dark);
  padding:22px 22px 20px;position:relative;cursor:pointer;
  transition:transform .2s, box-shadow .2s;
  box-shadow:4px 5px 0 var(--khaki-dark);
}
.faq-card:nth-child(odd){transform:rotate(-0.8deg)}
.faq-card:nth-child(even){transform:rotate(0.8deg)}
.faq-card:hover{transform:rotate(0deg) translateY(-3px);box-shadow:5px 8px 0 var(--khaki-dark)}
.faq-card::before{
  content:"";position:absolute;top:-10px;right:20px;width:50px;height:16px;
  background:rgba(74,107,124,0.45);transform:rotate(8deg);box-shadow:0 2px 3px rgba(0,0,0,0.12);
}
.faq-num{font-family:'Special Elite',monospace;font-size:11px;letter-spacing:0.3em;color:var(--rust);margin-bottom:6px}
.faq-q{font-family:'Archivo Black',sans-serif;font-size:18px;color:var(--khaki-dark);letter-spacing:0.02em;margin-bottom:10px;line-height:1.2}
.faq-a{font-family:'Special Elite',monospace;font-size:14px;line-height:1.6;color:var(--ink);
  display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .45s ease, opacity .3s ease, margin-top .45s ease;
}
.faq-a > .faq-a-inner{overflow:hidden;min-height:0}
.faq-card.open .faq-a{grid-template-rows:1fr;margin-top:8px;opacity:1}
.faq-toggle{position:absolute;top:22px;right:22px;font-family:'Archivo Black',sans-serif;font-size:22px;color:var(--rust);transition:transform .35s ease}
.faq-card.open .faq-toggle{transform:rotate(45deg)}

/* === Footer === */
footer{
  background:var(--khaki-dark);color:var(--paper);
  padding:60px 0 30px;position:relative;border-top:3px solid var(--mustard);
}
footer::before{
  content:"· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·";
  position:absolute;top:8px;left:0;right:0;text-align:center;font-size:10px;opacity:0.4;letter-spacing:0.3em;
}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;align-items:start}
.footer-brand .ft-title{font-family:'Archivo Black',sans-serif;font-size:28px;letter-spacing:0.08em;margin-bottom:6px}
.footer-brand .ft-sub{font-family:'Caveat',cursive;font-size:22px;color:var(--mustard);margin-bottom:12px}
.footer-brand .ft-addr{font-family:'Special Elite',monospace;font-size:13px;line-height:1.7;opacity:0.85}
.footer-col h4{font-family:'Archivo Black',sans-serif;font-size:14px;letter-spacing:0.2em;margin-bottom:12px;color:var(--mustard);text-transform:uppercase}
.footer-col a,.footer-col p{font-family:'Special Elite',monospace;font-size:14px;color:var(--paper);text-decoration:none;display:block;margin-bottom:6px;line-height:1.6;opacity:0.9}
.footer-col a:hover{color:var(--mustard);text-decoration:underline}
.footer-bottom{
  margin-top:50px;padding-top:20px;border-top:1px dashed rgba(244,236,216,0.3);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:0.15em;opacity:0.7;
}

/* reveal animation */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}

/* === Responsive === */
@media (max-width:900px){
  .seats-grid,.about-grid,.location-grid{grid-template-columns:1fr;gap:36px}
  .badges{grid-template-columns:repeat(2,1fr)}
  .journal-grid{grid-template-columns:1fr;gap:26px}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .faq-list{grid-template-columns:1fr}
  .compass-deco{display:none}
}
@media (max-width:560px){
  section{padding:60px 0}
  .hero{padding:40px 0 60px}
  .wrap{padding:0 18px}
  .badges{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .form-paper{padding:36px 22px 28px}
  .journal-page{padding:28px 22px}
  .journal-page::before{left:28px}

  /* Hero — push 2026 sticker further out so it doesn't overlap "P" */
  .emblem{padding:14px 28px}
  .emblem-year{right:-22px;top:-22px}
  .topstrip{font-size:10px;letter-spacing:0.08em}
  .topstrip .right{display:none}

  /* Hero CTA on narrow — keep on one line */
  .cta{padding:18px 24px;font-size:17px;width:100%;text-align:center;white-space:nowrap}

  /* Hero pine trees — push the whole bg down so trunks hide below fold */
  .hero-bg svg{transform:translateY(50px)}

  /* Meta-row — DURATION + LOCATION 50/50 top, DATES full-width below */
  .meta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .meta-card{flex:none;padding:12px 14px}
  .meta-card .v{font-size:16px}
  .meta-card:nth-child(1){order:3;grid-column:1 / -1}
  .meta-card:nth-child(2){order:2}
  .meta-card:nth-child(3){order:1}

  /* About — bigger heading, leaner paragraphs */
  #about .section-title{font-size:48px}
  .about-text p{font-size:15px;line-height:1.6}

  /* Sidebar stamps — chaotic alignment instead of all centered */
  .sidebar-stamps{align-items:stretch;gap:24px}
  .sidebar-stamps .quote-block{align-self:flex-start;transform:rotate(-2deg)}
  .sidebar-stamps .stamp.approved{align-self:flex-end;transform:rotate(8deg)}
  .sidebar-stamps .stamp:not(.approved){align-self:flex-start;transform:rotate(-6deg);margin-left:18px}

  /* Program — center day-slot headers; keep list block centered with arrows aligned */
  .day-slot{text-align:center}
  .day-icon{margin-left:auto;margin-right:auto}
  .day-items{display:inline-block;text-align:left}

  /* Location title — fit "СКРИГАЛІВКА" on one line */
  .location-title{font-size:54px;letter-spacing:-0.04em}

  /* Price-sub — both em-dashes on one line */
  .price-stamp{padding:36px 26px 32px}
  .price-sub{font-size:20px}

  /* Footer — 2 cols: brand left (spans both rows), Зв'язок + Навігація stacked right */
  .footer-grid{
    grid-template-columns:1.3fr 1fr;
    grid-template-rows:auto auto;
    gap:24px 24px;
  }
  .footer-brand{grid-column:1;grid-row:1 / span 2}
  .footer-col:nth-of-type(1){grid-column:2;grid-row:1}
  .footer-col:nth-of-type(2){grid-column:2;grid-row:2}
}