/* LMC v0.2 — owner-selected mulberry extension, 4 November 2026. */
@font-face { font-family: 'LMC Cormorant'; src: url('./fonts/cormorant-600-normal.ttf') format('truetype'); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: 'LMC Cormorant'; src: url('./fonts/cormorant-600-italic.ttf') format('truetype'); font-style: italic; font-weight: 600; font-display: swap; }
@font-face { font-family: 'LMC Cormorant'; src: url('./fonts/cormorant-700-normal.ttf') format('truetype'); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: 'LMC Geist'; src: url('./fonts/geist-400-normal.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'LMC Geist'; src: url('./fonts/geist-500-normal.ttf') format('truetype'); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: 'LMC Geist'; src: url('./fonts/geist-600-normal.ttf') format('truetype'); font-style: normal; font-weight: 600; font-display: swap; }

.lmc-theme {
  --lmc-porcelain: #fff9f2;
  --lmc-cream: #fcead0;
  --lmc-champagne: #f4d4b1;
  --lmc-caramel: #caa377;
  --lmc-espresso: #48220d;
  --lmc-mulberry: #6b354b;
  --lmc-blush: #f0dde2;
  --lmc-cocoa: #75482f;
  --lmc-taupe: #74614f;
  --lmc-surface: #fffcf8;
  --lmc-border: #ddc7ac;
  --lmc-control-border: #92765f;
  --lmc-error: #8a3029;
  --lmc-success: #315b44;
  --lmc-background: var(--lmc-porcelain);
  --lmc-text: var(--lmc-espresso);
  --lmc-muted: var(--lmc-taupe);
  --lmc-accent-text: var(--lmc-mulberry);
  --lmc-primary: var(--lmc-mulberry);
  --lmc-on-primary: var(--lmc-porcelain);
  --lmc-primary-hover: #57283d;
  --lmc-primary-active: #452031;
  --lmc-secondary-hover: var(--lmc-blush);
  --lmc-focus: var(--lmc-mulberry);
  --lmc-disabled-bg: var(--lmc-cream);
  --lmc-disabled-text: var(--lmc-cocoa);
  --lmc-font-display: 'LMC Cormorant', Georgia, 'Times New Roman', serif;
  --lmc-font-body: 'LMC Geist', Arial, Helvetica, sans-serif;
  --lmc-text-display: clamp(2.25rem, 1.5rem + 3vw, 4rem);
  --lmc-text-page: clamp(2rem, 1.5rem + 2vw, 3rem);
  --lmc-text-section: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
  --lmc-text-card: clamp(1.5rem, 1.4rem + .4vw, 1.75rem);
  --lmc-text-lead: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);
  --lmc-text-body: 1rem;
  --lmc-text-small: .875rem;
  --lmc-text-eyebrow: .75rem;
  --lmc-space-1: .25rem;
  --lmc-space-2: .5rem;
  --lmc-space-3: .75rem;
  --lmc-space-4: 1rem;
  --lmc-space-6: 1.5rem;
  --lmc-space-8: 2rem;
  --lmc-space-12: 3rem;
  --lmc-space-16: 4rem;
  --lmc-space-24: 6rem;
  --lmc-section-space: clamp(3.5rem, 7vw, 6rem);
  --lmc-shell: 77.5rem;
  --lmc-gutter: clamp(1.25rem, 3vw, 2rem);
  --lmc-radius-control: .75rem;
  --lmc-radius-card: 1.25rem;
  --lmc-radius-media: 1.75rem;
  --lmc-radius-pill: 999px;
  --lmc-control-height: 3rem;
  --lmc-shadow: 0 16px 48px rgb(72 34 13 / 8%);
  --lmc-feedback: 180ms ease;
  color-scheme: light;
  color: var(--lmc-text);
  background: var(--lmc-background);
  font: 400 var(--lmc-text-body)/1.7 var(--lmc-font-body);
  font-synthesis: none;
  overflow-wrap: break-word;
}
.lmc-theme *, .lmc-theme *::before, .lmc-theme *::after { box-sizing: border-box; }
.lmc-theme [hidden] { display: none !important; }
.lmc-theme :is([data-lmc-scheme='signature'],[data-lmc-scheme='champagne']) {
  --lmc-background: var(--lmc-porcelain);
  --lmc-text: var(--lmc-espresso);
  --lmc-muted: var(--lmc-taupe);
  --lmc-accent-text: var(--lmc-mulberry);
  --lmc-primary: var(--lmc-mulberry);
  --lmc-on-primary: var(--lmc-porcelain);
  --lmc-primary-hover: #57283d;
  --lmc-primary-active: #452031;
  --lmc-secondary-hover: var(--lmc-blush);
  --lmc-focus: var(--lmc-mulberry);
  --lmc-disabled-bg: var(--lmc-cream);
  --lmc-disabled-text: var(--lmc-cocoa);
}
.lmc-theme [data-lmc-scheme='champagne'] {
  --lmc-background: var(--lmc-champagne);
  --lmc-muted: var(--lmc-cocoa);
  --lmc-secondary-hover: var(--lmc-blush);
}
.lmc-theme [data-lmc-scheme='evening'] {
  --lmc-background: var(--lmc-espresso);
  --lmc-text: var(--lmc-porcelain);
  --lmc-muted: var(--lmc-cream);
  --lmc-accent-text: var(--lmc-champagne);
  --lmc-primary: var(--lmc-cream);
  --lmc-on-primary: var(--lmc-espresso);
  --lmc-primary-hover: var(--lmc-porcelain);
  --lmc-primary-active: var(--lmc-champagne);
  --lmc-secondary-hover: var(--lmc-cocoa);
  --lmc-focus: var(--lmc-cream);
  --lmc-disabled-bg: var(--lmc-cocoa);
  --lmc-disabled-text: var(--lmc-cream);
}
.lmc-theme [data-lmc-scheme='blush'] {
  --lmc-background: var(--lmc-blush);
  --lmc-muted: var(--lmc-cocoa);
}
.lmc-theme [data-lmc-scheme='mulberry'] {
  --lmc-background: var(--lmc-mulberry);
  --lmc-text: var(--lmc-porcelain);
  --lmc-muted: var(--lmc-cream);
  --lmc-accent-text: var(--lmc-champagne);
  --lmc-primary: var(--lmc-porcelain);
  --lmc-on-primary: var(--lmc-mulberry);
  --lmc-primary-hover: var(--lmc-blush);
  --lmc-primary-active: var(--lmc-champagne);
  --lmc-secondary-hover: #57283d;
  --lmc-focus: var(--lmc-cream);
  --lmc-disabled-bg: #57283d;
  --lmc-disabled-text: var(--lmc-cream);
}
.lmc-theme :where(button, input, select, textarea) { font: inherit; }
.lmc-theme :where(h1,h2,h3,p) { margin: 0; }
.lmc-theme :where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--lmc-focus); outline-offset: 4px; }
.lmc-theme ::selection { background: var(--lmc-mulberry); color: var(--lmc-porcelain); }
.lmc-shell { width: min(calc(100% - var(--lmc-gutter) * 2),var(--lmc-shell)); margin-inline: auto; }
.lmc-display,.lmc-page-title,.lmc-section-title,.lmc-card-title { font-family: var(--lmc-font-display); font-weight: 600; letter-spacing: -.02em; text-wrap: balance; }
.lmc-display { font-size: var(--lmc-text-display); line-height: 1.08; max-width: 22ch; }
.lmc-page-title { font-size: var(--lmc-text-page); line-height: 1.14; }
.lmc-section-title { font-size: var(--lmc-text-section); line-height: 1.18; }
.lmc-card-title { font-size: var(--lmc-text-card); line-height: 1.25; }
.lmc-emphasis { font-style: italic; color: var(--lmc-accent-text); }
.lmc-lead { font-size: var(--lmc-text-lead); line-height: 1.65; max-width: 55ch; }
.lmc-small { font-size: var(--lmc-text-small); line-height: 1.55; }
.lmc-eyebrow { font-size: var(--lmc-text-eyebrow); font-weight: 600; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; }
.lmc-muted { color: var(--lmc-muted); }
.lmc-button {
  display: inline-flex; justify-content: center; align-items: center; gap: .65rem;
  min-height: var(--lmc-control-height); max-width: 100%; padding: .75rem 1.5rem;
  border: 1px solid var(--lmc-primary); border-radius: var(--lmc-radius-pill);
  background: var(--lmc-primary); color: var(--lmc-on-primary);
  font: 500 .9375rem/1.4 var(--lmc-font-body); text-align: center; text-decoration: none;
  transition: background var(--lmc-feedback), color var(--lmc-feedback); cursor: pointer;
}
.lmc-button:hover:not(:disabled) { background: var(--lmc-primary-hover); border-color: var(--lmc-primary-hover); }
.lmc-button:active:not(:disabled) { background: var(--lmc-primary-active); }
.lmc-button-secondary { background: transparent; color: var(--lmc-text); border-color: var(--lmc-text); }
.lmc-button-secondary:hover:not(:disabled) { color: var(--lmc-text); background: var(--lmc-secondary-hover); border-color: var(--lmc-text); }
.lmc-button-secondary:active:not(:disabled) { background: var(--lmc-secondary-hover); }
.lmc-button:disabled { background: var(--lmc-disabled-bg); color: var(--lmc-disabled-text); border-color: var(--lmc-disabled-bg); cursor: not-allowed; }
.lmc-link { color: var(--lmc-accent-text); text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
.lmc-link:hover { text-decoration-thickness: 2px; }
.lmc-field { display: grid; gap: .5rem; }
.lmc-label { font-size: .875rem; font-weight: 500; line-height: 1.5; }
.lmc-input { width: 100%; min-height: 3rem; border: 1px solid var(--lmc-control-border); border-radius: var(--lmc-radius-control); background: var(--lmc-surface); color: var(--lmc-espresso); padding: .75rem 1rem; font: 400 1rem/1.5 var(--lmc-font-body); }
.lmc-input::placeholder { color: var(--lmc-taupe); opacity: 1; }
.lmc-input[aria-invalid='true'] { border: 2px solid var(--lmc-error); }
.lmc-error { color: var(--lmc-error); font-size: .875rem; line-height: 1.55; }
.lmc-success { color: var(--lmc-success); font-size: .875rem; line-height: 1.55; }
.lmc-card { border: 1px solid var(--lmc-border); border-radius: var(--lmc-radius-card); padding: clamp(1.5rem,3vw,2rem); background: var(--lmc-surface); color: var(--lmc-espresso); }
@media (prefers-reduced-motion: reduce) { .lmc-theme *, .lmc-theme *::before, .lmc-theme *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
