@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff")}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff)format("woff")}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fff;--surface:#fff;--sunken:#f4f4f3;--ink:#111;--muted:#5f5f5f;--line:#e8e8e6;--accent:#2c45c4;--accent-ink:#fff;--accent-soft:#dfe4fb;--good:#1f7a4d;--serif:"Instrument Serif", "Iowan Old Style", Georgia, serif;--sans:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--radius:14px;--gutter:clamp(1rem, 4vw, 2.5rem);--nav-h:3.75rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#111;--surface:#161616;--sunken:#1c1c1c;--ink:#edebe5;--muted:#a29e95;--line:#2a2a2a;--accent:#93a5ff;--accent-ink:#10132a;--accent-soft:#23295a;--good:#6fd19d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}[data-theme=dark]{--paper:#111;--surface:#161616;--sunken:#1c1c1c;--ink:#edebe5;--muted:#a29e95;--line:#2a2a2a;--accent:#93a5ff;--accent-ink:#10132a;--accent-soft:#23295a;--good:#6fd19d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 1rem)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.6}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}main:focus{outline:none}em{font-style:italic}.container{width:100%;max-width:72rem;padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.muted{color:var(--muted)}.label,.project-meta,.stat-label,.timeline-dates{color:var(--muted);font-size:.875rem;font-weight:450}.tk{text-underline-offset:.25em;-webkit-text-decoration:underline dotted #d29b00;text-decoration:underline dotted #d29b00;text-decoration-thickness:2px}.skip-link{z-index:100;background:var(--ink);color:var(--paper);border-radius:8px;padding:.6rem 1rem;text-decoration:none;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.button{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--ink);transition:transform .15s var(--ease), border-color .15s ease, background .15s ease;border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1.15rem;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--ink)}.button:active{transform:scale(.97)}.button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.text-link{min-height:2.75rem;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.3em;align-items:center;gap:.3rem;font-weight:500;text-decoration-thickness:1.5px;transition:text-decoration-color .2s,color .2s;display:inline-flex}.text-link:hover{color:var(--accent);text-decoration-color:currentColor}.arrow{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em;transition:transform .2s var(--ease)}@media (hover:hover) and (pointer:fine){a:hover .arrow-up-right{transform:translate(2px,-2px)}a:hover .arrow-down{transform:translateY(2px)}}.site-header{z-index:50;background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid #0000;transition:border-color .3s;position:sticky;top:0}.site-header.scrolled{border-bottom-color:var(--line)}.nav{height:var(--nav-h);align-items:center;gap:1.5rem;display:flex}.nav-name{align-items:center;gap:.6rem;margin-right:auto;font-weight:550;text-decoration:none;display:flex}.nav-monogram{background:var(--ink);width:2rem;height:2rem;color:var(--paper);font-family:var(--serif);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:1rem;display:grid}.nav-links{gap:.25rem;display:flex}.nav-links a{color:var(--muted);padding:.5rem .65rem;font-size:.925rem;text-decoration:none;transition:color .2s;display:block;position:relative}.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}.nav-links a:after{content:"";transform-origin:0;background:currentColor;height:1.5px;position:absolute;bottom:.2rem;left:.65rem;right:.65rem;transform:scaleX(0)}.nav-links a[aria-current]:after{transform:scaleX(1)}.nav-resume{border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:border-color .2s}.nav-resume:hover{border-color:var(--ink)}.nav-end{align-items:center;gap:.5rem;display:flex}.nav-theme{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;margin:0;padding:0;transition:border-color .2s,background .2s;display:grid}.nav-theme:hover{border-color:var(--ink)}.nav-theme svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1.05rem;height:1.05rem}@media (width<=40rem){.nav{gap:.5rem}.nav-fullname,.nav-resume{display:none}.nav-links a{padding-inline:.5rem;font-size:.875rem}.nav-links a:after{left:.5rem;right:.5rem}}.hero{padding-top:clamp(3rem,10vh,7rem);padding-bottom:clamp(4rem,12vh,8rem)}.hero-title{max-width:19ch;font-family:var(--serif);letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2.75rem,6.6vw,5.5rem);font-weight:400;line-height:1}.hero-intro{max-width:38rem;color:var(--muted);text-wrap:pretty;margin-top:1.75rem;font-size:clamp(1.0625rem,1.6vw,1.25rem)}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:2.25rem;display:flex}.section{border-top:1px solid var(--line);padding-block:clamp(4rem,10vw,7.5rem)}.section-heading{margin-bottom:clamp(2rem,5vw,3.5rem)}.section-title{font-family:var(--serif);letter-spacing:-.015em;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.05}.section-note{max-width:36rem;color:var(--muted);margin-top:.75rem}.strengths{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:2.5rem clamp(2rem,6vw,5rem);display:grid}.strength{flex-direction:column;gap:.5rem;max-width:34rem;display:flex}.strength h3{font-size:1.0625rem;font-weight:600;line-height:1.3}.strength p{color:var(--muted);font-size:.975rem}.proof{font-size:.9rem!important}.proof-label{margin-right:.4rem}.proof a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.25em;font-weight:500}.proof a:hover{color:var(--accent);text-decoration-color:currentColor}.projects{gap:clamp(4.5rem,10vw,8rem);display:grid}.project{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.project-text{gap:2rem;display:grid}.project-visual{top:calc(var(--nav-h) + 2rem);position:sticky}.project-title{font-family:var(--serif);letter-spacing:-.01em;text-wrap:balance;margin-top:.75rem;font-size:clamp(2rem,3.6vw,2.75rem);font-weight:400;line-height:1.05}.project-summary{text-wrap:pretty;margin-top:1rem;font-size:1.125rem}.project-summary+.text-link{margin-top:.85rem}.stats{border-block:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:1rem;padding-block:1.25rem;display:grid}.stat{flex-direction:column;gap:.35rem;display:flex}.stat-value{font-family:var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.01em;order:-1;font-size:clamp(2.25rem,4vw,2.85rem);line-height:1}.stat-label{text-transform:none;letter-spacing:0;font-size:.8rem;line-height:1.35}.label{margin-bottom:.75rem}.did{gap:.6rem;display:grid}.did li{padding-left:1.4rem;position:relative}.did li:before{content:"";background:var(--muted);width:.6rem;height:1px;position:absolute;top:.72em;left:.15rem}.role-line{max-width:34rem}.role-line strong,.details-body strong{font-weight:600}.details{border-top:1px solid var(--line);margin-top:1.5rem}.details summary{cursor:pointer;align-items:center;gap:.6rem;min-height:2.75rem;padding-top:1rem;font-weight:500;list-style:none;display:flex}.details summary::-webkit-details-marker{display:none}.details summary:before{content:"";width:.5rem;height:.5rem;transition:transform .2s var(--ease);border-bottom:1.5px solid;border-right:1.5px solid;margin-left:.15rem;transform:translateY(-2px)rotate(45deg)}.details[open] summary:before{transform:translateY(2px)rotate(-135deg)}.details summary:hover{color:var(--accent)}.details-body{gap:1.25rem;max-width:34rem;padding-top:1rem;display:grid}.stack{color:var(--muted);font-size:.9rem}@media (prefers-reduced-motion:no-preference){.details{interpolate-size:allow-keywords}.details::details-content{block-size:0;transition:block-size .3s var(--ease), content-visibility .3s allow-discrete;overflow:clip}.details[open]::details-content{block-size:auto}}@media (width<=52rem){.project{grid-template-columns:1fr}.project-visual{order:-1;position:static}}.viz{aspect-ratio:5/4;background:var(--sunken);border-radius:10px;place-items:center;width:100%;padding:clamp(1.25rem,4vw,2.5rem);display:grid;position:relative;overflow:hidden}.viz.photo{aspect-ratio:auto;background:var(--surface);border:1px solid var(--line);height:auto;padding:0;display:block;overflow:hidden}.viz.photo a{display:block}.viz-photo{width:100%;height:auto;display:block}.viz-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px #0000000f}.viz-kicker{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.check{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:.9em;height:.9em}.viz-onboarding{gap:1rem;width:min(100%,20rem);padding:1.4rem;display:grid}.progress{background:var(--sunken);border-radius:999px;height:.35rem;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--accent);width:72%;height:100%;display:block}.viz-onboarding ol{gap:.5rem;display:grid}.step{border:1px solid var(--line);border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .8rem;font-size:.85rem;display:flex}.step.done{color:var(--muted)}.step.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);font-weight:550}.step-dot{border:1px solid var(--line);width:1.5rem;height:1.5rem;font-family:var(--mono);border-radius:50%;flex:none;place-items:center;font-size:.7rem;display:grid}.step.done .step-dot{background:var(--good);border-color:var(--good);color:var(--surface)}.step.current .step-dot{border-color:var(--accent);color:var(--accent)}.viz-motion{gap:1.1rem;width:min(100%,20rem);display:grid}.lane{border-bottom:1px dashed var(--line);height:1.75rem;position:relative;container-type:inline-size}.ball{--travel:calc(100cqw - 4.5rem);background:var(--accent);border-radius:50%;width:1.1rem;height:1.1rem;position:absolute;bottom:.35rem;left:0}.ball.linear{background:var(--muted)}.ball.ease-out{background:var(--ink)}.lane-label{font-family:var(--mono);color:var(--muted);font-size:.7rem;position:absolute;bottom:.35rem;right:0}.experiments{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.25rem;display:grid}.experiment{grid-template-rows:auto 1fr;gap:1.25rem;height:100%;display:grid}.experiment .viz{aspect-ratio:16/9}.experiment .viz.photo a{position:absolute;inset:0}.experiment .viz.photo .viz-photo{object-fit:cover;object-position:top center;width:100%;height:100%}.experiment-text{align-content:start;justify-items:start;gap:.5rem;display:grid}.experiment h3{font-family:var(--serif);font-size:1.85rem;font-weight:400;line-height:1.1}.experiment p{color:var(--muted)}.about{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);display:grid}.about-bio{text-wrap:pretty;align-content:start;gap:1.25rem;max-width:36rem;font-size:1.125rem;display:grid}.about-cv{align-content:start;gap:1rem;display:grid}.timeline{gap:1.25rem;margin-bottom:1.5rem;display:grid}.timeline li{border-top:1px solid var(--line);padding-top:1rem}.timeline li>*+*{margin-top:.25rem}.timeline .muted{font-size:.95rem}.timeline .timeline-step{margin-top:.75rem}.timeline-step>*+*{margin-top:.125rem}.timeline-company{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.2em;font-weight:600}.timeline-company:hover{color:var(--accent);text-decoration-color:currentColor}@media (width<=52rem){.about{grid-template-columns:1fr}}.contact{padding-bottom:clamp(5rem,12vw,9rem)}.contact-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:end;column-gap:clamp(2rem,6vw,6rem);display:grid}.contact-art{justify-self:center}@media (width<=52rem){.contact-layout{grid-template-columns:1fr}.contact-art{justify-self:start;margin-top:clamp(2.5rem,8vw,3.5rem)}}.contact-title{font-family:var(--serif);letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1}.pencil-disco{aspect-ratio:112/94;width:12.5rem;height:auto;display:block;position:relative!important}@media (width<=52rem){.pencil-disco{width:7.5rem}}.pencil-disco .disco-body{fill:var(--paper)}.pencil-disco .disco-shadow .smudge{fill:var(--ink);stroke:none;opacity:.13}.pencil-disco .disco-shadow .floor{fill:none;stroke:var(--ink);stroke-width:.75px;opacity:.55}.pencil-disco .disco-shadow .touch{stroke-width:1.4px;opacity:.7}.pencil-disco .disco-ink path{stroke:var(--ink);stroke-width:.6px}.pencil-disco .disco-ink .hatch{stroke-width:.55px;opacity:.85}.pencil-disco .disco-ink .rim{stroke-width:1.6px}.pencil-disco .disco-ink .rim.second{stroke-width:1px;opacity:.55}.pencil-disco .disco-ink .grid{opacity:.8}.pencil-disco .disco-ink .tile{stroke:none;fill:var(--ink);opacity:var(--tone)}.pencil-disco .sparkle{stroke:var(--pencil-coral);stroke-width:1.2px}.contact-intro{color:var(--muted);margin-top:1.25rem;font-size:1.125rem}.email-text{color:var(--ink);-webkit-user-select:all;user-select:all}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-block:2rem 2.5rem;font-size:.875rem;display:flex}:root{--pencil-coral:#f2643d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--pencil-coral:#ff8a63}}[data-theme=dark]{--pencil-coral:#ff8a63}.pencil{pointer-events:none;position:absolute;overflow:visible}.pencil path{fill:none;stroke-linecap:round;stroke-linejoin:round}.title-roll{display:block}.title-roll-track{justify-items:start;display:grid}.title-roll-word{white-space:nowrap;grid-area:1/1;transition:opacity .45s}.title-roll-word:not([data-state=current]){opacity:0}.pencil-word{white-space:nowrap;position:relative}.pencil-underline{width:calc(100% + .1em);height:.3em;bottom:-.07em;left:-.04em;right:-.06em}.pencil-underline path{stroke:var(--pencil-coral);stroke-width:4.6px}.pencil-underline path.second{stroke-width:2.6px;opacity:.7}.circled{display:inline-block;position:relative}.pencil-circle{width:calc(100% + .8em);height:calc(100% + .48em);inset:-.28em -.42em -.2em -.38em}.pencil-circle path{stroke:var(--pencil-coral);stroke-width:3.4px}@media (prefers-reduced-motion:no-preference){.js .hero-line{animation:rise .9s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + 80ms)}.nav-links a:after{transition:transform .25s var(--ease)}.js [data-reveal]{transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}.js [data-reveal]:not(.in){opacity:0;transform:translateY(18px)}.js .viz .piece,.js .viz .progress-fill{transition:opacity .6s var(--ease), transform .7s var(--ease);transition-delay:calc(var(--i,0) * 90ms + .25s)}.js .progress-fill{transform-origin:0;transition-duration:1.2s}.js .viz:not(.in) .piece{opacity:0;transform:translateY(10px)scale(.97)}.js .viz:not(.in) .progress-fill{transform:scaleX(.42)}.js .pencil path{stroke-dasharray:1}.js .pencil-underline path{animation:.7s cubic-bezier(.55,0,.3,1) .9s both draw}.js .pencil-underline path.second{animation-duration:.5s;animation-delay:1.45s}.js .hero-title:has(.title-roll) .pencil-underline path{animation-delay:2.9s}.js .hero-title:has(.title-roll) .pencil-underline path.second{animation-delay:3.45s}.title-roll-word{transition:opacity .5s var(--ease), transform .6s var(--ease), filter .5s var(--ease)}.title-roll-word[data-state=next]{filter:blur(3px);transform:translateY(.28em)}.title-roll-word[data-state=past]{filter:blur(3px);transition-duration:.3s;transform:translateY(-.28em)}.js .pencil-circle path{stroke-dashoffset:1px;transition:stroke-dashoffset .9s cubic-bezier(.55,0,.3,1) .5s}.js .pencil-circle.drawn path{stroke-dashoffset:0}.js .pencil-disco .disco-ink path:not(.tile),.js .pencil-disco .disco-shadow .floor{stroke-dashoffset:var(--from,1);visibility:hidden;transition:stroke-dashoffset var(--dur,.22s) cubic-bezier(.45, 0, .2, 1) var(--d,0s), visibility 0s var(--d,0s)}.js .pencil-disco.drawn .disco-ink path:not(.tile),.js .pencil-disco.drawn .disco-shadow .floor{stroke-dashoffset:0;visibility:visible}.js .pencil-disco .disco-ink .hatch{--dur:.16s}.js .pencil-disco .disco-ink .tile{opacity:0;transition:opacity .22s cubic-bezier(.19, 1, .22, 1) var(--d,0s)}.js .pencil-disco.drawn .disco-ink .tile{opacity:var(--tone)}.js .pencil-disco .disco-shadow .smudge{opacity:0;transition:opacity .45s ease var(--d,0s)}.js .pencil-disco.drawn .disco-shadow .smudge{opacity:.13}.js .pencil-disco .sparkle{opacity:0}.js .pencil-disco.drawn .sparkle{animation:3.2s infinite sparkle-breathe}.js .pencil-disco.drawn .sparkle:first-child{animation-delay:2.2s}.js .pencil-disco.drawn .sparkle:nth-child(2){animation-duration:3.9s;animation-delay:2.6s}.js .pencil-disco.drawn .sparkle:nth-child(3){animation-duration:4.5s;animation-delay:3.3s}.js .pencil-disco.drawn .sparkle:nth-child(4){animation-duration:3.6s;animation-delay:2.95s}.ball{animation:4.8s infinite lane}.ball.linear{animation-timing-function:linear}.ball.ease-out{animation-timing-function:cubic-bezier(.16,1,.3,1)}.ball.spring{animation-timing-function:linear(0, .037 2.7%, .129 5.4%, .253 8.1%, .392 10.8%, .532 13.5%, .661 16.2%, .776 18.8%, .871 21.5%, .947 24.2%, 1.004 26.9%, 1.043 29.6%, 1.068 32.3%, 1.08 35%, 1.084 37.7%, 1.08 40.4%, 1.072 43.1%, 1.061 45.8%, 1.05 48.5%, 1.038 51.2%, 1.028 53.8%, 1.018 56.5%, 1.01 59.2%, 1.004 61.9%, .999 64.6%, .996 67.3%, .994 70%, 1)}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes sparkle-breathe{0%,to{opacity:.12}42%{opacity:1}68%{opacity:.35}}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes lane{0%,to{transform:translate(0)}50%{transform:translateX(var(--travel))}}@media print{.site-header,.skip-link,.viz{display:none}[data-reveal]{opacity:1!important;transform:none!important}}
