@font-face{font-family:SuisseIntl;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(https://res.hajimehoshi.com/fonts/SuisseIntl-Regular.woff2) format("woff2")}@font-face{font-family:SuisseIntl;font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(https://res.hajimehoshi.com/fonts/SuisseIntl-Semibold.woff2) format("woff2")}@font-face{font-family:SuisseIntlCond;font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(https://res.hajimehoshi.com/fonts/SuisseIntlCond-Semibold-WebXL.woff2) format("woff2")}@font-face{font-family:SuisseIntlCond;font-style:normal;font-weight:700;font-stretch:normal;font-display:swap;src:url(https://res.hajimehoshi.com/fonts/SuisseIntlCond-Bold-WebXL.woff2) format("woff2")}@font-face{font-family:SuisseIntlMono;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(https://res.hajimehoshi.com/fonts/SuisseIntlMono-Regular-WebXL.woff2) format("woff2");ascent-override:117.4%;descent-override:55.6%;line-gap-override:0%}@font-face{font-family:Noto Sans JP;font-style:normal;font-weight:400;font-stretch:100%;size-adjust:95%;font-display:swap;src:url(https://fonts.bunny.net/noto-sans-jp/files/noto-sans-jp-japanese-400-normal.woff2) format("woff2")}@font-face{font-family:Noto Sans JP;font-style:normal;font-weight:600;font-stretch:100%;size-adjust:95%;font-display:swap;src:url(https://fonts.bunny.net/noto-sans-jp/files/noto-sans-jp-japanese-600-normal.woff2) format("woff2")}@font-face{font-family:Noto Sans JP;font-style:normal;font-weight:700;font-stretch:100%;size-adjust:95%;font-display:swap;src:url(https://fonts.bunny.net/noto-sans-jp/files/noto-sans-jp-japanese-700-normal.woff2) format("woff2")}:root{color-scheme:light dark;--unit-size: 24px;--font-sans: "SuisseIntl", "Helvetica Neue", "Helvetica", "Arial", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Meiryo", sans-serif;--font-condensed: "SuisseIntlCond", "HelveticaNeue-CondensedBold", var(--font-sans), sans-serif-condensed, sans-serif;--font-mono: "SuisseIntlMono", monospace;--white-lightness: .9573969320543095;--black-lightness: .2701124128533074;--target-background-lightness: var(--white-lightness);--target-foreground-lightness: var(--black-lightness);--background-color: oklch(from var(--theme-color) var(--target-background-lightness) .005 calc(h + 30) );--foreground-color: oklch(from var(--theme-color) var(--target-foreground-lightness) .005 calc(h + 30) );--header-color: oklch(from var(--theme-color) calc((var(--target-background-lightness) + var(--target-foreground-lightness) * 2) / 3) .15 h);--subheader-color: oklch(from var(--theme-color) calc((var(--target-background-lightness) + var(--target-foreground-lightness) * 3) / 4) .1 calc(h + 30) );--sub-color: oklch(from var(--foreground-color) l c h / 60%);--grid-cell-background-color: color-mix(in oklch, var(--background-color), var(--foreground-color) 4%);--light-mode-display: block;--dark-mode-display: none}@media(prefers-color-scheme:dark){:root{--target-background-lightness: var(--black-lightness);--target-foreground-lightness: var(--white-lightness);--light-mode-display: none;--dark-mode-display: block}}:root[data-hhdc-color-mode=light]{color-scheme:light;--target-background-lightness: var(--white-lightness);--target-foreground-lightness: var(--black-lightness);--light-mode-display: block;--dark-mode-display: none}:root[data-hhdc-color-mode=dark]{color-scheme:dark;--target-background-lightness: var(--black-lightness);--target-foreground-lightness: var(--white-lightness);--light-mode-display: none;--dark-mode-display: block}*{padding:0;margin:0}html{background-color:var(--background-color);color:var(--foreground-color)}body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;font-family:var(--font-sans);font-size:calc(var(--unit-size) * 2 / 3);font-weight:400;line-height:var(--unit-size);text-autospace:normal}*{letter-spacing:.02em}h1{color:var(--header-color);font-family:var(--font-sans);font-size:calc(var(--unit-size) * 5 / 3);font-weight:600;letter-spacing:0;line-height:calc(3 * var(--unit-size))}h2{color:var(--subheader-color);font-size:var(--unit-size);font-weight:600;letter-spacing:0;line-height:calc(2 * var(--unit-size))}h3,h4,dt{color:var(--foreground-color);font-weight:600}h3{font-size:calc(var(--unit-size) * 2 / 3);line-height:var(--unit-size)}strong{color:var(--header-color)}code{font-family:var(--font-mono);font-weight:400;letter-spacing:-.04em}small{color:var(--sub-color);font-size:calc(var(--unit-size) * 1 / 2);font-weight:400;line-height:var(--unit-size)}a{color:var(--foreground-color);text-decoration-color:color-mix(in oklch,var(--background-color),var(--foreground-color) 50%);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.25em}:is(h1) a{color:var(--header-color)}:is(h2) a{color:var(--subheader-color)}li::marker{color:var(--sub-color)}main{container-type:inline-size;display:flex;flex-direction:column;flex-grow:1;align-items:center;row-gap:var(--unit-size);padding-top:calc(3 * var(--unit-size));padding-bottom:calc(3 * var(--unit-size))}main>*{width:calc(39 * var(--unit-size));max-width:calc(100vw - 2 * var(--unit-size))}article{display:flex;flex-direction:column;gap:var(--unit-size)}body>header{position:sticky;top:0;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;height:calc(3 * var(--unit-size) - 1px);padding:0 max(calc((100vw - 59 * var(--unit-size)) / 2),var(--unit-size));background-color:var(--background-color);border-bottom:1px solid color-mix(in oklch,var(--background-color),var(--foreground-color) 10%)}.brand{font-family:var(--font-condensed);font-size:var(--unit-size);font-weight:700;line-height:var(--unit-size)}.brand span{letter-spacing:0}a.brand{color:var(--foreground-color);text-decoration-line:none}body>header>.brand{display:flex;align-items:center;justify-self:start;gap:calc(var(--unit-size) / 3)}body>header>.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--unit-size)}body>header nav{display:flex;gap:var(--unit-size);line-height:var(--unit-size)}body>header nav a{font-weight:600;text-decoration-line:none}body>header nav a[aria-current=page]{color:var(--header-color)}@media(width<696px){body>header>.brand span{display:none}}body>footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:calc(3 * var(--unit-size) - 1px);padding:0 max(calc((100vw - 59 * var(--unit-size)) / 2),var(--unit-size));border-top:1px solid color-mix(in oklch,var(--background-color),var(--foreground-color) 10%)}body>footer>.copyright{justify-self:start}.contact-links{display:flex;flex-wrap:wrap;justify-content:flex-end;justify-self:end;gap:calc(var(--unit-size) / 3)}.contact-links a{display:flex;align-items:center;justify-content:center;width:calc(3 * var(--unit-size) / 2);height:calc(3 * var(--unit-size) / 2);border-radius:calc(var(--unit-size) / 3);text-decoration-line:none}.contact-links a:hover{background-color:var(--grid-cell-background-color)}.contact-links a:focus-visible{outline:2px solid var(--foreground-color);outline-offset:2px}.contact-icon{display:block;width:var(--unit-size);height:var(--unit-size);background-color:var(--foreground-color);mask-position:center;mask-size:contain;mask-repeat:no-repeat}@media(width<696px){body>footer{grid-template-columns:minmax(0,1fr) auto;row-gap:calc(var(--unit-size) / 2);padding-top:calc(var(--unit-size) / 2);padding-bottom:calc(var(--unit-size) / 2)}body>footer>.contact-links{grid-column:1 / -1;grid-row:2}}h2:not(:first-child){margin-top:var(--unit-size)}section>*:empty{display:none}dl{display:flex;flex-wrap:wrap;align-items:stretch;row-gap:0}dt{width:100%;margin-top:var(--unit-size);margin-bottom:calc(var(--unit-size) / 3);padding-right:var(--unit-size);text-align:left}dt:first-of-type{margin-top:0}dt img{margin-right:calc(var(--unit-size) / 3);vertical-align:bottom}dd{width:100%}ul{padding-left:var(--unit-size)}ul li+li{margin-top:calc(var(--unit-size) / 3)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(14 * var(--unit-size)),1fr));grid-auto-rows:calc(17 * var(--unit-size) / 6) calc(4 * var(--unit-size) / 3) 1fr;column-gap:var(--unit-size);row-gap:0;margin-bottom:calc(-1 * var(--unit-size))}.grid>section{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;min-width:0;margin-bottom:var(--unit-size);padding:calc(var(--unit-size) / 2);background-color:var(--grid-cell-background-color);border-radius:calc(var(--unit-size) / 2)}.grid .image{grid-row:1;padding-bottom:calc(var(--unit-size) / 3)}.grid h3{grid-row:2;margin-bottom:calc(var(--unit-size) / 3)}.grid .image a{display:block;width:fit-content}.grid .image img{display:block}.grid>section>p{grid-row:3}hhdc-color-mode-toggle{width:var(--unit-size);height:var(--unit-size);color:var(--foreground-color)}.light-mode{display:var(--light-mode-display)!important}.dark-mode{display:var(--dark-mode-display)!important}