.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--petrol: #56c1d6;--petrol-deep: #0e4f5e;--sienna: #e8632c;--ember-btn: #c24a16;--paper: #080d10;--paper-2: #0c1316;--line: rgba(236, 239, 234, .09);--line-strong: rgba(236, 239, 234, .16);--muted: #9ba8a5;--ink: #ecefea;--surface: rgba(255, 255, 255, .035);--card: #101a1e;--card-2: #16242a;--card-line: rgba(86, 193, 214, .16);--card-ink: #ecefea;--card-muted: #9ba8a5;--ok-dark: #5cc08a;--warn-dark: #d9a859;--accent-dark: #ff8a4d;--ok: #5cc08a;--warn: #d9a859;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9375rem;--text-2xl: 2.4375rem;--text-3xl: 3.0625rem;--measure: 38rem;--wide: 76rem;--radius: 10px;--radius-sm: 5px;--card-shadow: 0 1px 0 rgba(255, 255, 255, .07) inset, 0 0 0 1px rgba(86, 193, 214, .14), 0 0 40px -12px rgba(86, 193, 214, .18), 0 30px 70px -30px rgba(0, 0, 0, .9);--glow-teal: rgba(86, 193, 214, .55);--glow-ember: rgba(232, 99, 44, .5);--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;position:relative}body:before{content:"";position:fixed;inset:0;background-image:var(--grain);opacity:.05;pointer-events:none;z-index:4}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.08;margin:0 0 .5em;text-wrap:balance;letter-spacing:-.015em}h1{font-size:clamp(2.8rem,6.5vw,5.25rem)}h2{font-size:clamp(1.9375rem,4vw,3.0625rem)}p{margin:0 0 1em}a{color:var(--petrol);text-decoration-thickness:1px;text-underline-offset:3px}code,.mono{font-family:var(--font-mono);font-size:.9em}:focus-visible{outline:2px solid var(--petrol);outline-offset:2px;border-radius:2px}::selection{background:var(--petrol);color:#08222a}.wrap{max-width:var(--wide);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}.section{padding-block:clamp(4rem,9vw,7.5rem);position:relative}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--petrol)}.measure{max-width:var(--measure)}.sec-head{position:relative}.sec-head:before{content:"§ " attr(data-index);display:block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.18em;color:var(--petrol);margin-bottom:1.1rem}.sec-head:after{content:"";display:block;position:absolute;top:.45em;left:4.5ch;right:0;height:1px;background:var(--line)}@media(min-width:1240px){.sec-head:before{position:absolute;left:-5.5rem;top:.55em;margin:0}.sec-head:after{display:none}}.btn{display:inline-block;font-family:var(--font-text);font-size:var(--text-base);font-weight:600;line-height:1;padding:1.05rem 1.65rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;min-height:44px;transition:background .15s ease,transform .15s ease}.btn-primary{background:linear-gradient(180deg,#d8571f,var(--ember-btn));color:#fff;position:relative;overflow:hidden;box-shadow:0 1px #ffffff4d inset,0 0 24px -4px var(--glow-ember),0 12px 30px -12px var(--glow-ember)}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translate(-120%);transition:transform .6s ease}.btn-primary:hover:after{transform:translate(120%)}.btn-primary:hover{background:linear-gradient(180deg,#e8632c,#c24a16)}@media(prefers-reduced-motion:reduce){.btn-primary:after{display:none}}.btn-primary:active{transform:translateY(1px)}.placeholder{background:#ffffff08;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:.1em .4em;color:var(--muted)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--card);padding:.75rem 1rem;z-index:100}.skip-link:focus{left:.5rem;top:.5rem}html.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1);transition-delay:var(--rv-d, 0s)}html.js .rv.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none;transition:none}}.page-hero{padding-block:clamp(3.5rem,7vw,5.5rem) clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.page-hero h1{font-size:clamp(2.4375rem,5vw,4rem);max-width:18ch}.page-hero .lede{font-size:var(--text-md);color:var(--muted);max-width:36rem;line-height:1.65}.viz-note{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.05em;color:var(--muted)}.grid-bg{position:relative}.grid-bg:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(86,193,214,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(86,193,214,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(120% 90% at 50% 10%,#000 30%,transparent 75%);pointer-events:none}.grad-ink{background:linear-gradient(120deg,#ecefea 30%,#56c1d6 80%);-webkit-background-clip:text;background-clip:text;color:transparent}.grad-ember{background:linear-gradient(120deg,#ecefea 25%,#ff8a4d 75%);-webkit-background-clip:text;background-clip:text;color:transparent}.glow{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;overflow:hidden}.glow:before{content:"";position:absolute;inset:0;background:radial-gradient(340px circle at var(--mx, 50%) var(--my, -20%),rgba(86,193,214,.12),transparent 65%);opacity:0;transition:opacity .3s ease;pointer-events:none}.glow:hover{border-color:#56c1d659;transform:translateY(-2px);box-shadow:0 18px 44px -18px #000c,0 0 30px -10px #56c1d640}.glow:hover:before{opacity:1}@media(prefers-reduced-motion:reduce){.glow:hover{transform:none}}.tilt{transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .18s ease-out;will-change:transform}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.drift{animation:drift-up linear both;animation-timeline:view();animation-range:entry 0% exit 100%}@keyframes drift-up{0%{transform:translateY(34px)}to{transform:translateY(-34px)}}}}.seam{height:1px;border:0;margin:0;background:linear-gradient(90deg,transparent,rgba(86,193,214,.4),transparent)}input,textarea,select{color-scheme:dark}html.js .glow.rv.in:hover{transform:translateY(-2px)}.progress{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#56c1d6,#e8632c);transform-origin:0 50%;transform:scaleX(0);z-index:90;pointer-events:none}@supports (animation-timeline: scroll()){@media(prefers-reduced-motion:no-preference){.progress{animation:progress-grow linear;animation-timeline:scroll()}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}}::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
