:root{color-scheme:light;--bg: #f7f6fc;--bg-raised: #ffffff;--bg-sunken: #f0eef9;--line: #e6e3f3;--line-bright: #d4cfec;--text: #43475f;--text-strong: #1f2238;--text-dim: #757a96;--purple: #5b48c2;--purple-light: #9a89ea;--purple-soft: rgba(124, 100, 218, 0.14);--blue: #1f6aa5;--blue-light: #80bbec;--blue-soft: rgba(92, 158, 222, 0.16);--gradient: linear-gradient(90deg, #80bbec, #9a89ea);--shadow-sm: 0 1px 2px rgba(60, 50, 120, 0.06), 0 2px 8px rgba(60, 50, 120, 0.05);--shadow-lg: 0 2px 6px rgba(60, 50, 120, 0.06), 0 24px 60px rgba(60, 50, 120, 0.12);--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;--fs-body: 1.0625rem;--fs-small: 0.8rem;--measure: 44rem;--gutter: 1rem;--nav-h: 3.75rem;--radius: 12px}@media (min-width: 40em){:root{--gutter: 2rem}}*,*::before,*::after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1rem)}body{display:flex;flex-direction:column;margin:0;min-height:100vh;background-color:var(--bg);background-image:radial-gradient(55rem 38rem at 88% -8%, rgba(154,137,234,0.28), transparent 62%),radial-gradient(48rem 36rem at -8% 18%, rgba(128,187,236,0.26), transparent 62%);background-attachment:fixed;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(108,90,208,0.16) 1px, transparent 1.5px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse at 50% 0%, #000 25%, transparent 75%);mask-image:radial-gradient(ellipse at 50% 0%, #000 25%, transparent 75%)}::selection{background:rgba(154,137,234,0.45);color:var(--text-strong)}body>main{flex:1 0 auto}img,svg,video,canvas{display:block;max-width:100%}a{color:var(--purple);text-decoration:none;transition:color .2s}a:hover{color:var(--blue)}:focus-visible{outline:2px solid var(--purple-light);outline-offset:3px;border-radius:4px}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:200;padding:.5rem .75rem;border-radius:6px;background:var(--purple);color:#fff}.skip-link:focus{top:1rem;color:#fff}.visually-hidden{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important}}.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;border-bottom:1px solid rgba(212,207,236,0.6);background:rgba(247,246,252,0.78);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%)}.site-nav__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1.5rem;max-width:72rem;min-height:var(--nav-h);margin:0 auto;padding:0.5rem var(--gutter)}.site-logo{display:inline-flex;align-items:center;gap:.6rem;color:var(--text-strong);font-size:.95rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.site-logo:hover{color:var(--text-strong)}.site-logo__mark{width:22px;height:22px;flex:none}.site-links{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style:none;font-size:.9rem}.site-links a{position:relative;color:var(--text-dim);font-weight:500}.site-links a:hover{color:var(--purple)}.site-links a[aria-current="page"]{color:var(--text-strong)}.site-links a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-.3rem;height:2px;border-radius:2px;background:var(--gradient)}@media (max-width: 40em){:root{--nav-h: 5.25rem}.site-nav__inner{flex-direction:column;align-items:flex-start;justify-content:center}}.site-main{padding:calc(var(--nav-h) + 3rem) var(--gutter) 5rem}.site-main--hero{padding-top:3rem}.shell{max-width:var(--measure);margin:0 auto}.page-header{margin-bottom:2.5rem}.page-title{margin:0;color:var(--text-strong);font-size:clamp(2rem, 6vw, 2.9rem);font-weight:700;line-height:1.12;letter-spacing:-.025em}.page-title::after{content:"";display:block;width:3.5rem;height:3px;margin-top:1rem;border-radius:3px;background:var(--gradient)}.page-meta{display:flex;flex-wrap:wrap;gap:0 .6rem;margin:.9rem 0 0;color:var(--text-dim);font-size:.9rem}.page-meta span+span::before{content:"\00B7";margin-right:.6rem;color:var(--line-bright)}.site-footer{border-top:1px solid var(--line);background:rgba(255,255,255,0.55);font-size:.85rem}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;max-width:72rem;margin:0 auto;padding:1.5rem var(--gutter);color:var(--text-dim)}.site-footer__motto{display:inline-flex;align-items:center;gap:.6rem;margin:0;color:var(--text);font-style:italic}.site-footer__motto svg{width:20px;height:20px;flex:none}.site-footer__links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.site-footer__links a{color:var(--text-dim)}.site-footer__links a:hover{color:var(--purple)}.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;padding:calc(var(--nav-h) + 2.5rem) var(--gutter) 5rem;overflow:hidden;isolation:isolate}.hero__canvas{position:absolute;inset:0;z-index:-2;width:100%;height:100%}.hero--page{min-height:80vh;min-height:80svh}.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:-1;height:28%;background:linear-gradient(to bottom, rgba(247,246,252,0), var(--bg));pointer-events:none}.intro{position:relative;width:100%;max-width:50rem;text-align:center}.intro::before{content:"";position:absolute;z-index:-1;top:-5rem;bottom:-5rem;left:-8rem;right:-8rem;background:radial-gradient(closest-side, rgba(247,246,252,0.96), rgba(247,246,252,0.82) 55%, rgba(247,246,252,0));pointer-events:none}.intro__name{margin:0;color:var(--text-strong);font-size:clamp(2.4rem, 8vw, 4.6rem);font-weight:650;line-height:1.05;letter-spacing:-.035em}@supports (-webkit-background-clip: text) or (background-clip: text){.intro__name{background:linear-gradient(100deg, #1f2238 25%, #4f3db0 70%, #1f6aa5);-webkit-background-clip:text;background-clip:text;color:transparent}}.intro__path{display:flex;justify-content:center;margin:2.75rem auto 0;padding:0;list-style:none;color:var(--text);font-size:.95rem;line-height:1.45}.intro__path li{position:relative;flex:1 1 0;max-width:15rem;padding:1.75rem .75rem 0}.intro__path li::before{content:"";position:absolute;z-index:1;top:0;left:50%;width:14px;height:14px;margin-left:-7px;border:2px solid var(--purple-light);border-radius:50%;background:var(--bg-raised)}.intro__path li:first-child::before{border-color:transparent;background:linear-gradient(135deg, #80bbec, #7c64da);box-shadow:0 0 0 5px rgba(154,137,234,0.25)}.intro__path li:first-child{color:var(--text-strong);font-weight:600}.intro__path li+li::after{content:"";position:absolute;top:6px;right:50%;width:100%;height:2px;background:var(--gradient);opacity:.8}.intro__vertices{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem .6rem;max-width:42rem;margin:2.5rem auto 0;padding:0;list-style:none}.intro__vertices li{display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .9rem .32rem .55rem;border:1px solid rgba(212,207,236,0.9);border-radius:999px;background:rgba(255,255,255,0.72);color:var(--text);font-size:.85rem;line-height:1.4}.intro__vertices li::before{content:"";width:9px;height:9px;flex:none;border-radius:50%;background:var(--blue-light)}.intro__vertices li:nth-child(3n+2)::before{background:var(--purple-light)}.intro__vertices li:nth-child(3n)::before{background:#eaa9cb}.intro__lines{display:inline-block;margin:2rem auto 0;padding:0;list-style:none;color:var(--text);font-size:1rem;text-align:left}.intro__lines li{position:relative;padding-left:1.4rem}.intro__lines li+li{margin-top:.4rem}.intro__lines li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--purple-light)}.intro__lines li+li::after{content:"";position:absolute;left:3px;bottom:calc(100% - .55em);height:calc(.4rem + .9em);width:2px;background:rgba(154,137,234,0.45)}@media (max-width: 40em){.intro__path{flex-direction:column;align-items:flex-start;max-width:22rem;text-align:left}.intro__path li{max-width:none;padding:0 0 1.1rem 1.9rem}.intro__path li::before{top:.2em;left:0;margin-left:0}.intro__path li+li::after{content:none}.intro__path li:not(:last-child)::after{content:"";position:absolute;left:6px;top:calc(.2em + 14px);bottom:-.2em;width:2px;background:rgba(154,137,234,0.6)}.intro__path li:last-child{padding-bottom:0}.intro::before{left:-2rem;right:-2rem}}.hero__caption{position:absolute;left:var(--gutter);bottom:1.4rem;margin:0;max-width:24rem;color:var(--text-dim);font-size:.75rem;font-style:italic;line-height:1.55}.hero__caption code{padding:0;background:none;color:inherit;font-family:inherit;font-size:inherit}.hero__hint{display:block;margin-top:.2rem;font-style:normal;opacity:.85}.hero__cue{position:absolute;right:var(--gutter);bottom:1.25rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--line-bright);border-radius:50%;background:rgba(255,255,255,0.6);color:var(--purple)}.hero__cue span{display:inline-block;animation:bob 2.4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(3px)}}@media (max-width: 40em){.hero__caption{position:static;align-self:stretch;max-width:none;margin-top:2.5rem}}.prose{overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:0 0 1.25rem}.prose strong{color:var(--text-strong);font-weight:600}.prose em{color:var(--text-strong)}.prose a{background-image:linear-gradient(rgba(154,137,234,0.55), rgba(154,137,234,0.55));background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;transition:background-size .25s ease, color .2s}.prose a:hover{background-size:100% 100%;color:var(--text-strong)}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--text-strong);font-weight:650;line-height:1.3;letter-spacing:-.015em}.prose h1{margin:4rem 0 1.5rem;font-size:1.9rem;letter-spacing:-.025em}.prose h1::after{content:"";display:block;width:3rem;height:3px;margin-top:.7rem;border-radius:3px;background:var(--gradient)}.prose h2{position:relative;margin:3.25rem 0 1.1rem;padding-left:1.35rem;font-size:1.4rem}.prose h2::before{content:"";position:absolute;left:0;top:.48em;width:.6rem;height:.6rem;border:2px solid var(--purple-light);border-radius:50%;background:var(--bg-raised)}.prose h3{margin:2.25rem 0 .75rem;color:var(--purple);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.prose h4{margin:1.75rem 0 .5rem;font-size:1rem;color:var(--text)}.prose ul,.prose ol{padding-left:0;list-style:none}.prose ul ul,.prose ol ol,.prose ul ol,.prose ol ul{margin:.35rem 0 .35rem 1.1rem}.prose li{position:relative;padding-left:1.45rem}.prose li+li{margin-top:.35rem}.prose ul>li::before{content:"";position:absolute;left:.3rem;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--purple-light)}.prose ul ul>li::before{background:transparent;border:1.5px solid var(--blue-light)}.prose ol{counter-reset:item}.prose ol>li{counter-increment:item;padding-left:2.4rem}.prose ol>li::before{content:counter(item,decimal-leading-zero);position:absolute;left:0;top:.3em;color:var(--blue);font-size:.8em;font-variant-numeric:tabular-nums;opacity:.75}.prose hr{height:2px;margin:3rem 0;border:0;border-radius:2px;background:var(--gradient);opacity:.6}.prose blockquote{padding:.9rem 1.2rem;border-left:3px solid var(--purple-light);border-radius:0 var(--radius) var(--radius) 0;background:var(--purple-soft);color:var(--text-strong)}.prose blockquote>:last-child{margin-bottom:0}.prose img{height:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm)}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.92rem}.prose th,.prose td{padding:.55rem .9rem;border-bottom:1px solid var(--line);text-align:left}.prose th{color:var(--text-strong);font-weight:600;border-bottom-color:var(--line-bright)}.prose--home h3{position:relative;margin:0;padding:1.9rem 0 .45rem 1.75rem;border-left:2px solid var(--line);color:var(--blue);text-transform:none;letter-spacing:.01em;font-size:.85rem}.prose--home h3::before{content:"";position:absolute;left:-7px;top:2.15rem;width:12px;height:12px;border-radius:50%;background:var(--bg-raised);border:2px solid var(--purple-light)}.prose--home h3+ul{margin:0;padding:0 0 .25rem 1.75rem;border-left:2px solid var(--line)}.prose--home h3+ul>li{padding-left:0}.prose--home h3+ul>li::before{content:none}.prose--home h3+ul>li:first-child{color:var(--text-strong);font-weight:600}.prose--home h3+ul>li>ul{margin-left:0;color:var(--text);font-weight:400}.prose--home h3+ul>li+li{margin-top:.75rem}.reveal{opacity:0;transform:translateY(16px);transition:opacity .9s ease, transform .9s ease}.reveal.is-visible{opacity:1;transform:none}code,kbd,pre{font-family:var(--font-mono)}:not(pre)>code{padding:.12em .4em;border-radius:5px;background:var(--purple-soft);color:#4e3fa6;font-size:.86em}pre,.highlight{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised)}pre{padding:1rem 1.15rem;font-size:.84rem;line-height:1.65}.highlight pre{margin:0;border:0;background:none}.highlight .c,.highlight .c1,.highlight .cm,.highlight .cs,.highlight .cp,.highlight .ch,.highlight .cpf{color:#9196b0;font-style:italic}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .ow{color:#5b48c2}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .ss{color:#2f8a6e}.highlight .m,.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo,.highlight .il{color:#b0567f}.highlight .nf,.highlight .fm,.highlight .nc,.highlight .nn{color:#1f6aa5}.highlight .nb,.highlight .bp,.highlight .nt{color:#1f6aa5}.highlight .na,.highlight .nv,.highlight .vi,.highlight .vg,.highlight .vc{color:var(--text-strong)}.highlight .o{color:var(--text-dim)}.highlight .err{color:#b0567f;background:none}.highlight .gd{color:#b0567f}.highlight .gi{color:#2f8a6e}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.3rem;border:1px solid transparent;border-radius:999px;background:linear-gradient(100deg, #5c9ede, #7c64da);color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(108,90,208,0.22);transition:transform .2s ease, box-shadow .2s ease, filter .2s ease}.btn:hover,.btn:focus-visible{color:#fff;filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 8px 22px rgba(108,90,208,0.28)}.btn--ghost{border-color:var(--line-bright);background:var(--bg-raised);color:var(--text);box-shadow:var(--shadow-sm)}.btn--ghost:hover,.btn--ghost:focus-visible{color:var(--purple)}.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.form{display:grid;gap:1.25rem}.field{display:grid;gap:.4rem}.field__label{color:var(--text);font-size:.85rem;font-weight:500}.field__input{width:100%;padding:.75rem .95rem;border:1px solid var(--line-bright);border-radius:10px;background:var(--bg-raised);color:var(--text-strong);font:inherit;caret-color:var(--purple);transition:border-color .2s, box-shadow .2s}.field__input::placeholder{color:var(--text-dim);opacity:.7}.field__input:focus{outline:none;border-color:var(--purple-light);box-shadow:0 0 0 4px var(--purple-soft)}textarea.field__input{resize:vertical;min-height:9rem}.form .btn{justify-self:start}.post-list{margin:0;padding:0;list-style:none}.post-row+.post-row{margin-top:.75rem}.post-row__link{display:grid;gap:.25rem 1.5rem;padding:1.15rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,0.6);color:var(--text);transition:border-color .2s, box-shadow .2s, transform .2s}.post-row__link:hover{border-color:var(--line-bright);box-shadow:var(--shadow-sm);color:var(--text);transform:translateY(-1px)}@media (min-width: 40em){.post-row__link{grid-template-columns:7.5rem 1fr}}.post-row__date{color:var(--text-dim);font-size:.85rem;font-variant-numeric:tabular-nums;padding-top:.2rem}.post-row__title{margin:0;color:var(--text-strong);font-size:1.08rem;font-weight:600}.post-row__link:hover .post-row__title{color:var(--purple)}.post-row__summary{margin:.25rem 0 0;color:var(--text-dim);font-size:.9rem}.empty-state{color:var(--text-dim)}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem;font-size:.9rem}.pagination__meta{color:var(--text-dim)}.pagination__item{color:var(--purple)}.pagination__item--disabled{color:var(--line-bright)}.notfound{text-align:left}.notfound__code{margin:0;font-size:clamp(4rem, 20vw, 9rem);font-weight:700;line-height:1;letter-spacing:-.05em;color:var(--purple-light)}@supports (-webkit-background-clip: text) or (background-clip: text){.notfound__code{background:linear-gradient(100deg, #80bbec, #7c64da);-webkit-background-clip:text;background-clip:text;color:transparent}}.notfound__lead{margin:1rem 0 .25rem;color:var(--text-strong);font-size:1.35rem;font-weight:600}.notfound__msg{color:var(--text-dim)}.notfound__path{color:var(--purple);font-weight:500;overflow-wrap:anywhere}.related__title{margin:3.5rem 0 1rem;color:var(--text-strong);font-size:1.1rem;font-weight:600}.has-graphs{position:relative;isolation:isolate}.gbg-layer{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;pointer-events:none;-webkit-clip-path:inset(-100vh -100vw -2.5rem -100vw);clip-path:inset(-100vh -100vw -2.5rem -100vw)}.gbg{position:absolute;top:0;right:-1.5rem;width:18rem;margin:0;opacity:.3}.gbg--left{right:auto;left:-1.5rem}.gbg__svg{display:block;width:100%;height:auto;overflow:visible}.gbg__cap{display:none}.gbg .g-edge{fill:none;stroke:#c4bce6;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round}.gbg .g-hi{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.gbg .g-hi-layer{transition:opacity 1.4s ease}.gbg .g-vert{fill:#fff;stroke:#a99ee0;stroke-width:1.1;transition:fill .6s ease, stroke .6s ease}.gbg .g-ring{fill:none;stroke-width:1}.gbg .g-label{fill:var(--text-strong);font-family:var(--font-sans);font-size:7px;font-weight:600;text-anchor:middle;dominant-baseline:central}@media (min-width: 64rem){.gbg{opacity:.8}.gbg--right{right:calc((100% - 100vw) / 2 + 2rem)}.gbg--left{left:calc((100% - 100vw) / 2 + 2rem)}.gbg__cap{display:block;max-width:19rem;margin:.5rem 0 0;color:var(--text-dim);font-size:.78rem;line-height:1.5}.gbg--right .gbg__cap{margin-left:auto;text-align:right}.gbg__name{display:block;color:var(--text);font-weight:600}.gbg__name em{color:var(--purple);font-style:normal;font-weight:500}.gbg__note{display:block;margin-top:.15rem;font-style:italic}}.anchorjs-link{color:var(--line-bright) !important;background:none !important}.anchorjs-link:hover{color:var(--purple) !important}
