@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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}:root{color-scheme:light;--page:#fcfcfc;--ink:#141414;--muted:#6b6b6b;--faint:var(--muted);--rule:color-mix(in srgb, var(--ink) 11%, transparent);--rule-strong:color-mix(in srgb, var(--ink) 22%, transparent);--accent:var(--ink);--accent-soft:color-mix(in srgb, var(--ink) 12%, transparent);--bloom-blue:#e2eef9;--bloom-teal:#eaf6f2;--bloom-amber:#faf2e6;--name-accent:#217163;--pop:#85520a;--style-bg:#f0eeea;--style-glow:#b8a06a;--display:"Bricolage Grotesque Variable", "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--sans:"Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--column:min(100% - 2.5rem, 46rem);--wide:min(100% - 2.5rem, 60rem);--ease:cubic-bezier(.22, .61, .36, 1)}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono%5Bwght%5D.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Italic%5Bwght%5D.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box}html{background:var(--page);-webkit-text-size-adjust:100%}body{padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);color:var(--ink);font-family:var(--sans);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-size:1rem;line-height:1.65;overflow-x:clip}.ground{z-index:-1;pointer-events:none;background:radial-gradient(46% 52% at 18% 12%, var(--bloom-blue) 0%, transparent 62%), radial-gradient(44% 48% at 90% 74%, var(--bloom-teal) 0%, transparent 60%), radial-gradient(40% 44% at 54% 100%, var(--bloom-amber) 0%, transparent 62%), var(--page);position:fixed;inset:0}.rainbow-layer{z-index:-1;grid-template-columns:repeat(var(--cols,6), 1fr);grid-template-rows:repeat(var(--rows,4), 1fr);pointer-events:none;filter:blur(18px);opacity:.8;display:none;position:fixed;inset:0;overflow:hidden;transform:scale(1.06)}.rainbow-layer.is-on{display:grid}.rainbow-layer__cell{background:0 0;transition:background .9s linear}.rainbow-layer__cell.is-lit{background:var(--cell);transition:background 80ms linear}.rainbow-toggle{color:var(--muted);font-family:var(--mono);cursor:pointer;background:0 0;border:0;align-items:center;gap:.42rem;padding:0;font-size:.72rem;transition:color .13s;display:inline-flex}.rainbow-toggle:hover{color:var(--ink)}.rainbow-toggle__dot{border:1px solid var(--rule-strong);background:0 0;border-radius:2px;width:.5rem;height:.5rem;transition:background .2s,border-color .2s}.rainbow-toggle[aria-pressed=true]{color:var(--ink)}.rainbow-toggle[aria-pressed=true] .rainbow-toggle__dot{background:linear-gradient(135deg,#e8003c,#d9a400 34%,#1f9e2e 62%,#0a72d0 84%,#6a35d9);border-color:#0000}img,svg,canvas{max-width:100%;display:block}img{height:auto}a{color:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border:1px solid var(--rule-strong);background:var(--page);transition:transform .14s var(--ease);border-radius:6px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.column{width:var(--column);margin-inline:auto}.column--wide{width:var(--wide)}.display{font-family:var(--display);letter-spacing:-.032em;text-wrap:balance;font-weight:600;line-height:1.02}.meta{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);font-variant-numeric:tabular-nums;font-size:.7rem;font-weight:400}.lede{color:var(--muted);text-wrap:pretty;font-size:1.03rem;line-height:1.7}.site-header{justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.6rem;display:flex}.site-header--bare{justify-content:flex-end}.name-reveal{--name-gradient:linear-gradient(105deg, #217163 0%, #2f6aa6 100%);display:inline-block;position:relative}.name-reveal__name{font-family:var(--display);letter-spacing:-.035em;white-space:nowrap;align-items:baseline;line-height:1;text-decoration:none;display:inline-flex}.name-reveal__rest{opacity:0;max-width:0;color:var(--name-accent);transition:max-width .32s var(--ease), opacity .22s ease;display:inline-block;overflow:hidden}.name-reveal:hover .name-reveal__rest,.name-reveal__name:focus-visible .name-reveal__rest{opacity:1;max-width:6ch}.name-reveal:hover .name-reveal__name,.name-reveal__name:focus-visible{background-image:var(--name-gradient);color:#0000;-webkit-text-fill-color:transparent;background-clip:text}.name-reveal:hover .name-reveal__rest,.name-reveal__name:focus-visible .name-reveal__rest,.name-reveal:hover .name-reveal__name:after,.name-reveal__name:focus-visible:after{color:inherit;-webkit-text-fill-color:inherit}.name-reveal__note{z-index:60;border:1px solid var(--rule-strong);background:var(--page);width:max-content;max-width:min(21rem,100vw - 3rem);color:var(--muted);font-family:var(--sans);letter-spacing:0;white-space:normal;text-align:left;text-wrap:pretty;opacity:0;pointer-events:none;transition:opacity .18s ease, transform .22s var(--ease);border-radius:9px;padding:.5rem .7rem;font-size:.76rem;font-weight:400;line-height:1.45;position:absolute;top:calc(100% + .65rem);box-shadow:0 6px 20px -8px #14120e38}.name-reveal__hand{white-space:nowrap}.name-reveal--mark{font-size:1.3rem}.name-reveal--mark .name-reveal__name{font-weight:650}.name-reveal--mark .name-reveal__name:after{content:".";color:var(--accent)}.name-reveal--mark .name-reveal__note{left:0;transform:translateY(-3px)}.name-reveal--mark:hover .name-reveal__note,.name-reveal--mark .name-reveal__name:focus-visible~.name-reveal__note{opacity:1;transform:translateY(0)}.name-reveal--hero{font-size:clamp(2.4rem,8vw,3.9rem)}.name-reveal--hero .name-reveal__name{font-size:inherit;letter-spacing:-.04em;font-weight:600}.name-reveal--hero .name-reveal__note{top:auto;bottom:calc(100% + .7rem);left:0;transform:translateY(3px)}.name-reveal--hero:hover .name-reveal__note{opacity:1;transform:translateY(0)}.header-right,.main-nav{align-items:center;gap:1.1rem;display:flex}.main-nav a{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);padding-block:.35rem;font-size:.76rem;text-decoration:none;transition:color .13s;position:relative}.main-nav a:hover,.main-nav a[aria-current=page]{color:var(--ink)}.main-nav a[aria-current=page]:after{content:"";background:var(--accent);height:1px;position:absolute;bottom:.05rem;left:0;right:0}.section{border-top:1px solid var(--rule);padding-block:clamp(2.75rem,6vw,4rem)}.section-head{justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:1.6rem;display:flex}.section-head h2{color:var(--ink);font-family:var(--display);letter-spacing:-.025em;margin:0;font-size:clamp(1.15rem,2.6vw,1.4rem);font-weight:600;line-height:1.1}.see-all{font-family:var(--mono);color:var(--faint);flex:none;font-size:.72rem;text-decoration:none;transition:color .13s}.see-all:hover{color:var(--accent)}.section-note{color:var(--faint);margin:0;font-size:.9rem;font-style:italic}.section--bare{padding-block:clamp(1.75rem,3.5vw,2.25rem)}.section--bare .section-head{margin-bottom:.7rem}.rows{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--rule)}.rows>.row:first-child{border-top:0}.row__link,.row__body{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.4rem 1.5rem;width:100%;padding-block:.85rem;text-decoration:none;display:grid}.row__title{letter-spacing:-.005em;font-size:.98rem;font-weight:500;transition:color .13s}.row__year{font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.72rem}.row__note{color:var(--muted);text-wrap:pretty;grid-column:1/2;margin:0;font-size:.88rem;line-height:1.55;display:block}.row__arrow{color:var(--faint);transition:transform .16s var(--ease), color .13s ease;margin-left:.35rem;display:inline-block}.blank-space{text-align:center;padding-block:clamp(12rem,38vh,24rem) 0}.blank-space__mark{color:var(--faint);font-family:var(--mono);letter-spacing:.02em;margin:0;font-size:.74rem}.blank-space__note{color:var(--faint);text-wrap:pretty;margin:.5rem auto 0;font-size:.82rem;font-style:italic;line-height:1.55}.site-footer{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding-block:2.5rem 4rem;display:flex}.site-footer p{margin:0}.site-footer__end{align-items:center;gap:1.1rem;display:flex}.footer-links{flex-wrap:wrap;gap:.35rem 1.1rem;display:flex}.footer-links a{font-family:var(--mono);color:var(--muted);font-size:.76rem;text-decoration:none;transition:color .13s}.footer-links a:hover{color:var(--accent)}@media (hover:hover) and (pointer:fine){.row__link:hover .row__title{color:var(--accent)}.row__link:hover .row__arrow{color:var(--accent);transform:translate(2px,-2px)}}@media (width<=640px){:root{--column:min(100% - 2rem, 46rem);--wide:min(100% - 2rem, 60rem)}.site-header{flex-wrap:wrap;gap:.75rem;padding-block:1.25rem}.header-right{flex-direction:column;align-items:flex-start;width:100%}.main-nav{flex-wrap:wrap;justify-content:space-between;gap:.65rem;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-head{padding-block:clamp(1.5rem,5vw,3rem) clamp(1.1rem,2.6vw,1.6rem)}.page-head h1{font-family:var(--display);letter-spacing:-.032em;margin:0;font-size:clamp(1.9rem,5vw,2.6rem);font-weight:600;line-height:1.03}.page-head p{max-width:62ch;color:var(--muted);text-wrap:pretty;margin:.9rem 0 0;font-size:.98rem;line-height:1.65}.prose{max-width:40rem;color:var(--muted);padding-block:.5rem 1.75rem;font-size:.95rem;line-height:1.75}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h2{color:var(--ink);font-family:var(--display);letter-spacing:-.022em;margin:2rem 0 .75rem;font-size:1.3rem;font-weight:600;line-height:1.2}.prose h3{color:var(--ink);font-family:var(--sans);margin:1.5rem 0 .5rem;font-size:.95rem;font-weight:600}.prose p{text-wrap:pretty;margin:0 0 1rem}.prose strong{color:var(--ink);font-weight:600}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.15rem}.prose li+li{margin-top:.4rem}.prose a{color:var(--accent);text-underline-offset:.2em}.note{color:var(--muted);font-size:1rem;line-height:1.75}.note>:first-child{margin-top:0}.note>:last-child{margin-bottom:0}.note h2{border-top:1px solid var(--rule-strong);color:var(--ink);font-family:var(--display);letter-spacing:-.03em;margin:clamp(2.75rem,6vw,3.75rem) 0 1.25rem;padding-top:clamp(2.5rem,6vw,3.5rem);font-size:clamp(1.5rem,3.4vw,1.9rem);font-weight:600;line-height:1.1}.note>h2:first-child{border-top:0;margin-top:0;padding-top:0}.note h3{color:var(--ink);font-family:var(--display);letter-spacing:-.025em;margin:clamp(2rem,4.5vw,2.75rem) 0 .9rem;font-size:clamp(1.15rem,2.4vw,1.3rem);font-weight:600;line-height:1.25}.note h4{color:var(--ink);font-family:var(--sans);letter-spacing:-.01em;margin:1.6rem 0 .7rem;font-size:.98rem;font-weight:600}.note p{text-wrap:pretty;max-width:62ch;margin:0 0 1.15rem}.note strong{color:var(--ink);font-weight:600}.note ul{margin:0 0 1.15rem;padding-left:1.3rem;list-style:none}.note li{text-wrap:pretty;max-width:60ch;position:relative}.note li+li{margin-top:.5rem}.note li:before{content:"";background:var(--rule-strong);border-radius:50%;width:4px;height:4px;position:absolute;top:.72em;left:-.95rem}.note li>ul{margin:.5rem 0 0;padding-left:1.15rem}.note a{color:var(--accent);text-underline-offset:.2em}.note a[target=_blank]:after{content:"↗";vertical-align:.08em;margin-left:.15em;font-size:.82em;text-decoration:none}.page-head__line{align-items:center;gap:.7rem;display:flex}.page-head__icon{cursor:crosshair;touch-action:none;flex:none;display:block;position:relative}.page-head__line--a .page-head__icon{width:32px;height:32px}.page-head__line--b{gap:.9rem}.page-head__line--b h1{font-size:clamp(2.4rem,6.5vw,3.6rem)}.page-head__line--b .page-head__icon{width:48px;height:48px}.page-head__icon canvas{width:100%;height:100%;display:block;position:absolute;inset:0}a,button,summary,label,select,[role=button]{cursor:pointer}.liquid{touch-action:none;position:relative}.liquid__paint{pointer-events:none;position:absolute;inset:0}.liquid-card{padding:clamp(1.2rem,3vw,1.8rem);position:absolute;top:0;left:0}.liquid--draggable .liquid-card{cursor:grab}.liquid--draggable .liquid-card[data-dragging]{cursor:grabbing}.liquid-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:9px}.galaxy-head .page-head__line{justify-content:center;gap:clamp(.7rem,2vw,1.2rem)}.galaxy-head .page-head__line h1{letter-spacing:-.035em;font-size:clamp(2.4rem,8vw,5rem);line-height:1}.galaxy-head h1,.galaxy-head p{text-shadow:0 0 12px var(--page), 0 0 28px var(--page)}.footer-hello{font-size:.92rem;margin-top:.4rem!important}.note__logo{vertical-align:-.11em;width:auto;height:.88em;margin-left:.3em;display:inline-block}.note__logo--wide{vertical-align:-.05em;height:.72em}.note .hint{color:var(--pop);text-decoration:underline dotted;text-decoration-color:color-mix(in oklab, var(--pop) 45%, transparent);text-underline-offset:.22em;cursor:help;display:inline-block;position:relative}.note .hint__card{z-index:40;border:1px solid var(--rule-strong);background:var(--page);width:max-content;max-width:min(21rem,70vw);color:var(--muted);opacity:0;visibility:hidden;transition:opacity .16s var(--ease), transform .16s var(--ease), visibility .16s;border-radius:9px;padding:.65rem .8rem;font-size:.86rem;line-height:1.55;text-decoration:none;position:absolute;top:calc(100% + .6rem);left:0;transform:translateY(3px);box-shadow:0 1px 2px #0000000d,0 12px 30px #00000017}.note .hint__card a[target=_blank]:after{content:none}.note .hint:hover .hint__card,.note .hint:focus .hint__card{opacity:1;visibility:visible;transform:none}@media (prefers-reduced-motion:reduce){.note .hint__card{transition-duration:1ms;transform:none}}.row__logo{vertical-align:-.14em;width:auto;height:.92em;margin-left:.18em;display:inline-block}.row__logo--wide{vertical-align:-.08em;height:.78em}.column,.header-right,.site-footer__end,.row__title,.row__note{min-width:0}.row__title,.row__note,.prose,.note,.page-head h1{overflow-wrap:anywhere}.section-head{flex-wrap:wrap;gap:.65rem 1.5rem}.prose pre,.note pre{max-width:100%;overflow-x:auto}body:has(dialog[open]){overflow:hidden}@media (width<=640px){.row__link,.row__body{grid-template-columns:minmax(0,1fr);gap:.3rem;padding-block:1rem}.row__year{white-space:normal}.row__note{grid-column:1;margin-top:.2rem}.main-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:.1rem .75rem;display:grid}.main-nav a,.footer-links a,.see-all,.rainbow-toggle{align-items:center;min-height:44px;display:inline-flex}.site-header{padding-block:.75rem}.note .hint__card{inset:auto max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));width:auto;max-width:none;position:fixed}}@media (pointer:coarse){.main-nav a,.footer-links a,.see-all,.rainbow-toggle{align-items:center;min-height:44px;display:inline-flex}.liquid,.page-head__icon{touch-action:pan-y pinch-zoom}.liquid--draggable .liquid-card{cursor:auto}}@media (hover:none){.name-reveal--hero .name-reveal__rest{opacity:1;max-width:6ch}}
