* { box-sizing: border-box; }
body.ec-app { margin: 0; background: var(--ec-bg); color: var(--ec-text); font-family: var(--ec-font); font-size: 14px; line-height: 1.8; }
button, input, textarea, select { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, select, summary { cursor: pointer; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
button:disabled { opacity: .45; cursor: not-allowed; }
button { border: 0; }
img, video { max-width: 100%; display: block; }
svg { flex-shrink: 0; }
h1, h2, h3, h4, p { margin: 0; }
h1 { font-size: clamp(25px, 2.5vw, 34px); line-height: 1.55; letter-spacing: -.8px; }
h2 { font-size: 21px; line-height: 1.6; letter-spacing: -.4px; }
h3 { font-size: 16px; line-height: 1.7; }
small { font-size: 12px; }
ul { padding-inline-start: 22px; }
:focus-visible { outline: 3px solid var(--ec-primary); outline-offset: 4px; }
[hidden] { display: none !important; }
::selection { background: #e6c3aa; color: #242b28; }
.ec-muted { color: var(--ec-muted); }
.ec-accent { color: var(--ec-primary); }
.ec-green { color: var(--ec-green); }
.ec-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.ec-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ec-skip { position: fixed; inset-block-start: -100px; inset-inline-start: 20px; z-index: 100; background: var(--ec-surface); padding: 12px 20px; }
.ec-skip:focus { inset-block-start: 12px; }
.ec-icon { width: 20px; height: 20px; vertical-align: middle; }
@media (prefers-reduced-motion: no-preference) {
  button, a { transition: background .18s, color .18s, border-color .18s; }
  .ec-page { animation: ec-enter .25s ease-out; }
  @keyframes ec-enter { from { opacity: .4; transform: translateY(5px); } to { opacity: 1; transform: none; } }
}
@media print { .ec-sidebar, .ec-topbar, .ec-demo-bar, .ec-footer, .ec-toasts { display: none !important; } .ec-workspace { margin: 0 !important; } }
