/* tokens/fonts.css */
/* CHAP webfonts — self-hosted.
   SUBSTITUTION NOTE: no font binaries shipped with the brand assets. The "chap"
   wordmark is a heavy geometric sans (single-storey a, near-circular bowls) —
   Poppins is the closest Google Fonts match. The lockup subline
   "CHOCOLATE HILLS / ADVENTURE PARK" is a bold condensed grotesque — Barlow
   Condensed matches its width and weight. Nunito Sans carries body copy.
   Replace with licensed binaries when the park supplies them.

   These woff2 files are served from our own origin rather than @import-ed from
   fonts.googleapis.com: the @import was render-blocking and serial (CSS request,
   then font requests), and it leaked every visitor's IP to a third party.
   Latin and latin-ext subsets only. Licensed under the SIL Open Font License 1.1.
   Regenerate with build/fetch-fonts.py. */

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-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;
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-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;
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-600-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;
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-600-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;
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-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;
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/barlow-condensed-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/jetbrains-mono-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/jetbrains-mono-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/jetbrains-mono-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/jetbrains-mono-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/nunito-sans-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/poppins-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/poppins-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/poppins-600-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/poppins-600-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/poppins-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/poppins-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/assets/fonts/poppins-800-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;
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/assets/fonts/poppins-800-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;
}

/* tokens/colors.css */
:root{
/* --- Chocolate: the hills in dry season. Primary brand ramp. --- */
--choco-50:#FBF4EC;--choco-100:#F2E3D2;--choco-200:#E0C4A5;--choco-300:#C79C71;--choco-400:#A9744A;--choco-500:#8A5731;--choco-600:#6E4426;--choco-700:#52321C;--choco-800:#382113;--choco-900:#1F120A;
/* --- Jungle: park foliage. Secondary ramp. --- */
--jungle-50:#EEF7EE;--jungle-100:#D3EBD4;--jungle-200:#A6D5A9;--jungle-300:#6FBA76;--jungle-400:#3E9C4C;--jungle-500:#1F7A34;--jungle-600:#175F28;--jungle-700:#10441D;--jungle-800:#0A2E14;
/* --- Sky: Bohol sky + the blue rope nets. --- */
--sky-50:#EEF6FB;--sky-100:#CFE7F4;--sky-200:#9CCDE8;--sky-300:#5FAAD3;--sky-400:#2A87B8;--sky-500:#0E6E8C;--sky-600:#0A5470;--sky-700:#073C51;
/* --- Mango: helmet + harness yellow. High-energy accent. --- */
--mango-50:#FFF6E3;--mango-100:#FFE7B4;--mango-200:#FFD37A;--mango-300:#FDBB3C;--mango-400:#F2A007;--mango-500:#D98404;--mango-600:#A6620A;
/* --- Clay: safety-rope red. Alerts + top-thrill flags. --- */
--clay-300:#F08C79;--clay-400:#E0523B;--clay-500:#C6402F;--clay-600:#9C2E21;
/* --- Sand: warm neutrals, limestone + cream. --- */
--sand-0:#FFFFFF;--sand-50:#FCF9F4;--sand-100:#F5EFE6;--sand-200:#E8E0D4;--sand-300:#D2C7B8;--sand-400:#A99E8F;--sand-500:#7C7367;--sand-600:#575047;--sand-700:#3A342E;--sand-800:#241F1B;--sand-900:#14100D;
/* --- Brush ink: the logo stroke. Never pure black. --- */
--ink:#16110E;

/* ============ Semantic aliases ============ */
--brand-primary:var(--choco-600);--brand-primary-hover:var(--choco-700);--brand-primary-press:var(--choco-800);--brand-primary-soft:var(--choco-100);
--brand-secondary:var(--jungle-500);--brand-secondary-hover:var(--jungle-600);--brand-secondary-press:var(--jungle-700);--brand-secondary-soft:var(--jungle-100);
--accent-thrill:var(--mango-400);--accent-thrill-hover:var(--mango-500);--accent-thrill-press:var(--mango-600);--accent-thrill-soft:var(--mango-100);
--accent-water:var(--sky-500);--accent-water-soft:var(--sky-100);

--text-strong:var(--ink);--text-body:var(--sand-700);--text-muted:var(--sand-500);--text-faint:var(--sand-400);--text-inverse:var(--sand-0);--text-on-brand:var(--sand-0);--text-link:var(--jungle-600);--text-link-hover:var(--jungle-700);

--surface-page:var(--sand-50);--surface-card:var(--sand-0);--surface-sunken:var(--sand-100);--surface-raised:var(--sand-0);--surface-inverse:var(--choco-900);--surface-jungle:var(--jungle-700);--surface-overlay:rgba(22,17,14,.62);

--border-subtle:var(--sand-200);--border-default:var(--sand-300);--border-strong:var(--sand-400);--border-brand:var(--choco-600);--border-inverse:rgba(255,255,255,.22);

--focus-ring:var(--mango-400);--focus-ring-offset:var(--surface-page);

--success:var(--jungle-500);--success-soft:var(--jungle-100);--warning:var(--mango-500);--warning-soft:var(--mango-100);--danger:var(--clay-500);--danger-soft:#FBE7E2;--info:var(--sky-500);--info-soft:var(--sky-100);

/* Photo protection: every headline over an image sits on one of these. */
--scrim-bottom:linear-gradient(to top,rgba(22,17,14,.86) 0%,rgba(22,17,14,.55) 38%,rgba(22,17,14,0) 78%); /* @kind other */
--scrim-flat:rgba(22,17,14,.48);
}

/* tokens/typography.css */
:root{
--font-display:"Poppins","Trebuchet MS",system-ui,sans-serif;
--font-label:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
--font-body:"Nunito Sans",system-ui,-apple-system,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

--weight-regular:400;--weight-semibold:600;--weight-bold:700;--weight-black:800;

/* Display — Poppins, tight and set in sentence case or lowercase like the wordmark */
--text-hero:clamp(44px,6vw,84px);--text-display-1:clamp(36px,4.4vw,60px);--text-display-2:clamp(30px,3.2vw,44px);--text-heading-1:32px;--text-heading-2:24px;--text-heading-3:20px;
/* Body — Nunito Sans */
--text-body-lg:19px;--text-body-md:16px;--text-body-sm:14px;--text-caption:13px;
/* Label — Barlow Condensed, ALL CAPS, tracked out */
--text-label-lg:18px;--text-label-md:15px;--text-label-sm:13px;

--leading-tight:1.04;--leading-snug:1.18;--leading-normal:1.5;--leading-relaxed:1.65;
--tracking-hero:-.02em;--tracking-display:-.01em;--tracking-body:0;--tracking-label:.14em;--tracking-label-wide:.2em;
}

/* tokens/spacing.css */
:root{
--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;
--gutter-inline:clamp(20px,5vw,72px); /* @kind spacing */
--section-y:clamp(56px,7vw,112px); /* @kind spacing */
--stack-tight:var(--space-2);--stack-default:var(--space-4);--stack-loose:var(--space-8);
--container-max:1240px;--container-narrow:760px;
--control-h-sm:36px;--control-h-md:44px;--control-h-lg:54px;
--tap-min:44px;
}

/* tokens/radii.css */
:root{
--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--radius-pill:999px;--radius-circle:50%;
--radius-card:var(--radius-lg);--radius-control:var(--radius-pill);--radius-media:var(--radius-md);--radius-tag:var(--radius-pill);
--border-hairline:1px;--border-thick:2px;--border-emphasis:3px;
}

/* tokens/elevation.css */
:root{
/* Shadows are warm-brown tinted, never neutral grey. */
--shadow-none:none;
--shadow-xs:0 1px 2px rgba(31,18,10,.08);
--shadow-sm:0 2px 6px rgba(31,18,10,.09);
--shadow-md:0 6px 18px -4px rgba(31,18,10,.16);
--shadow-lg:0 16px 40px -10px rgba(31,18,10,.24);
--shadow-xl:0 28px 64px -16px rgba(31,18,10,.3);
--shadow-press:inset 0 2px 4px rgba(31,18,10,.22);
--shadow-focus:0 0 0 3px rgba(242,160,7,.55);
--shadow-media:0 10px 30px -12px rgba(31,18,10,.35);
}

/* tokens/motion.css */
:root{
--ease-standard:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-out-soft:cubic-bezier(.16,.84,.44,1); /* @kind other */
--ease-in-out:cubic-bezier(.45,0,.55,1); /* @kind other */
--ease-swing:cubic-bezier(.34,1.4,.64,1); /* @kind other */ /* the one overshoot we allow — rope-swing feel */
--dur-instant:90ms; /* @kind other */--dur-fast:150ms; /* @kind other */--dur-base:220ms; /* @kind other */--dur-slow:380ms; /* @kind other */--dur-scenic:700ms; /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard); /* @kind other */
--transition-card:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft); /* @kind other */
--lift-hover:translateY(-3px); /* @kind other */--press-scale:scale(.975); /* @kind other */
}

/* tokens/base.css */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);line-height:var(--leading-snug);margin:0}
a{color:var(--text-link);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-xs)}
img{max-width:100%;display:block}
.chap-eyebrow{font-family:var(--font-label);font-weight:var(--weight-bold);font-size:var(--text-label-md);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-primary)}

