/* Luteria Fagundes — tokens do design system (cores, tipografia, espaço, motion) */

/* fonts */
@font-face{font-family:"League Spartan";src:url("../fonts/LeagueSpartan-Variable.ttf") format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Dominican";src:url("../fonts/Dominican-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}

/* colors */
:root{
/* Brand base */
--lf-brown-900:#3B2620;
--lf-brown-800:#4E3129;
--lf-brown-700:#684337;
--lf-brown-600:#7E5647;
--lf-caramel-500:#AD8667;
--lf-caramel-400:#C0A184;
--lf-caramel-300:#D6BFA8;
--lf-caramel-200:#E7D9C8;
--lf-sand-100:#F1E9DF;
--lf-offwhite:#FAF7F2;
--lf-white:#FFFFFF;
/* Warm neutrals derived from the brown — never pure black */
--lf-gray-900:#2E2521;
--lf-gray-800:#41352F;
--lf-gray-700:#5A4A42;
--lf-gray-600:#7A6A61;
--lf-gray-500:#9A8B81;
--lf-gray-400:#BFB2A8;
--lf-gray-300:#DED4C9;
/* Semantic — surfaces */
--surface-page:var(--lf-offwhite);
--surface-card:var(--lf-white);
--surface-muted:var(--lf-sand-100);
--surface-dark:var(--lf-brown-700);
--surface-darker:var(--lf-brown-900);
--surface-accent:var(--lf-caramel-500);
/* Semantic — text */
--text-heading:var(--lf-brown-700);
--text-body:var(--lf-gray-700);
--text-muted:var(--lf-gray-600);
--text-inverse:var(--lf-offwhite);
--text-inverse-muted:var(--lf-caramel-300);
--text-accent:var(--lf-caramel-500);
--text-link:var(--lf-brown-700);
--text-link-hover:var(--lf-caramel-500);
/* Semantic — lines */
--border-hairline:rgba(173,134,103,.28);
--border-strong:rgba(104,67,55,.45);
--border-inverse:rgba(250,247,242,.22);
--divider:rgba(173,134,103,.28);
/* Semantic — interactive */
--action-primary-bg:var(--lf-caramel-500);
--action-primary-bg-hover:#9C765A;
--action-primary-fg:var(--lf-offwhite);
--action-secondary-fg:var(--lf-brown-700);
--action-secondary-border:var(--lf-brown-700);
--action-secondary-bg-hover:rgba(104,67,55,.06);
--focus-ring:rgba(173,134,103,.55);
/* Semantic — status (muted, workshop-toned) */
--status-ok:#5F7355;
--status-warn:#B08327;
--status-alert:#9B4A32;
--status-info:var(--lf-brown-600);
}

/* typography */
:root{
--font-display:"League Spartan","Helvetica Neue",Arial,sans-serif;
--font-body:"Open Sans","Helvetica Neue",Arial,sans-serif;
--font-brand:"Dominican","League Spartan",Georgia,serif;
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
/* Display / heading scale — League Spartan */
--fs-display:clamp(3rem,6vw,5rem); /* @kind font */
--fs-h1:clamp(2.25rem,4vw,3.5rem); /* @kind font */
--fs-h2:clamp(1.75rem,3vw,2.5rem); /* @kind font */
--fs-h3:1.5rem; /* @kind font */
--fs-h4:1.1875rem; /* @kind font */
/* Body — Open Sans */
--fs-lead:1.1875rem; /* @kind font */
--fs-body:1rem; /* @kind font */
--fs-small:.875rem; /* @kind font */
--fs-caption:.8125rem; /* @kind font */
--fs-overline:.75rem; /* @kind font */
--lh-display:1.02; /* @kind font */
--lh-heading:1.12; /* @kind font */
--lh-body:1.7; /* @kind font */
--lh-tight:1.35; /* @kind font */
--ls-display:-0.02em; /* @kind font */
--ls-heading:-0.01em; /* @kind font */
--ls-body:0; /* @kind font */
--ls-overline:.18em; /* @kind font */
--measure:66ch; /* @kind other */
}

/* spacing */
: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;
--space-11:160px;
--section-y:var(--space-9);
--section-y-lg:var(--space-11);
--gutter:24px;
--container-max:1200px;
--container-narrow:720px;
--radius-none:0;
--radius-sm:2px;
--radius-md:4px;
--radius-lg:6px;
--radius-pill:999px;
--border-width:1px;
}

/* elevation */
:root{
/* Elevation is nearly flat — the brand reads as paper and wood, not glass */
--shadow-none:none;
--shadow-card:0 1px 2px rgba(59,38,32,.05);
--shadow-raised:0 2px 8px rgba(59,38,32,.07);
--shadow-overlay:0 12px 32px rgba(59,38,32,.14);
--overlay-scrim:rgba(59,38,32,.55);
--overlay-image:linear-gradient(to top,rgba(59,38,32,.62),rgba(59,38,32,0) 60%); /* @kind other */
}

/* motion */
:root{
--ease-standard:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--dur-fast:120ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
--transition-color:color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard);
}

/* base */
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-heading);font-weight:var(--fw-semibold);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);margin:0 0 var(--space-4)}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4{font-size:var(--fs-h4)}
p{margin:0 0 var(--space-4);max-width:var(--measure);text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;border-bottom:1px solid var(--border-hairline);transition:var(--transition-color)}
a:hover{color:var(--text-link-hover);border-bottom-color:var(--lf-caramel-500)}
hr{border:0;border-top:1px solid var(--divider);margin:var(--space-7) 0}
::selection{background:var(--lf-caramel-300);color:var(--lf-brown-900)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
