@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#faf9f7;--surface:#f2f0ec;--fg:#1b1916;--muted:#5f5a52;--line:#e3e0d9;--line-strong:#c9c4ba;--accent:#b4460e;--on-accent:#fff;--g0:color-mix(in srgb, var(--fg) 7%, var(--bg));--g1:color-mix(in srgb, var(--accent) 28%, var(--bg));--g2:color-mix(in srgb, var(--accent) 52%, var(--bg));--g3:color-mix(in srgb, var(--accent) 76%, var(--bg));--g4:var(--accent);--sans:"Instrument Sans Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono Variable", "Cascadia Mono", Consolas, ui-monospace, monospace;--t-hero:calc(clamp(2.15rem, 6vw, 3.5rem));--t-h1:calc(clamp(2rem, 5vw, 2.9rem));--t-h3:1.4rem;--t-body:1.0625rem;--t-small:.9375rem;--t-mono:.8125rem;--column:52rem;--gutter-l:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141210;--surface:#1c1a17;--fg:#efebe4;--muted:#a59f94;--line:#2d2a25;--line-strong:#4a453d;--accent:#f08a45;--on-accent:#1d0f06;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#141210;--surface:#1c1a17;--fg:#efebe4;--muted:#a59f94;--line:#2d2a25;--line-strong:#4a453d;--accent:#f08a45;--on-accent:#1d0f06;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--t-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}dd,dl,figure,h1,h2,h3,ol,p,ul{margin:0;padding:0}ol,ul{list-style:none}h1,h3{text-wrap:balance}img{max-width:100%;height:auto;display:block}a{color:inherit;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}a:hover{color:var(--accent);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}.wrap{width:100%;max-width:calc(32px + var(--column));padding-left:var(--gutter-l);padding-right:var(--gutter-r);margin-inline:auto}.mono{font-family:var(--mono);font-size:var(--t-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:30;background:var(--accent);padding:8px 12px;position:absolute;top:8px;left:-999px}.skip,.skip:focus{color:var(--on-accent)}.skip:focus{left:var(--gutter-l)}.site-header{top:env(safe-area-inset-top,0);z-index:9;background:var(--bg);border-bottom:1px solid var(--line);position:sticky}.bar{justify-content:space-between;align-items:center;gap:16px;min-height:58px;display:flex}.mark{font-family:var(--mono);white-space:nowrap;font-size:.9375rem;font-weight:500;text-decoration:none}.mark span{color:var(--accent)}.nav{font-size:var(--t-small);align-items:center;gap:20px;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a.router-link-exact-active:not([href*=\#]),.nav a:hover{color:var(--accent)}.bar-actions{gap:8px;display:flex}.bar-actions,.btn,.ctl,.flow-head,.status{align-items:center}.ctl{border:1px solid var(--line-strong);min-height:34px;font-family:var(--mono);color:var(--muted);white-space:nowrap;background:0 0;border-radius:4px;gap:6px;padding:3px 9px;font-size:.75rem;text-decoration:none;display:inline-flex}.ctl:hover{color:var(--accent);border-color:var(--accent)}.ctl svg{fill:currentColor;width:15px;height:15px}.ctl .narrow-only{display:none}.study-block,section{border-top:1px solid var(--line);padding-block:56px;scroll-margin-top:60px}.label{font-family:var(--mono);font-size:var(--t-mono);color:var(--muted);letter-spacing:.02em;margin:0 0 28px;font-weight:500}.label span{color:var(--accent)}.note{color:var(--muted);font-size:.8125rem;line-height:1.5}.btn{border:1px solid var(--line-strong);background:0 0;border-radius:4px;justify-content:center;min-height:46px;padding:9px 18px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{color:var(--accent)}.btn.primary,.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover{color:var(--on-accent);opacity:.9}.btn:disabled{opacity:.6;cursor:progress}.more{font-weight:600;font-size:var(--t-small);justify-self:start}.hero{gap:30px;padding-block:52px 56px;display:grid}.status{color:var(--muted);gap:9px;display:flex}.status i{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.hero h1{font-size:var(--t-hero);letter-spacing:-.025em;max-width:21ch;font-weight:600;line-height:1.08}.intro{gap:8px;max-width:60ch;display:grid}.flow-tabs button,.intro .mono{color:var(--muted)}.actions{flex-wrap:wrap;gap:12px;display:flex}.showcase{min-width:0}.showcase+.note{margin-top:-18px}.flow-tabs{margin-bottom:8px;display:flex;overflow-x:auto}.flow-tabs button{font:inherit;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;min-height:36px;padding:4px 8px}.flow-tabs button:hover{color:var(--fg)}.flow-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--fg)}.flow-frame{border:1px solid var(--line-strong);border-radius:6px;min-width:0}.flow-head{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:12px;padding:7px 8px 7px 14px;display:flex}.flow-head button{color:inherit;font:inherit;background:0 0;border:0;min-height:30px;padding:2px 8px}.flow-head button:hover{color:var(--accent)}.flow-canvas{min-width:0;padding:18px 14px 10px}.flow-canvas svg{width:100%;height:auto;display:block;overflow:visible}.edge{fill:none}.edge,.node{stroke:var(--line-strong);stroke-width:1px}.node{fill:var(--bg)}.node.on{stroke:var(--accent);stroke-width:1.5px}.node.wait{stroke:var(--fg)}.node.fail{stroke:var(--accent);stroke-dasharray:4 3;stroke-width:1.5px}.node-t{fill:var(--fg);font-family:var(--mono);text-anchor:middle;dominant-baseline:central;font-size:11px}.node-t.small{font-size:10px}.node-t.tiny{font-size:9px}.packet{fill:var(--accent)}.flow-log{border-top:1px solid var(--line);color:var(--muted);height:calc(6.2em + 20px);padding:10px 14px;font-size:.75rem;line-height:1.55;overflow:hidden}.flow-log div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.flow-log div:last-child{color:var(--fg)}.proof{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.proof.lead{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr)}.proof li{align-content:start;gap:4px;min-width:0;display:grid}.proof b{letter-spacing:-.015em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;line-height:1.2}.proof span{font-size:var(--t-small);color:var(--muted);line-height:1.4}.proof+.note{margin-top:20px}.work-list{gap:36px;display:grid}.case{gap:14px;min-width:0;display:grid}.case+.case.large,.compact{border-top:1px solid var(--line);padding-top:36px}.case-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;display:flex}.case h3{font-size:var(--t-h3);letter-spacing:-.01em;font-weight:600;line-height:1.25}.case h3 a,.crumb a{text-decoration:none}.case p{max-width:62ch}.facts{color:var(--muted);flex-wrap:wrap;gap:4px 18px;display:flex}.facts b{color:var(--fg);font-weight:500}.tally{gap:10px;max-width:100%;display:grid;overflow:hidden}.tally div{color:var(--muted);grid-template-columns:13.5rem minmax(0,1fr);align-items:center;gap:12px;display:grid}.ticks{max-width:100%;height:11px}.ticks.mods{background:repeating-linear-gradient(90deg,var(--line-strong) 0 8px,transparent 8px 12px);width:216px}.ticks.carr{background:repeating-linear-gradient(90deg,var(--accent) 0 8px,transparent 8px 12px);width:204px}.speed{gap:8px;display:grid}.speed-row{color:var(--muted);grid-template-columns:4.2em minmax(0,1fr);align-items:center;gap:10px;display:grid}.track{height:12px;display:flex}.track i{height:100%;display:block}.track .solid{background:var(--line-strong);width:80%}.track .range{background:repeating-linear-gradient(135deg,var(--line-strong) 0 3px,transparent 3px 6px);width:20%}.track .fast{background:var(--accent);width:9%}.axis{color:var(--muted);justify-content:space-between;margin-left:calc(4.2em + 10px);font-size:.6875rem;display:flex}.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.compact .case{border:1px solid var(--line);border-radius:6px;align-content:start;padding:18px}.compact h3{font-size:1.15rem}.caps p,.compact p,.pkgs p{font-size:var(--t-small)}.os-summary{color:var(--muted);margin-bottom:18px}.pkgs,.pkgs li{display:grid}.pkgs li{border-top:1px solid var(--line);grid-template-columns:minmax(0,13.5rem) minmax(0,1fr) auto;align-items:baseline;gap:4px 18px;padding-block:13px}.pkgs li:last-child{border-bottom:1px solid var(--line)}.pkgs a{font-family:var(--mono);overflow-wrap:anywhere;font-size:.875rem}.pkgs .n,.pkgs p{color:var(--muted)}.pkgs .n{text-align:right;white-space:nowrap}.os-foot{flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:16px;display:flex}.os-group{padding-block:30px 0}.os-group h2{margin-bottom:12px;font-size:1.0625rem;font-weight:600}.filters{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.filters .ctl[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.cal-block{gap:10px;margin-top:36px;display:grid}.cal-scroll{padding-bottom:4px;overflow-x:auto}.cal{grid-template-rows:repeat(7,10px);grid-auto-columns:10px;grid-auto-flow:column;gap:3px;width:max-content;display:grid}.cal i{background:var(--g0);border-radius:2px}.cal i[data-l="1"]{background:var(--g1)}.cal i[data-l="2"]{background:var(--g2)}.cal i[data-l="3"]{background:var(--g3)}.cal i[data-l="4"]{background:var(--g4)}.about,.about-copy,.caps,.caps>div,.portrait,.timeline,.ways,.ways>div{display:grid}.ways>div{border-top:1px solid var(--line);grid-template-columns:13.5rem minmax(0,1fr);gap:4px 18px;padding-block:16px}.ways>div:last-child{border-bottom:1px solid var(--line)}.caps h3,.contact-title,.not-found h1,.prose h3,.resume h1,.resume h3,.resume strong,.study-head h1,.timeline b,.ways dt{font-weight:600}.ways dd{color:var(--muted);max-width:58ch}.caps{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 32px}.caps>div{align-content:start;gap:7px;min-width:0}.caps h3{font-size:1.0625rem}.caps p{color:var(--muted)}.about{grid-template-columns:148px minmax(0,1fr);align-items:start;gap:28px}.portrait{aspect-ratio:1;border:1px solid var(--line-strong);background:var(--surface);max-width:100%;font-family:var(--mono);color:var(--accent);border-radius:6px;place-items:center;font-size:1.5rem;overflow:hidden}.portrait img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.about-copy{gap:12px;max-width:60ch}.timeline{margin-top:36px}.timeline li{border-top:1px solid var(--line);grid-template-columns:13.5rem minmax(0,1fr);gap:2px 18px;padding-block:13px;display:grid}.timeline li:last-child{border-bottom:1px solid var(--line)}.timeline .org,.timeline .when{color:var(--muted)}.timeline b{display:block}.timeline .org{font-size:var(--t-small)}.contact-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}.contact-title{letter-spacing:-.015em;text-wrap:balance;margin-bottom:24px;font-size:1.75rem;line-height:1.2}form{gap:15px}.direct,.direct>div,.field,.two,form{display:grid}.field{gap:5px;min-width:0}.field label{font-size:var(--t-small);font-weight:500}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line-strong);border-radius:4px;width:100%;min-height:46px;padding:10px 12px}.field [aria-invalid=true]{border-color:var(--accent)}.field textarea{resize:vertical;min-height:124px}.field-error{color:var(--accent);font-size:.875rem}.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.trap{height:1px;position:absolute;left:-9999px;overflow:hidden}.form-status{font-size:var(--t-small);color:var(--muted)}.form-status.good{color:var(--fg)}.direct{gap:22px}.direct>div{gap:5px}.crumb,.direct .k,.foot,.meta dt{color:var(--muted)}.copy-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.addr{font-family:var(--mono);overflow-wrap:anywhere;font-size:.875rem}.links{font-size:var(--t-small);flex-wrap:wrap;gap:6px 16px;display:flex}.site-footer{border-top:1px solid var(--line);padding-block:24px 36px}.foot{flex-wrap:wrap;justify-content:space-between;gap:8px 20px;display:flex}.study-head{gap:16px;padding-block:44px 40px;display:grid}.study-head h1{font-size:var(--t-h1);letter-spacing:-.02em;line-height:1.1}.lede{max-width:58ch;font-size:1.1875rem;line-height:1.5}.meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;padding-top:18px;display:grid}.meta div{gap:2px;min-width:0;display:grid}.meta dd{font-size:var(--t-small);font-weight:500}.study-image{margin-bottom:40px}.study-image img{border:1px solid var(--line);border-radius:6px}.study-image figcaption{margin-top:8px}.prose h2{border-top:1px solid var(--line);margin-top:44px;padding-top:44px;scroll-margin-top:60px}.prose>:first-child{margin-top:0}.prose h3{margin-top:22px;font-size:1.0625rem}.prose ol,.prose p,.prose ul{max-width:62ch;margin-top:12px}.prose h2+p{margin-top:0}.prose ul{padding-left:1.2em;list-style:outside}.prose ol{padding-left:1.2em;list-style:decimal}.prose li+li{margin-top:4px}.study-diagram{margin-top:8px}.study-results{margin-top:44px}.page-end{margin-bottom:64px}.study-diagram .note{margin-top:10px}.next{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.article-list li{border-top:1px solid var(--line);gap:4px;padding-block:16px;display:grid}.article-list h2,.resume h2{font-size:1.15rem;font-weight:600}.not-found{justify-items:start;gap:18px;padding-block:88px;display:grid}.not-found h1,.resume h1{font-size:var(--t-h1);letter-spacing:-.02em;line-height:1.1}.palette{border:1px solid var(--line-strong);background:var(--bg);color:var(--fg);border-radius:8px;width:calc(min(34rem,100vw - 32px));margin:12vh auto auto;padding:0}.palette::backdrop{background:#00000073}.palette input{border:0;border-bottom:1px solid var(--line);width:100%;font-family:var(--mono);background:0 0;outline:none;padding:14px 16px;font-size:.9375rem}.palette ul{max-height:21rem;padding:6px;overflow:auto}.palette li{cursor:pointer;font-size:var(--t-small);border-radius:4px;justify-content:space-between;gap:16px;padding:9px 11px;display:flex}.palette li span{color:var(--muted);font-family:var(--mono);font-size:.75rem}.palette li[aria-selected=true]{background:var(--surface);color:var(--accent)}.palette li.empty{color:var(--muted);cursor:default}.resume-page{padding-block:44px 64px}.resume-actions{flex-wrap:wrap;gap:12px;margin-bottom:36px;display:flex}.resume{max-width:62ch}.resume h1+p{font-family:var(--mono);font-size:var(--t-mono);margin-top:8px}.resume h1+p+p,.resume h1+p+p+p{color:var(--muted);font-size:var(--t-small);margin-top:8px}.resume h2{border-top:1px solid var(--line);margin:36px 0 10px;padding-top:24px}.resume h3{margin-top:18px;font-size:1.0625rem}.resume p{margin-top:6px}.resume ul{margin-top:8px;padding-left:1.2em;list-style:outside}.resume li+li{margin-top:4px}@media (width<=720px){.ctl .wide-only,.nav{display:none}.ctl .narrow-only{display:inline}.meta,.proof,.proof.lead{grid-template-columns:repeat(2,minmax(0,1fr))}.tally div{gap:3px}.caps,.compact,.contact-grid,.tally div{grid-template-columns:minmax(0,1fr)}.pkgs li{grid-template-columns:minmax(0,1fr) auto}.pkgs p{grid-area:2/1/auto/-1}.timeline li,.ways>div{grid-template-columns:minmax(0,1fr)}.about{grid-template-columns:96px minmax(0,1fr);gap:18px}.stages{grid-template-columns:minmax(0,1fr)}.stages li{border-left:0;border-top:1px solid var(--line)}.stages li:first-child{border-top:0}.study-block,section{padding-block:44px}}@media (width<=440px){.two{grid-template-columns:minmax(0,1fr)}.btn{width:100%}}@media print{@page{size:A4;margin:1cm 13mm 9mm}:root,:root[data-theme]{--fg:#1a1916;--muted:#55504a;--line:#d5d0c6;--accent:#9c3c0b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:#fff;font-size:9.1pt;line-height:1.3}.palette,.resume-actions,.site-footer,.site-header,.skip{display:none!important}.resume-page,.wrap{max-width:none;padding:0}.resume{max-width:none}.resume a{text-decoration:none}.resume h1{letter-spacing:0;font-size:20pt}.resume h1+p{font-family:var(--sans);color:var(--accent);margin-top:0;font-size:11pt;font-weight:600}.resume h1+p+p,.resume h1+p+p+p{margin-top:1pt;font-size:8.6pt}.resume h2{color:var(--accent);border-top:0;border-bottom:1px solid var(--line);margin:7pt 0 3pt;padding:0 0 1.5pt;font-size:10.5pt}.resume h2,.resume h3{-moz-column-break-after:avoid;break-after:avoid}.resume h3{margin-top:4pt;font-size:9.6pt}.resume p{margin-top:1.5pt}.resume ul{margin-top:2pt;padding-left:11pt}.resume li+li{margin-top:1pt}}
