/* Minimal base layer — body defaults, links, focus. Placebo owns everything else. */
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--duration-instant) var(--ease-out)}
a:hover{color:var(--text-link-hover);text-decoration:underline}
:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
::placeholder{color:var(--text-placeholder)}
hr{border:none;border-top:1px solid var(--border-default)}
@keyframes placebo-spin{to{transform:rotate(360deg)}}
@keyframes placebo-fade{from{opacity:0}to{opacity:1}}
@keyframes placebo-modal-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes placebo-pulse{0%,100%{opacity:.5}50%{opacity:1}}
