/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.sticky{position:sticky}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--bg:#0b0b0b;--bg-2:#141414;--card:#101010;--ink:#ececea;--ink-2:#b6b6b2;--muted:#8a8a86;--line:#262625;--dim:#ececea3d;--green:#4ade80;--sans:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--gl:max(24px, env(safe-area-inset-left,0px));--gr:max(24px, env(safe-area-inset-right,0px));--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.inv{--bg:#e5e4e1;--bg-2:#dcdbd8;--card:#efeeec;--ink:#0d0d0d;--ink-2:#3f3f3d;--muted:#62625e;--line:#c8c7c3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--ink-2);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;font-kerning:normal;text-rendering:optimizelegibility;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;margin:0;transition:background .3s,color .3s}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}button{font:inherit;color:inherit}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}.wrap{max-width:1160px;padding-inline:var(--gl) var(--gr);margin:0 auto}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}canvas{width:100%;display:block}.js .rv{opacity:0;transition:opacity .7s ease, transform .8s var(--ease);transition-delay:calc(var(--n,0) * 70ms);transform:translateY(18px)}.js .rv.in{opacity:1;transform:none}.top{top:env(safe-area-inset-top,0px);z-index:30;background:var(--bg);position:sticky}@supports (color:color-mix(in lab, red, red)){.top{background:color-mix(in srgb, var(--bg) 86%, transparent)}}.top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.top .wrap{align-items:center;gap:28px;height:60px;display:flex}.brand{font:700 16px var(--sans);letter-spacing:-.01em;color:var(--ink);margin-right:auto}.top nav{gap:24px;font-size:14px;display:flex}.top nav a{color:var(--muted);transition:color .2s}.top nav a:hover,.top nav a.on{color:var(--ink)}.meter{font:400 11px/1 var(--mono);color:var(--muted);align-items:center;gap:12px;display:flex}.pm-track{width:220px;height:16px;position:relative}.pm-dots{background:radial-gradient(circle, var(--muted) 1.5px, transparent 2px) 0 50% / 14px 4px repeat-x;height:4px;margin-top:-2px;position:absolute;top:50%;left:0;right:0}.pm-track:after{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;margin-top:-4px;transition:opacity .2s;position:absolute;top:50%;right:1px}.meter.done .pm-track:after{opacity:0}.pm-man{width:16px;height:16px;transform:translateX(var(--x,0px));background:#facc15;border-radius:50%;animation:.22s linear infinite alternate paused chomp;position:absolute;top:0;left:0}.pm-man:after{content:"";background:#1c1c1e;border-radius:50%;width:2.5px;height:2.5px;position:absolute;top:3px;left:7px}.pm-ghost{opacity:0;width:18px;height:18px;transform:translateX(var(--gx,-40px));pointer-events:none;animation:.3s ease-in-out infinite alternate paused bob;position:absolute;top:-1px;left:0}.pm-ghost svg{width:100%;height:100%;display:block}.pm-ghost .body{fill:#f87171}.pm-ghost .eyes-scared{display:none}.meter.moving .pm-ghost{animation-play-state:running}.meter.back .pm-ghost .body,.meter.done .pm-ghost .body{fill:#60a5fa}.meter.back .pm-ghost .eyes-normal,.meter.done .pm-ghost .eyes-normal{display:none}.meter.back .pm-ghost .eyes-scared,.meter.done .pm-ghost .eyes-scared{display:inline}.meter.done .pm-ghost .body{animation:.5s step-end infinite ghostflash}@keyframes bob{to{margin-top:-1.5px}}@keyframes ghostflash{50%{fill:#fff}}.meter.moving .pm-man{animation-play-state:running}.meter.back .pm-man{transform:translateX(var(--x,0px)) scaleX(-1)}@keyframes chomp{0%{clip-path:polygon(50% 50%,100% 22%,100% 0,0 0,0 100%,100% 100%,100% 78%)}to{clip-path:polygon(50% 50%,100% 50%,100% 0,0 0,0 100%,100% 100%,100% 50%)}}.pm-pct{text-align:right;font-variant-numeric:tabular-nums;width:4ch}@media (width<=960px){.meter{display:none}}@media (width<=760px){.top nav{display:none}}.hero{padding-block:36px 80px}.term{background:#1c1c1e;border:1px solid #3a3a3c;border-radius:12px;overflow:hidden;box-shadow:0 34px 80px -30px #000000a6,0 0 0 1px #00000059}.tbar{background:linear-gradient(#3d3d40,#2f2f32);border-bottom:1px solid #141415;align-items:center;gap:8px;height:40px;padding:0 14px;display:flex;position:relative}.tbar i{z-index:1;border-radius:50%;width:12px;height:12px;position:relative;box-shadow:inset 0 0 0 .5px #0000004d}.tbar i.r{background:#ff5f57}.tbar i.y{background:#febc2e}.tbar i.g{background:#28c840}.tbar span{text-align:center;color:#c9c9cc;pointer-events:none;font:500 13px -apple-system,SF Pro Text,system-ui,Segoe UI,sans-serif;position:absolute;left:0;right:0}.tbody{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#3a3a3c transparent;height:clamp(370px,100svh - 390px,500px);padding:14px 20px 22px;overflow-y:auto}.tln{color:#e4e4e6;white-space:nowrap;font:400 14px/1.65 Space Mono,ui-monospace,SF Mono,Menlo,monospace;overflow:hidden}.tln.dim{color:#8e8e93}.tln .ps{color:var(--green)}.tln .pm{color:#e4e4e6}.tln.last{animation:.5s 2.7s both fade}.ttree{--tc:#5a5a5e;color:#b9b9bd;font:400 14px/1.65 Space Mono,ui-monospace,SF Mono,Menlo,monospace}.troot{color:#fff;font-weight:700}.tbranch{padding-left:30px;position:relative}.tbranch:before{content:"";border-left:1px solid var(--tc);position:absolute;top:0;bottom:0;left:6px}.tbranch:last-child:before{height:.95em;bottom:auto}.tname{color:var(--green);position:relative}.tname:before{content:"";border-top:1px solid var(--tc);width:18px;position:absolute;top:.95em;left:-24px}.tleaves{overflow-wrap:anywhere;padding-left:30px;position:relative}.tleaves:before{content:"";border-left:1px solid var(--tc);border-bottom:1px solid var(--tc);width:18px;height:.95em;position:absolute;top:0;left:6px}.ttl{--tc:#5a5a5e;color:#b9b9bd;font:400 14px/1.6 Space Mono,ui-monospace,SF Mono,Menlo,monospace}.tstep{grid-template-columns:11.5em 22px minmax(0,1fr);column-gap:14px;padding-bottom:14px;display:grid;position:relative}.tstep:last-child{padding-bottom:0}.tstep:before{content:"";border-left:1px solid var(--tc);position:absolute;top:.8em;bottom:-.8em;left:calc(11.5em + 24px)}.tstep:last-child:before{display:none}.tdate{color:#8e8e93;white-space:nowrap}.tdot{z-index:1;border:1.5px solid var(--green);background:#1c1c1e;border-radius:50%;width:11px;height:11px;margin:.45em 0 0 5px;position:relative}.tstep.now .tdot{background:var(--green);box-shadow:0 0 0 3px #4ade802e}.ttitle{color:#fff;font-weight:700}.tbrief{color:#b9b9bd}@media (width<=760px){.tstep{grid-template-columns:22px minmax(0,1fr);column-gap:12px}.tstep:before{top:1.3em;bottom:-.4em;left:10px}.tdate{grid-column:2}.tdot{grid-area:1/1}.tinfo{grid-column:2}}.tproj{color:#b9b9bd;font:400 14px/1.6 Space Mono,ui-monospace,SF Mono,Menlo,monospace}.tpr{grid-template-columns:11em minmax(0,1fr);column-gap:14px;padding-bottom:10px;display:grid}.tpyear{color:#8e8e93;white-space:nowrap}.tplink{all:unset;cursor:pointer;color:var(--green);text-underline-offset:3px;-webkit-text-decoration:underline #4ade8073;text-decoration:underline #4ade8073;transition:text-decoration-color .2s}.tplink:hover{-webkit-text-decoration-color:var(--green);-webkit-text-decoration-color:var(--green);-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}.tplink:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}.tparrow{color:#8e8e93}.tpshort{color:#b9b9bd}.thelplist{color:#b9b9bd;font:400 14px/1.6 Space Mono,ui-monospace,SF Mono,Menlo,monospace}.thead{color:#fff;margin-bottom:8px;font-weight:700}.throw{grid-template-columns:13em minmax(0,1fr);column-gap:14px;display:grid}.thname{color:var(--green);padding-left:2ch}@media (width<=760px){.throw{grid-template-columns:11em minmax(0,1fr)}}.tcopy{all:unset;cursor:pointer;color:#8e8e93;margin-left:10px}@media (pointer:coarse){.tcopy{margin-block:-10px;padding:10px 6px}}.tcopy:hover{color:#fff}.tcopy:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}.tphint{color:#8e8e93;margin-top:4px}@media (width<=760px){.tpr{grid-template-columns:minmax(0,1fr);row-gap:0}}.tedu{gap:16px;margin:12px 0 4px;font:400 14px/1.6 Space Mono,ui-monospace,SF Mono,Menlo,monospace;display:grid}.tcard{background:#202022;border:1px solid #3a3a3c;border-radius:8px;padding:12px 16px;position:relative}.tcard:before{content:"";pointer-events:none;border:1px solid #2c2c2e;border-radius:5px;position:absolute;inset:4px}.tseal{background:var(--green);color:#06190d;text-align:center;border-radius:99px;min-width:30px;height:20px;padding:0 8px;font:700 11.5px/20px Space Mono,ui-monospace,monospace;position:absolute;top:-10px;right:16px}.tcardtop{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.tcardname{color:#fff;font-weight:700}.tcardyear{color:#8e8e93;white-space:nowrap}.tcardstudy{color:#b9b9bd;margin-top:2px}.tcardplace{color:#8e8e93;margin-top:2px;font-size:12.5px}.tgap{height:.8em}.tout{white-space:pre-wrap;color:#b9b9bd;overflow:visible}.tlog .tln:not(.tout){margin-top:6px}.tlog .tout+.tln:not(.tout){margin-top:10px}.tln.last{position:relative}.tin{white-space:pre}.tinput{color:#0000;caret-color:#0000;opacity:0;cursor:text;background:0 0;border:0;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.term{cursor:text}.thelp{text-align:center;font:400 13px/1.6 var(--mono);color:var(--muted);margin-top:16px;animation:.6s 3.1s both fade}.thelp kbd{border:1px solid var(--line);background:var(--bg-2);font:500 12.5px var(--mono);color:var(--ink);border-radius:6px;padding:3px 8px}.typed{vertical-align:bottom;white-space:nowrap;width:6ch;animation:.7s steps(6,end) .5s both typing;display:inline-block;overflow:hidden}@keyframes typing{0%{width:0}}.cur{vertical-align:-3px;background:#e4e4e6;width:8px;height:1.15em;animation:1.05s steps(2,end) infinite caret;display:inline-block}.cur1{margin-left:1px;animation:1.05s steps(2,end) infinite caret,10ms 1.25s forwards gone}@keyframes caret{50%{opacity:0}}@keyframes gone{to{width:0;margin:0}}canvas.banner{width:100%;margin:16px 0 12px;display:block}@media (width<=600px){.tbody{height:clamp(330px,100svh - 350px,460px);padding:12px 14px 16px}.tln{font-size:11.5px}.tbar span{font-size:12px}}.hero-first{grid-template-rows:auto 1fr;min-height:calc(100svh - 97px);display:grid}.hero-first .intro{text-align:center;place-self:center;padding-block:40px}.hero-grid{text-align:center;justify-items:center;gap:36px;margin-top:0;padding-top:24px;display:grid}.intro{font:580 clamp(32px, 5vw, 64px) / 1.04 var(--sans);letter-spacing:-.045em;color:var(--ink);text-wrap:balance;max-width:16.5em}.intro .w{white-space:pre;animation:wIn .8s var(--ease) both;animation-delay:var(--d);display:inline-block}@keyframes wIn{0%{opacity:0;filter:blur(6px);transform:translateY(.45em)}}.path{justify-content:space-between;width:min(100%,560px);margin-top:8px;padding-top:20px;animation:.9s 1s both fade;display:flex;position:relative}@keyframes fade{0%{opacity:0}}.path:before{content:"";background:var(--line);height:1px;position:absolute;top:5px;left:4px;right:4px}.path span{font:400 12.5px/1 var(--mono);letter-spacing:.01em;color:var(--muted);cursor:default;transition:color .25s;position:relative}.path span:before{content:"";background:var(--bg);border:1.5px solid var(--muted);width:9px;height:9px;transition:background .25s, border-color .25s, transform .25s var(--ease);border-radius:50%;position:absolute;top:-20px;left:0}.path span:last-of-type{text-align:right}.path span:last-of-type:before{left:auto;right:0}.path span:hover{color:var(--ink)}.path span:hover:before{background:var(--ink);border-color:var(--ink);transform:scale(1.3)}.path i{background:var(--ink);width:9px;height:9px;animation:travel 5.2s var(--ease) 1.4s infinite;box-shadow:0 0 0 5px var(--ink);border-radius:50%;position:absolute;top:1px;left:0}@supports (color:color-mix(in lab, red, red)){.path i{box-shadow:0 0 0 5px color-mix(in srgb, var(--ink) 12%, transparent)}}@keyframes travel{0%{left:0}45%,55%{left:calc(100% - 9px)}to{left:0}}.pills{flex-wrap:wrap;justify-content:center;gap:10px;animation:.9s .9s both fade;display:flex}.fact-pill{border:1px solid var(--line);letter-spacing:-.005em;color:var(--ink);background:var(--card);border-radius:999px;align-items:center;gap:10px;padding:9px 18px;font-size:14.5px;font-weight:500;line-height:1.4;display:inline-flex}.fact-pill .dot{background:var(--ink);border-radius:50%;width:8px;height:8px;animation:2.2s ease-in-out infinite blink}@keyframes blink{50%{opacity:.2}}@media (width<=960px){.hero{padding-bottom:56px}.hero-grid{gap:28px}}.sec{padding-block:80px 0}.sec-head{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px;padding-top:24px;display:flex}.sec-head h2{font:700 clamp(34px, 4.6vw, 60px)/1 var(--sans);letter-spacing:-.04em;color:var(--ink)}.sec.about-sec{padding-block:8px 0}.about{border-top:1px solid var(--line);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:56px;padding-top:56px;display:grid}.about-lead{font:500 clamp(26px, 3.2vw, 42px) / 1.2 var(--sans);letter-spacing:-.032em;color:var(--ink);text-wrap:balance}.about-side{gap:28px;padding-top:6px;display:grid}.about-body{max-width:34em;color:var(--ink-2);font-size:17.5px;line-height:1.7}.about b{color:var(--ink);background:linear-gradient(var(--ink), var(--ink)) 0 94% / 100% 1.5px no-repeat;font-weight:500}.tools{gap:10px;display:grid}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{border:1px solid var(--line);font:400 12.5px/1 var(--mono);color:var(--ink-2);background:var(--card);transition:border-color .2s, color .2s, transform .3s var(--ease);border-radius:999px;padding:7px 12px}.tag:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}@media (width<=860px){.about{grid-template-columns:1fr;gap:28px;padding-top:40px}}.stack{padding-bottom:8px}.sc{top:var(--top,calc(88px + var(--i,0) * 18px));min-height:var(--card-h,0px);border:1px solid var(--line);background:var(--card);box-shadow:0 -18px 44px -26px #00000080, inset 0 1px 0 var(--ink);border-radius:28px;grid-template-columns:minmax(0,5fr) minmax(0,7fr);margin-bottom:28px;padding:12px;display:grid;position:sticky}@supports (color:color-mix(in lab, red, red)){.sc{box-shadow:0 -18px 44px -26px #00000080, inset 0 1px 0 color-mix(in srgb, var(--ink) 6%, transparent)}}.sc{transform-origin:50% 0;transform:scale(calc(1 - var(--p,0) * .045));filter:brightness(calc(1 - var(--p,0) * .22));transition:border-color .3s}.sc:hover{border-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.sc:hover{border-color:color-mix(in srgb, var(--ink) 35%, var(--line))}}.sc-l{background:var(--bg);min-width:0;color:var(--muted);border-radius:20px;align-content:start;gap:12px;padding:18px;display:grid}.sc-top{font:400 12.5px var(--mono);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.seg{align-items:center;gap:6px;display:flex}.seg i{background:var(--line);width:20px;height:3px;transition:background .3s, width .4s var(--ease);border-radius:2px}.seg i.on{background:var(--ink);width:34px}.seg span{margin-left:10px}.fig{gap:8px;margin:0;display:grid}.fig figcaption{font:400 12.5px var(--mono);color:var(--muted)}.viz{border:1px solid var(--line);background:var(--bg-2);border-radius:16px;padding:8px}.viz svg{width:100%;max-height:175px;margin:0 auto;display:block}.chips{flex-wrap:wrap;gap:7px;display:flex}.chips li{font:400 12px/1 var(--mono);border:1px solid var(--line);color:var(--ink-2);background:var(--card);border-radius:999px;padding:7px 11px}.sc-r .ext{margin-top:8px}.ext{width:fit-content;font:600 15px var(--sans);color:var(--ink);background:linear-gradient(var(--ink), var(--ink)) 0 100% / 100% 1px no-repeat;transition:background-size .4s var(--ease);align-items:center;gap:10px;padding-bottom:3px;display:inline-flex}.ext:hover{background-position:100% 100%;background-size:0 1px}.ext svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;transition:transform .3s var(--ease)}.ext:hover svg{transform:translate(2px,-2px)}.sc-r{align-content:start;gap:10px;min-width:0;padding:16px 20px 10px 28px;display:grid}.sc h3{font:700 clamp(28px, 3.2vw, 42px) / .98 var(--sans);letter-spacing:-.05em;color:var(--ink)}.sc .lead{letter-spacing:-.005em;color:var(--ink);font-size:17px;line-height:1.5}.rows li{border-top:1px solid var(--line);grid-template-columns:22px minmax(0,1fr);gap:12px;padding:9px 0;display:grid}.rows h4{font:600 15.5px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 2px}.rows p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.55}.tick{border:1.5px solid var(--ink);border-radius:50%;width:20px;height:20px;margin-top:2px;position:relative}.tick:after{content:"";border:solid var(--ink);border-width:0 1.6px 1.6px 0;width:4.5px;height:9px;position:absolute;top:2.5px;left:6px;transform:rotate(45deg)}@media (width<=760px){.sc{filter:none;border-radius:22px;grid-template-columns:1fr;min-height:0;position:relative;top:auto;transform:none}.sc-r{padding:22px 12px 12px}}.viz .wire{fill:none;stroke:var(--muted);stroke-width:1.6px;stroke-linecap:round}.viz .ah{fill:var(--muted)}.viz .ah.strong,.viz .packet{fill:var(--ink)}.viz .glyph{fill:none;stroke:var(--ink);stroke-width:1.4px}.viz .glyph-line{fill:none;stroke:var(--ink);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.viz .dim{fill:var(--ink);opacity:.35}.viz .band{fill:none;stroke:var(--line);stroke-width:1.5px}.viz .lock{fill:var(--ink)}.viz .stepdot{fill:none;stroke:var(--ink);stroke-width:1.4px;animation:5s step-end infinite stepfill;animation-delay:calc(var(--n) * .7s)}@keyframes stepfill{0%{fill:var(--ink)}70%{fill:var(--ink)}71%,to{fill:none}}.viz .tickmark{fill:none;stroke:var(--ink);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;animation:4.5s infinite drawtick;animation-delay:calc(var(--n) * .7s)}@keyframes drawtick{0%{stroke-dashoffset:14px}20%,80%{stroke-dashoffset:0}to{stroke-dashoffset:14px}}.viz .qbar{fill:var(--ink);animation:2.4s ease-in-out infinite job;animation-delay:calc(var(--n) * .4s)}@keyframes job{0%,to{opacity:.15}40%{opacity:1}}.viz text.hd{font-size:10.5px}.viz .track{fill:var(--line)}.viz .rollup{fill:var(--ink);transform-box:fill-box;transform-origin:0;transform:scaleX(var(--w,.6));animation:rollup 6s var(--ease) infinite both;animation-delay:var(--d,0s)}.viz .rollup.inv{fill:var(--bg)}@keyframes rollup{0%{transform:scaleX(.04)}22%,82%{transform:scaleX(var(--w,.6))}to{transform:scaleX(.04)}}.viz text{font-family:var(--mono);fill:var(--muted);font-size:12px}.viz text.k{font-family:var(--sans);fill:var(--ink);font-size:15px;font-weight:600}.viz text.inv{fill:var(--bg)}.viz text.inv2{fill:var(--bg);opacity:.65}.viz .box{fill:var(--card);stroke:var(--ink);stroke-width:1.5px}.viz .box.dark{fill:var(--ink)}.viz .flow{fill:none;stroke:var(--ink);stroke-width:1.6px;stroke-dasharray:5 6;stroke-linecap:round;animation:1.1s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-22px}}.viz .bar-t{fill:var(--ink);opacity:.75}.viz .bubble{fill:var(--card);stroke:var(--ink);stroke-width:1.5px}.viz .type{fill:var(--ink);opacity:.78;transform-box:fill-box;transform-origin:0;animation:type 7s var(--ease) infinite;animation-delay:calc(var(--n) * .55s)}@keyframes type{0%,6%{transform:scaleX(0)}24%{transform:scaleX(1)}88%{opacity:.78;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.viz .pulse{fill:var(--ink);animation:1.4s ease-in-out infinite blink}.viz .cite{animation:7s infinite cite}@keyframes cite{0%,45%{opacity:0}55%,88%{opacity:1}to{opacity:0}}.viz .col{fill:var(--ink);transform-box:fill-box;transform-origin:50% 100%;animation:3.6s ease-in-out infinite breathe;animation-delay:calc(var(--n) * -.3s)}@keyframes breathe{50%{transform:scaleY(.62)}}.viz .axis{stroke:var(--muted);stroke-width:1.5px;opacity:.5}.viz .lineplot{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:460;animation:draw 5s var(--ease) infinite}@keyframes draw{0%{stroke-dashoffset:460px}55%,to{stroke-dashoffset:0}}.viz .arc{fill:none;stroke:var(--ink);stroke-width:16px;stroke-dasharray:150 400;transform-origin:50%;transform-box:fill-box;animation:7s linear infinite spin}.viz .arc.b{stroke:var(--muted);stroke-dasharray:90 400;animation-duration:11s;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.viz .pill{fill:none;stroke:var(--line);stroke-width:1.5px}.viz .pill.sel{animation:8s step-end infinite selpill;animation-delay:calc(var(--n) * 2s)}.viz text.pt{animation:8s step-end infinite seltext;animation-delay:calc(var(--n) * 2s)}@keyframes selpill{0%{fill:var(--ink);stroke:var(--ink)}25%,to{fill:none;stroke:var(--line)}}@keyframes seltext{0%{fill:var(--bg)}25%,to{fill:var(--muted)}}.viz .hi{fill:var(--ink);opacity:.07;animation:6s step-end infinite hi}@keyframes hi{0%{transform:translateY(0)}33%{transform:translateY(50px)}66%{transform:translateY(100px)}}.js .sc:not(.in) .viz *{animation-play-state:paused}.tenure{border:1px solid var(--line);width:fit-content;font:400 12.5px var(--mono);color:var(--muted);white-space:nowrap;border-radius:999px;padding:4px 10px}.live{align-items:center;gap:8px;display:inline-flex}.live:before{content:"";background:var(--ink);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite blink}.tl{--p:0%;--lit:var(--ink);padding:16px 0;position:relative}@supports (color:color-mix(in lab, red, red)){.tl{--lit:color-mix(in srgb, var(--ink) 72%, var(--bg))}}.tl-spine{background:var(--line);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%}.tl-spine i{height:var(--p);background:var(--lit);position:absolute;inset:0 0 auto}.tr{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);padding:20px 0;display:grid}.tr.left{grid-template-areas:"body dot meta"}.tr.right{grid-template-areas:"meta dot body"}.tr-body{border:1px solid var(--line);background:var(--card);border-radius:22px;grid-area:body;width:100%;min-width:0;max-width:560px;padding:28px 30px 30px;transition:border-color .4s;position:relative}.tr.left .tr-body{justify-self:end}.tr-snake{pointer-events:none;width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;inset:-1px;overflow:visible}.tr.left .tr-snake{transform:scaleX(-1)}.tr-snake rect{x:1px;y:1px;fill:none;width:calc(100% - 2px);height:calc(100% - 2px);stroke:var(--lit);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.02;stroke-dashoffset:1.02px;opacity:0}.tr.seen .tr-snake rect{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset 1.8s cubic-bezier(.45,.05,.25,1),opacity .15s}.tr-body:after{content:"";background:var(--line);width:44px;height:2px;transition:background .4s;position:absolute;top:20px}.tr.left .tr-body:after{right:-45px}.tr.right .tr-body:after{left:-45px}.tr.seen .tr-body:after{background:var(--lit)}.tr-meta{grid-area:meta;align-content:start;gap:12px;min-width:0;padding-top:14px;display:grid}.tr.left .tr-meta{justify-items:start}.tr.right .tr-meta{text-align:right;justify-items:end}.tr.right .tr-meta .seg{justify-content:flex-end}.tr-meta time{font:400 12.5px var(--mono);color:var(--muted)}.tr-dot{z-index:1;box-sizing:border-box;background:var(--bg);border:2px solid var(--line);border-radius:50%;grid-area:dot;place-self:start center;width:16px;height:16px;margin-top:14px;transition:border-color .4s,background .4s,box-shadow .4s;position:relative}.tr.seen .tr-dot{border-color:var(--lit)}.tr.on .tr-dot{background:var(--lit);border-color:var(--lit);box-shadow:0 0 0 6px var(--lit)}@supports (color:color-mix(in lab, red, red)){.tr.on .tr-dot{box-shadow:0 0 0 6px color-mix(in srgb, var(--lit) 16%, transparent)}}.tr-body h3{font:700 clamp(24px, 2.6vw, 32px) / 1.1 var(--sans);letter-spacing:-.035em;color:var(--ink)}.tr-org{font:600 16px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}.tr-bullets{gap:14px;margin-top:24px;display:grid}.tr-bullets li{padding-left:20px;font-size:15.5px;line-height:1.6;position:relative}.tr-bullets li:before{content:"";background:var(--ink);width:10px;height:1px;transition:width .3s var(--ease);position:absolute;top:.82em;left:0}.tr-bullets li:hover:before{width:16px}.tr-bullets li b{color:var(--ink);font-weight:500}@media (width<=860px){.tl-spine{left:8px}.tr{grid-template-columns:32px minmax(0,1fr);padding:16px 0 20px}.tr.left,.tr.right{grid-template-areas:"dot meta""dot body";row-gap:14px}.tr-dot{justify-self:start;margin-top:2px}.tr-body{max-width:none;padding:22px 20px 24px}.tr.left .tr-body{justify-self:stretch}.tr-body:after{display:none}.tr.right .tr-meta{text-align:left;justify-items:start}.tr.right .tr-meta .seg{justify-content:flex-start}.tr-meta{padding-top:0}}.sk-sec{overflow-x:clip}.sk{--w:min(1440px, calc(100vw - 48px), calc((100vh - 190px) * var(--ar,1.46)), calc((100svh - 190px) * var(--ar,1.46)));position:relative}.sk-bleed{width:100vw;height:calc(var(--w) / var(--ar,1.46));pointer-events:none;position:absolute;top:4px;left:50%;overflow:hidden;translate:-50%}.sk-bleed svg{width:100%;height:100%;display:block}.sk-sky{width:var(--w);touch-action:pan-y;margin-top:4px;position:relative;left:50%;translate:-50%}.sk-sky svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.sk-moon{fill:none;stroke:var(--ink);stroke-width:1.3px;stroke-linecap:round;opacity:.5}.sk-wisp{animation:skDrift var(--dur,180s) linear infinite;animation-delay:var(--delay,0s)}.sk-wisp path{fill:var(--bg);stroke:var(--ink);stroke-width:1.1px;opacity:.4}.sk-curls{opacity:.12;transition:opacity 1.2s}.sk-curls path{fill:none;stroke:var(--ink);stroke-width:1.3px;stroke-linecap:round;animation:skSlide var(--dur,20s) linear infinite;animation-delay:var(--delay,0s)}@keyframes skDrift{0%{transform:translate(-2300px)}to{transform:translate(4300px)}}@keyframes skSlide{0%{opacity:0;transform:translate(0)}15%,85%{opacity:1}to{opacity:0;transform:translate(720px)}}.sk-cloud{cursor:grab;touch-action:none}.sk-cloud[data-drag]{cursor:grabbing}.sk-pop{transition:filter .25s, transform .25s var(--ease)}.sk-cloud[data-drag] .sk-pop{filter:drop-shadow(0 22px 26px #00000047);transform:scale(1.025)}.sk-fill{fill:var(--bg)}.sk-ol{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.78;stroke-dasharray:1;stroke-dashoffset:1px}.sk.grow .sk-ol{animation:skDraw 2s var(--ease) forwards;animation-delay:var(--d,0s)}.sk-ol[data-done],.sk.drawn .sk-ol{stroke-dashoffset:0;animation:none}@keyframes skDraw{to{stroke-dashoffset:0}}.sk-in{fill:none;stroke:var(--ink);stroke-width:1.1px;stroke-linecap:round;opacity:.38}.sk-txt{opacity:0;transition:opacity .9s ease var(--d2,.9s)}.sk.grow .sk-txt{opacity:1}.sk-hd{font:700 30px var(--sans);letter-spacing:-.035em;fill:var(--ink);text-anchor:middle;dominant-baseline:central;pointer-events:none}.sk-rule{stroke:var(--ink);stroke-width:1.5px;stroke-linecap:round;opacity:.5;pointer-events:none}.sk-edge{fill:var(--ink)}@supports (color:color-mix(in lab, red, red)){.sk-edge{fill:color-mix(in srgb, var(--ink) 16%, var(--bg))}}.sk-edge{stroke:none}.sk-face{fill:var(--card);stroke:var(--ink)}@supports (color:color-mix(in lab, red, red)){.sk-face{stroke:color-mix(in srgb, var(--ink) 30%, transparent)}}.sk-face{stroke-width:1.2px}.sk-chip text{font:500 23px var(--sans);letter-spacing:-.01em;fill:var(--ink);text-anchor:middle;dominant-baseline:central;pointer-events:none}.sk-list{display:none}@media (width<=1060px){.sk-sky,.sk-bleed{display:none}.sk-list{gap:8px;margin-top:12px;display:grid}.sk-card{width:100%;max-width:560px;height:auto;margin-inline:auto;display:block}}@media (prefers-reduced-motion:reduce){.sk-wisp,.sk-curls path{animation:none}.sk-ol{stroke-dashoffset:0;animation:none!important}.sk-txt{opacity:1;transition:none}}.certs{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:18px;display:grid}.cert{background:var(--card);border:1px solid var(--line);transition:translate .35s var(--ease);border-radius:6px;padding:34px 30px 30px;position:relative}.cert:before{content:"";border:1px solid var(--ink);position:absolute;inset:8px}@supports (color:color-mix(in lab, red, red)){.cert:before{border:1px solid color-mix(in srgb, var(--ink) 22%, transparent)}}.cert:before{pointer-events:none;border-radius:3px}.cert:hover{translate:0 -4px}.js .cert.rv{transition:opacity .7s ease, transform .8s var(--ease), translate .35s var(--ease);transition-delay:calc(var(--n,0) * 70ms), calc(var(--n,0) * 70ms), 0s}.cert-seal{background:var(--ink);width:52px;height:52px;color:var(--bg);font:700 13px var(--mono);box-shadow:0 0 0 4px var(--bg), 0 0 0 5px var(--line);border-radius:50%;place-items:center;display:grid;position:absolute;top:-18px;right:26px}.cert-k{font:400 12px var(--mono);color:var(--muted)}.cert h3{font:700 clamp(22px, 2.4vw, 28px) / 1.15 var(--sans);letter-spacing:-.03em;color:var(--ink);margin-top:14px}.cert p{color:var(--ink-2);margin-top:12px;font-size:16.5px}.cert-y{border-top:1px dashed var(--line);font:400 13px var(--mono);color:var(--muted);justify-content:space-between;gap:16px;margin-top:22px;padding-top:14px;display:flex}@media (width<=760px){.certs{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.cert{transition:none}}.contact{padding-block:120px 72px}.chead{text-align:center}.contact h2{font:700 clamp(42px, 6.6vw, 92px)/1 var(--sans);letter-spacing:-.045em;color:var(--ink);text-wrap:balance}.contact .sub{max-width:30em;color:var(--ink-2);margin:28px auto 0;font-size:19px;line-height:1.6}.bcwrap{width:min(600px,100%);margin:64px auto 0;position:relative}.bc{border:1px solid var(--line);transition:transform .5s var(--ease), box-shadow .5s var(--ease);border-radius:16px}.bc-back{background:var(--bg-2);position:absolute;inset:0;transform:rotate(4deg)translate(14px,10px)}.bc-front{background:var(--card);padding:34px 38px 30px;position:relative;transform:rotate(-2deg);box-shadow:0 26px 40px -28px #0006}.bcwrap:hover .bc-front,.bcwrap:focus-within .bc-front{transform:rotate(0)translateY(-6px)}.bcwrap:hover .bc-back,.bcwrap:focus-within .bc-back{transform:rotate(6deg)translate(20px,12px)}.bc-mark{background:var(--ink);width:42px;height:42px;color:var(--bg);font:700 13px var(--mono);border-radius:50%;place-items:center;display:grid;position:absolute;top:32px;right:32px}.bc-name{font:700 clamp(26px, 3.4vw, 32px)/1.05 var(--sans);letter-spacing:-.04em;color:var(--ink)}.bc-role{font:400 12.5px var(--mono);color:var(--muted);margin-top:6px}.bc hr{border:0;border-top:1px solid var(--ink);width:36px;margin:22px 0 16px}.bc dl{gap:2px;margin:0;display:grid}.bc dl>div{border-bottom:1px solid var(--line);grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:12px;padding:7px 0;display:grid}.bc dl>div:last-child{border-bottom:0}.bc dt{font:400 12px var(--mono);color:var(--muted)}.bc dd{color:var(--ink);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;margin:0;font-size:16.5px;font-weight:500;display:flex}.bc dd a{background:linear-gradient(var(--ink), var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size .35s var(--ease)}.bc dd a:hover,.bc dd a:focus-visible{background-size:100% 1px;outline:none}.bc button{all:unset;cursor:pointer;font:500 12.5px var(--mono);color:var(--muted);padding:2px 0;transition:color .2s}.bc button:hover{color:var(--ink)}.bc button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}@media (width<=520px){.bc-front{padding:28px 22px 22px}.bc-mark{top:24px;right:22px}.bc dl>div{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){.bc{transition:none}}footer{font:400 12px var(--mono);color:var(--muted);padding-block:16px 32px}footer .wrap{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:20px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.js .rv{opacity:1!important;transform:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
