

:root {
   --ground:#0e0a13;
   --ground-deep:#08060b;
   --plum:#1a1224;
   --plum-2:#211730;
   --violet:#2e2242;
   --violet-2:#3a2b54;
   --mist:#a497c0;
   --paper:#ece6f1;
   --paper-dim:#d6cde0;
   --muted:#a99dbb;
   --line:#3b2e52;
   --line-soft:rgba(125, 108, 156, 0.28);
   --accent:#c8f250;
   --accent-hi:#d8ff6a;
   --accent-lo:#a9d132;
   --accent-ink:#0e0a13;
   --accent-wash:rgba(200, 242, 80, 0.12);
   --danger:#ff8fb1;
   --danger-wash:rgba(255, 143, 177, 0.1);
   --ok:#c8f250;


   --wese-9dd:"Cormorant Garamond", "Cormorant", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
   --wese-423:"Golos Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
   --wese-593:"JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace;


   --fs-h1:clamp(2.1rem, 1.2rem + 4.6vw, 5.6rem);
   --fs-h2:clamp(1.85rem, 1.25rem + 2.6vw, 3.6rem);
   --fs-h3:clamp(1.4rem, 1.1rem + 1.2vw, 2.1rem);
   --fs-h4:clamp(1.15rem, 1.02rem + 0.5vw, 1.4rem);
   --fs-definition:clamp(1.45rem, 1.05rem + 1.9vw, 2.75rem);
   --fs-lede:clamp(1.08rem, 1rem + 0.4vw, 1.3rem);
   --fs-body:clamp(1rem, 0.96rem + 0.18vw, 1.075rem);
   --fs-small:0.9rem;
   --fs-meta:0.78rem;
   --fs-micro:0.7rem;


   --lh-tight:1.02;
   --lh-head:1.1;
   --lh-body:1.62;
   --track-display:-0.012em;
   --track-meta:0.08em;
   --track-caps:0.14em;


   --sp-1:0.25rem;
   --sp-2:0.375rem;
   --sp-3:0.625rem;
   --sp-4:1rem;
   --sp-5:1.625rem;
   --sp-6:2.625rem;
   --sp-7:4.25rem;
   --sp-8:6.875rem;


   --gutter:clamp(20px, 4vw, 56px);
   --section:clamp(72px, 11vh, 140px);
   --shell:1180px;
   --measure:62ch;
   --measure-narrow:46ch;
   --sidebar-w:clamp(232px, 19vw, 300px);
   --mobile-bar-h:64px;


   --radius:2px;
   --radius-panel:4px;
   --hair:1px solid var(--line);
   --hair-mist:1px solid var(--line-soft);


   --shadow-soft:0 1px 0 rgba(255, 255, 255, 0.03) inset, 0 18px 40px -24px rgba(0, 0, 0, 0.7);
   --shadow-doc:0 2px 0 rgba(255, 255, 255, 0.025) inset, 0 40px 90px -40px rgba(0, 0, 0, 0.85), 0 12px 28px -18px rgba(0, 0, 0, 0.6);
   --shadow-lift:0 10px 24px -14px rgba(0, 0, 0, 0.8);
   --focus-ring:0 0 0 2px var(--ground), 0 0 0 4px var(--accent);


   --dur-fast:140ms;
   --dur:180ms;
   --dur-slow:420ms;
   --dur-drawer:360ms;
   --dur-line:900ms;
   --dur-wipe:1100ms;
   --stagger-line:80ms;
   --ease-out:cubic-bezier(0.22, 1, 0.36, 1);
   --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);
   --ease-power3:cubic-bezier(0.215, 0.61, 0.355, 1);
   --ease-press:cubic-bezier(0.3, 0, 0.5, 1);


   --z-base:1;
   --z-sidebar:40;
   --z-scrim:45;
   --z-drawer:50;
   --z-chat:60;
   --z-consent:70;
   --z-skip:100;


   color-scheme:dark;
}


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


html {
   -webkit-text-size-adjust:100%;
   text-size-adjust:100%;
   scroll-behavior:smooth;
   scroll-padding-top:calc(var(--mobile-bar-h) + 16px);
   background:var(--ground);
}


@media (min-width: 960px) {
   html { scroll-padding-top:24px; }
}


body {
   margin:0;
   min-height:100vh;
   min-height:100svh;
   font-family:var(--wese-423);
   font-size:var(--fs-body);
   line-height:var(--lh-body);
   font-weight:400;
   color:var(--paper);
   background:
      radial-gradient(120% 80% at 70% 0%, rgba(46, 34, 66, 0.35) 0%, rgba(14, 10, 19, 0) 60%),
      radial-gradient(140% 120% at 50% 120%, rgba(8, 6, 11, 0.9) 0%, rgba(14, 10, 19, 0) 70%),
      var(--ground);
   background-attachment:fixed;
   -webkit-font-smoothing:antialiased;
   -moz-osx-font-smoothing:grayscale;
   text-rendering:optimizeLegibility;
   font-feature-settings:"kern" 1, "liga" 1;
   overflow-x:hidden;
}


body.is-locked { overflow:hidden; }


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


img {
   height:auto;
   font-style:italic;
   color:var(--muted);
}


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


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


button:disabled { cursor:not-allowed; }


a {
   color:inherit;
   text-decoration-thickness:1px;
   text-underline-offset:0.22em;
}


p,
h1,
h2,
h3,
h4,
h5,
h6,
figure,
blockquote,
dl,
dd { margin:0; }


ul[role="list"],
ol[role="list"] {
   list-style:none;
   margin:0;
   padding:0;
}


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


hr {
   border:0;
   border-top:var(--hair);
   margin:var(--sp-6) 0;
}


[hidden] { display:none !important; }


::selection {
   background:var(--accent);
   color:var(--accent-ink);
}


:focus { outline:none; }


:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:3px;
}


h1,
h2,
h3,
h4,
.h1,
.h2,
.h3,
.h4 {
   font-family:var(--wese-9dd);
   font-weight:500;
   color:var(--paper);
   letter-spacing:var(--track-display);
   line-height:var(--lh-head);
   overflow-wrap:break-word;
   hyphens:auto;
   text-wrap:balance;
   font-feature-settings:"kern" 1, "liga" 1, "dlig" 0, "onum" 1;
}


h1,
.h1 {
   font-size:var(--fs-h1);
   line-height:var(--lh-tight);
   letter-spacing:-0.018em;
   hanging-punctuation:first last;
}


h2,
.h2 {
   font-size:var(--fs-h2);
   line-height:1.05;
}


h3,
.h3 {
   font-size:var(--fs-h3);
   font-weight:600;
}


h4,
.h4 {
   font-size:var(--fs-h4);
   font-weight:600;
   letter-spacing:0;
}


h1 em,
h2 em,
h3 em,
.h1 em,
.h2 em {
   font-style:italic;
   font-weight:500;
   color:var(--paper-dim);
}


p {
   text-wrap:pretty;
   overflow-wrap:break-word;
}


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


small { font-size:var(--fs-small); }


code,
kbd,
samp,
.mono {
   font-family:var(--wese-593);
   font-size:0.88em;
   letter-spacing:0;
}


.eyebrow {
   display:inline-flex;
   align-items:center;
   gap:0.7em;
   font-family:var(--wese-593);
   font-size:var(--fs-meta);
   font-weight:500;
   letter-spacing:var(--track-caps);
   text-transform:uppercase;
   color:var(--muted);
}


.eyebrow::before {
   content:"";
   width:1.6em;
   height:1px;
   background:var(--mist);

   flex:none;
}


.meta {
   font-family:var(--wese-593);
   font-size:var(--fs-meta);
   letter-spacing:var(--track-meta);
   color:var(--muted);
   line-height:1.5;
}


.meta--accent { color:var(--accent); }


.lede {
   font-size:var(--fs-lede);
   line-height:1.55;
   color:var(--paper-dim);
   max-width:var(--measure);
}


.definition {
   font-family:var(--wese-9dd);
   font-size:var(--fs-definition);
   font-weight:500;
   line-height:1.18;
   letter-spacing:-0.006em;
   color:var(--paper);
   max-width:28ch;
   hanging-punctuation:first last;
   text-wrap:balance;

}


.muted { color:var(--muted); }


.accent { color:var(--accent); }


.num {
   font-family:var(--wese-593);
   font-variant-numeric:tabular-nums;
   letter-spacing:0;
}


.prose {
   max-width:var(--measure);
   color:var(--paper-dim);
}


.prose > * + * { margin-top:1.05em; }


.prose h2 {
   font-size:clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem);
   margin-top:2.2em;
   color:var(--paper);
}


.prose h3 {
   font-size:clamp(1.3rem, 1.1rem + 0.8vw, 1.75rem);
   margin-top:1.8em;
   color:var(--paper);
}


.prose h2 + *,
.prose h3 + * { margin-top:0.6em; }


.prose a {
   color:var(--paper);
   text-decoration-color:var(--mist);
   transition:color var(--dur) var(--ease-out), text-decoration-color var(--dur) var(--ease-out);
}


.prose a:hover {
   color:var(--accent);
   text-decoration-color:var(--accent);
}


.prose ul,
.prose ol { padding-left:1.3em; }


.prose li + li { margin-top:0.45em; }


.prose ul li::marker { color:var(--mist); }


.prose ol li::marker {
   font-family:var(--wese-593);
   font-size:0.85em;
   color:var(--mist);
}


.prose blockquote {
   position:relative;
   padding:var(--sp-2) 0 var(--sp-2) var(--sp-5);
   border-left:1px solid var(--mist);
   font-family:var(--wese-9dd);
   font-style:italic;
   font-size:1.32em;
   line-height:1.38;
   color:var(--paper);
   hanging-punctuation:first;
}


.prose blockquote cite,
.prose figcaption {
   display:block;
   margin-top:var(--sp-3);

   font-family:var(--wese-593);
   font-style:normal;
   font-size:var(--fs-meta);
   letter-spacing:var(--track-meta);
   color:var(--muted);
}


.prose strong { color:var(--paper); }


.prose code {
   padding:0.08em 0.36em;
   background:var(--plum);
   border:var(--hair);
   border-radius:var(--radius);
}


.prose dl {
   display:grid;
   gap:var(--sp-3) var(--sp-5);
}


.prose dt {
   font-family:var(--wese-593);
   font-size:var(--fs-meta);
   letter-spacing:var(--track-meta);
   color:var(--muted);
   text-transform:uppercase;
}


.prose dd { margin:0 0 var(--sp-3); }


.shell {
   width:100%;
   max-width:calc(var(--shell) + var(--gutter) * 2);
   margin-inline:auto;
   padding-inline:var(--gutter);
}


.shell--narrow { max-width:calc(760px + var(--gutter) * 2); }


.section {
   padding-block:var(--section);
   position:relative;
}


.section--plum { background:var(--plum); }


.section--deep { background:var(--ground-deep); }


.section + .section { border-top:var(--hair-mist); }


.panel {
   position:relative;
   min-height:100vh;
   min-height:100svh;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding-block:var(--section);
}


.stack {
   display:flex;
   flex-direction:column;
   gap:var(--stack-gap, var(--sp-4));
}


.stack > * { min-width:0; }


.stack--tight { --stack-gap:var(--sp-3); }


.stack--loose { --stack-gap:var(--sp-6); }


.cluster {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   gap:var(--cluster-gap, var(--sp-3) var(--sp-4));
}


.cluster > * { min-width:0; }


.grid {
   display:grid;
   gap:var(--grid-gap, var(--sp-5));
   grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--grid-min, 260px)), 1fr));
}


.grid > * { min-width:0; }


.split {
   display:grid;
   gap:var(--split-gap, clamp(28px, 4vw, 72px));
   grid-template-columns:minmax(0, 1fr);
   align-items:var(--split-align, start);
}


.split > * { min-width:0; }


@media (min-width: 900px) {
   .split { grid-template-columns:minmax(0, 1.1fr) minmax(0, 0.9fr); }
   .split--reverse { grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr); }
   .split--even { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
}


.measure { max-width:var(--measure); }


.measure-narrow { max-width:var(--measure-narrow); }


.rule {
   height:1px;
   border:0;
   margin:0;
   background:var(--line);
}


.rule--mist {
   background:var(--mist);
   opacity:0.6;
}


.frame {
   position:relative;
   margin:0;
   overflow:hidden;
   border-radius:var(--radius);
   background:var(--plum);
   isolation:isolate;
}


.frame img {
   width:100%;
   height:100%;
   object-fit:cover;
}


.frame::after {
   content:"";
   position:absolute;
   inset:0;
   pointer-events:none;
   box-shadow:inset 0 0 0 1px rgba(236, 230, 241, 0.06), inset 0 -80px 120px -60px rgba(8, 6, 11, 0.7);
   border-radius:inherit;
}


.frame--portrait { aspect-ratio:2 / 3; }


.frame--landscape { aspect-ratio:3 / 2; }


.frame--wide { aspect-ratio:16 / 9; }


.frame__caption,
figcaption.caption {
   margin-top:var(--sp-3);
   font-family:var(--wese-593);
   font-size:var(--fs-micro);
   letter-spacing:var(--track-meta);
   color:var(--muted);
   line-height:1.5;
}


[data-lines] .line {
   display:block;
   overflow:hidden;
   padding-bottom:0.06em;
   margin-bottom:-0.06em;
}


[data-lines] .line__inner { display:block; }


[data-wipe] { clip-path:inset(0 0 0 0); }


.visually-hidden,
.sr-only {
   position:absolute !important;
   width:1px !important;
   height:1px !important;
   padding:0 !important;
   margin:-1px !important;
   overflow:hidden !important;
   clip:rect(0 0 0 0) !important;
   white-space:nowrap !important;
   border:0 !important;
}


.hp {
   position:absolute !important;
   left:-10000px !important;
   top:auto !important;
   width:1px !important;
   height:1px !important;
   overflow:hidden !important;
   opacity:0 !important;
   pointer-events:none !important;
}


.tusa2a4 {
   width:100%;
   max-width:100%;
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
   overscroll-behavior-x:contain;
}


@media (prefers-reduced-motion: reduce) {
   html { scroll-behavior:auto; }
   *,
   *::before,
   *::after {
      animation-duration:0.01ms !important;
      animation-iteration-count:1 !important;
      transition-duration:0.01ms !important;
      transition-delay:0ms !important;
      scroll-behavior:auto !important;
   }
   [data-wipe] { clip-path:none !important; }
   [data-lines] .line__inner,
   [data-stagger] > * {
      transform:none !important;
      opacity:1 !important;
   }
}


@media print {
   body {
      background:#fff;
      color:#111;
   }
   .sidebar,
   .mobile-bar,
   .consent,
   .chat,
   .nav-scrim,
   .site-footer { display:none !important; }
   .content { margin:0 !important; }
   h1,
   h2,
   h3,
   h4,
   .prose,
   .prose a { color:#111; }
}
