/* Play Adventure City — Color System
   A bright, saturated "toy sticker" palette anchored by a deep grape-ink.
   Base hues are toy-bright; ink is used for text, outlines and hard shadows. */
:root {
  /* Base neutrals — warm paper, not pure white */
  --paper: #FFF6E9;        /* page background: warm cream */
  --paper-deep: #FDE9CE;   /* alt section background */
  --white: #FFFFFF;
  --ink: #221A44;          /* near-black grape: text, outlines, hard shadow */
  --ink-soft: #4A4270;     /* secondary text */
  --ink-faint: #8A82AE;    /* muted / captions */

  /* Toy-bright core hues */
  --tangerine: #FF6A34;    /* primary action */
  --tangerine-deep: #E4531F;
  --sunny: #FFC53D;        /* highlight yellow */
  --sunny-deep: #F0A91E;
  --sky: #33ADEF;          /* blue */
  --sky-deep: #1B8FD0;
  --grape: #7B4FE0;        /* purple */
  --grape-deep: #6438C6;
  --lime: #46C86A;         /* green */
  --lime-deep: #34A954;
  --bubblegum: #FF5FA2;    /* pink */
  --bubblegum-deep: #EA4189;

  /* Soft tints (sticker fills / section washes) */
  --tint-tangerine: #FFE1D3;
  --tint-sunny: #FFF0C7;
  --tint-sky: #D6EFFC;
  --tint-grape: #E7DEFB;
  --tint-lime: #D8F4E0;
  --tint-bubblegum: #FFDCEC;

  /* ---- Semantic aliases ---- */
  --bg-page: var(--paper);
  --bg-alt: var(--paper-deep);
  --surface-card: var(--white);
  --text-strong: var(--ink);
  --text-body: var(--ink-soft);
  --text-muted: var(--ink-faint);
  --outline: var(--ink);
  --accent-primary: var(--tangerine);
  --accent-primary-deep: var(--tangerine-deep);

  /* Semantic status */
  --success: var(--lime);
  --info: var(--sky);
  --warning: var(--sunny-deep);
  --danger: var(--tangerine-deep);
}

/* Play Adventure City — Typography
   Display: Fredoka — chunky, super-rounded, toy-like. Used for headings & UI labels.
   Body:    Nunito Sans — friendly humanist sans, high legibility for paragraphs.
   Accent:  Caveat — hand-drawn marker, used SPARINGLY for playful call-outs only.
   NOTE: all three are Google Fonts substitutions for a bespoke set (see readme). */
/* cyrillic-ext */

/* cyrillic */

/* latin-ext */

/* latin */

/* cyrillic-ext */

/* cyrillic */

/* latin-ext */

/* latin */

/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */

/* latin */

/* cyrillic-ext */

/* cyrillic */

/* vietnamese */

/* latin-ext */

/* latin */

/* cyrillic-ext */

/* cyrillic */

/* vietnamese */

/* latin-ext */

/* latin */

/* cyrillic-ext */

/* cyrillic */

/* vietnamese */

/* latin-ext */

/* latin */

/* cyrillic-ext */

/* cyrillic */

/* vietnamese */

/* latin-ext */

/* latin */

:root {
  --font-display: 'Fredoka', system-ui, sans-serif;
  --font-body: 'Nunito Sans', system-ui, sans-serif;
  --font-accent: 'Caveat', cursive;

  /* Weights */
  --fw-body: 400;      /* @kind font */
  --fw-medium: 600;    /* @kind font */
  --fw-bold: 700;      /* @kind font */
  --fw-black: 800;     /* @kind font */

  /* Fluid display scale (toy-chunky, tight leading) */
  --fs-display-xl: clamp(3.4rem, 6vw, 6rem);      /* @kind font */
  --fs-display-l: clamp(2.6rem, 4.5vw, 4.25rem);  /* @kind font */
  --fs-h1: clamp(2.1rem, 3.4vw, 3.25rem);         /* @kind font */
  --fs-h2: clamp(1.7rem, 2.6vw, 2.4rem);          /* @kind font */
  --fs-h3: clamp(1.3rem, 1.8vw, 1.6rem);          /* @kind font */
  --fs-lead: clamp(1.1rem, 1.4vw, 1.375rem);      /* @kind font */
  --fs-body: 1.0625rem;   /* @kind font */
  --fs-small: 0.9375rem;  /* @kind font */
  --fs-eyebrow: 0.8125rem;   /* @kind font */

  /* Leading */
  --lh-tight: 1.02;   /* @kind font */
  --lh-snug: 1.15;    /* @kind font */
  --lh-body: 1.6;     /* @kind font */

  /* Tracking */
  --tracking-eyebrow: 0.14em;   /* @kind font */
  --tracking-tight: -0.01em;    /* @kind font */
}

/* Play Adventure City — Spacing & Layout
   8px base rhythm. Generous, playful whitespace. */
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  /* Section vertical rhythm */
  --section-pad-y: clamp(64px, 9vw, 128px);
  --gutter: 24px;

  /* Layout */
  --content-max: 1440px;
  --measure: 62ch;
}

/* Play Adventure City — Effects
   The signature look: thick ink outlines + HARD offset shadows (no blur),
   chunky rounded corners, and a springy bounce on interaction. */
:root {
  /* Corner radii — chunky & toy-like */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 999px;

  /* Outlines — the "coloring book" stroke */
  --stroke: 2.5px;
  --stroke-bold: 3.5px;
  --outline-w: var(--stroke);

  /* HARD offset shadows (0 blur) — the sticker "pop" */
  --pop-sm: 3px 3px 0 var(--ink);
  --pop-md: 5px 5px 0 var(--ink);
  --pop-lg: 8px 8px 0 var(--ink);
  --pop-xl: 12px 12px 0 var(--ink);

  /* Colored pops (used on tinted cards) */
  --pop-tangerine: 5px 5px 0 var(--tangerine-deep);
  --pop-grape: 5px 5px 0 var(--grape-deep);
  --pop-sky: 5px 5px 0 var(--sky-deep);

  /* Soft ambient shadow (rare — for floating/overlay only) */
  --shadow-float: 0 18px 40px -12px rgba(34, 26, 68, 0.28);

  /* Motion — springy, bouncy */
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);   /* @kind other */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);   /* @kind other */
  --dur-fast: 130ms;   /* @kind other */
  --dur: 220ms;   /* @kind other */
  --dur-slow: 420ms;   /* @kind other */

  /* Interaction offsets (translate toward the shadow to "press") */
  --press-x: 3px;
  --press-y: 3px;
}

/* Play Adventure City — Base element defaults & helpers.
   Kept minimal; components carry most styling via tokens. */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--text-strong);
  line-height: var(--lh-tight);
  font-weight: var(--fw-bold);
  margin: 0;
}

p { margin: 0; }

a {
  color: var(--accent-primary-deep);
  text-decoration: none;
  font-weight: var(--fw-bold);
  transition: color var(--dur) var(--ease-out);
}
a:hover { color: var(--grape); }

/* Eyebrow / kicker label */
.pac-eyebrow {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--accent-primary-deep);
}

/* Hand-drawn accent word */
.pac-hand {
  font-family: var(--font-accent);
  font-weight: 700;
  color: var(--grape);
  line-height: 1;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* Play Adventure City — website "Adventure Cartography" layer.
   Page-local: re-tunes the design-system tokens to the warm-paper / midnight-ink
   quest palette, and aliases the cartography token names the site sections use.
   Scoped to this kit — the global design-system tokens are untouched. */
/* vietnamese */

/* latin-ext */

/* latin */

/* vietnamese */

/* latin-ext */

/* latin */

/* vietnamese */

/* latin-ext */

/* latin */

/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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;
}
/* hebrew */

/* latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/423f0cd9-4f4f-406d-9536-9d4a3e69e9e4.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: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/9e7975a7-42ae-483c-a63d-f7b7c6d6c877.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/20a1bcb6-75ce-43dc-83a4-5cb7975e85a8.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: 'Nunito';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/10e918cf-15be-49f2-bed4-b1612e14a220.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/00f80175-b8ba-4413-9ec0-10d5c78d5744.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: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/99bd3a01-e402-4854-b752-93f59b2e0978.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/00f80175-b8ba-4413-9ec0-10d5c78d5744.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: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/99bd3a01-e402-4854-b752-93f59b2e0978.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/00f80175-b8ba-4413-9ec0-10d5c78d5744.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: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/99bd3a01-e402-4854-b752-93f59b2e0978.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/00f80175-b8ba-4413-9ec0-10d5c78d5744.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: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/99bd3a01-e402-4854-b752-93f59b2e0978.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 */

/* cyrillic */

/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/00f80175-b8ba-4413-9ec0-10d5c78d5744.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: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/99bd3a01-e402-4854-b752-93f59b2e0978.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;
}
/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/d56c3503-632d-4e00-9415-80bfd339c4e4.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/b89cb028-28dc-45d7-92ce-0224ffd8c002.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;
}
/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/d744c951-9562-43fc-ad5a-242fd5c7d8e6.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/ced66e54-5e33-48ec-9292-da7c3652750e.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;
}
/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/1062c063-d142-4d30-8b0b-b1b3f3964b7c.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/29a819ef-f381-44b4-8d16-dd16d0ca8053.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;
}
/* vietnamese */

/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/fee931a8-faf6-43d5-ac79-ede4239b0d66.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/1afae64e-5cae-4cbe-ad57-2b0ec85d61ce.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{
  /* ---- paper + ink (palette: logo — red / royal blue / sky) ---- */
  --paper:#FFFFFF; --paper-deep:#F3F8FE; --sand:#E2EFFB; --line:#C9DCF0;
  --ink:#161075; --ink-soft:#2A1FA8; --ink-faint:#5C58A6; --ink-ghost:#A7A4D2;
  /* ---- logo palette ---- */
  --tangerine:#F5333F; --tangerine-deep:#CF1D28;
  --sunny:#8AD3FF;     --sunny-deep:#57BFF7;
  --lime:#33A5EE;      --lime-deep:#1B84CC;
  --grape:#2B18B5;     --grape-deep:#1B0E8C;
  --sky:#4FB8F5;       --sky-deep:#2A97DA;
  --bubblegum:#FF6B8F; --bubblegum-deep:#E24868;
  --tint-tangerine:#FFE0E2; --tint-sunny:#DFF2FF; --tint-sky:#DCEEFD;
  --tint-grape:#DEDAFA; --tint-lime:#D6EBFB; --tint-bubblegum:#FFE0E7;

  /* ---- cartography aliases (used by the site sections) ---- */
  --paper-0:var(--paper); --paper-1:var(--paper-deep); --paper-2:var(--sand);
  --ink-900:var(--ink); --ink-700:var(--ink-soft); --ink-500:var(--ink-faint); --ink-300:var(--ink-ghost);
  --coral:var(--tangerine); --coral-deep:var(--tangerine-deep);
  --sunbeam:var(--sunny); --sunbeam-deep:var(--sunny-deep);
  --lagoon:var(--lime); --lagoon-deep:var(--lime-deep);
  --text-strong:var(--ink); --text-body:var(--ink-soft); --text-muted:var(--ink-faint);
  --text-onink:var(--paper); --text-ondark-muted:#B3C6EA;
  --border-default:var(--line); --border-strong:var(--ink); --focus-ring:var(--grape);
  --brand-primary:var(--sunny); --brand-secondary:var(--lime); --brand-accent:var(--tangerine);

  /* ---- type ---- */
  --font-display:'Fredoka','Trebuchet MS',system-ui,sans-serif;
  --font-headline:'Saira Condensed','Fjalla One','Fredoka','Trebuchet MS',system-ui,sans-serif;
  --font-body:'Nunito',system-ui,-apple-system,sans-serif;
  --font-mono:'Archivo','Helvetica Neue',system-ui,sans-serif;
  --fs-hero:clamp(3.4rem,7.8vw,7.3rem);
  --fs-d1:clamp(2.8rem,5.5vw,5rem);
  --fs-d2:3.65rem;
  --fs-d3:clamp(1.7rem,2.7vw,2.55rem);
  --fs-h4:1.5rem; --fs-h5:1.25rem; --fs-lead:1.5rem; --fs-body:1.1875rem;
  --fs-sm:0.9375rem; --fs-xs:0.8125rem; --fs-tick:0.75rem;
  --fs-display-xl:var(--fs-hero); --fs-display-l:var(--fs-d1);
  --lh-tight:0.98; --lh-snug:1.12; --lh-body:1.62;
  --ls-tick:0.22em; --ls-tight:-0.02em; --tracking-eyebrow:0.22em;

  /* ---- layout + spacing ---- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;
  --maxw:1440px; --content-max:1440px; --gutter:24px;
  --section-y:clamp(88px,11vw,168px); --section-pad-y:var(--section-y);

  /* ---- radii, strokes, sticker shadows ---- */
  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-xl:32px; --r-2xl:44px; --r-pill:999px;
  --radius-sm:var(--r-sm); --radius-md:var(--r-md); --radius-lg:var(--r-lg);
  --radius-xl:var(--r-xl); --radius-2xl:var(--r-2xl); --radius-pill:999px;
  --bw:2.5px; --bw-thick:3.5px; --stroke:var(--bw); --stroke-bold:var(--bw-thick);
  --shadow-sticker:4px 4px 0 var(--ink); --shadow-sticker-lg:7px 7px 0 var(--ink);
  --shadow-sticker-color:5px 5px 0 var(--tangerine);
  --pop-sm:3px 3px 0 var(--ink); --pop-md:5px 5px 0 var(--ink);
  --pop-lg:8px 8px 0 var(--ink); --pop-xl:12px 12px 0 var(--ink);
  --shadow-soft:0 6px 20px -8px rgba(22,16,117,.20);
  --shadow-lift:0 18px 44px -16px rgba(22,16,117,.28);

  /* ---- motion ---- */
  --ease-bounce:cubic-bezier(0.34,1.56,0.64,1);
  --ease-out:cubic-bezier(0.22,0.61,0.36,1);
  --dur-fast:140ms; --dur:240ms; --dur-slow:520ms;
}

/* Big display type rides on Saira Condensed; UI labels stay on Fredoka. */
#root h1,#root h2{font-family:var(--font-headline)!important;font-weight:800!important;letter-spacing:0.015em!important;text-transform:uppercase}

/* Button labels: optically centred (even leading, icons on the text centre line) */
#root button{align-items:center!important;line-height:1.15!important;padding-top:0.05em;padding-bottom:0}
#root button > svg,#root button > span{display:inline-flex;align-items:center;line-height:1}

/* slanted panel separators */
#root .pac-slant-a{clip-path:polygon(0 0,100% 64px,100% 100%,0 100%);margin-top:-64px;padding-top:calc(var(--section-y) + 64px)}
#root .pac-slant-b{clip-path:polygon(0 64px,100% 0,100% 100%,0 100%);margin-top:-64px;padding-top:calc(var(--section-y) + 64px)}
#root .pac-slant-a,#root .pac-slant-b{position:relative;z-index:1}
@media (max-width:700px){#root .pac-slant-a,#root .pac-slant-b{clip-path:polygon(0 0,100% 30px,100% 100%,0 100%);margin-top:-30px;padding-top:calc(var(--section-y) + 30px)}}

/* Play Adventure City, motion layer.
   Uses the `translate` / `rotate` / `scale` longhands (not `transform`) so hover
   and idle motion compose with the inline sticker tilts on badges and frames. */

@keyframes pacPop{0%{scale:.7;opacity:0}62%{scale:1.06;opacity:1}100%{scale:1;opacity:1}}
@keyframes pacFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
@keyframes pacFloatSlow{0%,100%{translate:0 6px}50%{translate:0 -10px}}
@keyframes pacDrift{0%,100%{translate:0 0}33%{translate:14px -10px}66%{translate:-10px 8px}}
@keyframes pacWiggle{0%,100%{rotate:0deg}25%{rotate:-5deg}75%{rotate:5deg}}
@keyframes pacSpinSlow{to{rotate:360deg}}
@keyframes pacBreathe{0%,100%{scale:1}50%{scale:1.06}}
@keyframes pacBlob{0%,100%{border-radius:48% 52% 55% 45%/50% 45% 55% 50%}50%{border-radius:55% 45% 45% 55%/45% 55% 45% 55%}}
@keyframes pacDash{to{stroke-dashoffset:-200}}
@keyframes pacDrawIn{from{stroke-dasharray:220;stroke-dashoffset:220}to{stroke-dasharray:220;stroke-dashoffset:0}}
@keyframes pacBounceIn{0%{translate:0 26px;scale:.9;opacity:0}60%{translate:0 -6px;scale:1.03;opacity:1}100%{translate:0 0;scale:1;opacity:1}}
@keyframes pacShimmer{to{background-position:220% 0}}

/* ---------- scroll reveal, staggered, with direction variants ---------- */
.pac-rv{opacity:0;transition:opacity .75s var(--ease-out),translate .75s var(--ease-out),scale .75s var(--ease-out),rotate .75s var(--ease-out);transition-delay:var(--pac-d,0ms)}
.pac-rv-up{translate:0 42px}
.pac-rv-left{translate:-54px 0}
.pac-rv-right{translate:54px 0}
.pac-rv-zoom{scale:.92}
.pac-rv-tilt{translate:0 34px;rotate:-3deg}
.pac-rv.in{opacity:1;translate:0 0;scale:1;rotate:0deg}

/* ---------- buttons: springy hover, press-in, shadow grow ---------- */
#root button{transition:scale .26s var(--ease-bounce),rotate .26s var(--ease-bounce),translate .26s var(--ease-bounce),box-shadow .26s var(--ease-out),background .2s}
#root button:hover{scale:1.055;rotate:-1.4deg}
#root .pac-faq-row:hover{scale:1 !important;rotate:0deg !important;translate:0 0 !important}
#root .pac-faq-row{position:relative;overflow:hidden;isolation:isolate}
#root .pac-faq-row::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--paper-2);transform:scaleX(0);transform-origin:left center;transition:transform .42s cubic-bezier(.2,.9,.25,1)}
#root .pac-faq-row:hover::before{transform:scaleX(1)}
#root .pac-faq-row > span:first-child{transition:transform .35s var(--ease-bounce),background .3s,color .3s}
#root .pac-faq-row:hover > span:first-child{transform:scale(1.16) rotate(90deg)}
#root .pac-faq-row > span:last-child{transition:translate .35s cubic-bezier(.2,.9,.25,1)}
#root .pac-faq-row:hover > span:last-child{translate:7px 0}
#root .pac-faq-box,#root .pac-faq-box:hover{scale:1 !important;rotate:0deg !important;translate:0 0 !important}
#root .pac-faq-row{transition:background .25s var(--ease-out)}
#root button:active{scale:.955;rotate:0deg;translate:0 2px}
#root button:focus-visible{outline:3px dashed var(--lagoon);outline-offset:4px}

/* ---------- links ---------- */
#root a{transition:scale .22s var(--ease-bounce),translate .22s var(--ease-bounce),color .2s}
#root a:hover{scale:1.04}
#root ul a:hover{translate:0 -2px}

/* ---------- panel photos: tip the other way, lift, deepen the shadow (matches hero) ---------- */
#root .pac-photo{transition:transform .45s cubic-bezier(.2,.9,.25,1),box-shadow .45s cubic-bezier(.2,.9,.25,1),translate .45s cubic-bezier(.2,.9,.25,1),rotate .45s cubic-bezier(.2,.9,.25,1) !important;will-change:transform}
#root .pac-photo:hover,#root .pac-photo.pac-photo-on{transform:rotate(var(--pac-tilt-hover)) translateY(-8px) !important;box-shadow:18px 18px 0 var(--pac-sh) !important}

/* ---------- sticker lift: cards, quote cards, feature tiles ---------- */
.pac-lift{transition:translate .3s var(--ease-bounce),rotate .3s var(--ease-bounce),box-shadow .3s var(--ease-out)}
.pac-lift:not(.pac-photo):not(.pac-hero-frame):hover{translate:0 -7px;rotate:-.8deg;box-shadow:11px 13px 0 var(--ink-900)}
.pac-quote-card.pac-lift:hover{box-shadow:11px 13px 0 var(--pac-accent,var(--ink-900))}
.pac-quote-card:hover .pac-quote-mark{animation:pacWiggle .7s var(--ease-bounce)}
.pac-quote-mark{transition:scale .3s var(--ease-bounce)}
.pac-quote-card:hover .pac-quote-mark{scale:1.14}

/* ---------- idle motion for decorative art ---------- */
.pac-float{animation:pacFloat 5.5s ease-in-out infinite}
.pac-float-slow{animation:pacFloatSlow 8s ease-in-out infinite}
.pac-drift{animation:pacDrift 14s ease-in-out infinite}
.pac-spin-slow{animation:pacSpinSlow 26s linear infinite}
.pac-breathe{animation:pacBreathe 6s ease-in-out infinite}
.pac-blobby{animation:pacBlob 12s ease-in-out infinite}

/* ---------- wordmark: no hover treatment ---------- */
#root .pac-wordmark:hover{scale:1}

/* ---------- nav pill: condenses once you scroll ---------- */
.pac-nav-pill{transition:box-shadow .35s var(--ease-out),background .35s,min-height .35s var(--ease-out),padding .35s var(--ease-out)}
.pac-nav-scrolled .pac-nav-pill{box-shadow:none}

/* ---------- badges & tags pop ---------- */
#root [class*="pac-pop"]{transition:scale .26s var(--ease-bounce),rotate .26s var(--ease-bounce)}
#root [class*="pac-pop"]:hover{scale:1.09}

/* ---------- accordion rows nudge ---------- */
#root details,#root [role="button"]{transition:translate .25s var(--ease-out),background .25s}
#root details:hover{translate:4px 0}
#root .pac-faq-row[role="button"]:hover{translate:0 0}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .pac-rv{opacity:1 !important;translate:0 0 !important;scale:1 !important;rotate:0deg !important}
}

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a{color:var(--lime-deep)}a:hover{color:var(--tangerine-deep)}
  @media (max-width:1320px){
    .pac-svc{grid-template-columns:1fr !important;gap:72px !important;justify-items:center !important;text-align:center !important;max-width:820px;margin-left:auto !important;margin-right:auto !important}
    .pac-svc > .pac-photo{order:-1 !important;width:100% !important;max-width:700px;aspect-ratio:16/9 !important;transform:none !important}
    .pac-svc:nth-of-type(even) > .pac-photo{transform:none !important}
    .pac-photo{transform:none !important}
    .pac-svc p{margin-left:auto !important;margin-right:auto !important}
    .pac-svc h2{font-size:3.65rem !important}
    .pac-svc a,.pac-svc button{margin-left:auto !important;margin-right:auto !important}
  }
  .pac-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
  .pac-reveal.in{opacity:1;transform:none}

.pac-hero-picture{display:block;width:100%;height:100%}
