:root{--odd-black:#0d0d0d;--odd-grey:#aaa;--odd-line:#ddd;--odd-white:#fff;--color-bg:var(--odd-white);--color-fg:var(--odd-black);--color-muted:var(--odd-grey);--color-rule:var(--odd-line);--color-hover:var(--odd-grey);--color-disabled:var(--odd-line);--grid-columns:14;--grid-gutter:8px;--page-margin:8px;--content-max:1920px;--content-width:min(var(--content-max), calc(100dvw - 2 * var(--page-margin)));--grid-column:calc((var(--content-width) - (var(--grid-columns) - 1) * var(--grid-gutter)) / var(--grid-columns));--grid-pitch:calc(var(--grid-column) + var(--grid-gutter));--font-mono:var(--font-gaisyr), ui-monospace, Menlo, monospace;--font-display:var(--font-hiragino-w7), "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display-medium:var(--font-hiragino-w5), "Helvetica Neue", Helvetica, Arial, sans-serif;--text-label-size:11px;--text-label-height:1.15;--text-menu-size:16px;--text-menu-height:1.2;--text-sh1-size:12px;--text-sh1-height:1.36;--text-sh1-tracking:0;--text-prose-tracking:0;--text-body-size:13px;--text-body-height:1.15;--text-prose-size:18px;--text-prose-height:1.2;--text-h1-size:40px;--text-h1-height:1.12;--text-h1-tracking:-.01em;--text-descriptor-size:32px;--text-descriptor-height:.96;--text-cta-size:var(--text-h1-size);--text-cta-height:var(--text-h1-height);--cap-display:.792;--cap-mono:.7;--space-row:16px;--duration-hover:.16s;--ease:cubic-bezier(.4, 0, .2, 1)}@media (max-width:1279px){:root{--grid-columns:7;--content-width:calc(100dvw - 2 * var(--page-margin))}}@media (max-width:767px){:root{--grid-columns:1;--page-margin:4px;--content-width:calc(100dvw - 2 * var(--page-margin));--text-h1-size:24px;--text-sh1-size:11px;--text-sh1-height:1.2;--text-sh1-tracking:-.01em;--text-prose-tracking:-.01em;--text-descriptor-size:20px}}
*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:40px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--color-bg);min-height:100dvh;color:var(--color-fg);font-family:var(--font-mono);font-size:var(--text-body-size);line-height:var(--text-body-height);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}h1,h2,h3,h4,h5,h6,p,li,figcaption,blockquote,.text-trim{text-box:trim-both cap alphabetic}img,picture,video,canvas,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}a[href]{text-underline-position:from-font;text-decoration-thickness:1px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}ul,ol{padding:0;list-style:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.visually-hidden:focus{clip:auto;z-index:300;background:var(--odd-black);width:auto;height:auto;color:var(--odd-white);font-family:var(--font-mono);font-size:var(--text-label-size);padding:8px 12px;position:fixed;top:8px;left:8px}body{overflow-x:clip}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-old(.page-out){animation:.16s var(--ease) both page-fade reverse}::view-transition-new(.page-in){animation:.24s var(--ease) .12s both page-fade, .32s var(--ease) both page-rise}@keyframes page-fade{0%{opacity:0}to{opacity:1}}@keyframes page-rise{0%{transform:translateY(8px)}to{transform:translateY(0)}}:root[data-page-enter=roll]::view-transition-old(.page-out){animation:none}:root[data-page-enter=roll]::view-transition-new(.page-in){animation:.42s var(--ease) both page-roll}@keyframes page-roll{0%{transform:translateY(100dvh)}to{transform:translateY(0)}}::view-transition-group(site-header){z-index:100;animation:none}::view-transition-old(site-header){display:none}::view-transition-new(site-header){animation:none}::view-transition{pointer-events:none}@media (prefers-reduced-motion:reduce){::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}
