/* Reset: Tailwind preflight equivalent at zero specificity (frontend-spec 1.9, Appendix A). */
:where(*, ::before, ::after) { box-sizing: border-box; border-width: 0; border-style: solid; border-color: var(--ll-preflight-border); }
:where(html) { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--ll-font-sans);
  font-feature-settings: normal; font-variation-settings: normal; -webkit-tap-highlight-color: transparent; scroll-behavior: smooth; }
:where(body) { margin: 0; line-height: inherit; font-family: var(--ll-font-sans); -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility; background-color: var(--ll-paper); color: var(--ll-ink); }
:where(hr) { height: 0; color: inherit; border-top-width: 1px; }
:where(h1, h2, h3, h4, h5, h6) { font-size: inherit; font-weight: inherit; }
:where(a) { color: inherit; text-decoration: inherit; }
:where(b, strong) { font-weight: bolder; }
:where(code, kbd, samp, pre) { font-family: var(--ll-font-mono); font-feature-settings: normal; font-variation-settings: normal; font-size: 1em; }
:where(small) { font-size: 80%; }
:where(sub, sup) { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
:where(sub) { bottom: -.25em; }
:where(sup) { top: -.5em; }
:where(table) { text-indent: 0; border-color: inherit; border-collapse: collapse; }
:where(button, input, optgroup, select, textarea) { font-family: inherit; font-feature-settings: inherit; font-variation-settings: inherit;
  font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; margin: 0; padding: 0; }
:where(button, select) { text-transform: none; }
:where(button, input[type="button"], input[type="reset"], input[type="submit"]) { -webkit-appearance: button; background-color: transparent; background-image: none; }
:where(:-moz-focusring) { outline: auto; }          /* Firefox only; :where() is forgiving, so other engines ignore it */
:where(:-moz-ui-invalid) { box-shadow: none; }      /* Firefox only: no red glow after a failed native validation */
:where(blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre) { margin: 0; }
:where(fieldset) { margin: 0; padding: 0; }
:where(legend) { padding: 0; }
:where(ol, ul, menu) { list-style: none; margin: 0; padding: 0; }
:where(textarea) { resize: vertical; }
:where(input, textarea)::placeholder { opacity: 1; color: var(--ll-preflight-placeholder); }
:where(button, [role="button"]) { cursor: pointer; }
:where(:disabled) { cursor: default; }
:where(img, svg, video, canvas, audio, iframe, embed, object) { display: block; vertical-align: middle; }
:where(img, video) { max-width: 100%; height: auto; }
:where(summary) { display: list-item; }
[hidden]:not([hidden="until-found"]) { display: none !important; }

/* Type primitives shared by sections (frontend-spec 1.10, 4.5) */
.font-display { font-family: var(--ll-font-display); letter-spacing: var(--ll-tracking-display); }
.ll-accent { color: var(--ll-accent); }
.ll-eyebrow { color: var(--ll-accent); font-weight: 600; font-size: .875rem; line-height: 1.25rem; text-transform: uppercase;
  letter-spacing: .18em; margin-bottom: .75rem; }
.ll-h2 { font-family: var(--ll-font-display); letter-spacing: -0.02em; font-size: 1.875rem; line-height: 2.25rem; font-weight: 600; }
@media (min-width: 640px) { .ll-h2 { font-size: 2.25rem; line-height: 2.5rem; } }
.ll-h3 { font-family: var(--ll-font-display); letter-spacing: -0.02em; font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; }
.ll-lead { color: var(--ll-ink-muted); font-size: 1.125rem; line-height: 1.625; margin-top: .75rem; max-width: 42rem;
  margin-left: auto; margin-right: auto; }
.ll-muted { color: var(--ll-ink-muted); line-height: 1.625; }

/* Accessibility helpers */
.ll-skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; }
.ll-skip-link:focus { left: 1rem; top: 1rem; padding: .5rem 1rem; background-color: var(--ll-ink); color: #fff; border-radius: 9999px; }
#ll-main:focus { outline: none; }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0;
  position: absolute !important; width: 1px; word-wrap: normal !important; }
.ll-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }   /* plugin honeypot */

/* Keyframes (prefixed to avoid clashes with plugin CSS) */
@keyframes llFloatSoft { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes llSpin { to { transform: rotate(360deg); } }
@keyframes llHeroIn { from { opacity: 0; transform: translateY(1.5rem); } }

@media (prefers-reduced-motion: reduce) { :where(html) { scroll-behavior: auto; } }

@media print {
  .ll-header, .ll-subheader { position: static !important; }
  .ll-mobile-cta { display: none !important; }
  .ll-hero__content, .ll-revealroot, .ll-revealroot * { opacity: 1 !important; transform: none !important; animation: none !important; }
}
