@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--shadow-color:initial}::backdrop{--shadow-color:initial}}}@layer theme{:root{--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cad5e2;--color-slate-400:#90a1b9;--color-slate-500:#62748e;--color-slate-600:#45556c;--color-slate-700:#314158;--color-slate-800:#1d293d;--color-slate-900:#0f172b;--color-gray-100:#f3f4f6;--color-gray-800:#1e2939;--container-md:28rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--blur:8px;--shadow-sm:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));--shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));--shadow-lg:0 10px 15px -3px var(--shadow-color,rgba(0,0,0,.1)),0 4px 6px -4px var(--shadow-color,rgba(0,0,0,.1));--shadow-xl:0 20px 25px -5px var(--shadow-color,rgba(0,0,0,.1)),0 8px 10px -6px var(--shadow-color,rgba(0,0,0,.1));--ring-shadow:initial 0 0 0 0px currentcolor;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--container-3xl:48rem;--default-transition-duration:.15s}@supports (color:lab(0% 0 0)){:root{--color-slate-50:lab(98.1434% -.369519 -1.05966);--color-slate-100:lab(96.286% -.852436 -2.46847);--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-slate-300:lab(84.7652% -1.94535 -7.93337);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-500:lab(48.0876% -2.03595 -16.5814);--color-slate-600:lab(35.5623% -1.74978 -15.4316);--color-slate-700:lab(26.9569% -1.47016 -15.6993);--color-slate-800:lab(16.132% -.318035 -14.6672);--color-slate-900:lab(7.78673% 1.82345 -15.0537);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-800:lab(16.1051% -1.18239 -11.7533)}}:host{--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cad5e2;--color-slate-400:#90a1b9;--color-slate-500:#62748e;--color-slate-600:#45556c;--color-slate-700:#314158;--color-slate-800:#1d293d;--color-slate-900:#0f172b;--color-gray-100:#f3f4f6;--color-gray-800:#1e2939;--container-md:28rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--blur:8px;--shadow-sm:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));--shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));--shadow-lg:0 10px 15px -3px var(--shadow-color,rgba(0,0,0,.1)),0 4px 6px -4px var(--shadow-color,rgba(0,0,0,.1));--shadow-xl:0 20px 25px -5px var(--shadow-color,rgba(0,0,0,.1)),0 8px 10px -6px var(--shadow-color,rgba(0,0,0,.1));--ring-shadow:initial 0 0 0 0px currentcolor;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--container-3xl:48rem;--default-transition-duration:.15s}@supports (color:lab(0% 0 0)){:host{--color-slate-50:lab(98.1434% -.369519 -1.05966);--color-slate-100:lab(96.286% -.852436 -2.46847);--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-slate-300:lab(84.7652% -1.94535 -7.93337);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-500:lab(48.0876% -2.03595 -16.5814);--color-slate-600:lab(35.5623% -1.74978 -15.4316);--color-slate-700:lab(26.9569% -1.47016 -15.6993);--color-slate-800:lab(16.132% -.318035 -14.6672);--color-slate-900:lab(7.78673% 1.82345 -15.0537);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-800:lab(16.1051% -1.18239 -11.7533)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{text-size-adjust:100%;tab-size:4;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:IBM Plex Sans JP,Noto Sans JP,Hiragino Sans,Yu Gothic,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:host{text-size-adjust:100%;tab-size:4;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:IBM Plex Sans JP,Noto Sans JP,Hiragino Sans,Yu Gothic,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:root{--color-surface:#f9fafb;--color-surface-muted:#f3f4f6;--color-ink:#111827;--color-ink-subtle:#4b5563;--color-header:rgba(0,0,0,.66);--color-header-border:#94a3b8}.dark{--color-surface:#0f172a;--color-surface-muted:#1f2937;--color-ink:#e5e7eb;--color-ink-subtle:#9ca3af;--color-header:rgba(42,42,42,.8);--color-header-border:#cbd5e1}body{background:var(--color-surface);color:var(--color-ink)}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}}@layer components{.top-container{min-height:100vh;position:relative;overflow:hidden}.top-hero{position:absolute;inset:0}.top-hero img{object-fit:cover;object-position:80% center;filter:brightness(.55);width:100vw;height:100vh}.top-content{z-index:10;flex-direction:column;min-height:100vh;display:flex;position:relative}.top-header{position:absolute;top:0;left:0;right:0}.top-profcard-container{flex:1;justify-content:center;align-items:center;min-height:100vh;padding:0 1.5rem;display:flex}.top-profcard{color:var(--color-slate-900);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);max-width:var(--container-md);width:100%;backdrop-filter:blur(var(--blur));background-color:rgba(255,255,255,.9);background-color:lab(100% -.0000298023 .0000119209/.9);padding:2.5rem 2rem}.top-profcard .top-avatar{justify-content:center;margin-bottom:1.5rem;display:flex}.top-profcard .top-avatar div{width:5rem;height:5rem;box-shadow:var(--shadow-lg);border-radius:9999px;justify-content:center;align-items:center;display:flex}.top-profcard .top-avatar div img{object-fit:cover;border-radius:9999px;width:5rem;height:5rem}.top-profcard .top-name{text-align:center}.top-profcard .top-name .top-name-title{font-size:var(--text-4xl);letter-spacing:-.025em;color:var(--color-slate-900);font-weight:700}.top-profcard .top-name .top-name-subtitle{font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-slate-600)}.top-profcard .top-profile-link{justify-content:center;margin-top:1.75rem;display:flex}.top-profcard .top-profile-link a{border-radius:var(--radius-lg);background-color:var(--color-slate-900);color:#fff;font-size:var(--text-sm);box-shadow:var(--shadow-lg);transition:background-color var(--default-transition-duration);justify-content:center;align-items:center;padding:.625rem 1.25rem;font-weight:600;display:inline-flex}.top-profcard .top-profile-link a:hover{background-color:color-mix(in oklab,var(--color-slate-900)80%,black)}:where(.top-social){justify-content:center;gap:1rem;margin-top:1.25rem;display:flex}:where(.top-social) :where(.social-icon){width:2.75rem;height:2.75rem;color:var(--color-slate-900);box-shadow:var(--shadow);transition:transform var(--default-transition-duration);background-color:rgba(255,255,255,.75);background-color:lab(100% -.0000298023 .0000119209/.75);border-radius:9999px;justify-content:center;align-items:center;display:flex}:where(.top-social) :where(.social-icon):hover{transform:translateY(-.5rem)}:where(.top-social) :where(.social-icon) svg{width:1.5rem;height:1.5rem}.header-container{position:relative}#primary-header nav,#fixed-header nav{justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding:0 .5rem;display:flex}#nav-toggle-main,#nav-toggle-fixed{display:none}#primary-header .header-menu,#fixed-header .header-menu{align-items:center;gap:.5rem;display:flex}#primary-header .header-menu label,#fixed-header .header-menu label{cursor:pointer;border-radius:var(--radius-md);width:2.5rem;height:2.5rem;transition:background-color var(--default-transition-duration);background-color:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);justify-content:center;align-items:center;display:inline-flex}#primary-header .header-menu label:hover,#fixed-header .header-menu label:hover{background-color:rgba(255,255,255,.2)}#primary-header .header-menu label:where(.dark,.dark *){background-color:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}#fixed-header .header-menu label:where(.dark,.dark *){background-color:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}#primary-header .header-menu label:where(.dark,.dark *):hover{background-color:rgba(255,255,255,.1)}#fixed-header .header-menu label:where(.dark,.dark *):hover{background-color:rgba(255,255,255,.1)}#primary-header .header-menu svg,#fixed-header .header-menu svg{width:1.5rem;height:1.5rem}@media (width>=40rem){#primary-header .header-menu label,#fixed-header .header-menu label{display:none}}#primary-header .header-menu .header-links,#fixed-header .header-menu .header-links{align-items:center;gap:1rem;display:none}@media (width>=40rem){#primary-header .header-menu .header-links,#fixed-header .header-menu .header-links{display:flex}}.header-links .theme-toggle,.header-links button{white-space:nowrap;cursor:pointer;border-radius:var(--radius-md);width:2.25rem;height:2.25rem;font-weight:500;font-size:var(--text-sm);transition:color var(--default-transition-duration);background-color:transparent;justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.header-links .theme-toggle .icon-sun,.header-links button .icon-sun{display:inline-flex}.header-links .theme-toggle .icon-moon,.header-links button .icon-moon,.header-links .theme-toggle[data-theme=dark] .icon-sun,.header-links button[data-theme=dark] .icon-sun{display:none}.header-links .theme-toggle[data-theme=dark] .icon-moon,.header-links button[data-theme=dark] .icon-moon{display:inline-flex}.header-links .theme-toggle:hover,.header-links button:hover{color:rgba(255,255,255,.8)}.header-links .theme-toggle:focus-visible{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline-style:none}.header-links button:focus-visible{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline-style:none}#primary-header .mobile-menu,#fixed-header .mobile-menu{color:var(--color-slate-900);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-300);z-index:50;background-color:#fff;width:11rem;display:none;position:absolute;top:3.5rem;right:.5rem}#primary-header .mobile-menu:where(.dark,.dark *){background-color:var(--color-slate-800);color:var(--color-slate-100);border-color:var(--color-slate-600)}#fixed-header .mobile-menu:where(.dark,.dark *){background-color:var(--color-slate-800);color:var(--color-slate-100);border-color:var(--color-slate-600)}#primary-header .mobile-menu:is(:where(#nav-toggle-main):checked~*){display:block}#fixed-header .mobile-menu:is(:where(#nav-toggle-fixed):checked~*){display:block}#primary-header .mobile-menu ul,#fixed-header .mobile-menu ul{flex-direction:column;display:flex}#primary-header .mobile-menu ul>:not(:last-child),#fixed-header .mobile-menu ul>:not(:last-child){border-color:var(--color-slate-200);border-top-style:solid;border-top-width:0;border-bottom-style:solid;border-bottom-width:1px}#primary-header .mobile-menu ul>:not(:last-child):where(.dark,.dark *){border-color:var(--color-slate-700)}#fixed-header .mobile-menu ul>:not(:last-child):where(.dark,.dark *){border-color:var(--color-slate-700)}#primary-header .mobile-menu a,#fixed-header .mobile-menu a{padding:.75rem 1rem;display:block}#primary-header .mobile-menu a:hover,#fixed-header .mobile-menu a:hover{background-color:var(--color-slate-100)}#primary-header .mobile-menu a:hover:where(.dark,.dark *){background-color:var(--color-slate-700)}#fixed-header .mobile-menu a:hover:where(.dark,.dark *){background-color:var(--color-slate-700)}#primary-header .mobile-menu .theme-toggle,#fixed-header .mobile-menu .theme-toggle{text-align:left;cursor:pointer;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;display:flex}#primary-header .mobile-menu .theme-toggle:hover,#fixed-header .mobile-menu .theme-toggle:hover{background-color:var(--color-slate-100)}#primary-header .mobile-menu .theme-toggle:hover:where(.dark,.dark *){background-color:var(--color-slate-700)}#fixed-header .mobile-menu .theme-toggle:hover:where(.dark,.dark *){background-color:var(--color-slate-700)}#primary-header .mobile-menu .theme-toggle .icon-sun,#fixed-header .mobile-menu .theme-toggle .icon-sun{display:inline-flex}#primary-header .mobile-menu .theme-toggle .icon-moon,#fixed-header .mobile-menu .theme-toggle .icon-moon,#primary-header .mobile-menu .theme-toggle[data-theme=dark] .icon-sun,#fixed-header .mobile-menu .theme-toggle[data-theme=dark] .icon-sun{display:none}#primary-header .mobile-menu .theme-toggle[data-theme=dark] .icon-moon,#fixed-header .mobile-menu .theme-toggle[data-theme=dark] .icon-moon{display:inline-flex}#primary-header{background-color:var(--color-header);border-color:var(--color-header-border);color:#fff;justify-content:center;align-items:stretch;width:100%;height:4rem;display:flex}#primary-header nav{position:relative}#primary-header nav .header-logo{align-items:center;gap:.75rem;display:flex}#primary-header nav .header-logo>a{align-items:center;gap:.5rem;display:flex}#primary-header nav .header-logo>a img{border-radius:9999px;width:3rem;height:3rem}#primary-header nav .header-logo>a span{font-size:var(--text-2xl);letter-spacing:.025em;font-weight:600}#primary-header nav .header-logo .show-ip{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:rgba(255,255,255,.8)}#primary-header nav .header-logo .show-ip:hover{color:#fff}#primary-header nav .header-logo .show-ip.underline{text-underline-offset:2px;text-decoration:underline}.theme-icon-span{justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:inline-flex;position:relative}.theme-icon-span .theme-icon{width:1.25rem;height:1.25rem}.header-links a{padding-bottom:.25rem;position:relative}.header-links a.active:after{content:"";background-color:#fff;border-radius:1px;height:.125rem;position:absolute;bottom:0;left:0;right:0}.header-links a.inactive:hover{color:rgba(255,255,255,.8)}#fixed-header{z-index:40;opacity:0;pointer-events:none;width:100%;transition:all .3s ease-in-out;position:fixed;top:0;transform:translateY(-6rem)}#fixed-header.active{opacity:1;pointer-events:unset;transform:translateY(0)}#fixed-header nav{background-color:var(--color-header);border-color:var(--color-header-border);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);height:4rem;backdrop-filter:blur(var(--blur));color:#fff}#fixed-header nav>a{align-items:center;gap:.5rem;display:flex}#fixed-header nav>a img{border-radius:9999px;width:3rem;height:3rem}#fixed-header nav>a span{font-size:var(--text-lg);letter-spacing:var(--text-lg--line-height);font-weight:600}.blog-wrapper{min-height:100vh}.blog-container{max-width:var(--container-3xl);content-visibility:auto;contain-intrinsic-size:1200px 3200px;margin-left:auto;margin-right:auto;padding:1.5rem}:where(.blog-container>:not(:last-child)){margin-block:0 .75rem}.blog-breadcrumb{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-slate-500);margin-bottom:.5rem}.blog-breadcrumb:where(.dark,.dark *){color:var(--color-slate-400)}.blog-breadcrumb ol{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.blog-breadcrumb ol li{align-items:center;gap:.25rem;display:flex}.blog-breadcrumb ol li span.blog-breadcrumb-label{color:var(--color-slate-700);font-weight:600}.blog-breadcrumb ol li span.blog-breadcrumb-label:where(.dark,.dark *){color:var(--color-slate-200)}.blog-breadcrumb ol li a.blog-breadcrumb-label:hover{color:var(--color-slate-900)}.blog-breadcrumb ol li a.blog-breadcrumb-label:where(.dark,.dark *):hover{color:var(--color-slate-100)}.blog-breadcrumb ol li .separator{color:var(--color-slate-400)}.blog-title{margin-bottom:.888889em}.blog-title p{color:var(--color-slate-600)}.blog-title p:where(.dark,.dark *){color:var(--color-slate-400)}.blog-title p{padding:0}.meta-row{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-slate-600)}.meta-row:where(.dark,.dark *){color:var(--color-slate-300)}.meta-row{flex-wrap:wrap;gap:1rem;margin-bottom:.25rem;display:flex}.blog-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.blog-tag{border:1px solid var(--color-slate-300);background-color:var(--color-gray-100);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-slate-700);border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem .5rem;display:inline-flex}.blog-tag:where(.dark,.dark *){border-color:var(--color-slate-600);background-color:var(--color-gray-800);color:var(--color-slate-200)}.blog-tag .blog-tag-hash{font-size:var(--text-xs);line-height:var(--text-xs--line-height);color:var(--color-slate-500)}.blog-tag .blog-tag-hash:where(.dark,.dark *){color:var(--color-slate-300)}nav[role=doc-toc] ol{list-style-type:decimal!important}}@layer utilities{.paint{contain:paint}.hidden{display:none}}@font-face{font-family:IBM Plex Sans JP;src:url(/assets/build/IBMPlexSansJP-Regular.subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans JP;src:url(/assets/build/IBMPlexSansJP-Medium.subset.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans JP;src:url(/assets/build/IBMPlexSansJP-Semibold.subset.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans JP;src:url(/assets/build/IBMPlexSansJP-Bold.subset.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@property --shadow-color{syntax:"*";inherits:false}