/* CamperCan design-system tokens, copied from the design system. Fonts point at the site's own files. */
@font-face{font-family:"Fredoka";font-weight:600;font-display:swap;src:url("/fonts/Fredoka-600-normal.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-weight:400 800;font-display:swap;src:url("/fonts/Nunito-variable.woff2") format("woff2")}
@font-face{font-family:"DM Mono";font-weight:400;font-display:swap;src:url("/fonts/DMMono-400-normal.woff2") format("woff2")}
@font-face{font-family:"DM Mono";font-weight:500;font-display:swap;src:url("/fonts/DMMono-500-normal.woff2") format("woff2")}

:root{
/* Van Orange — primary */
--orange-50:#FFF4EB;--orange-100:#FFE4CC;--orange-200:#FFC799;--orange-300:#FFA25C;--orange-400:#FF8329;--orange-500:#FF6B0A;--orange-600:#E85A00;--orange-700:#BF4700;--orange-800:#8F3600;--orange-900:#5C2400;
/* Cable Green — accent */
--green-50:#EEF7F0;--green-100:#D4ECDA;--green-200:#A8D8B4;--green-300:#73BE86;--green-400:#45A05E;--green-500:#2A8445;--green-600:#22703A;--green-700:#1B5A2F;--green-800:#154424;--green-900:#0E2E18;
/* Warm neutrals */
--neutral-0:#FFFFFF;--neutral-50:#FBF8F4;--neutral-100:#F4EFE8;--neutral-200:#E7E0D6;--neutral-300:#D2CABE;--neutral-400:#A9A298;--neutral-500:#7D776F;--neutral-600:#5A5650;--neutral-700:#3D3F40;--neutral-800:#2B3338;--neutral-900:#1C2226;--neutral-950:#12171A;
/* Supporting */
--amber-100:#FDF0C4;--amber-500:#F5B400;--amber-700:#8A6500;
--red-100:#FBE1E4;--red-500:#C8102E;--red-700:#8E0B20;

/* Semantic — light (default) */
--bg-page:var(--neutral-50);--bg-sunken:var(--neutral-100);
--surface-card:var(--neutral-0);--surface-raised:var(--neutral-0);--surface-inverse:var(--neutral-800);
--surface-brand:var(--orange-500);--surface-brand-soft:var(--orange-50);--surface-accent:var(--green-500);--surface-accent-soft:var(--green-50);
--text-strong:var(--neutral-900);--text-body:var(--neutral-700);--text-muted:var(--neutral-500);--text-inverse:var(--neutral-50);--text-on-brand:var(--neutral-950);--text-on-accent:var(--neutral-0);
--text-brand:var(--orange-700);--text-accent:var(--green-600);
--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--neutral-500);--border-focus:var(--orange-500);
--action-primary:var(--orange-500);--action-primary-hover:var(--orange-400);--action-primary-press:var(--orange-600);
--action-secondary:var(--neutral-800);--action-secondary-hover:var(--neutral-700);--action-secondary-fg:var(--neutral-50);
--state-success:var(--green-500);--state-success-soft:var(--green-50);--state-warning:var(--amber-500);--state-warning-soft:var(--amber-100);--state-danger:var(--red-500);--state-danger-soft:var(--red-100);
--state-on:var(--green-400);--state-off:var(--neutral-300);

--font-display:"Fredoka","Nunito",ui-rounded,system-ui,sans-serif;
--font-body:"Nunito",ui-rounded,system-ui,sans-serif;
--font-mono:"DM Mono",ui-monospace,"SFMono-Regular",monospace;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;
--size-body:16px;--leading-snug:1.2;--leading-body:1.55;--tracking-display:-0.01em;

--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;
--radius-xs:6px;--radius-s:10px;--radius-m:14px;--radius-l:20px;--radius-xl:28px;--radius-pill:999px;
--control-h-s:36px;--control-h-m:44px;--control-h-l:56px;--touch-min:56px;

--shadow-1:0 1px 2px rgba(43,51,56,.08),0 1px 1px rgba(43,51,56,.04);
--shadow-2:0 4px 12px -2px rgba(43,51,56,.10),0 2px 4px rgba(43,51,56,.05);
--shadow-3:0 16px 32px -8px rgba(43,51,56,.16),0 4px 8px rgba(43,51,56,.06);
--shadow-brand:0 6px 16px -4px rgba(232,90,0,.40);
--ring-focus:0 0 0 3px var(--neutral-0),0 0 0 5px var(--orange-500);
--ease-out:cubic-bezier(.2,.8,.2,1);
--ease-bounce:cubic-bezier(.34,1.4,.64,1);
--dur-change:180ms;--dur-fast:180ms;--dur-base:180ms;--dur-slow:180ms;
}
/* Dark theme */
[data-theme="dark"]{
--bg-page:#151A1D;--bg-sunken:#0F1315;
--surface-card:#20272B;--surface-raised:#2A3237;--surface-inverse:var(--neutral-50);
--surface-brand:var(--orange-500);--surface-brand-soft:#3A2414;--surface-accent:var(--green-400);--surface-accent-soft:#17301F;
--text-strong:#F7F3EE;--text-body:#D6CFC6;--text-muted:#968F86;--text-inverse:var(--neutral-900);--text-on-brand:var(--neutral-950);--text-on-accent:var(--neutral-950);
--text-brand:var(--orange-400);--text-accent:var(--green-300);
--border-subtle:#2E363B;--border-default:#3B454B;--border-strong:#5A646A;--border-focus:var(--orange-400);
--action-primary:var(--orange-500);--action-primary-hover:var(--orange-400);--action-primary-press:var(--orange-600);
--action-secondary:#3B454B;--action-secondary-hover:#4A555C;--action-secondary-fg:#F7F3EE;
--state-success:var(--green-400);--state-success-soft:#17301F;--state-warning:var(--amber-500);--state-warning-soft:#3A2F0E;--state-danger:#F0536B;--state-danger-soft:#3A1419;
--state-on:var(--green-400);--state-off:#3B454B;
--shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 4px 12px -2px rgba(0,0,0,.5);--shadow-3:0 16px 32px -8px rgba(0,0,0,.6);
--ring-focus:0 0 0 3px #151A1D,0 0 0 5px var(--orange-400);
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-snug);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a,button,input,select,textarea,summary,label,[role=button],[role=tab],[role=option],[role=switch],[role=checkbox],[role=radio],[tabindex]{transition:background-color var(--dur-change) var(--ease-out),color var(--dur-change) var(--ease-out),border-color var(--dur-change) var(--ease-out),box-shadow var(--dur-change) var(--ease-out),opacity var(--dur-change) var(--ease-out),transform var(--dur-change) var(--ease-out)}
a{color:var(--text-brand);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--orange-600)}
code,kbd,pre{font-family:var(--font-mono)}
