@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-vietnamese-standard-normal.Br4FGdAc.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;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-latin-ext-standard-normal.qp-RdZgh.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;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-latin-standard-normal.C5Lc8Qmc.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 dark;--bg:#0b0b0c;--ink:#f2f0eb;--body:#f2f0ebb8;--dim:#f2f0eb94;--line:#f2f0eb1f;--accent:#ff4f1f;--grain:.06;--gutter:16px;--font-display:"Bricolage Grotesque Variable", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace}@media (width>=640px){:root{--gutter:clamp(16px, 3vw, 40px)}}@media (prefers-color-scheme:light){:root{--bg:#f2f0eb;--ink:#0b0b0c;--body:#0b0b0cbf;--dim:#0b0b0ca3;--line:#0b0b0c1f;--accent:#e83f0f;--grain:.04}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--bg);min-height:100vh;color:var(--ink);font:16px/1.75 var(--font-body);flex-direction:column;margin:0;display:flex;overflow-x:hidden}body:before{content:"";z-index:100;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}main{flex:1}::selection{background:var(--accent);color:#0b0b0c}a{color:inherit;background-image:linear-gradient(var(--ink), var(--ink)), linear-gradient(color-mix(in srgb, var(--ink) 35%, transparent), color-mix(in srgb, var(--ink) 35%, transparent));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px,100% 1px;text-decoration:none;transition:background-size .3s cubic-bezier(.2,.8,.2,1)}a:hover{background-size:100% 1px,100% 1px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,.wordmark{text-rendering:optimizelegibility}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}:lang(ja){line-break:strict;hanging-punctuation:allow-end}:lang(ja) :is(h1,h2,h3,h4,.mono,.sub,.sub-ja,.statement,.statement-ja,.closing-ja,.huge,.pill){font-feature-settings:"palt" 1}:lang(ja) :is(h1,h2,h3,h4,.sub,.sub-ja,.desc,.statement-ja,.closing-ja){word-break:auto-phrase}:lang(ja) :is(h1,h2,h3,h4){text-wrap:balance}:lang(ja) p{text-wrap:pretty}.mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-variant-numeric:tabular-nums;font-size:11px;line-height:1.4}@media (width>=640px){.mono{font-size:12px}}.site-header{--chrome:var(--accent);z-index:50;padding:20px var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(12px);align-items:center;gap:1rem;display:flex;position:sticky;top:0}.site-header .now{white-space:nowrap;color:var(--dim);flex:1;padding-left:1rem;display:none}@media (width>=720px){.site-header .now{display:block}}.site-header .hdr-right{align-items:center;gap:1.25rem;margin-left:auto;display:flex}.langsw{align-items:center;gap:.4rem;display:inline-flex}.langsw .cur{color:var(--ink);position:relative}.langsw .cur:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:-7px;left:50%}.langsw .sep{opacity:.6}.langsw a{color:var(--dim);background-image:none;transition:color .2s}.langsw a:hover{color:var(--ink)}.site-header .progress{background:var(--chrome);height:1px;transform:scaleX(var(--p,0));transform-origin:0;pointer-events:none;transition:background-color .6s;position:absolute;bottom:-1px;left:0;right:0}.site-header .wordmark{font-family:var(--font-display);letter-spacing:-.04em;view-transition-name:wordmark;background-image:none;font-size:22px;font-weight:700;line-height:1}.dotmark{background:var(--dot-color,var(--accent));border-radius:50%;width:.2em;height:.2em;margin-left:.06em;display:inline-block}.site-header .dot{--dot-color:var(--chrome);width:.24em;height:.24em;transition:background-color .6s}.site-footer{padding:24px var(--gutter);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.pill{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);color:var(--ink);background-image:none;border-radius:999px;padding:8px 14px;font-size:11px;line-height:1;transition:border-color .2s,color .2s;display:inline-block}.pill:hover{border-color:var(--ink);color:var(--ink)}.js [data-reveal]{opacity:0;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transform:translateY(24px)}.js [data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.js [data-reveal]{opacity:1;transform:none}}
