:root{--ink:#0b1a1f;--ink-body:#314246;--ink-muted:#4a5a5e;--ink-subtle:#5b6b6e;--rule:#9ba8aa;--accent-deep:#0f5c52;--accent-bright:#4fb3a3;--accent-wash:#0f5c5217;--paper:#f2f4f3;--white:#fff;--hairline:#0b1a1f1f;--hairline-strong:#0b1a1f29;--shadow-hairline:#0b1a1f0f;--radius:4px;--radius-pill:999px;--font-display:"Space Grotesk", "Noto Sans JP", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", "Noto Sans JP", ui-monospace, monospace}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP;src:url(/fonts/noto-sans-jp-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP;src:url(/fonts/noto-sans-jp-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP;src:url(/fonts/noto-sans-jp-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP;src:url(/fonts/noto-sans-jp-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font-display);margin:0}a{color:var(--accent-deep);text-decoration:none}a:hover{color:var(--ink)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}.skip-link{z-index:10;border-radius:var(--radius);background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.04em;padding:10px 16px;font-size:12px;position:fixed;top:16px;left:16px;transform:translateY(calc(-100% - 24px))}.skip-link:focus{color:var(--paper);transform:none}main:focus{outline:none}p,h1,h2,h3{text-wrap:pretty}h1,h2,h3{text-wrap:balance}.shell{grid-template-columns:minmax(320px,380px) 1fr;align-items:start;gap:56px;max-width:1280px;margin:0 auto;padding:0 24px;display:grid}@media (width<=900px){.shell{grid-template-columns:1fr}}.shell>*{min-width:0}.rail{flex-direction:column;gap:32px;padding:88px 0 64px;display:flex;position:sticky;top:0}@media (width<=900px),(height<=740px){.rail{padding:56px 0 8px;position:static}}.identity{flex-direction:column;gap:18px;display:flex}.mark-row{align-items:center;gap:14px;display:flex}.mark-tile{flex:none;width:72px;height:72px;margin-left:-12px;display:block}.mark-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-subtle);font-size:12px}h1.name{letter-spacing:-.035em;margin:0;font-size:clamp(34px,4vw,46px);font-weight:600;line-height:1.05}.role{color:var(--accent-deep);letter-spacing:-.01em;margin:0;font-size:19px;font-weight:500}.blurb{color:var(--ink-muted);max-width:34ch;margin:0;font-size:16px;line-height:1.65}.section-nav{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;flex-direction:column;gap:2px;font-size:12px;display:flex}@media (width<=900px){.section-nav{flex-direction:row;gap:20px;padding-bottom:4px;overflow-x:auto}}.section-nav a{color:var(--ink-subtle);white-space:nowrap;align-items:center;gap:14px;padding:9px 0;display:flex}.section-nav a:hover{color:var(--ink)}.section-nav .rule{background:var(--rule);flex:none;width:32px;height:1px;transition:width .18s,background .18s;display:block}.section-nav a.active{color:var(--ink);font-weight:500}.section-nav a.active .rule{background:var(--ink);width:64px}.rail-foot{flex-direction:column;gap:16px;display:flex}.lang-toggle{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.lang-toggle a{border-radius:var(--radius);letter-spacing:.08em;color:var(--ink-subtle);border:1px solid var(--hairline-strong);background:0 0;padding:6px 12px}.lang-toggle a:hover{color:var(--ink)}.lang-toggle a.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.lang-toggle a.active:hover{color:var(--paper)}.contact-info{font-family:var(--font-mono);color:var(--ink-subtle);flex-direction:column;gap:6px;font-size:12px;display:flex}.contact-info a{color:var(--accent-deep)}.contact-info a:hover{color:var(--ink)}main{flex-direction:column;gap:72px;padding:88px 0 96px;display:flex}@media (width<=900px){main{gap:48px;padding:8px 0 64px}}.eyebrow{font-weight:400;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-subtle);margin:0;font-size:11px}#about{flex-direction:column;gap:18px;display:flex}.about-body{color:var(--ink-body);max-width:65ch;margin:0;font-size:17px;line-height:1.75}.pills{flex-wrap:wrap;gap:8px;padding-top:6px;display:flex}.pill{background:var(--accent-wash);color:var(--accent-deep);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:6px 11px;font-size:12px}#work{flex-direction:column;gap:12px;display:flex}#work .eyebrow{padding-bottom:8px}.cap-row{border-radius:var(--radius);grid-template-columns:88px minmax(0,1fr);gap:20px;margin:0 -22px;padding:22px;transition:background .14s;display:grid}@media (hover:hover) and (pointer:fine){.cap-row:hover{background:var(--white);box-shadow:0 1px 0 var(--shadow-hairline)}}@media (width<=900px){.cap-row{margin:0;padding:16px 0}}.cap-index{font-family:var(--font-mono);color:var(--ink-subtle);padding-top:4px;font-size:12px}.cap-body{flex-direction:column;gap:9px;display:flex}.cap-body h3{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:600}.engagement-note{max-width:65ch;font-family:var(--font-mono);color:var(--ink-subtle);margin:10px 0 0;font-size:13px;line-height:1.6}.cap-body p{color:var(--ink-muted);max-width:65ch;margin:0;font-size:16px;line-height:1.65}#contact{background:var(--ink);color:var(--paper);border-radius:var(--radius);flex-direction:column;gap:22px;padding:44px;display:flex}@media (width<=560px){#contact{padding:28px}}.contact-eyebrow{align-self:flex-start;padding:0 5px;position:relative}.contact-eyebrow .bar{background:var(--accent-deep);height:8px;position:absolute;bottom:1px;left:0;right:0}.contact-eyebrow .label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--paper);font-size:11px;position:relative}.contact-head{letter-spacing:-.03em;max-width:26ch;margin:0;font-size:clamp(24px,2.8vw,32px);font-weight:600;line-height:1.2}.cta{background:var(--paper);color:var(--ink);border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:.04em;padding:14px 24px;font-size:13px;transition:background .14s,transform 80ms;display:inline-block}.cta:hover{color:var(--ink);background:var(--accent-bright)}.cta:active{transform:translateY(1px)}.cta-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.cta-secondary{font-family:var(--font-mono);letter-spacing:.04em;color:var(--paper);opacity:.7;text-underline-offset:3px;font-size:12px;text-decoration:underline}.cta-secondary:hover{color:var(--paper);opacity:1}.not-found{flex-direction:column;gap:40px;max-width:640px;margin:0 auto;padding:88px 24px 96px;display:flex}@media (width<=900px){.not-found{padding-top:56px}}.not-found-mark{align-self:flex-start;margin-left:-12px}.not-found-mark .mark-tile{margin-left:0}.not-found-block{border-top:1px solid var(--hairline);flex-direction:column;gap:8px;padding-top:18px;display:flex}.not-found-block h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:600}.not-found-block p{color:var(--ink-muted);margin:0;font-size:16px;line-height:1.65}.not-found-block a{font-family:var(--font-mono);font-size:13px}
