@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/instrument-sans.woff2)format("woff2");font-weight:400 600;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2");font-weight:500;font-display:swap}:root{--paper:#f3f1ec;--ink:#16171a;--ink-soft:#45474d;--ink-faint:#8d8f94;--accent:#5b9460;--pad:clamp(20px, 3.6vw, 56px);--serif:"Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans:"Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .09 0 0 0 0 .09 0 0 0 0 .1 .16 0 0 0 -.055'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E")}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}a,button{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.hero{min-height:100svh;padding:var(--pad);touch-action:manipulation;grid-template:"name bio"". ."1fr"caption links"/minmax(0,1fr) minmax(0,23rem);column-gap:2rem;display:grid;position:relative;overflow:clip}@media (hover:hover){.hero{cursor:crosshair}}@property --bracket{syntax:"<length>";inherits:false;initial-value:14px}.hero:before{--ink-mark:color-mix(in srgb, var(--ink) 34%, transparent);content:"";inset:calc(var(--pad) * .42);pointer-events:none;background:linear-gradient(var(--ink-mark), var(--ink-mark)) left top / var(--bracket) 1px, linear-gradient(var(--ink-mark), var(--ink-mark)) left top / 1px var(--bracket), linear-gradient(var(--ink-mark), var(--ink-mark)) right top / var(--bracket) 1px, linear-gradient(var(--ink-mark), var(--ink-mark)) right top / 1px var(--bracket), linear-gradient(var(--ink-mark), var(--ink-mark)) left bottom / var(--bracket) 1px, linear-gradient(var(--ink-mark), var(--ink-mark)) left bottom / 1px var(--bracket), linear-gradient(var(--ink-mark), var(--ink-mark)) right bottom / var(--bracket) 1px, linear-gradient(var(--ink-mark), var(--ink-mark)) right bottom / 1px var(--bracket);background-repeat:no-repeat;position:absolute}.name,.bio,.links,.caption{z-index:2;cursor:auto;position:relative}.sky,.hud,.air,.net{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sky{z-index:0}.hud{z-index:3}.air{z-index:4;will-change:translate;width:auto;height:auto;inset:0 auto auto 0}.net{z-index:5;overflow:visible}.stage{z-index:1;pointer-events:none;position:absolute;inset:0;container-type:size}.portrait{width:min(1000px, 100cqh, calc((50cqw - var(--pad) - 25rem) / .31));aspect-ratio:1654/1707.66;pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .4s var(--ease-out);margin:0;position:absolute;bottom:0;left:50%;translate:-50% 9%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.portrait-photo,.portrait-reveal{width:100%;position:absolute;bottom:0;left:0}.portrait-photo{pointer-events:none;-webkit-user-drag:none;height:94.34%}.portrait-reveal{height:100%}.hero.is-reading .portrait{opacity:.2}.name{font-family:var(--serif);letter-spacing:-.012em;grid-area:name;place-self:start;margin:0;font-size:clamp(3.4rem,7.4vw,7.25rem);font-weight:400;line-height:.88}.name .line{display:block}.name .char{transform-origin:50% 85%;display:inline-block}.bio{max-width:23rem;color:var(--ink-soft);grid-area:bio;justify-self:end;font-size:.97rem;line-height:1.62}.bio p{text-wrap:pretty;margin:0}.bio p+p{margin-top:.85em}.bio .lead{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink);font-size:1.3em;font-style:italic;line-height:0}.reveal-cue{font:inherit;color:var(--ink);background:linear-gradient(90deg, var(--accent) 0 2.5px, transparent 2.5px) 0 100% / 5px 1.5px repeat-x;cursor:pointer;border:0;padding:0 0 2px}.reveal-cue:hover,.reveal-cue:focus-visible{animation:.48s linear infinite march}@keyframes march{to{background-position-x:5px}}.links{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;grid-area:links;place-self:end;gap:.4rem 1.4rem;font-size:.72rem;font-weight:500;display:flex}.links a{transition:background-size .48s var(--ease-out), color .2s ease;background:linear-gradient(currentColor,currentColor) 100% 100%/0 1px no-repeat;padding-block:.3rem .15rem;text-decoration:none}.links a:hover,.links a:focus-visible{color:var(--accent);background-position:0 100%;background-size:100% 1px}.links .arrow{fill:none;width:.62em;height:.62em;stroke:var(--ink-faint);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;margin-left:.45em;transition:stroke .2s;overflow:visible}.links .arrow path{stroke-dasharray:1}.links a:hover .arrow,.links a:focus-visible .arrow{stroke:var(--accent)}@media (prefers-reduced-motion:no-preference){.links a:hover .arrow,.links a:focus-visible .arrow{animation:.82s linear arrow-fly}.links a:hover .arrow-shaft,.links a:focus-visible .arrow-shaft{animation:.82s linear arrow-shaft}.links a:hover .arrow-head,.links a:focus-visible .arrow-head{animation:.82s linear arrow-head}}@keyframes arrow-fly{0%{animation-timing-function:cubic-bezier(.55,0,.8,.2)}28%{opacity:0;translate:.7em -.7em}28.01%,to{opacity:1;translate:0}}@keyframes arrow-shaft{0%,28%{stroke-dashoffset:0}28.01%{stroke-dashoffset:1px;animation-timing-function:cubic-bezier(.3,0,.2,1)}62%,to{stroke-dashoffset:0}}@keyframes arrow-head{0%,28%{stroke-dashoffset:0}28.01%,54%{stroke-dashoffset:1px;animation-timing-function:cubic-bezier(.3,0,.2,1)}86%,to{stroke-dashoffset:0}}.caption{max-width:15.5rem;font-family:var(--mono);color:var(--ink-faint);text-wrap:pretty;grid-area:caption;place-self:end start;margin:0;font-size:.68rem;line-height:1.6}.caption .fig{font-family:var(--serif);color:var(--ink);margin-right:.3em;font-size:1.1rem;font-style:italic;line-height:1}.readout{letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:.2rem 1.1rem;margin-top:.55rem;font-size:.6rem;display:flex}.readout b{color:var(--ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.02em;margin-left:.35em;font-weight:500}.for-touch{display:none}@media (hover:none){.for-pointer{display:none}.for-touch{display:inline}}.net .edge{stroke-linecap:round}.net .edge.pos{stroke:var(--accent)}.net .edge.neg{stroke:var(--ink-faint)}.net .flow{stroke-linecap:round;stroke-dasharray:0 9;animation:.62s linear infinite flow}.net .flow.pos{stroke:var(--accent)}.net .flow.neg{stroke:var(--ink-faint)}@keyframes flow{to{stroke-dashoffset:-9px}}.net .edge,.net .flow{transition:opacity .26s}.net .mind-net.has-focus .edge:not(.is-linked){opacity:.1}.net .mind-net.has-focus .flow:not(.is-linked){opacity:0}.net .base{fill:var(--paper);stroke:var(--ink-faint);stroke-opacity:.65}.net .act{fill:var(--accent)}.net .act.neg{fill:var(--ink-faint)}.net .off{stroke:var(--ink);stroke-linecap:round;display:none}.net .unit.is-off .act{display:none}.net .unit.is-off .off{display:inline}.net .unit.is-focused .base,.net .unit:focus-visible .base{stroke:var(--accent);stroke-opacity:1}.net .unit{outline:none}.net .hit{fill:#0000}.net.is-open .hit{pointer-events:all;cursor:pointer}.net.is-open .unit.output .hit{cursor:help}.net .backdrop{fill:var(--paper)}.net .leader{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:.5 4}.net text{font-family:var(--mono);fill:var(--ink-soft);font-size:9.5px}.net .num{fill:var(--ink-faint);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--paper);stroke-width:2.5px;stroke-linejoin:round;font-size:7px}.net .unit.is-focused .num{fill:var(--ink);font-weight:500}.net .weight{fill:var(--ink);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;font-size:7px;font-weight:500}.net .ring{fill:none;stroke-width:1.2px}.net .ring.pos{stroke:var(--accent)}.net .ring.neg{stroke:var(--ink-faint)}.net .tag{fill:var(--accent);letter-spacing:.04em;font-size:8.5px}.mind{z-index:6;width:15.5rem;font-family:var(--mono);color:var(--ink-soft);background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);cursor:auto;opacity:0;visibility:hidden;transition:opacity .16s ease, scale .24s var(--ease-out), visibility 0s linear .24s;border-radius:10px;padding:.7rem .8rem .75rem;font-size:.66rem;line-height:1.55;position:absolute;top:0;left:0;scale:.94;box-shadow:inset 0 1px #fff9,0 18px 40px -18px #16171a59}.mind.is-open{opacity:1;visibility:visible;transition:opacity .22s ease, scale .46s var(--ease-spring), visibility 0s;scale:1}.mind-note{min-height:4.6em;color:var(--ink);text-wrap:pretty;margin:0}.mind-label{letter-spacing:.13em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.5em;margin-bottom:.3rem;font-size:.58rem;font-weight:500;display:flex}.mind-label:before{content:"";width:.46rem;height:.46rem;box-shadow:0 0 0 .2rem color-mix(in srgb, currentColor 16%, transparent);background:currentColor;border-radius:50%;flex:none;transition:opacity .12s linear,background-color .2s}.mind-label.is-live:before{opacity:calc(.25 + .75 * var(--level,1))}.mind-label.is-live.is-neg:before{background-color:var(--ink-faint)}@media (prefers-reduced-motion:no-preference){.mind-label:not(.is-live):before{animation:2.6s ease-in-out infinite breathe}}@keyframes breathe{50%{opacity:.3;scale:.8}}.mind-text{display:block}.mind-controls{color:var(--ink-faint);grid-template-columns:auto auto;justify-content:start;align-items:center;gap:3px .5rem;margin-top:.6rem;display:grid}.mind-axis{font-size:.6rem}.skill-bars{border-bottom:1px solid color-mix(in srgb, var(--ink) 12%, transparent);grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;height:1.05rem;padding:0 2px;display:grid}.skill-bars span{width:.5rem;height:calc(var(--skill,0) * 100%);background:var(--ink-faint);opacity:.4;transition:height .5s var(--ease-out), opacity .2s ease, background-color .2s ease;border-radius:2px 2px 0 0;justify-self:center}.skill-bars span.is-on{background:var(--accent);opacity:1}.skill-bars span.is-peek{opacity:.8}.mind-cost{color:var(--ink-faint);font-variant-numeric:tabular-nums;margin:.4rem 0 0;font-size:.6rem;line-height:1.6}.mind-cost b{color:var(--ink-soft);font-weight:500}.segmented{background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink-soft);font-variant-numeric:tabular-nums;border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid;position:relative;box-shadow:inset 0 1px 2px #16171a14}.segmented label{z-index:1;text-align:center;cursor:pointer;border-radius:999px;min-width:1.45rem;padding:.1rem .22rem;position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{transition:color .22s}.segmented input:checked+span{color:var(--paper)}.segmented label:has(input:focus-visible){box-shadow:0 0 0 2px var(--accent)}.segmented-pill{background:var(--accent);width:calc(16.6667% - .666667px);box-shadow:0 1px 0 #ffffff40 inset, 0 1px 3px color-mix(in srgb, var(--accent) 45%, transparent);transition:translate .42s var(--ease-spring);border-radius:999px;position:absolute;top:2px;bottom:2px;left:2px}.segmented:has(label:nth-child(2) input:checked) .segmented-pill{translate:100%}.segmented:has(label:nth-child(3) input:checked) .segmented-pill{translate:200%}.segmented:has(label:nth-child(4) input:checked) .segmented-pill{translate:300%}.segmented:has(label:nth-child(5) input:checked) .segmented-pill{translate:400%}.segmented:has(label:nth-child(6) input:checked) .segmented-pill{translate:500%}.mind-actions{gap:1.1rem;margin-top:.55rem;display:flex}.mind-actions button{font:inherit;color:var(--ink);cursor:pointer;transition:color .2s ease, background-size .38s var(--ease-out);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;border:0;padding:0 0 1px}.mind-actions button:hover{color:var(--accent);background-position:100% 100%;background-size:0 1px}.mind-learn:before{content:"";vertical-align:-.08em;width:.8em;height:.8em;transition:rotate .5s var(--ease-out);background:currentColor;margin-right:.35em;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2.2 6.8A4 4 0 1 0 3.3 3.1'/%3E%3Cpath d='M3.6 0.9 3.3 3.1 5.5 3.4'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2.2 6.8A4 4 0 1 0 3.3 3.1'/%3E%3Cpath d='M3.6 0.9 3.3 3.1 5.5 3.4'/%3E%3C/svg%3E") 50%/contain no-repeat}.mind-learn:hover:before{rotate:-200deg}.mind-toggle{left:var(--pad);bottom:calc(var(--pad) + 4.2rem);z-index:7;font-family:var(--mono);color:var(--paper);background:var(--ink);cursor:pointer;border:0;border-radius:999px;padding:.45rem .75rem;font-size:.7rem;position:absolute}.mind-toggle:not(:focus-visible){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;overflow:hidden}.no-js .caption,.no-js .mind,.no-js .mind-toggle{display:none}@media print{.sky,.hud,.air,.net,.mind,.mind-toggle,.caption{display:none}body{background:0 0}.hero{height:100vh;min-height:0}.links .arrow{display:none}.links a:after{content:" " attr(href);text-transform:none;letter-spacing:0;font-size:.8em}}@media (prefers-reduced-motion:no-preference){.hero:before{animation:frame-in 1.1s var(--ease-out) 50ms backwards}.name .char{animation:letter-in 1.15s var(--ease-out) backwards;animation-delay:calc(.15s + var(--i) * 55ms)}.bio p{animation:rise-in 1s var(--ease-out) .55s backwards}.bio p+p{animation-delay:.68s}.links a{animation:rise-in .9s var(--ease-out) backwards}.links a:first-child{animation-delay:.8s}.links a:nth-child(2){animation-delay:.86s}.links a:nth-child(3){animation-delay:.92s}.links a:nth-child(4){animation-delay:.98s}.caption{animation:rise-in 1s var(--ease-out) 1.1s backwards}.portrait{animation:develop 1.9s var(--ease-out) .2s backwards}}@keyframes frame-in{0%{--bracket:0px;opacity:0}}@keyframes letter-in{0%{opacity:0;filter:blur(8px);transform:translateY(.5em)rotate(8deg)}70%{filter:blur()}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}}@keyframes develop{0%{opacity:0;filter:grayscale()brightness(1.2);scale:1.02}}@media (prefers-reduced-motion:reduce){.reveal-cue:hover,.reveal-cue:focus-visible{animation:none}.net .flow{display:none}.mind,.mind.is-open,.segmented-pill,.links a{transition:none}}@media (width<=1179px){.hero{grid-template:"name.""bio.""links.""caption."1fr/minmax(0,27rem) minmax(0,1fr)}.portrait{width:min(64cqw,97cqh,820px);left:auto;right:-3%;translate:0 9%}.bio{justify-self:start;margin-top:1.5rem}.links{place-self:start;margin-top:1.25rem}}@media (width<=699px),(width<=1179px) and (orientation:portrait){.hero{flex-direction:column;padding-bottom:0;display:flex}.stage{min-height:62vw;margin:.5rem calc(-1 * var(--pad)) 0;flex:1 1 0;position:relative;inset:auto}.portrait{width:min(122cqw,104cqh,900px);left:50%;right:auto;translate:-50% 10%}.bio{max-width:34rem;margin-top:1.1rem}.links{align-self:flex-start;margin-top:1rem}.caption{align-self:flex-start;margin-top:.9rem}.mind-toggle{bottom:var(--pad)}}@media (width<=699px){.bio{font-size:.92rem;line-height:1.55}}
