/* Minimal element defaults so specimen cards and kits inherit the brand voice. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-text);font-size:var(--body-size);line-height:var(--body-lh);font-weight:var(--weight-regular);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);margin:0;text-wrap:balance}
h1{font-size:var(--h1-size);line-height:var(--h1-lh);letter-spacing:var(--h1-ls);font-weight:var(--h1-weight)}
h2{font-size:var(--h2-size);line-height:var(--h2-lh);letter-spacing:var(--h2-ls);font-weight:var(--h2-weight)}
h3{font-size:var(--h3-size);line-height:var(--h3-lh);letter-spacing:var(--h3-ls);font-weight:var(--h3-weight)}
h4{font-size:var(--h4-size);line-height:var(--h4-lh);letter-spacing:var(--h4-ls);font-weight:var(--h4-weight)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:none;box-shadow:var(--ring-focus)}
code,kbd{font-family:var(--font-mono);font-size:.9em}
::selection{background:var(--steel-200);color:var(--ink-950)}

/* Lucide icon wrapper (see components/core/Icon.jsx) */
[data-osnova-icon]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
[data-osnova-icon]>svg{width:100%;height:100%;display:block}
[data-osnova-icon][data-filled]>svg{fill:currentColor}

@keyframes osnova-spin{to{transform:rotate(360deg)}}
@keyframes osnova-rotate{to{transform:rotate(360deg)}}
@keyframes osnova-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes osnova-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
