

:root {
   --ground: #E9EDF1;
   --surface: #F4F6F9;
   --surface-alt: #DDE3EA;
   --surface-elevated: #FFF;
   --surface-dark: #0B1320;
   --surface-card: #FFF;
   --ink: #0F172A;
   --ink-muted: #475569;
   --ink-light: #64748B;
   --ink-inverse: #F8FAFC;
   --ink-inverse-muted: #94A3B8;
   --border: #CBD5E1;
   --border-subtle: #E2E8F0;
   --border-strong: #94A3B8;
   --border-focus: #0284C7;
   --accent: #0369A1;
   --accent-deep: #024E79;
   --accent-light: #38BDF8;
   --accent-wash: #E0F2FE;
   --accent-subtle: #F0F9FF;
   --state-error: #B91C1C;
   --state-error-wash: #FEF2F2;
   --state-error-border: #FCA5A5;
   --state-success: #0F766E;
   --state-success-wash: #F0FDFA;
   --state-success-border: #99F6E4;
   --rega-3c4: 'Syne', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
   --rega-a13: 'IBM Plex Mono', 'SF Mono', Consolas, "Liberation Mono", Menlo, Monaco, monospace;
   --rega-4f7: 'IBM Plex Mono', 'SF Mono', Consolas, "Liberation Mono", Menlo, Monaco, monospace;
   --text-xs: clamp(0.7rem, 0.67rem + 0.12vw, 0.78rem);
   --text-sm: clamp(0.8rem, 0.76rem + 0.18vw, 0.88rem);
   --text-base: clamp(0.92rem, 0.88rem + 0.2vw, 1.02rem);
   --text-md: clamp(1.05rem, 0.98rem + 0.32vw, 1.18rem);
   --text-lg: clamp(1.22rem, 1.12rem + 0.5vw, 1.45rem);
   --text-xl: clamp(1.48rem, 1.3rem + 0.8vw, 1.85rem);
   --text-2xl: clamp(1.85rem, 1.55rem + 1.3vw, 2.45rem);
   --text-3xl: clamp(2.35rem, 1.9rem + 2vw, 3.4rem);
   --text-4xl: clamp(2.85rem, 2.2rem + 3vw, 4.5rem);
   --text-display: clamp(3.3rem, 2.5rem + 4.2vw, 5.8rem);
   --space-1: 0.25rem;
   --space-2: 0.5rem;
   --space-3: 0.75rem;
   --space-4: 1rem;
   --space-5: 1.25rem;
   --space-6: 1.5rem;
   --space-8: 2rem;
   --space-10: 2.5rem;
   --space-12: 3rem;
   --space-16: 4rem;
   --space-20: 5rem;
   --space-24: 6rem;
   --space-32: 8rem;
   --measure-prose: 58ch;
   --measure-wide: 74ch;
   --measure-compact: 42ch;
   --container-max: 1380px;
   --container-narrow: 880px;
   --container-pad: clamp(0.75rem, 0.5rem + 1vw, 2.5rem);
   --radius-xs: 2px;
   --radius-sm: 4px;
   --radius-md: 6px;
   --radius-lg: 8px;
   --radius-pill: 9999px;
   --shadow-sm: 0 1px 2px 0 rgba(15, 23, 42, 0.04);
   --shadow-md: 0 4px 12px -2px rgba(15, 23, 42, 0.08), 0 2px 6px -1px rgba(15, 23, 42, 0.04);
   --shadow-lg: 0 12px 28px -4px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.06);
   --shadow-card: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
   --dur-fast: 140ms;
   --dur-base: 220ms;
   --dur-slow: 380ms;
   --dur-motion: 600ms;
   --ease-default: cubic-bezier(0.16, 1, 0.3, 1);
   --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
   --ease-out: cubic-bezier(0, 0, 0.2, 1);
   --z-base: 1;
   --z-sticky: 100;
   --z-nav: 200;
   --z-header: 300;
   --z-overlay: 400;
   --z-modal: 500;
   --z-chat: 600;
   --z-banner: 700;
   --z-skip: 1000;
}


*,
*::before,
*::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}


html {
   -webkit-text-size-adjust: 100%;
   text-size-adjust: 100%;
   scroll-behavior: smooth;
   background-color: var(--ground);
   color: var(--ink);
}


body {
   background-color: var(--ground);
   color: var(--ink);
   font-family: var(--rega-a13);
   font-size: var(--text-base);
   font-weight: 400;
   line-height: 1.68;
   letter-spacing: -0.01em;
   min-height: 100vh;
   overflow-x: hidden;
   text-rendering: optimizeLegibility;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}


#smooth-wrapper {
   overflow: hidden;
   position: relative;
   width: 100%;
}


#smooth-content {
   overflow: visible;
   position: relative;
   width: 100%;
}


img,
picture,
video,
canvas,
svg {
   display: block;
   max-width: 100%;

   height: auto;
}


input,
button,
textarea,
select {
   font: inherit;
   color: inherit;
}


a {
   color: var(--ink);
   text-decoration-thickness: 1px;
   text-underline-offset: 3px;
   transition: color var(--dur-fast) var(--ease-default), text-decoration-color var(--dur-fast) var(--ease-default);
}


a:hover { color: var(--accent); }


ul,
ol { list-style: none; }


table {
   border-collapse: collapse;
   border-spacing: 0;
   width: 100%;
}


button {
   background: none;
   border: none;
   cursor: pointer;
}


h1,
h2,
h3,
h4,
h5,
h6 {
   font-family: var(--rega-3c4);
   font-weight: 700;
   line-height: 1.12;
   color: var(--ink);
   letter-spacing: -0.03em;
   text-wrap: balance;
   overflow-wrap: break-word;
   word-break: break-word;
}


h1 {
   font-size: var(--text-4xl);
   font-weight: 800;
   line-height: 1.04;
}


h2 {
   font-size: var(--text-2xl);
   font-weight: 700;
   line-height: 1.12;
}


h3 {
   font-size: var(--text-xl);
   font-weight: 700;
   line-height: 1.2;
}


h4 {
   font-size: var(--text-lg);
   font-weight: 600;
   line-height: 1.25;
}


h5 {
   font-size: var(--text-md);
   font-weight: 600;
   line-height: 1.3;
}


h6 {
   font-size: var(--text-sm);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}


p {
   max-width: var(--measure-prose);
   margin-bottom: var(--space-4);
   overflow-wrap: break-word;
}


p:last-child { margin-bottom: 0; }


strong,
b {
   font-weight: 600;
   color: var(--ink);
}


em,
i { font-style: italic; }


small {
   font-size: var(--text-xs);
   line-height: 1.4;
}


code,
kbd,
samp,
pre {
   font-family: var(--rega-4f7);
   font-size: 0.9em;
}


blockquote {
   border-left: 2px solid var(--accent);
   padding-left: var(--space-6);
   margin: var(--space-6) 0;
   font-size: var(--text-md);

   color: var(--ink);
   line-height: 1.6;
}


cite {
   display: block;
   font-size: var(--text-xs);
   color: var(--ink-muted);
   font-style: normal;
   margin-top: var(--space-2);
   letter-spacing: 0.02em;
}


hr {
   border: 0;
   border-top: 1px solid var(--border);
   margin: var(--space-8) 0;
}


.skip-link {
   position: fixed;
   top: var(--space-3);
   left: var(--space-3);
   z-index: var(--z-skip);
   padding: var(--space-3) var(--space-5);
   background: var(--surface-dark);
   color: var(--ink-inverse);
   font-family: var(--rega-4f7);
   font-size: var(--text-sm);
   font-weight: 500;
   border-radius: var(--radius-xs);
   text-decoration: none;
   transform: translateY(-160%);
   transition: transform var(--dur-fast) var(--ease-default);
   box-shadow: var(--shadow-lg);
}


.skip-link:focus-visible {
   transform: translateY(0);
   outline: 2px solid var(--accent-light);
   outline-offset: 2px;
}


.site-container {
   width: 100%;
   max-width: var(--container-max);
   margin-left: auto;
   margin-right: auto;
   padding-left: var(--container-pad);
   padding-right: var(--container-pad);
}


.site-container-narrow {
   width: 100%;
   max-width: var(--container-narrow);
   margin-left: auto;
   margin-right: auto;
   padding-left: var(--container-pad);
   padding-right: var(--container-pad);
}


.site-container-fluid {
   width: 100%;
   padding-left: var(--container-pad);
   padding-right: var(--container-pad);
}


.headline-lockup {
   display: flex;
   flex-direction: column;
   position: relative;
   margin-bottom: var(--space-6);
}


.lockup-tag {
   font-family: var(--rega-4f7);

   font-size: var(--text-xs);
   font-weight: 600;
   color: #025985;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   margin-bottom: var(--space-2);
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
}


.lockup-tag::after {
   content: "";
   display: inline-block;
   width: 24px;
   height: 1px;
   background-color: #025985;
}


.lockup-top {
   display: block;
   font-family: var(--rega-3c4);
   font-size: clamp(2rem, 1.6rem + 2vw, 3.4rem);
   font-weight: 800;
   line-height: 1.02;
   letter-spacing: -0.035em;
   color: var(--ink);
   transform: translateX(0);
}


.lockup-rule {
   display: block;
   width: 100%;
   height: 1px;
   background-color: var(--border);
   margin: var(--space-3) 0;
   position: relative;
}


.lockup-rule::after {
   content: "";
   position: absolute;
   left: 0;
   top: 0;
   width: 56px;
   height: 2px;
   background-color: var(--accent);
}


.lockup-bottom {
   display: block;
   font-family: var(--rega-3c4);
   font-size: clamp(1.6rem, 1.3rem + 1.5vw, 3.4rem);
   font-weight: 800;
   line-height: 1.02;
   letter-spacing: -0.035em;
   color: var(--ink-muted);
   padding-left: clamp(0.5rem, 0.4rem + 0.8vw, 2.5rem);
   max-width: 100%;
}


.held-layout {
   display: grid;
   grid-template-columns: 100%;
   gap: var(--space-8);
   position: relative;
   border-top: 1px solid var(--border);
   padding-top: var(--space-12);
   padding-bottom: var(--space-16);
   min-width: 0;
}


.held-sidebar {
   position: relative;
   align-self: start;
   min-width: 0;
   max-width: 100%;
}


.held-flow {
   display: flex;
   flex-direction: column;
   gap: var(--space-8);
   min-width: 0;
   max-width: 100%;
}


.held-title {
   font-size: var(--text-3xl);
   font-weight: 800;
   line-height: 1.08;
   letter-spacing: -0.03em;
   margin-bottom: var(--space-4);
   color: var(--ink);
   overflow-wrap: break-word;
}


.held-lead {
   font-family: var(--rega-a13);
   font-size: var(--text-md);
   line-height: 1.62;
   color: var(--ink-muted);
   max-width: 100%;
   margin-bottom: var(--space-6);
   overflow-wrap: break-word;
}


@media (min-width: 992px) {
   .held-layout {
      grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
      gap: clamp(2rem, 1.8rem + 2vw, 5rem);
   }


   .held-sidebar {
      position: sticky;
      top: 120px;
   }
}


.modular-grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: var(--space-6);
}


@media (min-width: 768px) {
   .modular-grid { grid-template-columns: repeat(2, 1fr); }
}


@media (min-width: 1024px) {
   .modular-grid { grid-template-columns: repeat(12, 1fr); }


   .mod-span-12 { grid-column: span 12; }
   .mod-span-8 { grid-column: span 8; }
   .mod-span-7 { grid-column: span 7; }
   .mod-span-6 { grid-column: span 6; }
   .mod-span-5 { grid-column: span 5; }
   .mod-span-4 { grid-column: span 4; }
   .mod-span-3 { grid-column: span 3; }
}


.grid-rail-layout {
   display: grid;
   grid-template-columns: 1fr;
   gap: var(--space-6);
}


@media (min-width: 1024px) {
   .grid-rail-layout {
      grid-template-columns: minmax(0, 1fr) 340px;
      gap: var(--space-8);
   }
}


.prose {
   font-size: var(--text-base);
   line-height: 1.72;
   color: var(--ink);
}


.prose p { margin-bottom: var(--space-5); }


.prose h2,
.prose h3,
.prose h4 {
   margin-top: var(--space-8);
   margin-bottom: var(--space-3);
}


.prose ul,
.prose ol { margin: var(--space-4) 0 var(--space-6) var(--space-5); }


.prose ul li {
   list-style: disc;
   margin-bottom: var(--space-2);
   padding-left: var(--space-1);
}


.prose ol li {
   list-style: decimal;
   margin-bottom: var(--space-2);
   padding-left: var(--space-1);
}


.visually-hidden {
   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: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
   }


   .held-sidebar { position: static !important; }


   #smooth-wrapper,
   #smooth-content {
      overflow: visible !important;
      position: static !important;
   }
}
