:root{--color-page:#f8f7f3;--color-text:#242422;--color-copy:#3e3d39;--color-copy-secondary:#4d4c47;--color-muted:#72716b;--color-rule:#d8d6cf;--color-accent:#426b8f;--color-alias-mark:#fff353;--color-focus:#1f5f96;--content-width:42.5rem;--font-size-page-title:clamp(1.38rem, 1.08rem + 1.05vw, 2rem);--space-page-inline:clamp(1.25rem, 5vw, 3rem);--space-section:clamp(5rem, 11vw, 8.5rem);--duration-short:.16s;--duration-fade:.32s;--duration-avatar-swap:.3s;--ease-standard:cubic-bezier(.2, .7, .2, 1);--ease-avatar-swap:cubic-bezier(.22, 1.2, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--color-text);background:var(--color-page);letter-spacing:.025em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,YuGothic,Noto Sans JP,sans-serif;font-size:clamp(1rem,.96rem + .2vw,1.08rem);line-height:1.9}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:.24em;transition:color var(--duration-short) var(--ease-standard), text-decoration-color var(--duration-short) var(--ease-standard);text-decoration-thickness:.06em}a:hover{color:var(--color-accent);text-decoration-color:currentColor}a:focus-visible,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:2px}img,svg{display:block}.skip-link{z-index:10;background:var(--color-text);color:var(--color-page);padding:.5rem .75rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}main,.site-footer{width:min(100% - (var(--space-page-inline) * 2), var(--content-width));margin-inline:auto}.intro{align-content:center;min-height:100svh;padding-block:clamp(3rem,8svh,6rem);display:grid;position:relative}.intro-identity{align-items:center;gap:clamp(1rem,3vw,1.75rem);display:flex}.intro-identity h1{min-width:0}.intro-avatar-switch{aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:clamp(4rem,8vw,5.5rem);padding:0;display:block;position:relative}.intro-avatar{object-fit:cover;width:100%;height:100%;transition:opacity .18s var(--ease-standard), transform var(--duration-avatar-swap) var(--ease-avatar-swap);border-radius:2px;position:absolute;inset:0}.intro-avatar--profile{z-index:0;transform:translate(4px,4px)rotate(2deg)}.intro-avatar--chicken{z-index:1;transform:translate(0)rotate(0)}.intro-avatar-switch.is-swapped .intro-avatar--chicken{opacity:0;transform:translate(-5px,-5px)rotate(-3deg)}.intro-avatar-switch.is-swapped .intro-avatar--profile{transition-delay:35ms;transform:translate(0)rotate(0)}@media (hover:hover) and (pointer:fine){.intro-avatar-switch:hover .intro-avatar--chicken{opacity:0;transform:translate(-5px,-5px)rotate(-3deg)}.intro-avatar-switch:hover .intro-avatar--profile{transition-delay:35ms;transform:translate(0)rotate(0)}}.project-meta,.link-meta{color:var(--color-muted);letter-spacing:.06em;font-size:.82rem;line-height:1.5}.intro h1{max-width:16em;font-size:var(--font-size-page-title);letter-spacing:.005em;margin:0;font-weight:540;line-height:1.65}.intro-alias{color:var(--color-muted);white-space:nowrap}.intro-alias-name{background:linear-gradient(transparent 56%, var(--color-alias-mark) 56%, var(--color-alias-mark) 94%, transparent 94%);color:var(--color-text);padding-inline:.14em}.intro-copy{color:var(--color-copy);margin:1.65rem 0 0}.intro-copy p{margin:0}.intro-link{font-size:.9rem;position:absolute;bottom:clamp(2rem,5svh,4rem);left:0}.section{padding-bottom:var(--space-section);scroll-margin-top:2rem}.section-heading{margin-bottom:1.5rem}.section h2{letter-spacing:.09em;margin:0;font-size:1.05rem;font-weight:650;line-height:1.6}.project-list,.links-list,.career-list{border-top:1px solid var(--color-rule);margin:0;padding:0;list-style:none}.project{border-bottom:1px solid var(--color-rule);padding-block:2.6rem 3rem}.project>.project-meta{margin:0 0 .38rem}.project h2,.project h3{margin:0 0 .7rem;font-size:clamp(1.08rem,.98rem + .35vw,1.28rem);font-weight:600;line-height:1.55}.project-title-link{text-decoration:none}.project-description{color:var(--color-copy-secondary);margin:0;line-height:1.8}.project-links,.detail-links,.section-links,.detail-end-support{flex-wrap:wrap;gap:.45rem 1.15rem;margin-top:1.2rem;font-size:.82rem;display:flex}.section-links{margin-bottom:0}.links-list li{border-bottom:1px solid var(--color-rule)}.profile-link{grid-template-columns:7.5rem 1fr auto;align-items:baseline;gap:1rem;padding-block:1.18rem;text-decoration:none;display:grid}.link-description{color:var(--color-copy-secondary);line-height:1.75}.link-arrow{color:var(--color-muted)}.career-entry{border-bottom:1px solid var(--color-rule);padding-block:2.4rem 2.8rem}.career-entry .career-period{color:var(--color-muted);margin:0 0 1.5rem;font-size:.82rem}.career-entry h3{margin:0 0 .8rem;font-size:1.02rem;font-weight:600;line-height:1.6}.career-entry p{color:var(--color-copy-secondary);margin:0;line-height:1.85}.career-entry p+p{margin-top:1.15rem}.career-entry .career-detail{margin-top:.85rem;font-size:.8rem}.to-top{z-index:5;background:color-mix(in srgb, var(--color-rule) 55%, var(--color-page));width:2.75rem;height:2.75rem;color:var(--color-copy-secondary);font:inherit;cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--duration-fade) var(--ease-standard), background-color var(--duration-short) var(--ease-standard), color var(--duration-short) var(--ease-standard), visibility 0s var(--duration-fade);border:0;border-radius:50%;place-content:center;padding:0;font-size:1.05rem;line-height:1;display:grid;position:fixed;bottom:clamp(1rem,4vw,2.5rem);right:clamp(1rem,4vw,2.5rem)}.to-top.is-visible{opacity:1;visibility:visible;transition:opacity var(--duration-fade) var(--ease-standard), background-color var(--duration-short) var(--ease-standard), color var(--duration-short) var(--ease-standard), visibility 0s}.to-top:hover{background:var(--color-rule);color:var(--color-text)}.site-footer{border-top:1px solid var(--color-rule);padding-block:2rem 3rem}.footer-links{flex-wrap:wrap;gap:.5rem 1.2rem;font-size:.84rem;display:flex}.detail-main{padding-block:clamp(2rem, 6vw, 4.5rem) var(--space-section)}.projects-index-header{margin:clamp(4rem,10vw,7rem) 0 2.6rem}.projects-index-header h1{font-size:var(--font-size-page-title);margin:0;font-weight:580;line-height:1.5}.breadcrumb{color:var(--color-muted);letter-spacing:.06em;flex-wrap:wrap;gap:.5rem;font-size:.82rem;line-height:1.5;display:flex}.breadcrumb [aria-current]{color:var(--color-copy-secondary)}.detail-article{margin-top:clamp(4rem,10vw,7rem)}.detail-header h1{font-size:var(--font-size-page-title);letter-spacing:0;margin:.5rem 0 1.4rem;font-weight:580;line-height:1.45}.detail-lead{color:var(--color-copy);margin:0;font-size:clamp(1rem,.95rem + .22vw,1.1rem)}.detail-shot{margin:clamp(2.5rem,7vw,4rem) 0 0}.detail-shot img{border:1px solid var(--color-rule);border-radius:2px;width:100%;height:auto}.detail-stack{border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);grid-template-columns:7.5rem 1fr;gap:clamp(1.5rem,5vw,3rem);margin:clamp(3rem,8vw,4.5rem) 0 0;padding-block:1.15rem 1.25rem;display:grid}.detail-stack dt{color:var(--color-muted);letter-spacing:.06em;padding-top:.1rem;font-size:.82rem;line-height:1.5}.detail-stack dd{color:var(--color-copy-secondary);margin:0;font-size:.88rem;line-height:1.8}.detail-section{margin-top:clamp(4rem,9vw,6.5rem)}.detail-section h2{letter-spacing:.09em;margin:0 0 1.5rem;font-size:1.05rem;font-weight:650;line-height:1.6}.detail-section p{color:var(--color-copy-secondary);margin:0}.detail-section p+p{margin-top:1.1rem}.detail-end-nav{margin-top:var(--space-section);border-top:1px solid var(--color-rule);padding-top:1.5rem}.detail-end-primary{margin:0;font-size:clamp(1rem,.95rem + .22vw,1.1rem);line-height:1.7}.detail-end-support{margin:0}.detail-end-primary+.detail-end-support{margin-top:1.2rem}.resume-article .detail-lead p{margin:0}.resume-article .detail-lead p+p{margin-top:1.1rem}.resume-article .detail-sentence{display:block}.resume-article .career-list{border-top:none}.resume-article .career-entry{border-bottom:none;padding-block:0}.resume-article .career-entry+.career-entry{margin-top:3.2rem}.resume-article .career-entry .career-period{align-items:center;gap:1.1rem;margin:0 0 1.7rem;display:flex}.resume-article .career-entry .career-period:before,.resume-article .career-entry .career-period:after{content:"";background:var(--color-rule);flex:1;height:1px}.resume-article .career-entry h3{margin-bottom:1rem}.resume-article .career-highlights{color:var(--color-copy-secondary);margin:1.15rem 0 0;padding-left:1.2rem;font-size:.95rem;line-height:1.85}.resume-article .career-highlights li+li{margin-top:.5rem}.resume-article .career-tech{grid-template-columns:2.9rem 1fr;gap:.7rem;margin:1.35rem 0 0;font-size:.82rem;line-height:1.75;display:grid}.resume-article .career-tech dt{color:var(--color-muted)}.resume-article .career-tech dd{color:var(--color-copy-secondary);margin:0}.career-contribution-list{border-top:1px solid var(--color-rule);margin:0}.career-contribution-list div{border-bottom:1px solid var(--color-rule);grid-template-columns:6rem 1fr;gap:1.75rem;padding-block:1.35rem 1.5rem;display:grid}.career-contribution-list dt{color:var(--color-muted);padding-top:.1rem;font-size:.76rem}.career-contribution-list dd{color:var(--color-copy-secondary);margin:0;font-size:.88rem;line-height:1.8}.contribution-links{margin:0;padding:0;list-style:none}.contribution-links li+li{margin-top:.75rem}.contribution-links--dated li{grid-template-columns:3.4rem 1fr;align-items:baseline;gap:0 .85rem;display:grid}.contribution-links--dated .contribution-note{grid-column:2}.contribution-meta{color:var(--color-muted);letter-spacing:.05em;font-size:.78rem}.contribution-note{color:var(--color-muted);margin-top:.15rem;font-size:.82rem;line-height:1.75;display:block}.career-contribution-list .contribution-more{margin:1.4rem 0 0;font-size:.82rem}@media (width<=46rem){.profile-link{grid-template-columns:1fr auto;gap:.2rem .7rem}.link-meta,.link-description{grid-column:1}.link-arrow{grid-area:1/2/3;align-self:center}.career-contribution-list div,.detail-stack{grid-template-columns:1fr;gap:.35rem}}@media (height<=32rem){.intro{min-height:auto}.intro-link{margin-top:2rem;position:static}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important}}@media print{:root{--color-page:#fff;--color-text:#000;--color-copy:#000;--color-copy-secondary:#222;--color-muted:#555;--color-rule:#bbb}body{font-size:10.5pt}.skip-link,.breadcrumb,.to-top,.site-footer,.detail-end-nav{display:none}.detail-main{width:100%;padding:0}.detail-article{margin-top:0}.detail-section{break-inside:avoid;margin-top:2rem}a{text-decoration:none}}
