:root{--paper:#fafbfc;--ink:#15181e;--ink-2:#434a56;--ink-3:#656d7a;--rule:#e1e4ea;--wash:#f0f2f6;--panel:#ffffff;--surface:#f5f6f9;--line:#c2c8d2;--dot:#e2e6ec;--accent:#2b3a9e;--accent-wash:#e8ebfa;--ok:#15814d;--warn:#a86400;--fault:#c4342b;--award:#8a5a00;--award-wash:#fbf1dc;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--shadow:0 1px 2px rgb(20 30 60 / 0.04), 0 24px 48px -28px rgb(20 30 60 / 0.22);--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--wide:74rem;--rail:12rem;--margin-col:8.75rem;--gap:1.75rem;--bar-h:3.5rem;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e1014;--ink:#e8eaef;--ink-2:#b7bdc8;--ink-3:#8b93a1;--rule:#242932;--wash:#171a21;--panel:#12151b;--surface:#1a1e26;--line:#3a414d;--dot:#1f242c;--accent:#a9b4ff;--accent-wash:#1e2245;--ok:#4fc58c;--warn:#f0b45a;--fault:#ff7b70;--award:#f0c46a;--award-wash:#2b2312;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--shadow:0 1px 2px rgb(0 0 0 / 0.3), 0 24px 48px -28px rgb(0 0 0 / 0.7);color-scheme:dark}}:root[data-theme=dark]{--paper:#0e1014;--ink:#e8eaef;--ink-2:#b7bdc8;--ink-3:#8b93a1;--rule:#242932;--wash:#171a21;--panel:#12151b;--surface:#1a1e26;--line:#3a414d;--dot:#1f242c;--accent:#a9b4ff;--accent-wash:#1e2245;--ok:#4fc58c;--warn:#f0b45a;--fault:#ff7b70;--award:#f0c46a;--award-wash:#2b2312;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--shadow:0 1px 2px rgb(0 0 0 / 0.3), 0 24px 48px -28px rgb(0 0 0 / 0.7);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + 1.5rem)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;line-height:1.3;text-wrap:balance}p{margin:0}strong{font-weight:600;color:var(--ink)}a{color:var(--accent);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);transition:text-decoration-color .15s,color .15s}a:hover{text-decoration-color:initial}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}kbd{font-family:var(--font-mono);font-size:.8em;padding:.05em .4em;border:1px solid var(--rule);border-bottom-width:2px;border-radius:4px;background:var(--wash)}.icon{width:1rem;height:1rem;flex:none}.quiet{color:var(--ink-3);font-weight:400}.wrap{max-width:var(--wide);margin-inline:auto;padding-left:max(1.25rem,env(safe-area-inset-left,0px));padding-right:max(1.25rem,env(safe-area-inset-right,0px))}.skip{position:absolute;left:1rem;top:-4rem;z-index:20;padding:.5rem .75rem;background:var(--ink);color:var(--paper);border-radius:6px}.skip:focus{top:1rem}.bar{position:sticky;top:0;z-index:10;padding-top:env(safe-area-inset-top,0px);background:var(--paper);background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:saturate(1.5)blur(12px);backdrop-filter:saturate(1.5)blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}.bar.is-stuck{border-bottom-color:var(--rule)}.bar-in{display:flex;align-items:center;gap:1.75rem;min-height:var(--bar-h)}.brand{margin-right:auto;color:var(--ink);font-weight:600;letter-spacing:-.01em;text-decoration:none;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.bar.is-stuck .brand,.brand:focus-visible{opacity:1;transform:none}.nav{display:flex;gap:1.5rem;font-size:.9375rem}.nav a{color:var(--ink-2);text-decoration:none;white-space:nowrap}.nav a:hover,.nav a[aria-current=true]{color:var(--ink)}.nav a[aria-current=true]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:.45em}.theme-toggle{display:grid;place-items:center;width:2.25rem;height:2.25rem;margin-right:-.5rem;padding:0;border:0;border-radius:8px;background:0 0;color:var(--ink-2);cursor:pointer}.theme-toggle:hover{background:var(--wash);color:var(--ink)}.theme-toggle .icon{width:1.125rem;height:1.125rem;grid-area:1/1}.i-sun{display:none}:root[data-theme=dark] .i-sun{display:block}:root[data-theme=dark] .i-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun{display:block}:root:not([data-theme=light]) .i-moon{display:none}}.hero{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.1fr);gap:3.5rem;align-items:center;padding-block:3.5rem 1rem}.hero h1{font-size:clamp(2.5rem,1.5rem + 3.2vw,4.25rem);font-weight:600;line-height:1;letter-spacing:-.035em}.role{max-width:30em;margin-top:1rem;color:var(--ink-2);font-size:clamp(1.125rem,1.02rem + .45vw,1.3125rem);line-height:1.45;text-wrap:balance}.status{display:grid;gap:.625rem;margin:2rem 0 0}.status .row{display:grid;grid-template-columns:4.75rem minmax(0,1fr);column-gap:.75rem;align-items:baseline}.status dt{display:flex;align-items:center;gap:.625rem;color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.status dd{margin:0}.dot{width:.5rem;height:.5rem;border:1.5px solid var(--ink-3);border-radius:50%;flex:none}.dot.is-live{border-color:var(--ok);background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}@media(prefers-reduced-motion:no-preference){.dot.is-live{animation:pulse 2.4s ease-in-out infinite}}@keyframes pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--ok) 8%,transparent)}}.links{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin:2.25rem 0 0;padding:0;list-style:none}.links a{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);font-size:.9375rem;font-weight:500;text-decoration:none}.links a:hover{color:var(--accent)}.links a .icon{color:var(--ink-3)}.links a:hover .icon{color:currentColor}.links .btn{padding:.55rem 1rem;border-radius:8px;background:var(--ink);color:var(--paper)}.links .btn .icon,.links .btn:hover{color:var(--paper)}.links .btn:hover{background:var(--accent)}.panel{margin:0;overflow:hidden;border:1px solid var(--rule);border-radius:16px;background-color:var(--panel);background-image:radial-gradient(var(--dot) 1.1px,transparent 1.3px);background-size:18px 18px;background-position:9px 9px;box-shadow:var(--shadow)}.panel-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.625rem 1rem;border-bottom:1px solid var(--rule);background:var(--panel);color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem}.panel-title{color:var(--ink-2);font-weight:500}.panel-title::before{content:"$ ";color:var(--accent)}.panel-legend{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.375rem}.lg{display:inline-block;width:.5rem;height:.5rem;margin-left:.5rem;border-radius:50%}.lg.ok{background:var(--ok)}.lg.bad{background:var(--fault)}.lg.moved{border-radius:2px;background:var(--accent)}.panel-scroll{overflow-x:auto;padding:1.25rem 1.25rem 1rem}.panel figcaption{padding:.75rem 1.125rem .875rem;border-top:1px solid var(--rule);background:var(--panel);color:var(--ink-3);font-size:.8125rem;line-height:1.5}.log{min-height:5.5em;margin:0;padding:.625rem 1.125rem;border-top:1px solid var(--rule);background:var(--panel);color:var(--ink-2);font-family:var(--font-mono);font-size:.75rem;line-height:1.7;list-style:none}.log li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log .ts{color:var(--ink-3)}.log .who{color:var(--accent)}.log .is-bad{color:var(--fault)}.log .is-ok{color:var(--ok)}@media(prefers-reduced-motion:no-preference){.log li.is-new{animation:log-in .35s ease-out}}@keyframes log-in{from{opacity:0;transform:translateY(4px)}}.dg{display:block;width:100%;height:auto;font-family:var(--font-mono);font-size:11px;overflow:visible}.dg text{fill:var(--ink-2)}.dg .t{fill:var(--ink);font-family:var(--font-sans);font-size:12.5px;font-weight:600}.dg .s{fill:var(--ink-3);font-size:10.5px}.dg .s.strong{fill:var(--ink-2);font-size:11px}.dg .z{fill:var(--ink-3);font-size:9.5px;letter-spacing:.1em}.dg .c{fill:var(--ink-2);font-size:10px}.dg .lbl{fill:var(--ink-3);font-size:10px;paint-order:stroke;stroke:var(--panel);stroke-width:4px;stroke-linejoin:round}.dg .box{fill:var(--surface);stroke:var(--line);stroke-width:1}.dg .box.key{fill:var(--accent-wash);stroke:var(--accent)}.dg .chip{fill:var(--panel);stroke:var(--line)}.dg .chip.key{stroke:var(--accent);fill:var(--accent-wash)}.dg .zone{fill:color-mix(in srgb,var(--panel) 70%,transparent);stroke:var(--line);stroke-dasharray:4 4}.dg .zone.inner{fill:none}.dg .zone.lead{stroke:var(--accent)}.dg .edge{fill:none;stroke:var(--ink-3);stroke-width:1.25}.dg .edge.key{stroke:var(--accent);stroke-width:1.5}.dg .edge.dash{stroke-dasharray:3 4}.dg .head{fill:var(--ink-3)}.dg .head.key{fill:var(--accent)}.dg .strip{fill:var(--accent-wash);stroke:var(--accent);stroke-dasharray:2 3}.dg .strip-t{fill:var(--accent);font-weight:500}@media(prefers-reduced-motion:no-preference){.dg .flow{stroke-dasharray:6 4;animation:flow 1.1s linear infinite}}@keyframes flow{to{stroke-dashoffset:-10}}.edge-sim .nbox{fill:var(--surface);stroke:var(--line);transition:stroke .4s,fill .4s}.edge-sim .dot{fill:var(--ok);transition:fill .4s}.edge-sim .nm{fill:var(--ink);font-size:12px;font-weight:500}.edge-sim .st{font-size:10px;transition:opacity .3s}.edge-sim .st-ok{fill:var(--ok)}.edge-sim .st-bad{fill:var(--fault);opacity:0}.edge-sim .tunnel{transition:stroke .4s}.edge-sim .pkt{fill:var(--accent);transition:opacity .3s}.edge-sim .pod{transition:opacity .5s}.edge-sim .pod-to{opacity:0}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) #n2 .nbox{fill:color-mix(in srgb,var(--fault) 8%,var(--surface));stroke:var(--fault);stroke-width:1.5}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) #n2 .dot{fill:var(--fault)}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) #n2 .st-ok{opacity:0}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) #n2 .st-bad{opacity:1}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) #l2{stroke:var(--fault);stroke-dasharray:4 4}.edge-sim:is([data-phase=fault],[data-phase=diagnose],[data-phase=recover]) .pkt-2{opacity:0}.edge-sim[data-phase=diagnose] .pod-from .chip{stroke:var(--fault)}.edge-sim[data-phase=recover] .pod-from{opacity:.25}.edge-sim[data-phase=healed] .pod-from{opacity:0}.edge-sim:is([data-phase=recover],[data-phase=healed]) .pod-to{opacity:1}.section{display:grid;grid-template-columns:var(--rail)minmax(0,1fr);column-gap:3rem;padding-block:5.5rem 0}.section-head{position:sticky;top:calc(var(--bar-h) + 1.75rem);align-self:start}.eyebrow{margin-bottom:.375rem;color:var(--accent);font-family:var(--font-mono);font-size:.8125rem}.section h2{font-size:1.625rem;font-weight:600;letter-spacing:-.02em}.section-body{min-width:0;max-width:46rem}.section.is-wide{grid-template-columns:minmax(0,1fr)}.section.is-wide .section-head{position:static;max-width:40rem}.lead{margin-top:.625rem;color:var(--ink-2);font-size:1.125rem}.prose p+p{margin-top:1rem}.group{margin:2.5rem 0 .25rem;color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.section-body>.group:first-child{margin-top:.4rem}.cases{display:grid;gap:5rem;margin-top:3rem}.case{display:grid;grid-template-columns:minmax(0,1.25fr)minmax(0,1fr);gap:3.5rem;align-items:center}.case:nth-child(even){grid-template-columns:minmax(0,1fr)minmax(0,1.25fr)}.case:nth-child(even) .case-fig{order:2}.case-text h3{margin:.5rem 0 .875rem;font-size:1.625rem;letter-spacing:-.02em;line-height:1.2}.case-text>p:not([class]){color:var(--ink-2)}.kicker{color:var(--accent);font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.metrics{display:flex;flex-wrap:wrap;gap:1.25rem 2.25rem;margin:1.5rem 0 0}.metrics div{display:flex;flex-direction:column-reverse}.metrics dd{margin:0;color:var(--ink);font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.05}.metrics dt{max-width:11rem;margin-top:.25rem;color:var(--ink-3);font-size:.8125rem;line-height:1.35}.case-text .tags{margin-top:1.25rem}.case-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:.75rem 0 0;padding:0;list-style:none}.more li{display:grid;align-content:start;gap:.375rem;padding:1.25rem 1.375rem;border:1px solid var(--rule);border-radius:12px;background:var(--panel)}.more li>p:not([class]){color:var(--ink-2);font-size:.9375rem}.chart .legend{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:0 0 .75rem;padding:0;color:var(--ink-2);font-size:.8125rem;list-style:none}.sw.s1,.series.s1{--c:var(--s1)}.sw.s2,.series.s2{--c:var(--s2)}.sw.s3,.series.s3{--c:var(--s3)}.sw{display:inline-block;width:1rem;height:3px;margin-right:.45rem;border-radius:2px;background:var(--c);vertical-align:middle}.chart-plot{position:relative}.viz{display:block;width:100%;height:auto;font-family:var(--font-mono);overflow:visible}.viz .ax{fill:var(--ink-3);font-size:11px}.viz .grid{stroke:var(--rule);stroke-width:1}.viz .series polyline{fill:none;stroke:var(--c);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.viz .series circle{fill:var(--c);stroke:var(--panel);stroke-width:2}.viz .end{fill:var(--ink-2);font-family:var(--font-sans);font-size:12px;font-weight:500}.viz .cross{stroke:var(--ink-3);stroke-dasharray:3 3;opacity:0}.chart.is-hover .cross{opacity:1}.viz .hit{fill:transparent;cursor:crosshair}.tip{position:absolute;z-index:2;min-width:9.5rem;padding:.5rem .625rem;border:1px solid var(--rule);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);color:var(--ink-2);font-family:var(--font-mono);font-size:.75rem;line-height:1.6;pointer-events:none}.tip b{display:block;color:var(--ink);font-weight:500}.tip .sw{width:.625rem}.table-view{margin-top:.5rem}.table-view summary{display:inline-block;color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;cursor:pointer}.table-scroll{overflow-x:auto}.table-view table{margin-top:.5rem;border-collapse:collapse;color:var(--ink-2);font-size:.8125rem;font-variant-numeric:tabular-nums}.table-view th,.table-view td{padding:.25rem 1rem .25rem 0;border-bottom:1px solid var(--rule);text-align:left;white-space:nowrap}.table-view th{color:var(--ink);font-weight:500}.entries{margin:0;padding:0;list-style:none}.entry{display:grid;grid-template-columns:var(--margin-col)minmax(0,1fr);column-gap:var(--gap);padding-block:1rem}.when{padding-top:.15rem;color:var(--ink-3);font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;line-height:1.6}.what{min-width:0}.what>*+*{margin-top:.25rem}.title{font-size:1.0625rem;font-weight:600;line-height:1.45}.title a{color:var(--ink);text-decoration-color:color-mix(in srgb,var(--ink) 25%,transparent)}.title a:hover{color:var(--accent);text-decoration-color:initial}.title .ext,.chip .icon{width:.875rem;height:.875rem}.title .ext{margin-left:.25rem;vertical-align:-.05em;color:var(--ink-3)}.title.is-withheld{color:var(--ink-3);font-style:italic;font-weight:400}.redact{display:inline-block;width:4.5rem;height:.75em;margin-right:.5rem;border-radius:2px;background:var(--ink-3);opacity:.35;vertical-align:-.02em}.org,.authors,.venue,.meta,.detail{color:var(--ink-2);font-size:.9375rem}.org a,.venue a{color:var(--ink-2);text-decoration-color:color-mix(in srgb,var(--ink-2) 35%,transparent);overflow-wrap:anywhere}.org a:hover,.venue a:hover{color:var(--accent)}.points{margin:.5rem 0 0;padding-left:1.125rem;color:var(--ink-2);list-style-type:disc}.points li+li{margin-top:.35rem}.points li::marker{color:var(--ink-3)}.tags{padding-top:.25rem;color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;line-height:1.7}.thesis .label{color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.pills{display:flex;flex-wrap:wrap;gap:.5rem;padding-block:.25rem}.pill{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:var(--accent-wash);color:var(--accent);font-size:.8125rem;font-weight:500;line-height:1.5}.pill.is-award{background:var(--award-wash);color:var(--award)}.timeline .entry{padding-block:0}.timeline .when{padding-top:1.15rem}.timeline .what{position:relative;padding:1rem 0 1.25rem 1.625rem;border-left:1px solid var(--rule)}.timeline .what::before{content:"";position:absolute;top:1.45rem;left:-5px;width:9px;height:9px;border:2px solid var(--line);border-radius:50%;background:var(--paper)}.timeline .is-current .what::before{border-color:var(--ok);background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}.focus{display:grid;gap:.5rem;padding:1.5rem 1.625rem 1.625rem;border:1px solid var(--rule);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.focus>p:not([class]){color:var(--ink-2)}.focus-title{font-size:1.3125rem;font-weight:600;letter-spacing:-.01em;line-height:1.35}.talks{display:grid;gap:1rem;margin:.75rem 0 0;padding:0;list-style:none}.actions{padding-top:.5rem}.chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border:1px solid var(--rule);border-radius:6px;background:var(--panel);color:var(--ink-2);font-family:var(--font-mono);font-size:.75rem;line-height:1.6;text-decoration:none;cursor:pointer}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip.is-done{border-color:var(--ok);color:var(--ok)}.bib summary{display:inline-flex;list-style:none}.bib summary::-webkit-details-marker{display:none}.bib summary::after{content:"+";color:var(--ink-3)}.bib[open] summary::after{content:"−"}.bib-box{position:relative;margin-top:.5rem;border:1px solid var(--rule);border-radius:8px;background:var(--wash)}.bib-box pre{margin:0;padding:.875rem 1rem;overflow-x:auto;color:var(--ink-2);font-family:var(--font-mono);font-size:.75rem;line-height:1.6}.bib-box .chip{position:absolute;top:.5rem;right:.5rem}.skills{display:grid;gap:.875rem;margin:0}.skills .row{display:grid;grid-template-columns:11rem minmax(0,1fr);column-gap:var(--gap);align-items:baseline}.skills dt{color:var(--ink);font-size:.9375rem;font-weight:500;line-height:1.45}.skills dd{margin:0;color:var(--ink-2);font-size:.9375rem}.email-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.email{font-size:clamp(1.125rem,1rem + .8vw,1.5rem);font-weight:500;letter-spacing:-.01em;overflow-wrap:anywhere}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:6rem;padding-block:1.75rem calc(2.5rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--rule);color:var(--ink-3);font-size:.8125rem}.egg{color:var(--ink-3);text-decoration:none}.egg:hover{color:var(--accent)}.notfound{padding-block:6rem}.notfound h1{margin:.5rem 0 1rem;font-size:2.25rem;letter-spacing:-.02em}@media(max-width:64rem){.hero{grid-template-columns:minmax(0,1fr);gap:2.5rem}.hero-panel{max-width:40rem}.case,.case:nth-child(even){grid-template-columns:minmax(0,1fr);gap:1.75rem}.case:nth-child(even) .case-fig{order:0}.case-text{max-width:42rem}}@media(max-width:52rem){.section{grid-template-columns:minmax(0,1fr);padding-top:4rem}.section-head{position:static;margin-bottom:1.25rem}.nav{gap:1.125rem}:root{--margin-col:7.25rem;--gap:1.25rem}}@media(max-width:40rem){.bar-in{flex-wrap:wrap;gap:0 1rem}.brand{opacity:1;transform:none}.nav{order:3;width:calc(100% + 2.5rem);margin-inline:-1.25rem;padding:0 1.25rem .625rem;overflow-x:auto;scrollbar-width:none;font-size:.875rem}.nav::-webkit-scrollbar{display:none}.hero{padding-top:2.25rem}.entry,.skills .row{grid-template-columns:minmax(0,1fr)}.when{padding:0 0 .125rem}.timeline .when{padding:1rem 0 0 1.625rem;border-left:1px solid var(--rule)}.timeline .what{padding-top:.125rem}.timeline .what::before{top:-1.05rem}.panel-scroll{padding:1rem .75rem .75rem}.panel-scroll .dg{min-width:32rem}.panel-scroll .edge-sim{min-width:0}.case-fig:has(.dg) figcaption::before{content:"Swipe the diagram sideways to see all of it.";display:block;margin-bottom:.25rem;color:var(--accent);font-family:var(--font-mono);font-size:.6875rem}.panel-scroll .viz{min-width:26rem}.more{grid-template-columns:minmax(0,1fr)}.metrics dd{font-size:1.75rem}.skills dt{color:var(--ink-3);font-size:.875rem}}@media print{:root{--paper:#fff;--panel:#fff;--ink:#000;--ink-2:#222;--ink-3:#555;--wash:#fff;--accent:#000;--shadow:none;font-size:10pt}.bar,.links,.actions,.log,.panel-legend,.table-view,.foot .egg,.skip{display:none}.panel{background-image:none}.section{padding-top:1.5rem}.section-head{position:static}.entry,.case{break-inside:avoid}a{text-decoration:none}}