/* Base — minimal element defaults + type utility classes. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--color-text-accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--color-accent-hover)}
:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
::selection{background:var(--qg-violet-200);color:var(--qg-ink-950)}
.qg-display{font-family:var(--font-display);font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);font-weight:600;text-wrap:balance}
.qg-h1{font-family:var(--font-display);font-size:var(--text-h1);line-height:var(--leading-h1);letter-spacing:var(--tracking-h1);font-weight:600;text-wrap:balance}
.qg-h2{font-family:var(--font-display);font-size:var(--text-h2);line-height:var(--leading-h2);letter-spacing:var(--tracking-h2);font-weight:600;text-wrap:balance}
.qg-h3{font-family:var(--font-display);font-size:var(--text-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3);font-weight:600}
.qg-h4{font-family:var(--font-display);font-size:var(--text-h4);line-height:var(--leading-h4);letter-spacing:var(--tracking-h4);font-weight:600}
.qg-h5{font-family:var(--font-ui);font-size:var(--text-h5);line-height:var(--leading-h5);letter-spacing:var(--tracking-h5);font-weight:700}
.qg-h6{font-family:var(--font-ui);font-size:var(--text-h6);line-height:var(--leading-h6);font-weight:700}
.qg-lead{font-size:var(--text-lead);line-height:var(--leading-lead);color:var(--color-text-2);text-wrap:pretty}
.qg-body{font-size:var(--text-body);line-height:var(--leading-body)}
.qg-body-sm{font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}
.qg-label{font-size:var(--text-label);line-height:var(--leading-label);letter-spacing:var(--tracking-label);font-weight:600}
.qg-eyebrow{font-family:var(--font-ui);font-size:var(--text-eyebrow);line-height:var(--leading-eyebrow);letter-spacing:var(--tracking-eyebrow);font-weight:700;text-transform:uppercase}
.qg-caption{font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-text-muted)}
.qg-numeric{font-family:var(--font-mono);font-size:var(--text-numeric);font-variant-numeric:tabular-nums}
.qg-gradient-text{background:var(--gradient-signal);-webkit-background-clip:text;background-clip:text;color:transparent}
.qg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes qg-spin{to{transform:rotate(360deg)}}
@keyframes qg-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes qg-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes qg-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
