@font-face{font-family:Mulish;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/mulish-latin-wght-normal.WL5YNY-W.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:Mulish;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/mulish-latin-ext-wght-normal.BHZ6ODhS.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:Mulish;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/_astro/mulish-latin-wght-italic.vAvRajq4.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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{--heading:#152035;--text:#4f5560;--muted:#646a75;--accent:#01ad9f;--link:#007a6e;--link-hover:#005c52;--on-link:#fff;--surface:#f6f7f9;--surface-2:#eef0f4;--border:#e4e7ec;--field-border:#7b8089;--bg:#fff;--tint:#e3f5f3;--warn:#9a5000;--danger:#b3261e;--footer-bg:#0f1829;--ring:#15203512;--t-tech-bg:#d8f1ed;--t-tech-fg:#00675c;--t-finance-bg:#fbebc6;--t-finance-fg:#7a4b00;--t-japan-bg:#fbdfe1;--t-japan-fg:#9b2335;--font:"Mulish", system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", "Noto Sans JP", "Noto Sans CJK JP", Meiryo, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm:10px;--radius:14px;--radius-lg:24px;--container:1180px;--content:808px;--gutter:clamp(1rem, 4vw, 1.5rem);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--heading:#f2f5f8;--text:#b7bfcb;--muted:#94a0b0;--accent:#14b8a6;--link:#5eead4;--link-hover:#99f6e4;--on-link:#04211d;--surface:#111821;--surface-2:#18212c;--border:#232d39;--field-border:#5f6b7a;--bg:#0a0e14;--tint:#2dd4bf24;--warn:#fbbf24;--danger:#f87171;--footer-bg:#06090d;--ring:#ffffff17;--t-tech-bg:#0e2b28;--t-tech-fg:#5eead4;--t-finance-bg:#2f2309;--t-finance-fg:#fcd34d;--t-japan-bg:#38131a;--t-japan-fg:#fda4af;color-scheme:dark}}:root[data-theme=dark]{--heading:#f2f5f8;--text:#b7bfcb;--muted:#94a0b0;--accent:#14b8a6;--link:#5eead4;--link-hover:#99f6e4;--on-link:#04211d;--surface:#111821;--surface-2:#18212c;--border:#232d39;--field-border:#5f6b7a;--bg:#0a0e14;--tint:#2dd4bf24;--warn:#fbbf24;--danger:#f87171;--footer-bg:#06090d;--ring:#ffffff17;--t-tech-bg:#0e2b28;--t-tech-fg:#5eead4;--t-finance-bg:#2f2309;--t-finance-fg:#fcd34d;--t-japan-bg:#38131a;--t-japan-fg:#fda4af;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:1.5rem}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:1rem;line-height:1.625;display:flex}html:lang(ja) body{line-break:strict;word-break:auto-phrase;line-height:1.85}main{flex:1;width:100%}main:focus{outline:none}img{max-width:100%;height:auto}.container{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}.prose-width{width:min(100% - 2 * var(--gutter), var(--content));margin-inline:auto}.page{padding-block:3rem 0}.listing{padding-top:clamp(1.5rem,5vw,3rem)}a{color:var(--link);text-underline-offset:.18em}a:hover{color:var(--link-hover)}:focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:3px}h1,h2,h3,h4{color:var(--heading);text-wrap:balance;margin:0;font-weight:700;line-height:1.25}:lang(ja) :is(h1,h2,h3,h4){text-wrap:pretty;line-height:1.5}:where(ul,ol)[role=list]{margin:0;padding:0;list-style:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:60;background:var(--heading);color:var(--bg);border-radius:var(--radius-sm);padding:.6rem 1rem;font-weight:700;position:absolute;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.fixture-banner{background:var(--tint);color:var(--heading);text-align:center;padding:.4rem var(--gutter);font-size:.875rem;font-weight:600}.page-title,.section-title{text-align:center;font-size:clamp(2rem,5vw,2.5rem)}.page-title:after,.section-title:after{content:"";background:var(--accent);border-radius:2px;width:2.5rem;height:4px;margin:.9rem auto 0;display:block}.section-title{font-size:clamp(1.75rem,4vw,2.075rem)}.page-head{margin-bottom:clamp(2rem,5vw,3rem)}.page-head-left .page-title,.page-head-left .page-lede,.page-head-left .resume-updated{text-align:left}.page-head-left .page-title:after,.page-head-left .page-lede{margin-left:0}.page-head-left .page-aside,.page-head-left .tags{justify-content:flex-start}.page-lede{text-align:center;max-width:36rem;color:var(--muted);margin:1.25rem auto 0}.page-aside,.page-aside-inline{color:var(--muted);font-size:.9375rem}.page-aside{flex-wrap:wrap;justify-content:center;gap:.35rem 1.25rem;margin:1rem 0 0;display:flex}.empty{text-align:center;color:var(--muted);padding-block:1rem 2rem}.empty p{margin:0 0 1rem}.btn,.button{background:var(--link);color:var(--on-link);border-radius:var(--radius-sm);font:inherit;cursor:pointer;border:0;padding:.7rem 1.5rem;font-weight:700;text-decoration:none;display:inline-block}.btn:hover,.button:hover:not(:disabled){background:var(--link-hover);color:var(--on-link)}.btn-ghost{color:var(--link);box-shadow:inset 0 0 0 2px var(--link);background:0 0}.btn-ghost:hover{background:var(--tint);color:var(--link-hover)}.actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.button:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;color:var(--heading);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;font-size:.875rem;font-weight:800;text-decoration:none;display:inline-grid}.icon-btn:hover{color:var(--link);background:var(--surface)}summary.icon-btn{list-style:none}summary.icon-btn::-webkit-details-marker{display:none}.icon-btn-outline{color:#fff;border-color:#ffffffbf;width:2.75rem;height:2.75rem}.icon-btn-outline:hover{color:#fff;background:#ffffff1f}.icon-btn.is-done{color:var(--link);background:var(--tint)}.site-header{background:var(--bg)}.header-row{align-items:center;gap:1rem 2rem;min-height:84px;display:flex}.logo{white-space:nowrap;color:var(--heading);letter-spacing:-.01em;flex:none;align-items:center;gap:.6rem;font-size:1.5rem;font-weight:800;text-decoration:none;display:inline-flex}.logo-mark{border-radius:var(--radius);background:var(--link);width:2.1rem;height:2.1rem;color:var(--on-link);letter-spacing:0;place-items:center;font-size:.9rem;font-weight:800;display:grid}.nav-desktop{margin-inline:auto}.nav-desktop a,.nav-desktop summary{white-space:nowrap}.nav-desktop>ul{align-items:center;gap:.25rem 1.75rem;display:flex}.nav-desktop a,.nav-desktop summary{color:var(--heading);cursor:pointer;align-items:center;gap:.3rem;padding-block:.35rem;font-weight:600;text-decoration:none;list-style:none;display:inline-flex}.nav-desktop summary::-webkit-details-marker{display:none}.nav-desktop a:hover,.nav-desktop summary:hover,.nav-desktop a[aria-current=page],.nav-desktop details.is-active>summary{color:var(--link)}.nav-desktop>ul>li>a[aria-current=page],.nav-desktop details.is-active>summary{box-shadow:inset 0 -3px 0 var(--link)}.more>ul a[aria-current=page],.nav-mobile a[aria-current=page]{box-shadow:inset 3px 0 0 var(--link)}.more{position:relative}.more>ul{z-index:20;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);min-width:11rem;margin:0;padding:.5rem;list-style:none;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 12px 32px #1520351f}.more>ul a{border-radius:var(--radius-sm);padding:.45rem .75rem;display:block}.more>ul a:hover{background:var(--surface)}.header-tools{align-items:center;gap:.25rem;margin-left:auto;display:flex}.lang-switch{border:1px solid var(--border);border-radius:var(--radius-sm);margin-right:.35rem;font-size:.875rem;font-weight:700;display:flex;overflow:hidden}.lang-switch a,.lang-current{white-space:nowrap;place-items:center;min-width:2.6rem;height:2.1rem;padding:0 .5rem;text-decoration:none;display:grid}.lang-current{background:var(--link);color:var(--on-link)}.lang-switch a{color:var(--heading)}.lang-switch a:hover{background:var(--surface)}.menu{display:none;position:relative}.nav-mobile{z-index:20;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);min-width:13rem;padding:.5rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 12px 32px #1520351f}.nav-mobile a{border-radius:var(--radius-sm);color:var(--heading);padding:.55rem .75rem;font-weight:600;text-decoration:none;display:block}.nav-mobile a:hover,.nav-mobile a[aria-current=page]{background:var(--surface);color:var(--link)}@media (width<=64.99rem){.nav-desktop{display:none}.menu{display:block}}@media (width>=65rem){:lang(ja) .logo{font-size:1.25rem}:lang(ja) .nav-desktop>ul{gap:.25rem .875rem;font-size:.9375rem}}@media (width<=29.99rem){.logo{white-space:normal;flex:0 auto;gap:.45rem;min-width:0;font-size:1rem;line-height:1.15}.logo-mark{flex:none;width:1.9rem;height:1.9rem}.header-row{gap:.5rem}.lang-switch a,.lang-current{min-width:2.3rem}}.avatar{background:var(--tint);color:var(--link);border-radius:50%;flex:none;place-items:center;font-weight:800;line-height:1;display:inline-grid}.avatar-sm{width:1.5rem;height:1.5rem;font-size:.6rem}.avatar-xl{border-radius:var(--radius);background:var(--tint);width:100%;height:100%;font-size:clamp(4rem,12vw,6rem)}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.35rem 1.1rem;margin:0;padding:0;font-size:.9375rem;list-style:none;display:flex}.meta li{align-items:center;gap:.4rem;display:inline-flex}.meta svg{color:var(--accent)}.meta a{color:var(--muted);align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.meta a:hover{color:var(--link)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,3.5rem) 2.5rem;display:grid}.card{margin-bottom:clamp(2rem,5vw,3.5rem)}.card-grid>.card{margin-bottom:0}.card-cover{margin-bottom:1.1rem;display:block}.cover{aspect-ratio:97/50;border-radius:var(--radius);background:var(--surface);overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.card-cover:hover .cover img{transform:scale(1.035)}.card:has(.card-cover:hover) .card-title a{color:var(--link)}.cover-fallback{background:var(--t-tech-bg);color:var(--t-tech-fg);place-items:center;display:grid}.cover-finance{background:var(--t-finance-bg);color:var(--t-finance-fg)}.cover-japan-life{background:var(--t-japan-bg);color:var(--t-japan-fg)}.card-title{letter-spacing:-.01em;margin:.75rem 0 .6rem;font-size:1.75rem}.card-featured .card-title{font-size:2.075rem}.card-title a{color:var(--heading);text-decoration:none}.card-title a:hover{color:var(--link)}.card-excerpt{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}@media (width<=47.99rem){.card-grid{grid-template-columns:minmax(0,1fr)}.card-title,.card-featured .card-title{font-size:1.5rem}}.pagination{margin-block:1rem 0}.pagination ul{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.page-link{border:1px solid var(--accent);border-radius:var(--radius-sm);min-width:2.5rem;height:2.5rem;color:var(--heading);place-items:center;padding:0 .5rem;font-weight:700;text-decoration:none;display:grid}a.page-link:hover{background:var(--tint);color:var(--heading)}.page-link.is-current{background:var(--link);border-color:var(--link);color:var(--on-link)}.page-link.is-disabled{border-color:var(--border);color:var(--muted)}.page-gap{height:2.5rem;color:var(--muted);place-items:center;display:grid}.pills,.tag-list{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.pill,.tag{background:var(--surface);border-radius:var(--radius);color:var(--heading);align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.pill svg{color:var(--accent)}.pill:hover,.tag:hover{background:var(--tint);color:var(--heading)}.pill-count{color:var(--muted);font-size:.875rem;font-weight:500}.tag-list{justify-content:flex-start;gap:.5rem}.tag{font-size:.9375rem}.post{padding-top:clamp(1.5rem,5vw,3rem)}.post-head{text-align:center;max-width:46rem;margin:0 auto 2rem}.post-head h1{margin-bottom:1rem;font-size:clamp(1.85rem,5vw,2.5rem)}.post-head .meta{justify-content:center}.post-series{color:var(--muted);margin:.75rem 0 0;font-size:.9375rem}.post-cover{margin:0 0 2.5rem}.post-cover img{aspect-ratio:97/50;object-fit:cover;border-radius:var(--radius);width:100%;display:block}.post-cover figcaption{color:var(--muted);text-align:center;margin-top:.5rem;font-size:.8125rem}.post-body{max-width:var(--content);margin-inline:auto}.post-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:3rem;display:flex}.share{align-items:center;gap:.75rem;display:flex}.share-title{color:var(--heading);font-size:.9375rem;font-weight:700}.share ul{gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.share .icon-btn{color:var(--muted)}.share .icon-btn:hover{color:var(--link)}.related{margin-top:clamp(3rem,8vw,5rem)}.related .section-title{margin-bottom:2rem}.toc{background:var(--surface);border-radius:var(--radius);margin-bottom:2rem;padding:.9rem 1.25rem;font-size:.9375rem}.toc summary{cursor:pointer;color:var(--heading);font-weight:700}.toc ol{margin:.6rem 0 0;padding-left:1.25rem}.toc li{padding-block:.15rem}.toc .depth-3{margin-left:1rem;list-style:circle}.toc .depth-4{margin-left:2rem;list-style:square}.prose{color:var(--text);font-size:1.0625rem;line-height:1.75}:lang(ja) .prose{line-height:1.95}.prose>*{margin-block:0}.prose>*+*{margin-top:1.25em}.prose h2{margin-top:2.2em;font-size:1.75rem}.prose h3{margin-top:1.9em;font-size:1.4rem}.prose h4{margin-top:1.7em;font-size:1.15rem}.prose :is(h2,h3,h4)+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent);font-weight:700}.prose blockquote{background:var(--surface);border-left:4px solid var(--accent);border-radius:var(--radius);color:var(--heading);margin-inline:0;padding:1.1rem 1.5rem;font-size:1.125rem;font-style:italic}:lang(ja) .prose blockquote{font-style:normal}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2.5em}.prose :not(pre)>code{background:var(--surface);color:var(--heading);font-family:var(--font-mono);border-radius:4px;padding:.1em .4em;font-size:.85em}.prose strong{color:var(--heading)}.prose .anchor{color:var(--muted);opacity:0;margin-left:.4rem;font-weight:500;text-decoration:none}.prose :is(h2,h3,h4):hover .anchor{opacity:1}.callout{background:var(--surface);border-left:4px solid var(--callout,var(--accent));border-radius:var(--radius);margin-inline:0;padding:1rem 1.25rem}.callout>*+*{margin-top:.5rem}.callout p{margin:0}.callout-title{color:var(--callout,var(--link));font-size:.9375rem;font-weight:800}.callout-warn{--callout:var(--warn)}.callout-danger{--callout:var(--danger)}.table-wrap{overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.5}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.75rem 1rem}.prose thead th{background:var(--surface);color:var(--heading);font-weight:700}.prose thead th:first-child{border-top-left-radius:var(--radius)}.prose thead th:last-child{border-top-right-radius:var(--radius)}.prose .num{text-align:right;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.prose th.num{white-space:normal}figure.figure{margin-inline:0}figure.figure img{border-radius:var(--radius);background:var(--surface);width:100%;display:block}figure.figure figcaption{color:var(--muted);margin-top:.6rem;font-size:.875rem}figure.embed{margin-inline:0}figure.embed iframe{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color-scheme:normal;width:100%;display:block}figure.embed figcaption,.embed-note{color:var(--muted);margin-top:.6rem;font-size:.875rem}.gallery-strip{scroll-snap-type:x proximity;gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.gallery-strip img{border-radius:var(--radius);scroll-snap-align:start;background:var(--surface);flex:none;width:auto;height:13rem}.terminal-output{background:var(--surface);border-radius:0 0 var(--radius) var(--radius);font-family:var(--font-mono);white-space:pre-wrap;color:var(--text);margin:0;padding:.9rem 1rem;font-size:.8125rem;line-height:1.6;overflow-x:auto}.diagram{margin-inline:0}.diagram img{margin-inline:auto;display:block}.diagram details{margin-top:.5rem;font-size:.9375rem}.diagram summary{cursor:pointer;color:var(--muted)}.diagram pre{background:var(--surface);border-radius:var(--radius);padding:.75rem;font-size:.8125rem;overflow-x:auto}.jp{text-decoration:underline dotted var(--muted);text-underline-offset:.25em;cursor:help;position:relative}.jp-r{color:var(--muted);font-style:italic}.jp-tip{z-index:5;background:var(--heading);width:max-content;max-width:min(16rem,100vw - 2rem);color:var(--bg);border-radius:var(--radius-sm);white-space:normal;background-clip:padding-box;border-bottom:.4rem solid #0000;padding:.3rem .65rem;font-size:.875rem;font-style:normal;font-weight:600;line-height:1.4;text-decoration:none;display:none;position:absolute;bottom:100%;left:0}.jp:hover .jp-tip,.jp:focus .jp-tip{display:block}.jp.is-end .jp-tip{left:auto;right:0}.jp.is-start .jp-tip{left:0;right:auto}.jp.is-dismissed .jp-tip{display:none}.prose ul.checklist{padding-left:0;list-style:none}.prose .checklist li{align-items:baseline;gap:.6rem;display:flex}.check-mark{border:2px solid var(--muted);border-radius:4px;flex:none;width:1.05rem;height:1.05rem;margin-top:.3rem}.is-checked>.check-mark{border-color:var(--link);background:var(--link) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat}.prose li>ul,.prose li>ol{margin-top:.35em}[hidden]{display:none!important}.about-intro{align-items:start;gap:2rem 2.5rem;display:grid}.about-photo{aspect-ratio:2/3;width:100%;max-width:18rem}.about-title{margin-bottom:1rem;font-size:clamp(1.85rem,4vw,2.25rem)}.about-topics{margin-top:clamp(3rem,8vw,5rem)}.topics{text-align:center;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem;margin-top:2.5rem;display:grid}.topic-icon{border-radius:var(--radius);background:var(--tint);width:3.5rem;height:3.5rem;color:var(--link);place-items:center;margin-bottom:.75rem;display:inline-grid}.topics h3{font-size:1.4rem}.topics h3 a{color:var(--heading);text-decoration:none}.topics h3 a:hover{color:var(--link)}.topics p{color:var(--muted);margin:.5rem 0 0}@media (width>=48rem){.about-intro{grid-template-columns:17rem 1fr}}.resume-updated{text-align:center;color:var(--muted);margin:.75rem 0 0;font-size:.9375rem}.resume-summary{margin-top:0}.resume-contact{flex-wrap:wrap;gap:.35rem 1.5rem;margin:1rem 0 0;padding:0;font-weight:700;list-style:none;display:flex}.resume h2{margin:2.5rem 0 1rem;font-size:1.5rem}.resume-entry{margin-bottom:1.5rem}.resume-entry h3{font-size:1.15rem}.resume-entry p{margin:.2rem 0 0}.resume-entry .when{color:var(--muted);font-size:.9375rem}.resume-entry ul{margin:.5rem 0 0;padding-left:1.2rem}.resume dl{grid-template-columns:minmax(7rem,max-content) 1fr;gap:.5rem 1.5rem;margin:0;display:grid}.resume dt{color:var(--heading);font-weight:700}.resume dd{margin:0}.uses-group h2{margin:2.5rem 0 .5rem;font-size:1.5rem}.uses-group ul{margin:0;padding:0;list-style:none}.uses-group li{border-bottom:1px solid var(--border);color:var(--heading);padding-block:.75rem;font-weight:700}.uses-group li span{color:var(--muted);font-weight:400;display:block}.tags{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.tags li{background:var(--surface);border-radius:var(--radius);color:var(--heading);padding:.25rem .8rem;font-size:.875rem;font-weight:600}.narrow{max-width:40rem;margin-inline:auto}.form{gap:1.25rem;display:grid}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}@media (width<=36rem){.form-row{grid-template-columns:minmax(0,1fr)}}.form label{color:var(--heading);gap:.35rem;font-size:.9375rem;font-weight:700;display:grid}.form input,.form textarea{color:var(--heading);background:var(--bg);border:1px solid var(--field-border);border-radius:var(--radius-sm);font:inherit;padding:.75rem 1rem;font-weight:400}.form input:focus,.form textarea:focus{border-color:var(--link);outline:2px solid var(--link);outline-offset:0}.form textarea{resize:vertical;min-height:10rem}.hp{position:absolute;left:-9999px}.notice{background:var(--surface);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9375rem}.site-footer{background:var(--footer-bg);color:#ffffffbf;text-align:center;margin-top:clamp(4rem,10vw,6rem)}.footer-inner{justify-items:center;gap:1.75rem;padding-block:5rem;display:grid}.footer-links{flex-wrap:wrap;justify-content:center;gap:.5rem 2.5rem;display:flex}.footer-links a{color:#ffffffd9;font-weight:600;text-decoration:none}.footer-links a:hover{color:#fff;text-decoration:underline}.footer-social{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.footer-copy{margin:0;font-size:.9375rem}.site-footer :focus-visible{outline-color:#fff}:root{--shadow-sm:0 1px 2px #0f18290f;--shadow-md:0 10px 28px #0f18291a;--shadow-lg:0 22px 50px #0f182929;--ease:cubic-bezier(.2, .7, .2, 1);--header-h:5.25rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--shadow-sm:0 1px 2px #00000080;--shadow-md:0 10px 28px #00000073;--shadow-lg:0 22px 50px #0000008c}}:root[data-theme=dark]{--shadow-sm:0 1px 2px #00000080;--shadow-md:0 10px 28px #00000073;--shadow-lg:0 22px 50px #0000008c}html{scroll-padding-top:calc(var(--header-h) + 1rem);scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh}a,button,summary,label,input,textarea{touch-action:manipulation}::selection{background:var(--tint);color:var(--heading)}.site-header{z-index:40;pointer-events:none;background:0 0;padding-block:.75rem;position:sticky;top:0}.header-row{pointer-events:auto;background:color-mix(in srgb, var(--bg) 78%, transparent);backdrop-filter:saturate(180%)blur(16px);border:1px solid var(--border);min-height:3.5rem;box-shadow:var(--shadow-sm);border-radius:999px;gap:.75rem 1.25rem;padding:.35rem .5rem .35rem .75rem}@supports not (backdrop-filter:blur(1px)){.header-row{background:var(--bg)}}.logo{letter-spacing:-.02em;font-size:1.15rem}.logo-mark{border-radius:999px;width:2.25rem;height:2.25rem}.nav-desktop>ul{gap:.15rem}.nav-desktop a,.nav-desktop summary{border-radius:999px;padding:.45rem .85rem;font-weight:650}.nav-desktop a:hover,.nav-desktop summary:hover{background:var(--surface-2);color:var(--heading)}.nav-desktop>ul>li>a[aria-current=page],.nav-desktop details.is-active>summary{box-shadow:none;background:var(--tint);color:var(--link)}.more>ul,.nav-mobile{border-radius:var(--radius);box-shadow:var(--shadow-lg);overscroll-behavior:contain;top:calc(100% + .75rem)}.nav-mobile{max-height:calc(100dvh - var(--header-h) - 1.5rem);overflow-y:auto}.lang-switch{border-radius:999px;margin-right:.15rem}.icon-btn{border-radius:999px}.nav-desktop a,.nav-desktop summary,.lang-switch a,.icon-btn,.more>ul a,.nav-mobile a{transition:color .15s var(--ease), background-color .15s var(--ease)}.theme-toggle[hidden],.theme-toggle .icon-moon,:root[data-theme=dark] .theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:none}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:block}}h1{letter-spacing:-.03em}h2{letter-spacing:-.02em}:lang(ja) :is(h1,h2,h3,h4),:lang(ja) .card-title{letter-spacing:0}.prose :is(p,li,blockquote),.card-excerpt,.page-lede{text-wrap:pretty}.meta,.page-link,.post-series{font-variant-numeric:tabular-nums}.meta{font-size:.875rem}.page-title,.section-title{letter-spacing:-.03em}:lang(ja) .nav-desktop a,:lang(ja) .nav-desktop summary{padding-inline:.6rem}:lang(ja) .logo{font-size:1.05rem}@media (width<=79.99rem){:lang(ja) .nav-desktop{display:none}:lang(ja) .menu{display:block}}.hero{padding-block:clamp(1.5rem,5vw,3.5rem) clamp(1.75rem,4vw,2.75rem);position:relative}.hero:before{content:"";z-index:-1;background:radial-gradient(closest-side at 70% 35%, color-mix(in srgb, var(--accent) 26%, transparent), transparent), radial-gradient(closest-side at 25% 70%, color-mix(in srgb, var(--t-japan-fg) 14%, transparent), transparent);filter:blur(8px);pointer-events:none;width:min(60rem,90vw);height:26rem;position:absolute;inset:-2rem -10vw auto auto}.hero-eyebrow{background:var(--tint);color:var(--link);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.5rem;margin:0 0 1.25rem;padding:.3rem .85rem;font-size:.8125rem;font-weight:800;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--accent);border-radius:50%;width:.5rem;height:.5rem}.hero-title{letter-spacing:-.04em;background:linear-gradient(100deg, var(--heading) 35%, var(--link) 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;max-width:16ch;margin:0;font-size:clamp(2.5rem,8.5vw,5.25rem);font-weight:800;line-height:1.02}:lang(ja) .hero-title{letter-spacing:-.01em;max-width:14em;line-height:1.2}@media (forced-colors:active){.hero-title{-webkit-text-fill-color:currentColor;color:canvastext;background:0 0}}.hero-lead{max-width:38rem;color:var(--text);text-wrap:pretty;margin:1.25rem 0 0;font-size:clamp(1.0625rem,2.2vw,1.3125rem);line-height:1.55}.hero-topics{flex-wrap:wrap;gap:.6rem;margin:1.75rem 0 0;display:flex}.topic-chip{border:1px solid var(--border);background:var(--surface);color:var(--heading);transition:background-color .15s var(--ease), border-color .15s var(--ease), transform .2s var(--ease);border-radius:999px;align-items:center;gap:.5rem;padding:.5rem .95rem;font-weight:700;text-decoration:none;display:inline-flex}.topic-chip svg{color:var(--topic-fg,var(--accent))}.topic-chip:hover{background:var(--topic-bg,var(--tint));color:var(--topic-fg,var(--heading));border-color:#0000;transform:translateY(-2px)}.topic-chip-count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}[data-topic=tech]{--topic-bg:var(--t-tech-bg);--topic-fg:var(--t-tech-fg)}[data-topic=finance]{--topic-bg:var(--t-finance-bg);--topic-fg:var(--t-finance-fg)}[data-topic=japan-life]{--topic-bg:var(--t-japan-bg);--topic-fg:var(--t-japan-fg)}.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .2s var(--ease);flex-direction:column;margin:0;display:flex;position:relative;overflow:hidden}.tile:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--topic-fg,var(--accent)) 45%, var(--border));transform:translateY(-4px)}.tile:has(:focus-visible){outline:3px solid var(--link);outline-offset:3px}.tile .card-cover{margin:0}.tile .cover{aspect-ratio:16/10;border-radius:0}.tile .cover:after{box-shadow:none}.tile-body{flex-direction:column;flex:1;gap:.6rem;padding:1.1rem 1.35rem 1.4rem;display:flex}.tile .meta{gap:.4rem .9rem}.tile .meta-author{display:none}.tile .card-title{letter-spacing:-.02em;margin:0;font-size:1.3rem;line-height:1.25}.tile .card-title a:after{content:"";z-index:1;position:absolute;inset:0}.tile .meta a{z-index:2;position:relative}.tile .card-excerpt{font-size:.9375rem;line-height:1.55}.meta-topic a,.meta-topic{color:var(--topic-fg,var(--muted))}.tile .meta-topic{font-weight:700}.tile .meta-topic svg{color:currentColor}.tile:hover .card-title a{color:var(--link)}.bento.has-feature>.tile:first-child{color:#fff;border:0;grid-area:span 2/span 2;justify-content:flex-end;min-height:32rem}.bento.has-feature>.tile:first-child .card-cover{position:absolute;inset:0}.bento.has-feature>.tile:first-child .cover{aspect-ratio:auto;width:100%;height:100%}.bento.has-feature>.tile:first-child:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#060a120d 22%,#060a129e 58%,#060a12f0 100%);position:absolute;inset:0}.bento.has-feature>.tile:first-child .tile-body{z-index:2;pointer-events:none;flex:none;padding:clamp(1.25rem,3vw,2.25rem);position:relative}.bento.has-feature>.tile:first-child .tile-body a{pointer-events:auto}.bento.has-feature>.tile:first-child .card-title{letter-spacing:-.03em;font-size:clamp(1.75rem,3.4vw,2.6rem)}.bento.has-feature>.tile:first-child .card-title a,.bento.has-feature>.tile:first-child .card-title,.bento.has-feature>.tile:first-child:hover .card-title a{color:#fff}.bento.has-feature>.tile:first-child .card-excerpt,.bento.has-feature>.tile:first-child .meta,.bento.has-feature>.tile:first-child .meta a{color:#ffffffe0}.bento.has-feature>.tile:first-child .meta-topic,.bento.has-feature>.tile:first-child .meta-topic a{color:#fff}.bento.has-feature>.tile:first-child .meta svg{color:#fffc}.bento.has-feature>.tile:first-child:hover{border:0}.bento.has-feature>.tile:nth-child(n+6){flex-direction:row;grid-column:span 3}.bento.has-feature>.tile:nth-child(n+6) .card-cover{flex:0 0 42%}.bento.has-feature>.tile:nth-child(n+6) .cover{aspect-ratio:auto;height:100%;min-height:11rem}.bento.has-feature>.tile:nth-child(n+6) .tile-body{justify-content:center}@media (width>=64rem){.bento.has-feature{grid-template-columns:repeat(4,minmax(0,1fr))}.bento.has-feature>.tile:nth-child(n+6){grid-column:span 2}}@media (width<=63.99rem){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.bento.has-feature>.tile:first-child{grid-area:auto/span 2;min-height:28rem}.bento.has-feature>.tile:nth-child(n+6){grid-column:span 2}}@media (width<=39.99rem){.bento,.bento.has-feature{grid-template-columns:minmax(0,1fr)}.bento.has-feature>.tile:first-child,.bento.has-feature>.tile:nth-child(n+6){grid-column:auto}.bento.has-feature>.tile:first-child{min-height:26rem}.bento.has-feature>.tile:nth-child(n+6){flex-direction:column}.bento.has-feature>.tile:nth-child(n+6) .card-cover{flex:none}.bento.has-feature>.tile:nth-child(n+6) .cover{aspect-ratio:16/10;height:auto;min-height:0}}@media (width>=40rem){.bento.is-few>.tile:first-child{grid-area:auto/1/auto/-1;min-height:26rem}.bento.is-few>.tile:not(:first-child){grid-column:span 2}.bento.is-few>.tile:nth-child(2):last-child{flex-direction:row;grid-column:1/-1}.bento.is-few>.tile:nth-child(2):last-child .card-cover{flex:0 0 42%}.bento.is-few>.tile:nth-child(2):last-child .cover{aspect-ratio:auto;height:100%;min-height:11rem}.bento.is-few>.tile:nth-child(2):last-child .tile-body{justify-content:center}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.tile{animation:linear both rise view();animation-range:entry entry 40%}}}.cover{position:relative}.cover:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px var(--ring);pointer-events:none;position:absolute;inset:0}.cover img{transition:transform .7s var(--ease)}.card-cover:hover .cover img,.tile:hover .cover img{transform:scale(1.04)}.post-cover img{border-radius:var(--radius-lg);outline:1px solid var(--ring);outline-offset:-1px;box-shadow:var(--shadow-md)}.diagram img{border-radius:var(--radius);background:#fff}.btn:not(.btn-ghost),.button{box-shadow:var(--shadow-sm);border-radius:999px}.btn-ghost{border-radius:999px}.btn,.button,.btn-ghost{transition:background-color .15s var(--ease), color .15s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease)}.btn:not(.btn-ghost):hover,.button:hover:not(:disabled){box-shadow:var(--shadow-md)}.btn:active,.button:active:not(:disabled){transform:translateY(1px)}.page-link{border-color:var(--border);border-radius:999px}a.page-link:hover{border-color:var(--accent)}.pill,.tag{border:1px solid var(--border);background:var(--surface);border-radius:999px}.page-link,.pill,.tag,.icon-btn-outline{transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease)}.icon-btn-outline:hover{border-color:#fff}.card-title a{transition:color .15s var(--ease)}.post-head h1{font-size:clamp(2rem,5.5vw,3.25rem);line-height:1.08}.post-head{max-width:52rem}.post-cover{margin-bottom:3rem}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.post:before{content:"";z-index:70;background:var(--accent);transform-origin:0;width:100%;height:3px;animation:linear both progress scroll(root);position:fixed;top:0;left:0;transform:scaleX(0)}}}.prose a:not(.btn):not(.anchor){text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);transition:text-decoration-color .15s var(--ease)}.prose a:not(.btn):not(.anchor):hover{text-decoration-color:currentColor;text-decoration-thickness:2px}.prose .anchor:focus-visible{opacity:1}.site-footer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:env(safe-area-inset-bottom)}.pagefind-ui{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--link);--pagefind-ui-text:var(--heading);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--border);--pagefind-ui-tag:var(--surface);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:8px;--pagefind-ui-font:var(--font)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media print{.site-header,.site-footer,.skip-link,.fixture-banner,.share{display:none!important}body{font-size:10.5pt;line-height:1.45}a{color:inherit;text-decoration:none}.page{padding-block:0}}
