@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bb852295097cd96-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eb5a876700c0028-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2a04751c893bf294-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#fff;--bg-subtle:#fafafa;--fg:#0a0a0a;--fg-muted:#666;--fg-faint:#8f8f8f;--line:#ebebeb;--line-strong:#d4d4d4;--btn-bg:#0a0a0a;--btn-fg:#fff;--btn-hover:#383838;--chip:#f2f2f2;--grid-line:#0000000d;--sans:var(--font-geist-sans), "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", system-ui, sans-serif;--mono:var(--font-geist-mono), ui-monospace, "SFMono-Regular", Menlo, monospace;--max:1120px;--gutter:24px;--radius:6px;--ease:cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme:dark){:root{--bg:#0a0a0a;--bg-subtle:#111;--fg:#ededed;--fg-muted:#a1a1a1;--fg-faint:#707070;--line:#1f1f1f;--line-strong:#333;--btn-bg:#ededed;--btn-fg:#0a0a0a;--btn-hover:#ccc;--chip:#1a1a1a;--grid-line:#ffffff0f}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt" 1;margin:0;font-size:15px;line-height:1.7}h1,h2,h3,p,ul,ol,dl,dd,blockquote{margin:0;padding:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}h1,h2,h3,p,blockquote{word-break:auto-phrase;text-wrap:pretty}::selection{background:var(--fg);color:var(--bg)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:2px}.mono{font-family:var(--mono);font-feature-settings:normal}.muted{color:var(--fg-muted)}.skip{position:absolute;left:-9999px}.skip:focus{z-index:100;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);padding:8px 12px;top:12px;left:16px}.container{width:100%;max-width:var(--max);margin:0 auto}.rails{border-left:1px solid var(--line);border-right:1px solid var(--line);position:relative}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{height:60px;padding:0 var(--gutter);align-items:center;gap:24px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.brand-mark{background:var(--fg);width:24px;height:24px;color:var(--bg);font-family:var(--mono);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:9px;font-weight:600;display:inline-grid}.nav{gap:4px;margin-left:auto;display:flex}.nav a{border-radius:var(--radius);color:var(--fg-muted);padding:6px 10px;font-size:14px;transition:color .15s,background-color .15s}.nav a:hover{color:var(--fg);background:var(--chip)}.btn{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-primary{background:var(--btn-bg);color:var(--btn-fg)}.btn-primary:hover{background:var(--btn-hover)}.btn-secondary{background:var(--bg);border:1px solid var(--line-strong)}.btn-secondary:hover{background:var(--chip)}.arrow{transition:transform .2s var(--ease);flex:none}a:hover>.arrow{transform:translate(1px,-1px)}.hero .rails{overflow:hidden}.hero-grid{background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);pointer-events:none;background-position:-1px -1px;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 35%,#000 30%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 35%,#000 30%,#0000 75%)}.hero-body{padding:120px var(--gutter) 96px;text-align:center;animation:rise .8s var(--ease) both;position:relative}.pill{border:1px solid var(--line-strong);background:var(--bg);font-family:var(--mono);color:var(--fg-muted);border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;display:inline-flex}.dot{background:var(--fg);border-radius:50%;width:6px;height:6px}.hero h1{letter-spacing:-.055em;margin-top:28px;font-size:clamp(48px,9vw,104px);font-weight:600;line-height:1}.h1-sub{letter-spacing:0;margin-top:24px;font-size:clamp(16px,2.2vw,20px);font-weight:500;line-height:1.5;display:block}.h1-sub .sep{color:var(--fg-faint);margin:0 12px;font-weight:400}.lead{max-width:560px;color:var(--fg-muted);margin:20px auto 0;font-size:16px}.cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.stats{border-top:1px solid var(--line);background:var(--bg);grid-template-columns:repeat(3,1fr);display:grid;position:relative}.stat{padding:28px var(--gutter);flex-direction:column-reverse;gap:4px;display:flex}.stat+.stat{border-left:1px solid var(--line)}.stat dd{letter-spacing:-.04em;font-size:36px;font-weight:600;line-height:1.1}.stat dt{font-family:var(--mono);color:var(--fg-muted);font-size:12px}.section{border-top:1px solid var(--line)}.section>.rails{padding:96px var(--gutter)}.section>.rails:before,.section>.rails:after{content:"";background:linear-gradient(var(--fg-faint), var(--fg-faint)) center / 1px 100% no-repeat, linear-gradient(var(--fg-faint), var(--fg-faint)) center / 100% 1px no-repeat;width:11px;height:11px;position:absolute;top:-6px}.section>.rails:before{left:-6px}.section>.rails:after{right:-6px}.section-head{margin-bottom:56px}.eyebrow{font-family:var(--mono);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:10px;font-size:12px;display:inline-flex}.tri{border-left:4px solid #0000;border-right:4px solid #0000;border-bottom:7px solid var(--fg);width:0;height:0}.section-head h2,.contact h2{letter-spacing:-.035em;margin-top:14px;font-size:clamp(28px,4.2vw,44px);font-weight:600;line-height:1.2}.about{grid-template-columns:1.25fr 1fr;gap:64px;display:grid}.about-text p{font-size:16px;line-height:1.95}.about-text p+p{margin-top:1.2em}.quote{border-left:2px solid var(--fg);margin-top:32px;padding-left:16px;font-weight:500}.kv{border-top:1px solid var(--line)}.kv>div{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;gap:16px;padding:12px 0;font-size:14px;display:grid}.kv dt{font-family:var(--mono);color:var(--fg-muted);padding-top:2px;font-size:12px}.services{border:1px solid var(--line);border-radius:var(--radius);margin-top:32px}.services li{grid-template-columns:32px 1fr auto;align-items:baseline;gap:12px;padding:10px 14px;font-size:14px;display:grid}.services li+li{border-top:1px solid var(--line)}.services .mono{font-size:12px}.works-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.work-card{background:var(--bg);flex-direction:column;transition:background-color .2s;display:flex}.work-card:hover{background:var(--bg-subtle)}.placeholder{aspect-ratio:16/9;border-bottom:1px solid var(--line);background-color:var(--bg-subtle);background-image:repeating-linear-gradient(-45deg, var(--grid-line) 0 1px, transparent 1px 10px);place-items:center;display:grid;position:relative}.placeholder span{border:1px dashed var(--line-strong);background:var(--bg);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:11px}.work-body{flex-direction:column;flex:1;padding:24px;display:flex}.work-meta{color:var(--fg-muted);font-size:12px}.work-card h3{letter-spacing:-.02em;margin-top:8px;font-size:18px;font-weight:600;line-height:1.45}.work-card h3 .muted{font-weight:500}.work-summary{color:var(--fg-muted);margin-top:10px;font-size:14px}.tags{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.tags li{background:var(--chip);color:var(--fg-muted);border-radius:4px;padding:2px 8px;font-size:12px}.work-links{flex-wrap:wrap;gap:4px 20px;margin-top:auto;padding-top:20px;font-size:13px;display:flex}.work-links a{color:var(--fg-muted);align-items:center;gap:4px;transition:color .15s;display:inline-flex}.work-links a:hover{color:var(--fg)}.work-list{margin-top:56px}.list-caption{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px}.work-list ul{border-top:1px solid var(--line)}.work-list li{border-bottom:1px solid var(--line)}.work-row{grid-template-columns:56px minmax(0,2.2fr) minmax(0,1.2fr) minmax(0,1.6fr) 16px;align-items:center;gap:16px;padding:14px 8px;font-size:14px;transition:background-color .15s;display:grid}.work-row:hover{background:var(--bg-subtle)}.work-row .col-year,.work-row .col-tags{font-size:12px}.work-row .col-tags,.work-row .col-industry{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.work-row .arrow{color:var(--fg-muted)}.list-note{margin-top:16px;font-size:13px}.cells{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.cell{background:var(--bg);padding:24px}.cell-label{text-transform:uppercase;letter-spacing:.04em;font-size:12px}.cell ul{margin-top:14px}.cell li{font-size:15px;font-weight:500;line-height:1.9}.rows{border-top:1px solid var(--line)}.row{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:24px;padding:24px 0;display:grid}.row-date{padding-top:2px;font-size:13px}.row-title{letter-spacing:-.01em;align-items:center;gap:6px;font-size:16px;font-weight:600;display:inline-flex}a.row-title:hover{text-underline-offset:4px;text-decoration:underline}.row-sub{margin-top:2px;font-size:13px}.row-body{color:var(--fg-muted);margin-top:10px;font-size:14px}.courses{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.courses a{border:1px solid var(--line);color:var(--fg-muted);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;transition:color .15s,border-color .15s;display:inline-flex}.courses a:hover{color:var(--fg);border-color:var(--line-strong)}.timeline .row{position:relative}.timeline .row-main{border-left:1px solid var(--line-strong);padding-left:24px;position:relative}.timeline .row-main:before{content:"";background:var(--bg);border:1px solid var(--fg);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;left:-4px}.timeline .row:first-child .row-main:before{background:var(--fg)}.contact-inner{text-align:center;padding:24px 0}.contact .lead{margin-top:16px}.site-footer{border-top:1px solid var(--line)}.footer-inner{padding:28px var(--gutter);color:var(--fg-muted);justify-content:space-between;gap:16px;font-size:13px;display:flex}.footer-inner .mono{font-size:12px}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(12px)}.reveal[data-visible=true]{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.hero-body{opacity:1;transition:none;animation:none;transform:none}}@media (max-width:960px){.about{grid-template-columns:1fr;gap:48px}.cells{grid-template-columns:repeat(2,1fr)}.work-row{grid-template-columns:56px minmax(0,1fr) minmax(0,.8fr) 16px}.work-row .col-tags{display:none}}@media (max-width:760px){:root{--gutter:16px}.nav{display:none}.header-inner .btn{margin-left:auto}.rails{border-left:0;border-right:0}.section>.rails:before,.section>.rails:after{display:none}.hero-body{padding:80px var(--gutter) 64px}.pill-loc{display:none}.h1-sub .sep{height:0;display:block;overflow:hidden}.stats{grid-template-columns:1fr}.stat{padding:16px var(--gutter);flex-direction:row-reverse;justify-content:space-between;align-items:baseline}.stat+.stat{border-left:0;border-top:1px solid var(--line)}.stat dd{font-size:28px}.section>.rails{padding:72px var(--gutter)}.section-head{margin-bottom:40px}.works-grid,.cells{grid-template-columns:1fr}.work-row{grid-template-columns:44px minmax(0,1fr) 16px;gap:12px;padding:14px 0}.work-row .col-industry{display:none}.row{grid-template-columns:1fr;gap:8px}.services-en{display:none}.services li{grid-template-columns:32px 1fr}.cta .btn{flex:100%}.footer-inner{flex-direction:column;gap:4px}}
