:root{--base:#0b2a3f;--base-deep:#081f2f;--on-base:#e8f3f6;--on-base-soft:#a9c3cf;--accent:#3ee0a4;--on-accent:#062a24;--paper:#f3f7f9;--ink:#0f2330;--ink-soft:#4a6070;--rule:#d3dee4;--link:#0a6b62;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--gutter:clamp(16px, 5vw, 56px);--section:clamp(4rem, 10vw, 8rem)}@media (prefers-color-scheme:dark){:root{--paper:#0d1f2b;--ink:#e8f3f6;--ink-soft:#a9c3cf;--rule:#24404f;--link:#5fe3b3}}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:1.0625rem;line-height:1.55}h1,h2,h3{font-family:var(--mono);letter-spacing:-.02em;text-wrap:balance;font-weight:500;line-height:1.15}ul,ol{padding:0;list-style:none}a{color:inherit;text-underline-offset:.2em}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.wrap{max-width:76rem;padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section)}.section-title{font-size:clamp(2rem,4.5vw,3.25rem)}.on-base{color:var(--on-base);background:var(--base)}.about[data-v-7902f598]{border-top:1px solid var(--rule)}.grid[data-v-7902f598]{gap:3rem 4rem;display:grid}.story[data-v-7902f598]{align-content:start;gap:1rem;max-width:34rem;display:grid}h3[data-v-7902f598]{margin-bottom:.75rem;font-size:1.375rem}.credentials[data-v-7902f598]{margin-bottom:2.5rem}.credentials li[data-v-7902f598]{color:var(--ink-soft);padding-block:.5rem}b[data-v-7902f598]{color:var(--ink);font-weight:600;display:block}dl>div[data-v-7902f598]{grid-template-columns:6rem 1fr;gap:1rem;padding-block:.5rem;display:grid}dt[data-v-7902f598]{font-weight:600}dd[data-v-7902f598]{color:var(--ink-soft);margin:0}@media (width>=60rem){.grid[data-v-7902f598]{grid-template-columns:2fr 3fr}}.roll[data-v-4d791c62]{--keys:clamp(28px, 6vw, 64px);--lane:3.25rem;padding-bottom:clamp(3rem,6vw,5rem)}.head[data-v-4d791c62]{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;margin-bottom:1.5rem;display:flex}h2[data-v-4d791c62]{font-size:clamp(1.5rem,3vw,2rem)}.head p[data-v-4d791c62]{color:var(--on-base-soft)}.play[data-v-4d791c62]{border:2px solid var(--accent);color:var(--accent);font:600 .9375rem var(--mono);cursor:pointer;background:0 0;border-radius:3px;align-items:center;gap:.6rem;padding:.55rem 1rem;display:inline-flex}.play[data-v-4d791c62]:hover{color:var(--on-accent);background:var(--accent)}.glyph[data-v-4d791c62]{border-block:.4em solid #0000;border-left:.65em solid;width:0;height:0}.glyph.stop[data-v-4d791c62]{background:currentColor;border:0;width:.75em;height:.75em}.score[data-v-4d791c62]{background:var(--base-deep);border-radius:4px;padding-top:2rem;position:relative;overflow:hidden}.timeline[data-v-4d791c62]{inset:0 0 0 var(--keys);pointer-events:none;position:absolute}.ticks span[data-v-4d791c62]{border-left:1px solid #e8f3f621;position:absolute;inset-block:0}.ticks b[data-v-4d791c62]{color:var(--on-base-soft);font:400 .8125rem var(--mono);position:absolute;top:.4rem;left:.4rem}.playhead[data-v-4d791c62]{z-index:2;background:var(--accent);width:2px;position:absolute;inset-block:0}.lanes[data-v-4d791c62]{flex-direction:column-reverse;display:flex}.lane[data-v-4d791c62]{grid-template-columns:var(--keys) 1fr;height:var(--lane);display:grid;position:relative}.key[data-v-4d791c62]{background:#eef4f7;border-bottom:1px solid #aebdc6;transition:background-color .15s;position:relative}.lane.on .key[data-v-4d791c62]{background:var(--accent)}.lane:first-child .key[data-v-4d791c62]:after,.lane:nth-child(2) .key[data-v-4d791c62]:after,.lane:nth-child(4) .key[data-v-4d791c62]:after{content:"";z-index:1;background:#06141d;border-radius:0 2px 2px 0;width:60%;height:44%;position:absolute;top:-22%;left:0}.lane button[data-v-4d791c62]{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;display:block;position:relative}.lane button[data-v-4d791c62]:hover{background:#e8f3f60f}.lane button[data-v-4d791c62]:focus-visible{outline-offset:-3px}.label[data-v-4d791c62]{font-family:var(--mono);white-space:nowrap;font-size:.8125rem;line-height:1.2;position:absolute;top:.3rem}.note[data-v-4d791c62]{background:var(--on-base);transform-origin:0;min-width:7px;height:.8rem;animation:draw-4d791c62 .7s var(--delay) cubic-bezier(.2, .7, .2, 1) backwards;border-radius:2px;position:absolute;bottom:.45rem}.lane.on .note[data-v-4d791c62]{background:var(--accent)}.lane.on .label[data-v-4d791c62]{color:var(--accent);font-weight:600}@keyframes draw-4d791c62{0%{transform:scaleX(0)}}.detail[data-v-4d791c62]{gap:1.25rem 3rem;padding-top:1.75rem;display:grid}h3[data-v-4d791c62]{font-size:1.5rem}.org[data-v-4d791c62]{margin-top:.4rem}.dates[data-v-4d791c62]{color:var(--on-base-soft)}.detail ul[data-v-4d791c62]{gap:.6rem;max-width:44rem;display:grid}.detail li[data-v-4d791c62]{border-left:2px solid var(--accent);padding-left:1.1rem}@media (width<=40rem){.ticks span:nth-child(2n) b[data-v-4d791c62]{display:none}}@media (width>=60rem){.detail[data-v-4d791c62]{grid-template-columns:1fr 2fr;min-height:13rem}}.btn[data-v-2979623e]{border:2px solid var(--accent);color:var(--on-accent);background:var(--accent);font:600 .9375rem/1.3 var(--mono);cursor:pointer;border-radius:3px;padding:.7rem 1.3rem;text-decoration:none;transition:background-color .15s;display:inline-block}.btn[data-v-2979623e]:hover{background:#74efc2}.quiet[data-v-2979623e]{color:inherit;background:0 0;border-color:currentColor}.quiet[data-v-2979623e]:hover{background:#ffffff1a}.game[data-v-c2b5b3c1]{border-top:1px solid #e8f3f640;gap:1rem 2rem;margin-top:clamp(3rem,7vw,5rem);padding-top:1.5rem;display:grid}h3[data-v-c2b5b3c1]{font-size:1.25rem}p[data-v-c2b5b3c1]{color:var(--on-base-soft)}.score[data-v-c2b5b3c1]{font-variant-numeric:tabular-nums}.moves[data-v-c2b5b3c1]{flex-wrap:wrap;gap:.5rem;display:flex}button[data-v-c2b5b3c1]:not(.btn){width:5.5rem;color:var(--on-base);font:.8125rem var(--mono);cursor:pointer;background:0 0;border:1px solid #e8f3f659;border-radius:3px;justify-items:center;gap:.15rem;padding:.5rem;display:grid}button[data-v-c2b5b3c1]:not(.btn):hover{color:var(--on-accent);background:var(--accent)}@media (width>=60rem){.game[data-v-c2b5b3c1]{grid-template-columns:1fr auto auto;align-items:center}}h2[data-v-777d04c6]{letter-spacing:-.04em;font-size:clamp(2.125rem,6vw,4.5rem)}.email[data-v-777d04c6]{color:var(--accent);font:500 clamp(1.0625rem, 3.6vw, 2rem) var(--mono);overflow-wrap:anywhere;margin-block:1.5rem .75rem;display:inline-block}ul[data-v-777d04c6]{flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:1.25rem;font-weight:600;display:flex}li a[data-v-777d04c6]{padding-block:.35rem;display:block}.services[data-v-d8262172]{border-top:1px solid var(--rule)}.grid[data-v-d8262172]{gap:2rem 4rem;display:grid}.aside[data-v-d8262172]{color:var(--ink-soft);margin-top:1rem}.aside a[data-v-d8262172],li a[data-v-d8262172]{color:var(--link);font-weight:600}li[data-v-d8262172]{border-top:1px solid var(--rule);gap:.5rem;padding-block:1.5rem;display:grid}li[data-v-d8262172]:first-child{border-top:0;padding-top:0}li a[data-v-d8262172]{justify-self:start}h3[data-v-d8262172]{font-size:clamp(1.5rem,3vw,2rem)}p[data-v-d8262172]{max-width:34rem}@media (width>=60rem){.grid[data-v-d8262172]{grid-template-columns:2fr 3fr}.grid>div[data-v-d8262172]{align-self:start;position:sticky;top:6rem}}.lead[data-v-f2984d51]{color:var(--on-base);background:var(--base);border-radius:4px;gap:1.5rem 3rem;margin-top:2rem;padding:clamp(1.5rem,4vw,3.5rem);display:grid}.lead-more a[data-v-f2984d51]{color:var(--accent)}.lead-name h3[data-v-f2984d51]{font-size:1.5rem}.statement[data-v-f2984d51]{font:500 clamp(1.375rem, 2.8vw, 2.25rem) / 1.25 var(--mono);letter-spacing:-.02em;text-wrap:pretty}.lead-more[data-v-f2984d51]{gap:1rem 3rem;display:grid}.lead-more ul[data-v-f2984d51]{flex-wrap:wrap;gap:.25rem 1.5rem;font-weight:600;display:flex}.projects[data-v-f2984d51]{margin-top:1.5rem}.projects li[data-v-f2984d51]{border-bottom:1px solid var(--rule);gap:.5rem 3rem;padding-block:1.5rem;display:grid}.projects h3[data-v-f2984d51]{font-size:1.375rem}.projects a[data-v-f2984d51]{color:var(--link);font-weight:600}.soft[data-v-f2984d51]{color:var(--ink-soft);font-size:.9375rem}@media (width>=60rem){.lead[data-v-f2984d51]{grid-template-columns:1fr 3fr}.lead-more[data-v-f2984d51]{grid-column:2;grid-template-columns:2fr 1fr}.lead-more ul[data-v-f2984d51]{flex-direction:column}.projects li[data-v-f2984d51]{grid-template-columns:1fr 2fr 1fr}}.hero[data-v-dc427e4c]{gap:1.75rem;padding-block:clamp(2rem,4vw,3.5rem) clamp(2.5rem,4vw,3.5rem);display:grid}h1[data-v-dc427e4c]{letter-spacing:-.04em;font-size:clamp(2.375rem,6.6vw,5.5rem);line-height:1.06}.intro[data-v-dc427e4c]{gap:1.5rem 4rem;font-size:1.1875rem;display:grid}.intro p[data-v-dc427e4c]{max-width:42rem}.actions[data-v-dc427e4c]{flex-wrap:wrap;gap:.75rem;display:flex}@media (width>=60rem){.intro[data-v-dc427e4c]{grid-template-columns:1fr auto;align-items:end}}.skip[data-v-561ac96b]{z-index:20;color:var(--on-accent);background:var(--accent);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip[data-v-561ac96b]:focus{top:.5rem}.bar[data-v-561ac96b]{z-index:10;position:sticky;top:0}nav[data-v-561ac96b]{justify-content:space-between;align-items:center;min-height:4rem;display:flex}.name[data-v-561ac96b]{font:600 1.125rem var(--mono);text-decoration:none}ul[data-v-561ac96b]{gap:clamp(1rem,3vw,2.25rem);display:flex}li a[data-v-561ac96b]{padding-block:.5rem;text-decoration:none;display:block}li a[data-v-561ac96b]:hover{text-decoration:underline}
