@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-opsz-normal.D9N6E8K1.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-opsz-normal.IcJDqblK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-wght-normal.C6vrW8VD.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/atkinson-hyperlegible-next-latin-wght-normal.BcXVPD7q.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--paper: #eceef0;--card: #ffffff;--ink: #1b1e23;--ink-2: #4a515c;--ink-3: #5f6672;--rule: #d3d7dd;--yellow: #e29a6f;--yellow-deep: #f0b38e;--pink: #9db4cc;--pink-ink: #9a4a22;--teal: #a8c9c0;--teal-ink: #36596b;--dot: rgb(27 30 35 / .07);--tape: rgb(226 154 111 / .7);--hit: rgb(226 154 111 / .3);--font-display: "Bricolage Grotesque Variable", "Arial Narrow", sans-serif;--font-body: "Atkinson Hyperlegible Next Variable", system-ui, sans-serif;--gutter: clamp(16px, 4vw, 48px);--max: 1240px;--ease-out: cubic-bezier(.16, 1, .3, 1);--swipe-yellow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'%3E%3Cpath d='M3 9C40 5 95 7 197 4l-2 13 3 9-2 11C140 34 70 37 4 35l2-11-4-8z' fill='%23f0b38e'/%3E%3C/svg%3E");--swipe-pink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'%3E%3Cpath d='M3 9C40 5 95 7 197 4l-2 13 3 9-2 11C140 34 70 37 4 35l2-11-4-8z' fill='%23b9cade'/%3E%3C/svg%3E");--swipe-teal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' preserveAspectRatio='none'%3E%3Cpath d='M3 9C40 5 95 7 197 4l-2 13 3 9-2 11C140 34 70 37 4 35l2-11-4-8z' fill='%23b7d6cd'/%3E%3C/svg%3E");--squiggle-teal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8c18-5 30 2 48-1s34-4 68-3' fill='none' stroke='%235f93a3' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");--squiggle-pink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M2 7c22-4 40 3 60-1s36-3 56-2' fill='none' stroke='%23e29a6f' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");--rule-v: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 200' preserveAspectRatio='none'%3E%3Cpath d='M4 0c-1.5 30 1.5 60-.5 100s1.5 70 .5 100' fill='none' stroke='%231b1e23' stroke-width='2'/%3E%3C/svg%3E")}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:var(--ink-3) var(--paper)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background-color:var(--paper);background-image:radial-gradient(circle at 1px 1px,var(--dot) 1px,transparent 1.4px);background-size:22px 22px;color:var(--ink);font-family:var(--font-body);font-size:1.125rem;line-height:1.6;text-rendering:optimizeLegibility}::selection{background:var(--yellow);color:var(--ink)}h1,h2,h3{font-family:var(--font-display);font-weight:750;line-height:1.02;letter-spacing:-.012em;margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:.2em}a:hover{text-decoration-color:var(--pink)}:focus-visible{outline:3px solid var(--teal-ink);outline-offset:4px;border-radius:6px}.wrap{width:min(100% - 2 * var(--gutter),var(--max));margin-inline:auto}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:var(--gutter);top:-100px;z-index:10;background:var(--yellow);padding:.5rem 1rem;font-weight:700}.skip:focus{top:12px}.hl{background:var(--swipe-yellow) no-repeat 0 65% / 100% 82%;padding:0 .12em;margin:0 -.06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.hl--pink{background-image:var(--swipe-pink)}.hl--teal{background-image:var(--swipe-teal)}.squiggle{background:var(--squiggle-teal) no-repeat 0 100% / 100% .32em;padding-bottom:.18em}.squiggle--pink{background-image:var(--squiggle-pink)}.sketch{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.icon{flex:none}.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:.55em;padding:.7em 1.25em .75em;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none;line-height:1.1;transition:transform .22s var(--ease-out)}.btn>:not(.sketch){position:relative;z-index:1}.btn:hover{transform:rotate(-1.2deg) translateY(-2px)}.btn:active{transform:translateY(1px)}.btn .icon{transition:transform .22s var(--ease-out)}.btn:hover .icon{transform:translate(3px)}.btn--big{font-size:clamp(1.25rem,1rem + 1.4vw,1.9rem);padding:.8em 1.4em .85em}.text-link{font-family:var(--font-display);font-weight:700;font-size:1.1rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4em}.text-link span{background:var(--squiggle-teal) no-repeat 0 100% / 100% .35em;padding-bottom:.2em}.text-link:hover span{background-image:var(--squiggle-pink)}.site-header{position:sticky;top:0;z-index:14;background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:2px solid transparent;transition:border-color .2s ease}.site-header.is-stuck{border-bottom-color:var(--rule)}html{scroll-padding-top:5.5rem}.top{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;padding-block:1.25rem}.brand{font-family:var(--font-display);font-weight:800;font-size:1.6rem;text-decoration:none;line-height:1}.brand span{background:var(--squiggle-teal) no-repeat 0 100% / 100% .3em;padding-bottom:.25em}.nav{display:flex;align-items:center;gap:.25rem 1.5rem;flex-wrap:wrap}.nav a:not(.btn){font-family:var(--font-display);font-weight:600;font-size:1.05rem;text-decoration:none;padding-block:.3rem}.nav a:not(.btn):hover{background:var(--squiggle-pink) no-repeat 0 100% / 100% .3em}.nav .btn{font-size:1rem;padding:.55em 1em .6em}@media(max-width:720px){html{scroll-padding-top:6rem}.top{padding-block:.7rem .45rem;gap:.35rem 1rem}.brand{font-size:1.35rem}.nav{gap:.25rem .9rem;width:100%}.nav a:not(.btn){font-size:.98rem;padding-block:.15rem}.nav .btn{display:none}.nav-links{display:flex;gap:.85rem;flex-wrap:wrap}.nav-links a[rel~=me]{display:none}}@media(min-width:721px){.nav-links{display:contents}}.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(2rem,6vh,4.5rem) clamp(2.5rem,6vh,4rem)}.hero h1{font-size:clamp(2.4rem,1.3rem + 4.1vw,5rem)}.hero h1 .asterisk{display:inline-block;color:var(--pink-ink);vertical-align:top;margin:-.15em 0 0 .1em;width:.55em;height:.55em;transform:rotate(12deg)}.devices .fill{fill:var(--yellow);stroke:none}.devices .ink-line{fill:none;stroke:var(--ink);stroke-width:2}.hero-sub{margin-top:1.6rem;max-width:40ch;font-size:clamp(1.1rem,1rem + .35vw,1.3rem);color:var(--ink-2)}.hero-sub strong{color:var(--ink)}.hero-actions{margin-top:2.1rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem}.hero-figure{margin:0}.hero-diagram{width:100%;height:auto;display:block;overflow:visible}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-figure{max-width:520px}}.ink path{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}.ink--soft path{stroke:var(--ink-3);stroke-width:1.6}.svg-title{font-family:var(--font-display);font-weight:700;font-size:24px;fill:var(--ink)}.svg-title--big{font-size:30px;font-weight:800}.svg-title--sm{font-size:20px}.svg-sub{font-family:var(--font-body);font-size:17px;fill:var(--ink-2)}.svg-note{font-family:var(--font-display);font-weight:700;font-size:24px;fill:var(--pink-ink)}.svg-note--sm{font-size:19px}.svg-note-ink{fill:var(--pink-ink)}.draw-group path{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.draw-group .pink path{stroke:var(--pink-ink)}.js .draw{stroke-dasharray:1;stroke-dashoffset:1}.js .in-view .draw{stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease-out);transition-delay:calc(var(--i, 0) * .14s + .15s)}.js .in-view .draw--head{transition-duration:.26s;transition-delay:calc(var(--i, 0) * .14s + .85s)}.facts{position:relative;margin-top:clamp(.5rem,2vw,1.5rem);background:linear-gradient(var(--pink) 0 0) 0 3.3rem / 100% 2px no-repeat,var(--card);padding:.9rem clamp(1.1rem,3vw,2.25rem) 1.3rem;transform:rotate(-.6deg);box-shadow:0 10px 24px -14px #14141459,0 2px 4px #1414140f}.facts:before,.facts:after{content:"";position:absolute;top:-14px;width:104px;height:30px;background:var(--tape);clip-path:polygon(3% 8%,97% 0,100% 40%,96% 100%,2% 92%,0 50%)}.facts:before{left:7%;transform:rotate(-5deg)}.facts:after{right:7%;transform:rotate(4deg)}.facts h2{font-size:1.45rem;line-height:2.4rem}.facts dl{margin:.9rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.4rem 2rem}@media(min-width:1100px){.facts dl{grid-template-columns:.9fr 1fr 1.5fr 1.25fr 1.4fr}}.facts div{padding-block:.38rem;line-height:1.45}.facts dt{font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--teal-ink)}.facts dd{margin:0}.section{padding-block:clamp(4rem,10vw,7.5rem) 0}.section-head{display:grid;gap:1rem;max-width:46rem;margin-bottom:clamp(2rem,4vw,3.25rem)}.section-head h2{font-size:clamp(2.1rem,1.3rem + 3vw,3.75rem)}.section-head p{color:var(--ink-2);font-size:1.15rem;max-width:60ch}.wins{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:1.6rem 3.5rem}.wins li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;max-width:62ch}.wins .icon{color:var(--teal-ink);margin-top:.15rem}.js .in-view .hl-anim,.js .hl-anim{transition:background-size .75s var(--ease-out)}.js [data-reveal]:not(.in-view) .hl-anim{background-size:0% 82%}.jobs{list-style:none;position:relative}.job{display:grid;grid-template-columns:11rem 2.5rem minmax(0,1fr);gap:0 1rem;padding-bottom:clamp(2.5rem,5vw,3.5rem)}.job-when{font-family:var(--font-display);font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;text-align:right;padding-top:.35rem;color:var(--ink-2)}.job-when b{display:block;color:var(--ink);font-size:1.25rem}.job-rail{position:relative}.job-rail:before{content:"";position:absolute;left:50%;top:2.4rem;bottom:-.6rem;width:8px;margin-left:-4px;background:var(--rule-v) no-repeat center / 100% 100%;opacity:.55}.job:last-child .job-rail:before{display:none}.job-dot{position:relative;display:block;width:2.1rem;height:2.1rem;margin:.3rem auto 0;color:var(--ink)}.job--now .job-dot .sketch path[fill]{fill:var(--yellow)}.job h3{font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}.job-org{margin-top:.35rem;font-weight:700}.job-org span{font-weight:400;color:var(--ink-3)}.job ul{list-style:none;margin-top:1rem;display:grid;gap:.5rem;max-width:70ch}.job li{position:relative;padding-left:1.6rem;color:var(--ink-2)}.job li:before{content:"";position:absolute;left:.1rem;top:.78em;width:.85rem;height:.3rem;background:var(--squiggle-pink) no-repeat center / 100% 100%}@media(max-width:720px){.job{grid-template-columns:2rem minmax(0,1fr)}.job-when{grid-column:2;grid-row:1;text-align:left;padding:0 0 .4rem;display:flex;gap:.5rem;align-items:baseline}.job-when b{display:inline;font-size:1.1rem}.job-rail{grid-column:1;grid-row:1 / span 2}.job-dot{width:1.5rem;height:1.5rem;margin-top:.2rem}.job-body{grid-column:2}}.lab-figure{margin:0}.lab-diagram{width:100%;height:auto;display:block;overflow:visible}.lab-diagram--tall{display:none;max-width:460px;margin-inline:auto}@media(max-width:720px){.lab-diagram--wide{display:none}.lab-diagram--tall{display:block}}.lab-node{cursor:pointer;text-decoration:none}.lab-node .hit{fill:transparent}.lab-node:focus{outline:none}.lab-node:focus-visible .hit{stroke:var(--teal-ink);stroke-width:3;stroke-dasharray:6 5}.badge circle{fill:var(--card);stroke:var(--ink);stroke-width:2;transition:fill .2s}.badge text{font-family:var(--font-display);font-weight:800;font-size:17px;fill:var(--ink)}.lab-node.is-on .badge circle{fill:var(--yellow)}.lab-node.is-on .ink path{stroke-width:3.2}.lab-node.is-on .hit{fill:var(--hit)}.draw-group .wg{stroke-dasharray:5 5;stroke-width:3}.lab-notes{list-style:none;margin-top:clamp(2rem,4vw,3rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.25rem 2.5rem}@media(min-width:960px){.lab-notes{grid-template-columns:repeat(3,minmax(0,1fr))}}.lab-notes li{display:grid;grid-template-columns:2.2rem 1fr;gap:.75rem;align-items:start;scroll-margin-top:30vh}.lab-notes .n{position:relative;display:grid;place-items:center;width:2.2rem;height:2.2rem;font-family:var(--font-display);font-weight:800;font-size:1.05rem}.lab-notes .n>span{position:relative;z-index:1}.lab-notes h3{font-size:1.2rem;display:inline}.lab-notes p{color:var(--ink-2);margin-top:.2rem}.lab-notes li.is-on h3{background:var(--swipe-yellow) no-repeat 0 65% / 100% 82%}.lab-notes li.is-on .n .sketch path[fill]{fill:var(--yellow)}.rules{margin-top:clamp(2.5rem,5vw,3.5rem);max-width:60rem;transform:rotate(.5deg)}.rules h3{font-size:1.45rem;line-height:2.4rem}.rules ul{list-style:none;margin-top:1rem;display:grid;gap:.7rem}.rules li{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;max-width:70ch}.rules .icon{color:var(--teal-ink);margin-top:.1rem}.toolbox{columns:3 18rem;column-gap:3.5rem}.tool-group{break-inside:avoid;margin-bottom:2.4rem}.tool-group h3{font-size:1.35rem;line-height:1.5;text-wrap:balance}.tool-group ul{list-style:none;margin-top:.7rem;display:flex;flex-wrap:wrap;gap:.3rem 1.25rem}.tool-group li{position:relative;padding-left:.95rem;color:var(--ink-2)}.tool-group li:before{content:"";position:absolute;left:0;top:.72em;width:.5rem;height:.28rem;background:var(--squiggle-pink) no-repeat center / 100% 100%}.paper{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:2.5rem 4rem}.paper h3{font-size:1.5rem;margin-bottom:1rem}.paper ul{list-style:none;display:grid;gap:.9rem}.paper li{display:grid;gap:.1rem}.paper .when{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:1rem}.contact{position:relative;text-align:center;padding-block:clamp(5rem,12vw,8.5rem) clamp(4rem,9vw,6rem)}.contact h2{font-size:clamp(3rem,1.5rem + 6vw,6rem)}.contact p{margin:1.4rem auto 2.4rem;max-width:44ch;color:var(--ink-2);font-size:clamp(1.1rem,1rem + .4vw,1.3rem)}.contact .contact-alt{margin:1.5rem auto 0}.contact .small{margin:1.25rem auto 0;font-size:1rem;color:var(--ink-3)}.contact .btn--big{font-size:clamp(1.05rem,.6rem + 2.6vw,1.9rem);max-width:100%}.btn--big .addr{overflow-wrap:normal}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-block:1.75rem 2.5rem;border-top:2px dashed var(--rule);font-size:.95rem;color:var(--ink-3)}@media(prefers-reduced-motion:reduce){.js .draw{stroke-dashoffset:0}.js .in-view .draw{transition:none}.js [data-reveal]:not(.in-view) .hl-anim{background-size:100% 82%}.btn,.btn .icon{transition:none}}.portrait{position:relative;background:#fff;padding:10px 10px 14px;box-shadow:0 10px 24px -14px #14141459,0 2px 4px #1414140f}.portrait img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;object-position:50% 18%}.photo-note{display:flex;justify-content:space-between;gap:1rem;margin-top:.9rem;font-size:.95rem;color:var(--ink-3)}.day-figure{max-width:640px;margin-inline:auto}.facts--photo{--card: #1b1e23;--ink: #eef0f2;--ink-2: #b9c0ca;--teal-ink: #e29a6f;background:#1b1e23;color:#eef0f2;display:grid;gap:clamp(1.2rem,3vw,2.4rem);align-items:center;padding:clamp(1.4rem,3vw,2.2rem) clamp(1.2rem,3vw,2.4rem);margin-top:clamp(1rem,3vw,2rem)}.facts--photo:before,.facts--photo:after{background:var(--tape)}@media(min-width:900px){.facts--photo{grid-template-columns:250px 1fr}}.portrait--facts{transform:rotate(-2deg);width:min(250px,70%);margin-inline:auto}.facts--photo .facts-body h2{font-size:1.6rem;line-height:1.2;padding-bottom:.8rem;border-bottom:2px solid #e29a6f}.facts--photo dl{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))!important;margin-top:1.1rem}.to-top{position:fixed;z-index:15;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:grid;place-items:center;width:44px;height:44px;background:var(--card);color:var(--ink);border:2px solid var(--ink);border-radius:50%;box-shadow:0 6px 14px -8px #14141466;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s var(--ease-out),visibility 0s linear .2s}.to-top .icon{width:22px;height:22px;transform:rotate(180deg)}.to-top.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}.to-top:hover{background:var(--paper)}@media(min-width:900px){.to-top{right:20px;bottom:20px}}@media(prefers-reduced-motion:reduce){.to-top{transition:none}}.foot{padding-bottom:calc(1.5rem + 52px)}.prose{max-width:46rem;padding-block:clamp(2rem,6vw,4rem) clamp(3rem,8vw,6rem)}.prose h1{font-size:clamp(2.6rem,1.5rem + 4vw,4.5rem)}.prose .lead{margin-top:1.4rem;font-size:1.25rem;color:var(--ink-2)}.prose h2{margin-top:2.4rem;font-size:1.5rem}.prose p{margin-top:.8rem;color:var(--ink-2)}.prose a{color:var(--pink-ink)}.prose .small{margin-top:2.4rem;font-size:.95rem;color:var(--ink-3)}
