/**
 * Stomme AI — Brand CSS Custom Properties
 * Version: 1.0
 * Author: Saga Lindqvist, CMO
 * Date: 2026-03-20
 *
 * Drop this file into the website <head> after a CSS reset.
 * All values defined here correspond directly to the Brand Identity document.
 *
 * Usage:
 *   color: var(--color-text);
 *   font-family: var(--font-heading);
 *   padding: var(--space-4);
 *
 * Dark mode is applied via [data-theme="dark"] on <html> or <body>.
 * The stylesheet also respects prefers-color-scheme automatically.
 */

/* ─────────────────────────────────────────────────────────────────────────────
   GOOGLE FONTS
   Load all three typefaces. Using display=swap for performance.
   Cormorant: refined serif for headings
   DM Sans: humanist sans for body + UI
   JetBrains Mono: monospace for code
   ───────────────────────────────────────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500&display=swap');


/* ─────────────────────────────────────────────────────────────────────────────
   ROOT — LIGHT MODE (DEFAULT)
   ───────────────────────────────────────────────────────────────────────────── */

:root {

  /* ── Color: Named Palette ───────────────────────────────────────────────── */

  /* Primary */
  --color-kol:       #1A1917;   /* Warm near-black — primary text, logo */
  --color-falun:     #A8452E;   /* Brick red — primary accent, interactive */
  --color-linne:     #F8F7F5;   /* Warm off-white — page background */

  /* Secondary */
  --color-havre:     #DED8CC;   /* Oat — subtle surfaces, tags */
  --color-sten:      #7A736A;   /* Stone — secondary text, icons */

  /* Neutral scale */
  --color-slag-1:    #2E2B28;   /* Dark surface, code block backgrounds */
  --color-slag-2:    #4A4540;   /* Secondary dark elements */
  --color-grus:      #B0A89E;   /* Disabled, placeholder text */
  --color-sand:      #D4CFCA;   /* Borders, dividers */
  --color-dimma:     #ECEAE6;   /* Card borders, table stripes */
  --color-white:     #FFFFFF;   /* Cards, modals, elevated surfaces */

  /* Semantic */
  --color-success:   #3D6E54;   /* Ek — muted forest green */
  --color-warning:   #8C6420;   /* Raps — muted amber */
  --color-error:     #933020;   /* Lera — brick clay (distinct from Falun) */
  --color-info:      #3A5E78;   /* Hav — muted sea blue */

  /* Semantic backgrounds (very light tint) */
  --color-success-bg: #EBF3EE;
  --color-warning-bg: #F5EDDB;
  --color-error-bg:   #F5E8E5;
  --color-info-bg:    #E5EDF3;


  /* ── Color: Semantic Roles ──────────────────────────────────────────────── */
  /* Use these in components, not the named palette directly where possible.   */

  --color-bg:             var(--color-linne);       /* Page background */
  --color-bg-elevated:    var(--color-white);       /* Cards, modals */
  --color-bg-subtle:      var(--color-dimma);       /* Subtle section tints */
  --color-bg-muted:       var(--color-havre);       /* Tags, code inline bg */

  --color-border:         var(--color-sand);        /* Default borders */
  --color-border-subtle:  var(--color-dimma);       /* Subtle dividers */
  --color-border-strong:  var(--color-sten);        /* Emphasized borders */

  --color-text:           var(--color-kol);         /* Body text */
  --color-text-secondary: var(--color-sten);        /* Secondary/supporting text */
  --color-text-muted:     var(--color-grus);        /* Placeholder, disabled */
  --color-text-inverse:   var(--color-linne);       /* Text on dark backgrounds */

  --color-accent:         var(--color-falun);       /* Interactive elements */
  --color-accent-hover:   #8F3A26;                  /* Darkened Falun on hover */
  --color-accent-subtle:  #F2E8E5;                  /* Very light Falun tint */

  --color-link:           var(--color-falun);
  --color-link-hover:     #8F3A26;
  --color-link-visited:   #7A3022;

  --color-focus-ring:     rgba(168, 69, 46, 0.45); /* Falun with opacity */


  /* ── Typography ─────────────────────────────────────────────────────────── */

  --font-heading:    'Cormorant', Georgia, 'Times New Roman', serif;
  --font-body:       'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:       'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Courier New', monospace;

  /* Font feature settings */
  --font-features-heading: "kern" 1, "liga" 1;
  --font-features-body:    "kern" 1, "ss01" 1;
  --font-features-mono:    "liga" 1, "calt" 1;


  /* ── Type Scale ─────────────────────────────────────────────────────────── */

  --text-display:  3.5rem;     /* 56px — hero headlines */
  --text-h1:       2.5rem;     /* 40px */
  --text-h2:       2rem;       /* 32px */
  --text-h3:       1.5rem;     /* 24px */
  --text-h4:       1.125rem;   /* 18px — switches to DM Sans */
  --text-h5:       1rem;       /* 16px */
  --text-h6:       0.875rem;   /* 14px */
  --text-body-lg:  1.125rem;   /* 18px */
  --text-body:     1rem;       /* 16px */
  --text-body-sm:  0.875rem;   /* 14px */
  --text-label:    0.8125rem;  /* 13px */
  --text-caption:  0.75rem;    /* 12px */
  --text-code:     0.9375rem;  /* 15px */


  /* ── Font Weights ───────────────────────────────────────────────────────── */

  --weight-light:      300;
  --weight-regular:    400;
  --weight-medium:     500;
  --weight-semibold:   600;


  /* ── Line Heights ───────────────────────────────────────────────────────── */

  --leading-tight:    1.15;  /* Display/h1 headings */
  --leading-snug:     1.25;  /* h2/h3 headings */
  --leading-normal:   1.4;   /* h4/h5/UI elements */
  --leading-body:     1.7;   /* Body text — generous for readability */
  --leading-relaxed:  1.75;  /* Large body text */
  --leading-loose:    1.8;   /* Extra-spacious prose */


  /* ── Letter Spacing ─────────────────────────────────────────────────────── */

  --tracking-tight:   -0.02em;  /* Display/h1 headings */
  --tracking-snug:    -0.01em;  /* h2/h3 */
  --tracking-normal:   0;
  --tracking-wide:     0.01em;  /* Small body, labels */
  --tracking-wider:    0.04em;  /* h5/h6, uppercase labels */
  --tracking-widest:   0.08em;  /* Wordmark — stomme */


  /* ── Spacing ─────────────────────────────────────────────────────────────── */
  /* Base unit: 4px. All values are multiples of 4px. */

  --space-px:   1px;
  --space-0-5:  2px;
  --space-1:    4px;    /* Inline gaps, icon padding */
  --space-2:    8px;    /* Tight component padding */
  --space-3:    12px;   /* Standard component padding */
  --space-4:    16px;   /* Sub-component spacing */
  --space-5:    24px;   /* Component groups */
  --space-6:    32px;   /* Section internal spacing */
  --space-7:    40px;
  --space-8:    48px;   /* Section separation */
  --space-9:    56px;
  --space-10:   64px;   /* Major section breaks */
  --space-11:   72px;
  --space-12:   80px;   /* Page section vertical padding */
  --space-14:   96px;   /* Hero/marketing sections */
  --space-16:  112px;
  --space-20:  128px;


  /* ── Border Radius ──────────────────────────────────────────────────────── */

  --radius-sm:    3px;    /* Inline code */
  --radius:       4px;    /* Tags, badges, chips, tooltips */
  --radius-md:    6px;    /* Buttons, inputs */
  --radius-lg:    8px;    /* Cards, panels */
  --radius-xl:   10px;    /* Modal dialogs */
  --radius-full: 9999px;  /* Avatars only — not for buttons */


  /* ── Shadows ─────────────────────────────────────────────────────────────── */

  --shadow-none: none;

  --shadow-raised:
    0 1px 3px rgba(26, 25, 23, 0.06),
    0 1px 2px rgba(26, 25, 23, 0.04);

  --shadow-floating:
    0 4px 12px rgba(26, 25, 23, 0.08),
    0 1px 4px  rgba(26, 25, 23, 0.05);

  --shadow-overlay:
    0 8px 24px rgba(26, 25, 23, 0.10),
    0 2px 8px  rgba(26, 25, 23, 0.06);


  /* ── Borders ─────────────────────────────────────────────────────────────── */

  --border-width:    1px;
  --border-style:    solid;
  --border-default:  1px solid var(--color-border);
  --border-subtle:   1px solid var(--color-border-subtle);
  --border-strong:   1px solid var(--color-border-strong);


  /* ── Focus Ring ─────────────────────────────────────────────────────────── */

  --focus-ring: 0 0 0 3px var(--color-focus-ring);
  --focus-ring-offset: 2px;


  /* ── Transitions ─────────────────────────────────────────────────────────── */

  --duration-instant:  80ms;
  --duration-fast:    120ms;
  --duration-normal:  200ms;
  --duration-slow:    250ms;
  --duration-slower:  350ms;

  --ease-out:    cubic-bezier(0.0, 0.0, 0.2, 1);
  --ease-in:     cubic-bezier(0.4, 0.0, 1.0, 1);
  --ease-inout:  cubic-bezier(0.4, 0.0, 0.2, 1);

  --transition-base:   var(--duration-fast) var(--ease-out);
  --transition-normal: var(--duration-normal) var(--ease-inout);
  --transition-slow:   var(--duration-slow) var(--ease-inout);


  /* ── Layout ──────────────────────────────────────────────────────────────── */

  --container-sm:    560px;   /* Prose/reading width */
  --container-md:    720px;   /* Standard content */
  --container-lg:    960px;   /* Wide content */
  --container-xl:   1200px;   /* Full-width marketing */
  --container-2xl:  1440px;   /* Max site width */

  --max-prose-width: 68ch;    /* Maximum line length for body text */

  /* Z-index scale */
  --z-base:      0;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;
  --z-tooltip:  600;

}


/* ─────────────────────────────────────────────────────────────────────────────
   DARK MODE — via data attribute (manual toggle)
   ───────────────────────────────────────────────────────────────────────────── */

[data-theme="dark"] {

  /* ── Dark Named Palette ─────────────────────────────────────────────────── */

  --color-morkret:    #111110;   /* Mörket — deepest page background */
  --color-skymning-1: #1A1917;   /* Surface (same as light Kol) */
  --color-skymning-2: #252320;   /* Elevated surface */
  --color-skymning-3: #2E2B28;   /* Higher elevation */
  --color-skymning-4: #3D3935;   /* Borders, dividers */
  --color-dimma-dark: #5E5850;   /* Disabled, placeholder */
  --color-sten-dark:  #A09890;   /* Secondary text */
  --color-text-dark:  #EDE9E3;   /* Primary text */
  --color-falun-dark: #C45E45;   /* Falun lighter for dark mode contrast */

  /* Dark semantic colors */
  --color-success-dark: #5A9470;
  --color-warning-dark: #B88035;
  --color-error-dark:   #B84535;
  --color-info-dark:    #5A82A0;

  /* Dark semantic backgrounds */
  --color-success-bg: #1A2E22;
  --color-warning-bg: #2A2010;
  --color-error-bg:   #2E1510;
  --color-info-bg:    #12202C;


  /* ── Override Semantic Roles ─────────────────────────────────────────────── */

  --color-bg:             var(--color-morkret);
  --color-bg-elevated:    var(--color-skymning-2);
  --color-bg-subtle:      var(--color-skymning-1);
  --color-bg-muted:       var(--color-skymning-3);

  --color-border:         var(--color-skymning-4);
  --color-border-subtle:  var(--color-skymning-3);
  --color-border-strong:  var(--color-dimma-dark);

  --color-text:           var(--color-text-dark);
  --color-text-secondary: var(--color-sten-dark);
  --color-text-muted:     var(--color-dimma-dark);
  --color-text-inverse:   var(--color-kol);

  --color-accent:         var(--color-falun-dark);
  --color-accent-hover:   #D47058;
  --color-accent-subtle:  rgba(196, 94, 69, 0.15);

  --color-link:           var(--color-falun-dark);
  --color-link-hover:     #D47058;
  --color-link-visited:   #A88070;

  --color-focus-ring:     rgba(196, 94, 69, 0.5);


  /* ── Dark Shadows ────────────────────────────────────────────────────────── */
  /* Shadows are less effective on dark — rely on borders instead */

  --shadow-raised:
    0 1px 3px rgba(0, 0, 0, 0.20),
    0 0   0   1px var(--color-border);

  --shadow-floating:
    0 4px 12px rgba(0, 0, 0, 0.30),
    0 0   0   1px var(--color-border);

  --shadow-overlay:
    0 8px 24px rgba(0, 0, 0, 0.40),
    0 0   0   1px var(--color-border);

}


/* ─────────────────────────────────────────────────────────────────────────────
   DARK MODE — via system preference (auto)
   This block provides a fallback when no data-theme attribute is set.
   If your site uses the data attribute for manual toggle, you can remove this
   block and handle prefers-color-scheme in JavaScript on page load.
   ───────────────────────────────────────────────────────────────────────────── */

@media (prefers-color-scheme: dark) {

  :root:not([data-theme="light"]) {

    --color-bg:             #111110;
    --color-bg-elevated:    #252320;
    --color-bg-subtle:      #1A1917;
    --color-bg-muted:       #2E2B28;

    --color-border:         #3D3935;
    --color-border-subtle:  #2E2B28;
    --color-border-strong:  #5E5850;

    --color-text:           #EDE9E3;
    --color-text-secondary: #A09890;
    --color-text-muted:     #5E5850;
    --color-text-inverse:   #1A1917;

    --color-accent:         #C45E45;
    --color-accent-hover:   #D47058;
    --color-accent-subtle:  rgba(196, 94, 69, 0.15);

    --color-link:           #C45E45;
    --color-link-hover:     #D47058;
    --color-link-visited:   #A88070;

    --color-focus-ring:     rgba(196, 94, 69, 0.5);

    --color-success:        #5A9470;
    --color-warning:        #B88035;
    --color-error:          #B84535;
    --color-info:           #5A82A0;

    --color-success-bg:     #1A2E22;
    --color-warning-bg:     #2A2010;
    --color-error-bg:       #2E1510;
    --color-info-bg:        #12202C;

    --shadow-raised:
      0 1px 3px rgba(0, 0, 0, 0.20),
      0 0   0   1px #3D3935;

    --shadow-floating:
      0 4px 12px rgba(0, 0, 0, 0.30),
      0 0   0   1px #3D3935;

    --shadow-overlay:
      0 8px 24px rgba(0, 0, 0, 0.40),
      0 0   0   1px #3D3935;

  }

}


/* ─────────────────────────────────────────────────────────────────────────────
   BASE ELEMENT STYLES
   Applying the brand tokens to standard HTML elements.
   This section is optional — include if you want out-of-the-box brand styling
   for documents and simple pages. For component-based apps, apply tokens
   directly to component styles.
   ───────────────────────────────────────────────────────────────────────────── */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-normal);
  font-feature-settings: var(--font-features-body);
  margin: 0;
  padding: 0;
  transition: background-color var(--transition-slow), color var(--transition-slow);
}

/* Headings */

h1, .h1 {
  font-family: var(--font-heading);
  font-size: var(--text-h1);
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-snug);
  font-feature-settings: var(--font-features-heading);
  margin-top: 0;
  margin-bottom: var(--space-4);
}

h2, .h2 {
  font-family: var(--font-heading);
  font-size: var(--text-h2);
  font-weight: var(--weight-regular);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-snug);
  font-feature-settings: var(--font-features-heading);
  margin-top: var(--space-8);
  margin-bottom: var(--space-3);
}

h3, .h3 {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: var(--weight-medium);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-normal);
  font-feature-settings: var(--font-features-heading);
  margin-top: var(--space-6);
  margin-bottom: var(--space-3);
}

h4, .h4 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-normal);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
}

h5, .h5 {
  font-family: var(--font-body);
  font-size: var(--text-h5);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-wide);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
}

h6, .h6 {
  font-family: var(--font-body);
  font-size: var(--text-h6);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
}

/* Body text */

p {
  margin-top: 0;
  margin-bottom: var(--space-4);
  max-width: var(--max-prose-width);
}

/* Links */

a {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color var(--transition-base);
}

a:hover {
  color: var(--color-link-hover);
}

a:visited {
  color: var(--color-link-visited);
}

a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* Code */

code {
  font-family: var(--font-mono);
  font-size: var(--text-code);
  font-feature-settings: var(--font-features-mono);
  background-color: var(--color-bg-muted);
  color: var(--color-text);
  padding: 0.1em 0.35em;
  border-radius: var(--radius-sm);
  border: var(--border-subtle);
}

pre {
  font-family: var(--font-mono);
  font-size: var(--text-code);
  font-feature-settings: var(--font-features-mono);
  background-color: var(--color-slag-1);
  color: var(--color-havre);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border: var(--border-subtle);
  overflow-x: auto;
  line-height: var(--leading-relaxed);
  tab-size: 2;
}

pre code {
  background: none;
  border: none;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
  color: inherit;
}

/* Blockquote */

blockquote {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: var(--weight-light);
  font-style: italic;
  line-height: var(--leading-snug);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-muted);
  border-left: 3px solid var(--color-accent);
  margin: var(--space-6) 0;
  padding: var(--space-4) var(--space-5);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

blockquote p {
  margin-bottom: 0;
}

/* Small, caption, label */

small, .small {
  font-size: var(--text-body-sm);
}

.caption {
  font-size: var(--text-caption);
  color: var(--color-text-secondary);
  line-height: var(--leading-normal);
}

.label {
  font-size: var(--text-label);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

/* Horizontal rule */

hr {
  border: none;
  border-top: var(--border-default);
  margin: var(--space-8) 0;
}

/* Display heading utility */

.display {
  font-family: var(--font-heading);
  font-size: var(--text-display);
  font-weight: var(--weight-light);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  font-feature-settings: var(--font-features-heading);
}


/* ─────────────────────────────────────────────────────────────────────────────
   COMPONENT PRIMITIVES
   Minimal, token-based styles for common UI elements.
   These are baseline patterns — your component library should override as needed.
   ───────────────────────────────────────────────────────────────────────────── */

/* Button — Primary */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background-color: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  line-height: 1;
  padding: var(--space-3) var(--space-5);
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--transition-base);
}

.btn-primary:hover {
  background-color: var(--color-accent-hover);
  color: var(--color-white);
  text-decoration: none;
}

.btn-primary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Button — Secondary (outline) */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background-color: transparent;
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  line-height: 1;
  padding: var(--space-3) var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-md);
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--transition-base), border-color var(--transition-base);
}

.btn-secondary:hover {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-strong);
  text-decoration: none;
}

.btn-secondary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Card */
.card {
  background-color: var(--color-bg-elevated);
  border: var(--border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  transition: box-shadow var(--transition-base);
}

.card:hover {
  box-shadow: var(--shadow-raised);
}

/* Input */
.input {
  display: block;
  width: 100%;
  background-color: var(--color-bg-elevated);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  padding: var(--space-2) var(--space-3);
  border: var(--border-default);
  border-radius: var(--radius-md);
  outline: none;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.input::placeholder {
  color: var(--color-text-muted);
}

.input:hover {
  border-color: var(--color-border-strong);
}

.input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-focus-ring);
}

/* Tag / Badge */
.tag {
  display: inline-flex;
  align-items: center;
  background-color: var(--color-bg-muted);
  color: var(--color-text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-label);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  padding: 0.2em var(--space-2);
  border-radius: var(--radius);
  border: var(--border-subtle);
}


/* ─────────────────────────────────────────────────────────────────────────────
   ACCESSIBILITY
   ───────────────────────────────────────────────────────────────────────────── */

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

}

/* Visually hidden (screen reader accessible) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Focus visible only on keyboard navigation */
:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-sm);
}
