@font-face{font-family:Doto;font-weight:100 900;font-display:swap;src:url(/fonts/doto.woff2) format("woff2")}:root{--logo-size: min(88vw, 72svh);--logo-bottom: calc(38svh + var(--logo-size) / 2);--overlay-content: 7.5rem;font-size:clamp(100%,calc(var(--logo-size) * .0235),225%)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font-family:Doto,ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;-webkit-font-smoothing:antialiased}#stage{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.js #stage,.js .overlay{opacity:0}.stage-live #stage,.stage-live .overlay,.no-webgl .overlay{opacity:1;transition:opacity .9s ease-out}.stage-live .overlay,.no-webgl .overlay{transition-delay:.15s}.no-webgl #stage{display:none}.logo-area{position:absolute;inset:0 0 auto;height:var(--logo-bottom);touch-action:none}.no-webgl .logo-area{display:none}.overlay{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1.25rem;padding:calc(var(--logo-bottom) + clamp(.5rem,100svh - var(--logo-bottom) - var(--overlay-content) - 2.5rem,6rem)) 16px max(2.5rem,env(safe-area-inset-bottom));text-align:center}.roles{max-width:100%;font-size:1rem;letter-spacing:.08em}.experience{margin:1.25rem 0 0;color:var(--cream);font-size:.875rem;opacity:.55;font-weight:300}.tagline{display:flex;justify-content:center;margin:0;padding:0;color:var(--ochre);list-style:none}.tagline li{position:relative;padding:0 3.25ch}.tagline button{margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tagline button:focus-visible{outline:2px solid var(--ochre-hi);outline-offset:4px}.stage-live:not(.no-webgl) .tagline button{color:transparent}.stage-live:not(.no-webgl) .tagline button:hover{cursor:none}.tagline li+li:before{content:"·";content:"·" / "";position:absolute;left:0;transform:translate(-50%)}.links,.roles,.experience,.tagline li,.tagline li:before,.branch{transition:filter .2s ease-out}@media(hover:hover){.roles:has(.tagline button:hover) .experience,.overlay:has(.tagline button:hover) .links,.tagline:has(button:hover) li:not(:has(button:hover)),.tagline li:has(button:hover):before,.tagline li:has(button:hover) .branch{filter:opacity(.15)}.overlay:has(.links a:hover) .roles{filter:opacity(.5)}}.branch{position:absolute;top:calc(100% + .25rem);left:0;width:100%;height:.625rem;overflow:visible;color:var(--cream);opacity:.2;shape-rendering:crispEdges;transform:scaleY(-1)}.branch line{stroke:currentColor}.branch path{fill:none;stroke:currentColor;stroke-width:1.2;shape-rendering:auto}.links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 1.875rem;margin:0 0 1rem;padding:0;list-style:none}.links a{color:var(--cream);font-size:1rem;text-decoration:none;text-transform:lowercase;transition:color .12s}.links a:before,.links a:after{display:inline-block;color:var(--ochre-dim);transition:color .12s,transform .18s ease-out}.links a:before{content:"[";content:"[" / "";margin-right:.5ch}.links a:after{content:"]";content:"]" / "";margin-left:.5ch}.links a:hover,.links a:focus-visible{color:var(--ochre-bright)}.links a:hover:before,.links a:hover:after,.links a:focus-visible:before,.links a:focus-visible:after{color:var(--ochre-hi)}.links a:hover:before,.links a:focus-visible:before{transform:translate(-.4ch)}.links a:hover:after,.links a:focus-visible:after{transform:translate(.4ch)}.links li{transition:filter .2s ease-out}.links:has(a:hover) li:not(:has(a:hover)){filter:opacity(.5)}.links a:focus-visible{outline:2px solid var(--ochre-hi);outline-offset:4px}@media(max-width:51rem){:root{--overlay-content: 14rem}.tagline{flex-direction:column;gap:.5rem}.tagline li{padding:0}.tagline li+li:before,.branch{display:none}}.bio:empty{display:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
