/* Shared public design primitives. Page styles may override these components. */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
button{font-family:inherit;cursor:pointer;touch-action:manipulation}
a{text-decoration:none;color:inherit}
img,svg,canvas{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;border-radius:6px}
.page{max-width:960px;margin:0 auto;padding:0 var(--pad);width:100%;flex:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;height:clamp(34px,4.5vw,40px);padding:0 clamp(9px,1.8vw,16px);font-size:clamp(11px,1.3vw,12.5px);font-weight:700;border:none;transition:.2s;white-space:nowrap}
.btn svg{flex:none}
.btn-ghost{background:#fff;border:1px solid #e3e6f3;color:#171b34}
.btn-ghost:hover{border-color:#c9cdea;background:#f6f7fd}
.btn-grad{background:linear-gradient(90deg,#8a2be2,#ec008c);color:#fff;box-shadow:0 6px 16px rgba(236,0,140,.25)}
.btn-grad:hover{filter:brightness(1.07)}
