@import url(https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&family=IBM+Plex+Sans+JP:wght@300;400;500;600;700&display=swap);[data-theme=dark]{--icon-filter:invert(1)}:root{--fs-11:0.6875rem;--fs-12:0.75rem;--fs-14:0.875rem;--fs-16:1rem;--fs-18:1.125rem;--fs-21:1.3125rem;--fs-24:1.5rem;--fs-32:2rem;--fs-42:2.625rem;--fs-56:3.5rem;--fs-72:4.5rem;--fs-96:6rem;--lh-tight:1.05;--lh-snug:1.25;--lh-normal:1.5;--lh-prose:1.65;--lh-loose:1.85;--tr-tight:-0.02em;--tr-snug:-0.01em;--tr-normal:0;--tr-wide:0.04em;--tr-wider:0.12em;--w-light:300;--w-regular:400;--w-medium:500;--w-semibold:600;--w-bold:700;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--s-12:48px;--s-16:64px;--s-24:96px;--s-32:128px;--measure-prose:65ch;--measure-narrow:48ch;--measure-wide:78ch;--ease-out:cubic-bezier(0.2,0.6,0.2,1);--ease-inout:cubic-bezier(0.4,0,0.2,1);--dur-fast:150ms;--dur-base:240ms;--dur-slow:600ms;--z-base:0;--z-sticky:10;--z-overlay:100;--z-toast:1000;--font-display:"Space Grotesk","Helvetica Neue",sans-serif;--font-body:"Space Grotesk","Helvetica Neue",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--font-display-jp:"IBM Plex Sans JP",sans-serif;--font-body-jp:"IBM Plex Sans JP",sans-serif}:root[lang=ja],[lang=ja]{--font-display:var(--font-display-jp);--font-body:var(--font-body-jp)}:root{--paper:#fff;--paper-2:#f0f0f0;--ink-1:#000;--ink-2:#262626;--ink-3:#757575;--rule:#000;--seal:#00d26a;--seal-soft:#00d26a14;--radius:0px;--radius-lg:0px;--shadow-sharp:6px 6px 0 var(--ink-1);--shadow-soft:none}[data-theme=dark]{--paper:#0a0a0a;--paper-2:#131313;--ink-1:#fff;--ink-2:#d6d6d6;--ink-3:#909090;--rule:#fff;--seal:#00ff85;--seal-soft:#00ff8520;--shadow-sharp:6px 6px 0 var(--ink-1)}[data-theme=dark] body{color:#262626;color:var(--ink-2)}*,:after,:before{box-sizing:border-box}body{font-feature-settings:"kern","liga","calt";background:#fff;color:#000;font-family:Space Grotesk,Helvetica Neue,sans-serif;font-size:1rem;font-size:var(--fs-16);line-height:1.65;line-height:var(--lh-prose);text-rendering:optimizeLegibility;transition:background .24s cubic-bezier(.4,0,.2,1),color .24s cubic-bezier(.4,0,.2,1);transition:background var(--dur-base) var(--ease-inout),color var(--dur-base) var(--ease-inout)}h1,h2,h3,h4,h5,h6{text-wrap:balance;color:#000;color:var(--ink-1);font-family:Space Grotesk,Helvetica Neue,sans-serif;font-family:var(--font-display);font-weight:500;font-weight:var(--w-medium);margin:0}.h1,h1{font-size:clamp(2.625rem,6vw,4.5rem);font-size:clamp(var(--fs-42),6vw,var(--fs-72));font-weight:700;font-weight:var(--w-bold);letter-spacing:-.02em;letter-spacing:var(--tr-tight);line-height:1.05;line-height:var(--lh-tight)}.h2,h2{font-size:clamp(2rem,4vw,2.625rem);font-size:clamp(var(--fs-32),4vw,var(--fs-42));letter-spacing:-.01em;letter-spacing:var(--tr-snug)}.h2,.h3,h2,h3{font-weight:600;font-weight:var(--w-semibold);line-height:1.25;line-height:var(--lh-snug)}.h3,h3{font-size:1.5rem;font-size:var(--fs-24)}.h4,h4{font-size:1.3125rem;font-size:var(--fs-21);font-weight:500;font-weight:var(--w-medium);line-height:1.25;line-height:var(--lh-snug)}p{text-wrap:pretty;margin:0 0 1em;max-width:65ch;max-width:var(--measure-prose)}.lede{font-size:1.3125rem;font-size:var(--fs-21);font-weight:400;font-weight:var(--w-regular);line-height:1.65;line-height:var(--lh-prose)}.lede,.small,small{color:#262626;color:var(--ink-2)}.small,small{font-size:.875rem;font-size:var(--fs-14)}.caption{color:#757575;color:var(--ink-3);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:.75rem;font-size:var(--fs-12);letter-spacing:.04em;letter-spacing:var(--tr-wide);text-transform:uppercase}a{color:#000;color:var(--ink-1);text-decoration:underline;text-decoration-color:#757575;text-decoration-color:var(--ink-3);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color .15s cubic-bezier(.4,0,.2,1),text-decoration-color .15s cubic-bezier(.4,0,.2,1),text-decoration-thickness .15s cubic-bezier(.4,0,.2,1);transition:color var(--dur-fast) var(--ease-inout),text-decoration-color var(--dur-fast) var(--ease-inout),text-decoration-thickness var(--dur-fast) var(--ease-inout)}a:hover{color:#00d26a;color:var(--seal);text-decoration-color:#00d26a;text-decoration-color:var(--seal);text-decoration-thickness:2px}a:focus-visible{border-radius:0;outline:2px solid #00d26a;outline:2px solid var(--seal);outline-offset:2px}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:.92em}code{padding:.1em .35em}code,pre{background:#f0f0f0;background:var(--paper-2);border-radius:0}pre{border:1px solid #000;border:1px solid var(--rule);overflow-x:auto;padding:16px;padding:var(--s-4)}pre code{background:#0000;padding:0}hr{border:none;border-top:1px solid #000;border-top:1px solid var(--rule);margin:32px 0;margin:var(--s-8) 0}::selection{background:#00d26a;background:var(--seal);color:#000;color:var(--ink-1)}[lang=ja]{font-feature-settings:"palt","kern";line-height:1.85;line-height:var(--lh-loose)}[lang=ja] h1,[lang=ja] h2{letter-spacing:.02em;line-height:1.25;line-height:var(--lh-snug)}[lang=ja] .lede,[lang=ja] h1,[lang=ja] h2,[lang=ja] h3{font-size:.94em}html{transition:none}[lang] body{transition:opacity .18s cubic-bezier(.2,.6,.2,1);transition:opacity .18s var(--ease-out)}html.lang-swapping body{opacity:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{background:#0000;border:1px solid #000;box-shadow:0 0 0 #0000;color:#000;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.75rem;font-size:var(--fs-12);font-weight:500;font-weight:var(--w-medium);gap:8px;padding:10px 14px;transform:translate(0);transition:box-shadow .15s cubic-bezier(.2,.6,.2,1),transform .15s cubic-bezier(.2,.6,.2,1),background .15s cubic-bezier(.2,.6,.2,1),color .15s cubic-bezier(.2,.6,.2,1);transition:box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.btn:hover{box-shadow:6px 6px 0 #000;box-shadow:var(--shadow-sharp);color:#000;color:var(--ink-1);text-decoration:none;transform:translate(-1px,-1px)}.btn:active{box-shadow:0 0 0 #0000;transform:translate(1px,1px)}.btn:focus-visible{outline:2px solid #00d26a;outline:2px solid var(--seal);outline-offset:2px}.btn .btn-icon{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.btn--primary,.btn--primary:hover{background:#000;color:#fff}.btn--primary:hover{text-decoration:none}.btn--seal{border-color:#00d26a;border-color:var(--seal)}.btn--seal,.btn--seal:hover{background:#00d26a;background:var(--seal);color:#000;color:var(--ink-1)}.btn--seal:hover{text-decoration:none}.btn--sm{font-size:.6875rem;font-size:var(--fs-11);gap:6px;padding:6px 10px}.btn--link{border:none;color:#757575;color:var(--ink-3);font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--font-mono);letter-spacing:.04em;padding:0;text-decoration:none;text-transform:none}.btn--link,.btn--link:hover{background:#0000;box-shadow:none}.btn--link:hover{color:#000;color:var(--ink-1);transform:none}.btn--link:after{color:#757575;color:var(--ink-3);content:" \2197";display:inline;transition:color .15s cubic-bezier(.2,.6,.2,1);transition:color var(--dur-fast) var(--ease-out)}.btn--link:hover:after{color:#00d26a;color:var(--seal)}.btn--link.btn--no-arrow:after{content:none}body,html{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--paper);color:var(--ink-1);font-family:var(--font-body)}.container{margin:0 auto;max-width:1100px;overflow:visible;padding:0 32px;position:relative;z-index:2}section[data-anchor]{scroll-margin-top:32px}section[data-anchor]:not(.hero-section){padding:48px 0}.now-list--indexed>li{grid-column-gap:12px;align-items:baseline;border-left:0!important;column-gap:12px;display:grid;grid-template-columns:32px 1fr;padding:0!important}.now-list--indexed .now-index{color:var(--ink-3);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em}.now-list--indexed .now-text{color:var(--ink-1)}.topnav{gap:24px;justify-content:flex-end;left:0;padding:20px max(32px,calc(50vw - 518px));position:fixed;right:0;top:0;z-index:10}.topnav,.topnav-anchors,.topnav-nav{align-items:center;display:flex;flex-wrap:wrap}.topnav-anchors,.topnav-nav{gap:22px}.topnav-link{color:var(--ink-2);font-size:var(--fs-14)}.topnav-dials{align-items:center;display:inline-flex;gap:10px}.hero-section{padding:96px 0 64px;position:relative;z-index:1}.hero-avatar-spacer{flex-shrink:0;height:96px;width:96px}@property --avatar-size{syntax:"<length>";inherits:true;initial-value:96px}@property --avatar-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}@property --name-size{syntax:"<length>";inherits:true;initial-value:22px}@property --name-track{syntax:"<length>";inherits:true;initial-value:0}@property --byline-size{syntax:"<length>";inherits:true;initial-value:11px}@property --gap{syntax:"<length>";inherits:true;initial-value:12px}@property --pad-y{syntax:"<length>";inherits:true;initial-value:20px}@property --bar-alpha{syntax:"<number>";inherits:true;initial-value:0}.morph-group{align-items:center;background:#0000;display:flex;flex-direction:row;gap:clamp(10px,3vw,12px);gap:var(--gap);left:max(32px,calc(50vw - 518px));padding-block:clamp(14px,4vw,20px);padding-block:var(--pad-y);pointer-events:none;position:fixed;top:0;z-index:11}.morph-group>*{pointer-events:auto}:root{--avatar-size:clamp(26px,6vw,28px);--avatar-radius:50%;--name-size:clamp(19px,5vw,22px);--name-track:-0.22px;--byline-size:11px;--gap:clamp(10px,3vw,12px);--pad-y:clamp(14px,4vw,20px);--bar-alpha:1}.topnav:before{-webkit-backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(calc(var(--bar-alpha, 1)*14px));backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(calc(var(--bar-alpha, 1)*14px));background:color-mix(in srgb,var(--paper) 90%,#0000);background:color-mix(in srgb,var(--paper) calc(var(--bar-alpha, 1)*90%),#0000);box-shadow:0 12px 32px -16px color-mix(in srgb,var(--ink-1) 14%,#0000);box-shadow:0 12px 32px -16px color-mix(in srgb,var(--ink-1) calc(var(--bar-alpha, 1)*14%),#0000);content:"";height:calc(clamp(14px, 4vw, 20px) + clamp(26px, 6vw, 28px) + 24px);height:calc(var(--pad-y) + var(--avatar-size) + 24px);left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:-1}.morph-avatar{border:1px solid var(--ink-1);border-radius:50%;border-radius:var(--avatar-radius);filter:grayscale(1) contrast(1.05);flex-shrink:0;height:clamp(26px,6vw,28px);height:var(--avatar-size);object-fit:cover;width:clamp(26px,6vw,28px);width:var(--avatar-size)}.morph-text{align-items:flex-start;display:flex;flex-direction:column;gap:4px;min-width:0}.morph-byline{color:var(--ink-3);font-family:var(--font-mono);font-size:11px;font-size:var(--byline-size);letter-spacing:.1em;line-height:1.4;text-transform:uppercase;white-space:nowrap}.morph-name{color:var(--ink-1);font-family:var(--font-display);font-size:clamp(19px,5vw,22px);font-size:var(--name-size);font-weight:700;letter-spacing:-.22px;letter-spacing:var(--name-track);line-height:1.05;text-decoration:none;white-space:nowrap}.morph-name>span{color:var(--seal)}@media (min-width:641px){@supports (animation-timeline:scroll()){html.is-home{--avatar-size:clamp(64px,14vw,96px);--avatar-radius:0px;--name-size:clamp(26px,7vw,56px);--name-track:-1.12px;--byline-size:11px;--gap:clamp(18px,5vw,48px);--pad-y:clamp(48px,10vw,96px);--bar-alpha:0;animation-timeline:scroll(root block),scroll(root block);animation-range:0 360px,0 120px;animation-duration:1ms,1ms;animation-fill-mode:both,both;animation-name:morph-to-nav,bar-fade-in;animation-timing-function:linear,linear}}}@keyframes morph-to-nav{to{--avatar-size:clamp(26px,6vw,28px);--avatar-radius:50%;--name-size:clamp(19px,5vw,22px);--name-track:-0.22px;--byline-size:11px;--gap:clamp(10px,3vw,12px);--pad-y:clamp(14px,4vw,20px)}}@keyframes bar-fade-in{to{--bar-alpha:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){:root{animation:none}}.link,.link-row [data-link-title]{color:inherit;text-decoration:underline;text-decoration-color:#0000;text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .2s ease,color .2s ease}.link{text-decoration-thickness:1px}.link-row:hover [data-link-title],.link:hover{text-decoration-color:var(--seal)}.link-row{color:inherit;display:block;text-decoration:none}.feed-thumb{filter:grayscale(100%) contrast(.96);transition:filter .35s ease}.link-row:focus-visible .feed-thumb,.link-row:hover .feed-thumb{filter:grayscale(0) contrast(1)}.bibtex-dialog{background:var(--paper);border:1px solid var(--ink-1);box-shadow:0 18px 48px #00000029;color:var(--ink-1);max-height:calc(100vh - 64px);opacity:0;padding:0;transform:translateY(8px);transition:opacity .2s ease-out,transform .2s ease-out,overlay allow-discrete .2s ease-out,display allow-discrete .2s ease-out;width:min(720px,calc(100vw - 32px));will-change:opacity,transform}.bibtex-dialog[open]{opacity:1;transform:translateY(0)}@starting-style{.bibtex-dialog[open]{opacity:0;transform:translateY(8px)}}.bibtex-dialog::backdrop{background:color-mix(in srgb,var(--ink-1) 60%,#0000);opacity:0;transition:opacity .2s ease-out,overlay allow-discrete .2s ease-out,display allow-discrete .2s ease-out}.bibtex-dialog[open]::backdrop{opacity:1}@starting-style{.bibtex-dialog[open]::backdrop{opacity:0}}.bibtex-dialog__panel{display:flex;flex-direction:column}.link-row [data-link-arrow]{color:var(--ink-3);display:inline-block;transition:transform .2s ease,color .2s ease}.link-row:hover [data-link-arrow]{color:var(--seal);transform:translate(2px,-2px)}.now-list{grid-column-gap:24px;grid-row-gap:20px;column-gap:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));list-style:none;margin:8px 0 0;padding:0;row-gap:20px}.now-list>li{border-left:1px solid var(--ink-1);color:var(--ink-1);font-family:var(--font-body);font-size:15px;line-height:1.55;padding:0 0 0 16px}.now-list>li.now-list__row-start{border-left:0;padding-left:0}header,hr,section{border-color:var(--ink-1)}.list-row{grid-gap:24px;align-items:baseline;display:grid;gap:24px;grid-template-columns:96px 1fr auto;padding:24px 0}.kicker{color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase}.row-title{color:var(--ink-1);font-family:var(--font-display);font-size:22px;font-weight:600}.project-title-link{align-items:center;display:inline-flex;line-height:1.3}.project-role-link{color:inherit;display:inline-flex;text-decoration:none}.project-secondary-link:hover{--project-link-icon-filter:invert(1)}[data-theme=dark] .project-secondary-link:hover{--project-link-icon-filter:none}.row-meta{color:var(--ink-3);font-family:var(--font-mono);font-size:12px}.link-dotted{border-bottom:1px dotted var(--ink-3);text-decoration:none}@media (max-width:900px){.topnav-anchors{display:none}}@media (max-width:640px){.container{padding:0 20px}.morph-group{left:20px}.topnav{gap:12px;padding:14px 20px}section[data-anchor]:not(.hero-section){padding:32px 0}.list-row{gap:6px;grid-template-columns:1fr;padding:18px 0}.now-list{column-gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));row-gap:14px}.hero-avatar-spacer{display:none}.hero-section{padding:16px 0 32px}.topnav-theme-dial{display:none}.morph-text{max-width:calc(100vw - 128px)}.morph-byline{white-space:normal}}.btn{align-items:center;appearance:none;-webkit-appearance:none;background:var(--paper);border:1px solid var(--ink-1);border-radius:0;box-sizing:border-box;color:var(--ink-1);cursor:pointer;display:inline-flex;font-family:var(--font-mono);font-size:12px;font-weight:inherit;gap:6px;letter-spacing:.06em;line-height:1.2;margin:0;padding:6px 12px;text-decoration:none;text-transform:uppercase;transition:background .15s ease,color .15s ease}.btn:hover{background:var(--ink-1);color:var(--paper)}.btn--sm{font-size:11px;padding:4px 10px}.btn--primary,.btn--primary:hover{background:var(--ink-1);color:var(--paper)}.btn-icon{align-items:center;display:inline-flex}
/*# sourceMappingURL=main.6b8a722d.css.map*/