/* Base element styles and type/layout classes, ported from the design system tokens/base.css (token-bound). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-primary);background:var(--surface-light)}
img,video{display:block;max-width:100%}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--text-primary)}
.ls-dark a:not([class]){color:var(--text-link-inverse)}.ls-dark a:not([class]):hover{color:var(--text-inverse)}
:focus-visible{outline:var(--border-focus) solid var(--focus-ring);outline-offset:3px}
.ls-dark :focus-visible{outline-color:var(--focus-ring-inverse)}

/* Type classes */
.ls-display{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);margin:0;text-wrap:balance}
.ls-h1{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);margin:0;max-width:var(--measure-heading);text-wrap:balance}
.ls-h2{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);margin:0;text-wrap:balance}
.ls-h3{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);margin:0;text-wrap:balance}
.ls-h4{font-family:var(--font-body);font-weight:var(--fw-medium);font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4);margin:0}
.ls-body-lg{font-size:var(--fs-body-lg);line-height:var(--lh-body-lg);margin:0;max-width:var(--measure-body);text-wrap:pretty}
.ls-body{font-size:var(--fs-body);line-height:var(--lh-body);margin:0;max-width:var(--measure-body);text-wrap:pretty}
.ls-body-sm{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);margin:0}
.ls-eyebrow{font-family:var(--font-body);font-weight:var(--fw-medium);font-size:var(--fs-eyebrow);line-height:1.2;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;margin:0}
.ls-data{font-family:var(--font-data);font-weight:var(--fw-semibold);font-size:var(--fs-data);line-height:var(--lh-data);letter-spacing:var(--ls-data);font-variant-numeric:tabular-nums lining-nums;margin:0}
.ls-muted{color:var(--text-secondary)}.ls-dark .ls-muted{color:var(--text-inverse-secondary)}

/* Layout */
.ls-container{width:100%;max-width:calc(var(--container-max) + 2*var(--page-margin));margin-inline:auto;padding-inline:var(--page-margin)}
.ls-grid{display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));column-gap:var(--grid-gutter)}
.ls-section{padding-block:var(--section-lg)}
.ls-section--xl{padding-block:var(--section-xl)}.ls-section--md{padding-block:var(--section-md)}
.ls-dark{background:var(--surface-dark);color:var(--text-inverse)}
.ls-muted-surface{background:var(--surface-muted)}
.ls-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}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v2 — highlight, glass, neon */
.ls-hl{color:var(--brand-primary)}.ls-dark .ls-hl,.ls-on-dark .ls-hl{color:var(--brand-accent)}
.ls-glass{background:var(--glass-dark);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-dark);border-radius:var(--radius-lg);color:var(--text-inverse)}
.ls-glass--light{background:var(--glass-light);border-color:var(--glass-border-light);color:var(--text-primary);box-shadow:var(--shadow-glass)}
.ls-neon{background:radial-gradient(60% 70% at 88% 0%,var(--glow-volt),transparent 60%),radial-gradient(40% 50% at 0% 100%,var(--glow-green),transparent 70%),var(--surface-dark)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ls-glass{background:rgba(8,17,22,.86)}.ls-glass--light{background:rgba(255,255,255,.94)}}
/* Theme additions */
.ls-skip{position:absolute;left:var(--space-3);top:var(--space-3);z-index:calc(var(--z-overlay) + 1);padding:var(--space-2) var(--space-3);background:var(--surface-light);color:var(--text-primary);font-weight:var(--fw-medium);transform:translateY(-200%)}
.ls-skip:focus{transform:none}
html{scroll-padding-top:calc(var(--header-h) + var(--space-3))}
main:focus{outline:none}
