
/* OD-LAYOUT-PRIMITIVES v1 — structure only: display, flex/grid, overflow, wrapping, ratio.
   Put this @layer first; product CSS outside the layer always wins. */
@layer od-layout {
  :where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-field,.od-stat,.od-cell,.od-tile) > :where(*) { min-width: 0; }
  .od-stack { display: flex; flex-direction: column; gap: var(--od-gap, 8px); }
  .od-row { display: flex; align-items: center; gap: var(--od-gap, 8px); }
  .od-row-top { display: flex; align-items: flex-start; gap: var(--od-gap, 8px); }
  .od-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--od-gap, 8px); }
  .od-fill { flex: 1 1 0; min-width: 0; }
  .od-fixed { flex: none; }
  .od-grid { display: grid; gap: var(--od-gap, 12px); grid-template-columns: repeat(var(--od-cols, 3), minmax(0, 1fr)); }
  .od-stat, .od-field, .od-cell { display: grid; gap: var(--od-gap, 2px); }
  :where(.od-stat,.od-field,.od-cell) > :where(*) { display: block; }
  .od-tile { display: grid; grid-template-rows: auto 1fr; }
  :where(.od-tile) > :where(*) { display: block; }
  .od-media { display: block; width: 100%; height: auto; aspect-ratio: var(--od-ratio, auto); }
  .od-media-cover { object-fit: cover; }
  .od-truncate { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .od-clamp-2, .od-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
  .od-clamp-2 { -webkit-line-clamp: 2; }
  .od-clamp-3 { -webkit-line-clamp: 3; }
  .od-lines-2 { min-height: calc(2 * 1.4em); }
  .od-nowrap { white-space: nowrap; }
  .od-keep { word-break: keep-all; overflow-wrap: anywhere; }
  .od-screen { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
  .od-scroll { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
  .od-rail { display: flex; gap: var(--od-gap, 8px); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding-inline: var(--od-rail-pad, 16px); scroll-padding-inline: var(--od-rail-pad, 16px); }
  .od-rail::-webkit-scrollbar { display: none; }
  :where(.od-rail) > :where(*) { flex: none; scroll-snap-align: start; }
  :where(.od-rail) > :where(:last-child) { margin-inline-end: var(--od-rail-pad, 16px); }
  .od-spacer { flex: none; visibility: hidden; pointer-events: none; }
  .od-touch { min-width: 44px; min-height: 44px; }
}
/* /OD-LAYOUT-PRIMITIVES v1 */

/* Original Bento semantic token bindings; explicit AMI brand overrides follow. */
:root {
  --bg: #f5f8ff;
  --surface: #ffffff;
  --surface-warm: #eaf1ff;
  --fg: #101828;
  --fg-2: #344054;
  --muted: #667085;
  --meta: #2563eb;
  --border: #d7e0ef;
  --border-soft: #edf2f8;
  --accent: #2563eb;
  --accent-on: #ffffff;
  --accent-hover: color-mix(in oklab, var(--accent), black 8%);
  --accent-active: color-mix(in oklab, var(--accent), black 14%);
  --success: #16a34a;
  --warn: #f59e0b;
  --danger: #ef4444;
  --font-display: Inter, system-ui, sans-serif;
  --font-body: Inter, system-ui, sans-serif;
  --font-mono: "SF Mono", ui-monospace, Menlo, monospace;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 24px;
  --text-2xl: 36px;
  --text-3xl: 54px;
  --text-4xl: 76px;
  --leading-body: 1.52;
  --leading-tight: 1.06;
  --tracking-display: -0.025em;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --section-y-desktop: 96px;
  --section-y-tablet: 68px;
  --section-y-phone: 48px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 9999px;
  --elev-flat: none;
  --elev-ring: 0 0 0 1px var(--border);
  --elev-raised: 0 20px 52px rgba(16, 24, 40, 0.11);
  --focus-ring: 0 0 0 4px rgba(37, 99, 235, 0.22);
  --motion-fast: 150ms;
  --motion-base: 240ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --container-max: 1180px;
  --container-gutter-desktop: 36px;
  --container-gutter-tablet: 24px;
  --container-gutter-phone: 16px;
}

/* AMI! / chubi-design-v1.0 — user palette, locally bundled Cyrillic fonts. */
:root {
  --bg: #FFF3E2;
  --surface: #FFF9F0;
  --surface-warm: #FFD3B4;
  --fg: #432B25;
  --fg-2: #432B25;
  --muted: #765849;
  --meta: #B93C19;
  --accent: #FF7849;
  --accent-on: #432B25;
  --accent-ink: #B93C19;
  --mango: #FFBD59;
  --peach: #FFD3B4;
  --pink: #FF97AD;
  --butter: #FFE6A0;
  --pistachio: #DCE8B8;
  --lavender: #DAD0F0;
  --caramel: #BC754C;
  --paper: #FFFCF7;
  --paper-translucent: rgba(255,252,247,.92);
  --border: rgba(67,43,37,.22);
  --border-soft: rgba(67,43,37,.12);
  --border-strong: rgba(67,43,37,.58);
  --footer-border: rgba(255,243,226,.24);
  --scrim: rgba(67,43,37,.65);
  --danger-ink: #9B271D;
  --dark-hover: #2C1B17;
  --font-display: Unbounded, system-ui, sans-serif;
  --font-body: Manrope, system-ui, sans-serif;
  --leading-body: 1.6;
  --container-max: 1360px;
  --container-gutter-desktop: 40px;
  --elev-raised: 0 20px 48px rgba(67,43,37,.13);
  --elev-paper: 0 12px 24px rgba(67,43,37,.15), 0 2px 4px rgba(67,43,37,.08);
  --elev-hero: 0 24px 48px rgba(188,117,76,.12);
  --elev-button: 0 8px 16px rgba(67,43,37,.12);
  --focus-ring: 0 0 0 4px rgba(67,43,37,.3);
}
  