@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/press-start-2p-latin-400-normal._wFEWmAB.woff2)format("woff2"),url(/_astro/press-start-2p-latin-400-normal.KLytu4cr.woff)format("woff")}@property --poof-in{syntax:"<number>";inherits:true;initial-value:0}@property --poof-out{syntax:"<number>";inherits:true;initial-value:1}@layer components{.poof{--shown:var(--poof-shown,0);--poof-in:var(--shown);--poof-out:calc(1 - var(--shown));transition-property:--poof-in,--poof-out;transition-duration:calc(var(--shown) * var(--poof-duration,.77s)), calc((1 - var(--shown)) * var(--poof-duration,.77s));transition-timing-function:linear;transition-delay:calc(var(--poof-wait,80ms) + var(--shown) * var(--poof-order) * var(--poof-stagger,.1s));display:block;position:relative;container-type:size}.poof-thing{--arrived:clamp(0, var(--poof-in) * 1000, 1);--still-here:clamp(0, 1 - var(--poof-out) / .0975, 1);width:100%;height:100%;opacity:calc(var(--shown) * var(--arrived) + (1 - var(--shown)) * var(--still-here));display:block}.poof-thing>*{width:100%;height:100%;display:block}.poof-cloud{--t:var(--poof-in);--grow:calc(clamp(0, var(--t) / .157, 1) - 1);--grown:calc(1 + 2.70158 * pow(var(--grow), 3) + 1.70158 * pow(var(--grow), 2));--vanish:clamp(0, (var(--t) - .305) / .695, 1);--breaking:clamp(0, (var(--t) - .305) / .322, 1);--second:clamp(0, (var(--t) - .305) / .161, 1);--third:clamp(0, (var(--t) - .466) / .161, 1);--last:clamp(0, (var(--t) - .627) / .373, 1);--at:calc(clamp(0, (var(--t) - .305) / .022, 1) + clamp(0, (var(--t) - .466) / .022, 1) + clamp(0, (var(--t) - .627) / .022, 1));--frame:min(2, round(down, var(--at), 1));--blend:calc(var(--at) - var(--frame));--cuts:calc(.25 * clamp(0, var(--at) - 1, 1) + .1 * clamp(0, var(--at) - 2, 1));--thinning:calc(.2 * var(--second) + .1 * var(--third));--puff:calc(var(--grown) * (1 + .25 * var(--breaking)) * (1 + .35 * (1 - pow(1 - var(--last), 2))));--twist:calc((var(--grown) - 1) * .5 + 1 - pow(1 - var(--vanish), 2));top:var(--poof-cloud-y,50%);left:var(--poof-cloud-x,50%);width:calc(var(--size) * var(--poof-cloud-size,1) * var(--poof-cloud-span,1) * 100cqmax);aspect-ratio:1;opacity:calc((.9 - var(--cuts) - var(--thinning)) * pow(1 - var(--last), 2));translate:-50% calc(-50% - var(--vanish) * 12%);scale:calc(var(--flip) * var(--puff)) var(--puff);rotate:calc(var(--turn) + var(--twist) * var(--spin));pointer-events:none;position:absolute}.poof-cloud:before,.poof-cloud:after{content:"";background:var(--art) no-repeat 0 0 / 400% 100%;position:absolute;inset:0}.poof-cloud:before{background-position-x:calc(var(--frame) * 100% / 3);opacity:calc(1 - var(--blend))}.poof-cloud:after{background-position-x:calc((var(--frame) + 1) * 100% / 3);opacity:var(--blend)}@starting-style{.poof{--poof-in:0;--poof-out:1}}.poof-cloud[data-shape=round]{--art:url(/about/clouds/round.webp)}.poof-cloud[data-shape=wide]{--art:url(/about/clouds/wide.webp)}.poof-cloud[data-shape=tall]{--art:url(/about/clouds/tall.webp)}@media (prefers-reduced-motion:reduce){.poof{transition:none}.poof-thing{transition:opacity var(--duration-quick)}.poof-cloud{display:none}}.about{gap:var(--space-block) clamp(2rem, 6vw, 5rem);max-width:calc(var(--measure) + 24rem + 5rem);padding:var(--gutter);grid-template-areas:"title""portrait""bio";margin-inline:auto;display:grid}.about>h1{grid-area:title}@media (width>=56rem){.about{grid-template-columns:minmax(0, var(--measure)) minmax(16rem, 24rem);grid-template-areas:"title title""bio portrait";align-items:start}}.about-bio{grid-area:bio}.about-bio>*+*{margin-block-start:1.1em}.about-links{font-family:var(--font-display);font-size:var(--text-sm);flex-wrap:wrap;align-items:baseline;gap:1rem 1.5rem;padding-block-start:.5rlh;font-weight:600;display:flex}.about-portrait{aspect-ratio:768/939;background:var(--color-paper-raised);border-radius:.75rem;grid-area:portrait;width:min(100%,24rem);position:relative;overflow:hidden}@media (width<56rem){.about-portrait{z-index:1;width:auto;height:min(38svh,18rem);box-shadow:0 0 0 100vmax var(--color-paper);clip-path:inset(-.75rem -100vmax);justify-self:center;position:sticky;top:3.75rem}}@media (width<34rem){.about-portrait{top:.75rem}}.about-drawn{max-width:none;position:absolute}.about-drawn>.poof{width:100%;height:100%}img.about-drawn{opacity:0}.about:not(:hover,:focus-within,:has(:checked),[data-showing]) .about-drawn{display:none}.about-crt{opacity:0;position:absolute;inset:0}.about-crt:before{content:"";background:repeating-linear-gradient(#00000026 0 1px,#0000 1px 3px),radial-gradient(#0000 55%,#00000080);position:absolute;inset:0;box-shadow:inset 0 0 3rem #00000073}.about-crt:after{content:"";opacity:0;background:#fff;position:absolute;inset:0}.about-hud{color:#fff;text-shadow:2px 2px #000;justify-items:end;gap:.6em;font:.6rem/1 "Press Start 2P",monospace;display:grid;position:absolute;top:4%;right:4%}.about-hud-hearts{gap:.3em;display:flex}.about-hud-hearts svg{fill:#e03131;filter:drop-shadow(2px 2px #000);width:1.6em;scale:0}.about-hud-hearts [data-full=false]{fill:#fff}.about-hud-score{counter-reset:score var(--score)}.about-hud-score:after{content:"SCORE " counter(score)}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt{opacity:1}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt .about-hud-score{--score:5200}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt .about-hud-hearts svg{scale:1}@media (prefers-reduced-motion:no-preference){.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt:before{animation:3s step-end infinite crt-flicker}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt:after{animation:.4s ease-out crt-on}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt .about-hud-score{transition:--score 1.2s steps(26,end) .3s}.about:is(:has([data-cue=games]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=games] :checked),[data-showing=games]) .about-crt .about-hud-hearts svg{transition:scale .16s var(--ease-snap) calc(.35s + var(--i) * 90ms)}}.about-drawn[data-layer=ai]{--bands-hidden:polygon(0 0%, 35% 0%, 35% 0%, 0 0%, 0 25%, 80% 25%, 80% 25%, 0 25%, 0 31.25%, 55% 31.25%, 55% 31.25%, 0 31.25%, 0 37.5%, 100% 37.5%, 100% 37.5%, 0 37.5%, 0 56.25%, 20% 56.25%, 20% 56.25%, 0 56.25%, 0 75%, 65% 75%, 65% 75%, 0 75%, 0 75%, 90% 75%, 90% 75%, 0 75%, 0 100%, 45% 100%, 45% 100%, 0 100%);opacity:1;clip-path:var(--bands-hidden);transition-property:clip-path,translate;transition-duration:.2s;transition-timing-function:steps(4,jump-none);translate:4%}.about-glitch{opacity:0;position:absolute;inset:0}.about-glitch:before{content:"";opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.about-bubble{color:#14161b;max-width:45%;font:700 .8rem / 1.2 var(--font-display);transform-origin:80% 100%;background:#fff;border:2px solid #14161b;border-radius:1em;padding:.6em .8em;position:absolute;top:6%;left:6%;scale:0}.about-bubble:after{content:"";border:inherit;background:inherit;border-width:0 2px 2px 0;width:1em;height:1em;position:absolute;bottom:-.6em;right:18%;rotate:45deg}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-drawn[data-layer=ai]{clip-path:polygon(0 0%,100% 0%,100% 12.5%,0 12.5%,0 12.5%,100% 12.5%,100% 25%,0 25%,0 25%,100% 25%,100% 37.5%,0 37.5%,0 37.5%,100% 37.5%,100% 50%,0 50%,0 50%,100% 50%,100% 62.5%,0 62.5%,0 62.5%,100% 62.5%,100% 75%,0 75%,0 75%,100% 75%,100% 87.5%,0 87.5%,0 87.5%,100% 87.5%,100% 100%,0 100%);transition-duration:.32s;transition-timing-function:steps(5,jump-none);translate:none}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-glitch{opacity:1}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-bubble{scale:1}@media (prefers-reduced-motion:no-preference){.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-drawn[data-layer=ai]{animation:7s step-end .35s infinite ai-twitch}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-glitch:before{animation:.18s step-end ai-static}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-bubble{transition:scale .2s var(--ease-snap) .5s}}@media (prefers-reduced-motion:reduce){.about-drawn[data-layer=ai]{opacity:0;clip-path:none;transition:opacity var(--duration-quick);translate:none}.about:is(:has([data-cue=ai]:hover:not([data-let-go])),:not(:has(.cue:hover)):has([data-cue=ai] :checked),[data-showing=ai]) .about-drawn[data-layer=ai]{opacity:1;clip-path:none;transition:opacity var(--duration-quick)}}.about-portrait-base{width:100%;height:100%;display:block}.about:has([data-cue=london]:hover:not([data-let-go])) [data-layer=london],.about:has([data-cue=married]:hover:not([data-let-go])) [data-layer=married],.about:has([data-cue=dog]:hover:not([data-let-go])) [data-layer=dog],.about:has([data-cue=work]:hover:not([data-let-go])) [data-layer=work],.about:has([data-cue=degree]:hover:not([data-let-go])) [data-layer=degree],.about:has([data-cue=reading]:hover:not([data-let-go])) [data-layer=reading],.about:has([data-cue=games]:hover:not([data-let-go])) [data-layer=games],.about:has([data-cue=instruments]:hover:not([data-let-go])) [data-layer=instruments],.about:has([data-cue=ai]:hover:not([data-let-go])) [data-layer=ai],.about:has([data-cue=travel]:hover:not([data-let-go])) [data-layer=travel],.about:not(:has(.cue:hover)):has([data-cue=london] :checked) [data-layer=london],.about:not(:has(.cue:hover)):has([data-cue=married] :checked) [data-layer=married],.about:not(:has(.cue:hover)):has([data-cue=dog] :checked) [data-layer=dog],.about:not(:has(.cue:hover)):has([data-cue=work] :checked) [data-layer=work],.about:not(:has(.cue:hover)):has([data-cue=degree] :checked) [data-layer=degree],.about:not(:has(.cue:hover)):has([data-cue=reading] :checked) [data-layer=reading],.about:not(:has(.cue:hover)):has([data-cue=games] :checked) [data-layer=games],.about:not(:has(.cue:hover)):has([data-cue=instruments] :checked) [data-layer=instruments],.about:not(:has(.cue:hover)):has([data-cue=ai] :checked) [data-layer=ai],.about:not(:has(.cue:hover)):has([data-cue=travel] :checked) [data-layer=travel]{--poof-shown:1;opacity:1}.about:has(.cue:hover) .cue:not(:hover){background:0 0}:root[data-mode=agent] .about{display:none}}@property --score{syntax:"<integer>";inherits:false;initial-value:0}@keyframes crt-on{0%{opacity:1;scale:1 .01}50%{opacity:.8;scale:1}to{opacity:0;scale:1}}@keyframes crt-flicker{0%,to{opacity:1}47%{opacity:.85}48%{opacity:1}}@keyframes ai-static{0%{opacity:.9}50%{opacity:.5}to{opacity:0}}@keyframes ai-twitch{0%{translate:none}13%{translate:3%}13.6%{translate:-2%}14.2%,to{translate:none}}
