@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--ink:#171717;--mute:#777;--line:#dededb;--paper:#fff;--soft:#f5f5f2;--container:1350px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin-top:0}.wrap{width:min(calc(100% - 112px),var(--container));margin-inline:auto}.skip{position:absolute;top:-80px;left:12px;z-index:20;background:white;padding:12px}.skip:focus{top:12px}.site-header{position:relative;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:30px;height:88px;padding:0 max(56px,calc((100vw - var(--container))/2));border-bottom:1px solid var(--line);background:#fff}.brand{display:inline-flex;flex-direction:column;white-space:nowrap}.brand strong{font-size:21px;letter-spacing:-.065em;line-height:1.2}.brand strong span{font-weight:400;letter-spacing:-.05em}.brand small{font-size:8px;letter-spacing:.22em;margin-top:5px;color:#858585}.desktop-nav{display:flex;gap:35px}.desktop-nav a{font-size:12px;font-weight:500;transition:opacity .2s}.desktop-nav a:hover{opacity:.5}.header-cta{background:var(--ink);color:#fff;padding:15px 22px;font-size:11px;letter-spacing:.07em;display:flex;gap:42px}.header-cta:hover,.button:hover{opacity:.78}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}.hero{position:relative;min-height:710px;padding-top:112px;padding-bottom:70px}.eyebrow,.overline,.work-type,.service-grid article>span{font-size:10px;font-weight:600;letter-spacing:.22em}.eyebrow{display:flex;align-items:center;gap:13px}.dot{height:6px;width:6px;background:var(--ink);display:inline-block}.hero h1{font-size:clamp(56px,6.5vw,108px);line-height:1.36;letter-spacing:-.09em;font-weight:600;margin:46px 0 60px;white-space:nowrap}.hero h1 em{font-style:normal}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px}.hero-lead{font-size:15px;line-height:2.05;letter-spacing:.015em;margin-bottom:26px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:65px;min-width:280px;padding:21px 26px;font-size:12px;font-weight:600;transition:opacity .2s}.button-dark{background:var(--ink);color:white}.hero-side{border-left:1px solid var(--line);padding:8px 0 8px 36px;width:240px}.hero-side>span{color:#999;font-size:9px;letter-spacing:.15em;line-height:1.8}.hero-side p{font-size:17px;line-height:1.8;margin:18px 0 0}.scroll-note{position:absolute;bottom:34px;right:0;display:flex;gap:25px;color:#999;font-size:9px;letter-spacing:.2em}.dark{color:#fff;background:#171717}.statement{padding:110px 0}.statement-inner{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:50px;align-items:start}.overline{color:#8b8b88;white-space:nowrap}.statement h2{font-size:clamp(28px,3vw,46px);line-height:1.6;letter-spacing:-.075em;font-weight:500;margin:0}.statement-inner>p:last-child{color:#b5b5b5;font-size:13px;line-height:2.25}.section{padding-top:140px;padding-bottom:150px}.section-head{display:grid;grid-template-columns:1fr 1.4fr .95fr;column-gap:48px;align-items:start;margin-bottom:68px}.section h2,.about-section h2{font-size:clamp(36px,4vw,61px);font-weight:600;line-height:1.48;letter-spacing:-.08em;margin:0}.section-intro{font-size:13px;color:#777;line-height:2.2}.work{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2.35fr 80px;padding:42px 0 52px;gap:48px}.work:last-child{border-bottom:1px solid var(--line)}.work-index{font-size:12px;color:#999}.work-type{color:#888}.work h3{font-size:clamp(23px,3vw,40px);line-height:1.5;letter-spacing:-.065em;font-weight:500;margin:19px 0}.work p{color:#777;font-size:13px;line-height:2}.work-symbol{font-size:33px;justify-self:end;font-weight:300}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}.tags span{border:1px solid #dfdfdf;padding:7px 10px;font-size:10px;color:#777}.note{font-size:11px;color:#888;margin-top:22px}.gray{background:var(--soft)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d9d9d7}.service-grid article{padding:40px 26px 30px;border-right:1px solid #d9d9d7}.service-grid article:first-child{padding-left:0}.service-grid article:last-child{border-right:0}.service-grid article>span{color:#888;font-size:9px}.service-grid h3{font-size:25px;letter-spacing:-.055em;margin:55px 0 15px}.service-grid p{font-size:12px;line-height:2.15;color:#777}.approach-list{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.approach-list>div{border-top:1px solid var(--line);padding-top:20px}.approach-list span{font-size:12px;color:#999}.approach-list h3{font-size:22px;font-weight:500;letter-spacing:-.05em;margin:56px 0 15px}.approach-list p{font-size:12px;color:#777;line-height:2}.about-section{background:#eaeae7}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:start}.about-grid h2{margin-top:35px}.about-copy{font-size:15px;line-height:2.3}.experience{display:flex;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:50px 0 32px}.experience>div{flex:1;display:flex;flex-direction:column;gap:9px;padding:27px 10px 27px 0}.experience>div+div{border-left:1px solid #ccc;padding-left:26px}.experience b{font-weight:500;font-size:49px;letter-spacing:-.075em;white-space:nowrap}.experience b span{color:#aaa;font-size:28px}.experience sub{font-size:15px;bottom:0}.experience small{color:#666;font-size:10px;line-height:1.8}.bio{color:#666;font-size:12px;line-height:2.2}.signature{display:block;border-top:1px solid #ccc;margin-top:30px;padding-top:26px;font-size:15px;font-weight:600}.signature span{font-weight:400;color:#777;font-size:10px}.contact{padding:145px 0 150px}.contact-inner{display:grid;grid-template-columns:1fr 2fr;gap:10px}.contact-inner h2{font-size:clamp(40px,5.5vw,82px);font-weight:500;letter-spacing:-.08em;line-height:1.4;margin:0}.contact-inner>p:not(.overline){grid-column:2;font-size:14px;color:#bbb;line-height:2.2}.button-light{grid-column:2;background:#fff;color:#171717;width:max-content}.contact-note{font-size:10px!important;color:#888!important}.footer{padding-top:45px;padding-bottom:45px;display:flex;justify-content:space-between;align-items:end}.footer>div{display:flex;flex-direction:column;align-items:end;gap:18px}.footer>div>a{font-size:10px;letter-spacing:.15em}.footer>div>small{font-size:10px;color:#999}@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.site-header{padding:0 36px}.hero h1{font-size:clamp(48px,6.3vw,78px)}.statement-inner,.section-head{grid-template-columns:.65fr 1.6fr}.statement-inner>p:last-child,.section-intro{grid-column:2}.section-head{row-gap:20px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-grid article{border-bottom:1px solid #d9d9d7}.service-grid article:nth-child(2){border-right:0}.service-grid article:nth-child(3){padding-left:0}.approach-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.wrap{width:calc(100% - 44px)}.site-header{height:72px;padding:0 22px}.brand strong{font-size:18px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:42px;height:42px;background:none;border:0;cursor:pointer;align-items:end}.menu-toggle span{background:#171717;width:26px;height:1px}.menu-toggle span:last-child{width:18px}.mobile-nav{display:flex;position:absolute;top:72px;left:0;right:0;z-index:11;background:white;padding:20px 22px 32px;flex-direction:column;box-shadow:0 15px 25px #0000000a}.mobile-nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:20px}.hero{padding-top:80px;min-height:690px;padding-bottom:100px}.hero h1{font-size:clamp(34px,8.1vw,55px);letter-spacing:-.09em;line-height:1.52;white-space:normal;margin:49px 0 34px}.hero h1 em{white-space:nowrap}.hero-bottom{display:block}.hero-lead{font-size:12px;line-height:2;letter-spacing:-.015em}.hero-lead br{display:none}.button{min-width:0;width:100%;padding:20px 22px}.hero-side{margin-top:48px;padding-left:18px;width:auto}.hero-side p{font-size:15px;margin-top:10px}.scroll-note{right:0;bottom:24px;font-size:8px}.statement{padding:92px 0}.statement-inner,.section-head,.about-grid,.contact-inner{display:block}.statement h2{font-size:32px;margin:35px 0}.statement-inner>p:last-child{font-size:12px}.section{padding-top:98px;padding-bottom:100px}.section-head{margin-bottom:42px}.section h2,.about-section h2{font-size:37px;margin:32px 0 18px}.section-intro{font-size:12px}.work{grid-template-columns:25px 1fr 15px;gap:12px;padding:30px 0 35px}.work-type{font-size:8px}.work h3{font-size:24px}.work p{font-size:11px}.work-symbol{font-size:20px}.tags span{font-size:9px}.service-grid{grid-template-columns:1fr}.service-grid article,.service-grid article:first-child,.service-grid article:nth-child(3){padding:25px 0 27px;border-right:0}.service-grid h3{font-size:23px;margin:22px 0 11px}.service-grid p{font-size:12px}.approach-list{grid-template-columns:1fr;gap:0}.approach-list>div{padding:20px 0}.approach-list h3{margin:18px 0 7px}.about-grid h2{font-size:35px}.about-grid>div:last-child{margin-top:45px}.about-copy{font-size:13px}.experience b{font-size:37px}.experience b span{font-size:21px}.experience>div+div{padding-left:15px}.contact{padding:100px 0}.contact-inner h2{font-size:43px;margin:36px 0}.contact-inner>p:not(.overline){font-size:12px}.button-light{margin-top:24px}.footer{padding-top:34px;padding-bottom:35px}.footer>div>a{font-size:9px}.footer>div>small{font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* V2 — typographic direction */
:root{--ink:#0b0b0b;--soft:#f7f7f5;--line:#d7d7d4}
.site-header{height:76px}.brand strong{font-size:23px;letter-spacing:-.075em}.desktop-nav a{font-size:11px}.header-cta{background:transparent;color:var(--ink);border:1px solid var(--ink);padding:14px 18px}
.hero{min-height:calc(100svh - 76px);padding-top:57px;padding-bottom:34px;display:flex;flex-direction:column;justify-content:space-between}
.hero-topline,.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:10px;font-weight:600;letter-spacing:.15em}.hero-sequence{color:#888}
.hero h1{margin:55px 0 55px;font-size:clamp(65px,7.7vw,128px);font-weight:700;line-height:1.2;letter-spacing:-.105em;white-space:normal}
.hero h1>span{display:block;white-space:nowrap}.hero h1>span:nth-child(2){padding-left:9vw}.hero h1>span:nth-child(3){font-size:.94em}.hero-period{color:#bcbcb7}
.hero-bottom{display:grid;grid-template-columns:1fr 1fr;align-items:end;border-top:1px solid #b6b6b1;padding-top:22px}.hero-lead{font-size:13px;line-height:2;margin:0}.hero-text-link{justify-self:end;display:flex;align-items:center;gap:55px;border-bottom:1px solid var(--ink);padding:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.04em}.hero-text-link span{font-size:28px;font-weight:400}.hero-text-link:hover{opacity:.55}
.hero-foot{margin-top:56px;color:#777;font-size:9px}.hero-foot span:first-child{color:#222;letter-spacing:0;font-size:12px}
.statement{padding:130px 0}.statement-inner{grid-template-columns:.6fr 2fr 1.1fr}.statement h2{font-size:clamp(45px,5.2vw,80px);font-weight:600;line-height:1.35}
.section{padding-top:150px;padding-bottom:160px}.section-head{grid-template-columns:.7fr 1.6fr .9fr}.section h2,.about-section h2{font-size:clamp(45px,5vw,78px);line-height:1.34;font-weight:600}
.work{grid-template-columns:.6fr 2.5fr 50px;padding:55px 0 62px}.work h3{font-size:clamp(32px,4vw,62px);line-height:1.4;font-weight:500}.work-symbol{font-size:45px}
.service-grid{grid-template-columns:repeat(2,1fr)}.service-grid article{padding:55px 35px 60px;border-bottom:1px solid #d9d9d7}.service-grid article:nth-child(2){border-right:0}.service-grid article:nth-child(3){padding-left:0}.service-grid h3{font-size:clamp(36px,4.5vw,70px);margin:38px 0 20px}.service-grid p{font-size:14px;max-width:350px}
.contact-inner h2{font-size:clamp(56px,6.5vw,110px)}
@media(max-width:1100px){.hero h1{font-size:clamp(56px,7.5vw,87px)}.statement-inner,.section-head{grid-template-columns:.6fr 1.5fr}.hero h1>span:nth-child(2){padding-left:5vw}}
@media(max-width:700px){.site-header{height:68px}.hero{min-height:calc(100svh - 68px);padding-top:35px;padding-bottom:25px}.hero-topline{font-size:8px}.hero-sequence{display:none}.hero h1{font-size:clamp(39px,9.3vw,66px);line-height:1.32;letter-spacing:-.11em;margin:76px 0 65px}.hero h1>span:nth-child(2){padding-left:0}.hero h1>span:nth-child(3){font-size:.88em}.hero-bottom{display:block;padding-top:20px}.hero-lead{font-size:12px;line-height:1.95}.hero-lead br{display:none}.hero-text-link{margin-top:26px;font-size:11px;justify-content:space-between;gap:12px;padding-bottom:11px}.hero-foot{margin-top:55px;font-size:8px}.hero-foot span:first-child{font-size:10px}.statement{padding:93px 0}.statement h2{font-size:clamp(39px,9vw,55px)}.section{padding-top:98px;padding-bottom:108px}.section h2,.about-section h2{font-size:clamp(36px,9vw,52px)}.work{grid-template-columns:23px 1fr 20px;gap:10px;padding:35px 0 40px}.work h3{font-size:clamp(25px,6.1vw,34px)}.work-symbol{font-size:21px}.service-grid{grid-template-columns:1fr}.service-grid article,.service-grid article:first-child,.service-grid article:nth-child(3){padding:28px 0;border-right:0}.service-grid h3{font-size:40px;margin:20px 0}.service-grid p{font-size:12px}.contact-inner h2{font-size:clamp(44px,10vw,65px)}}
@media(max-width:380px){.hero h1{font-size:9vw}}

/* Multi-page extension — v2 typography inherited */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #555;outline-offset:4px}
a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
.page-hero{min-height:540px;padding-top:64px;padding-bottom:50px;display:flex;flex-direction:column;justify-content:space-between}.page-hero h1{font-size:clamp(65px,8.5vw,132px);line-height:1.22;letter-spacing:-.105em;font-weight:700;margin:70px 0}.page-hero-bottom{display:flex;justify-content:space-between;border-top:1px solid #bbb;padding-top:25px;gap:35px;align-items:end}.page-hero-bottom p{font-size:15px;line-height:2;max-width:560px;margin:0}.page-hero-bottom span{font-size:10px;letter-spacing:.12em;color:#888;white-space:nowrap}
.text-arrow{display:inline-flex;gap:65px;align-items:center;border-bottom:1px solid currentColor;padding:18px 0;font-size:12px;font-weight:600;letter-spacing:.1em;margin-top:28px}.text-arrow:hover,.portfolio-item:hover{opacity:.65}.text-arrow span{font-size:21px}.next-cta{padding:125px 0 135px}.next-cta h2{font-size:clamp(55px,7vw,110px);line-height:1.35;letter-spacing:-.09em;margin:35px 0 65px}.next-cta .hero-text-link{display:inline-flex;border-color:white;justify-self:auto}.two-col{display:grid;grid-template-columns:32% 1fr;gap:7%}.two-col h2{font-size:clamp(45px,5vw,76px);line-height:1.4;letter-spacing:-.075em;margin:0 0 38px}.body-copy{font-size:16px;line-height:2.2;color:#575757;max-width:730px;margin-bottom:30px}.body-copy.light{color:#bbb}.detail-row{display:grid;grid-template-columns:28% 1fr;gap:6%;border-top:1px solid var(--line);padding:52px 0 75px}.detail-row:last-child{border-bottom:1px solid var(--line)}.detail-index{font-size:11px;color:#888;letter-spacing:.12em}.detail-row h3{font-size:clamp(42px,5.5vw,84px);letter-spacing:-.08em;font-weight:600;margin:0 0 9px;line-height:1.14;overflow-wrap:anywhere}.detail-jp{font-size:13px;color:#888;letter-spacing:.06em}.detail-copy{font-size:16px;line-height:2.2;max-width:680px;margin:40px 0}.detail-meta,.project-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;border-top:1px solid var(--line);padding-top:23px}.detail-meta span,.project-facts span{font-size:10px;letter-spacing:.13em;color:#888}.detail-meta p{font-size:13px;line-height:2.1;margin:12px 0 0}.project-facts{margin:55px 0}.project-facts>div{display:flex;flex-direction:column;gap:16px}.project-facts strong{font-size:18px;font-weight:500}.portfolio-list{margin-top:35px}.portfolio-item{display:grid;grid-template-columns:12% 1fr 5%;gap:25px;align-items:start;border-top:1px solid var(--line);padding:45px 0 52px;transition:opacity .2s}.portfolio-item:last-child{border-bottom:1px solid var(--line)}.portfolio-item>span:first-child{font-size:13px;color:#888}.portfolio-item small{font-size:10px;color:#888;letter-spacing:.1em}.portfolio-item h2{font-size:clamp(34px,4.6vw,67px);margin:18px 0 23px;line-height:1.4;letter-spacing:-.075em;font-weight:500}.portfolio-item p{font-size:13px;line-height:2;color:#777;max-width:750px}.portfolio-arrow{font-size:30px}.project-title{font-size:clamp(39px,5.2vw,80px)!important}.about-hero-quote{font-size:clamp(45px,6.4vw,92px)!important}.timeline>div{display:grid;grid-template-columns:130px 1fr;border-top:1px solid var(--line);padding:30px 0;gap:0 20px}.timeline small{color:#777;font-size:12px}.timeline h3{font-size:25px;margin:0;letter-spacing:-.04em}.timeline p{grid-column:2;color:#777;font-size:13px;line-height:2;margin:10px 0 0}.contact-panel{max-width:720px}.form-status{font-size:11px;font-weight:600;letter-spacing:.16em}.form-warning{background:#f5f5f2;padding:16px;font-size:12px;line-height:1.8;margin-bottom:35px}.contact-panel form{display:flex;flex-direction:column;gap:12px}.contact-panel label{font-size:12px;font-weight:600;margin-top:15px}.contact-panel label span{color:#a44}.contact-panel input,.contact-panel select,.contact-panel textarea{width:100%;border:1px solid #c9c9c6;padding:17px 15px;font:inherit;font-size:14px;border-radius:0;background:white;color:var(--ink)}.contact-panel textarea{resize:vertical}.submit-disabled{margin-top:25px;padding:20px;background:#ddd;color:#666;border:0;text-align:left;cursor:not-allowed;font-weight:600}.contact-panel form small{color:#888;font-size:11px;line-height:1.8}
@media(max-width:700px){.page-hero{min-height:460px;padding-top:35px;padding-bottom:38px}.page-hero h1{font-size:clamp(45px,10.6vw,70px);margin:65px 0;line-height:1.3}.page-hero-bottom{display:block}.page-hero-bottom p{font-size:12px}.page-hero-bottom span{display:block;margin-top:25px;font-size:8px}.two-col,.detail-row{grid-template-columns:1fr;gap:25px}.two-col h2{font-size:42px}.body-copy{font-size:13px}.detail-row{padding:35px 0 55px}.detail-row h3{font-size:45px}.detail-copy{font-size:13px;margin:25px 0}.detail-meta{grid-template-columns:1fr;gap:25px}.portfolio-item{grid-template-columns:24px 1fr 15px;gap:12px;padding:35px 0}.portfolio-item h2{font-size:30px}.portfolio-item p{font-size:12px}.portfolio-arrow{font-size:18px}.next-cta{padding:100px 0}.next-cta h2{font-size:48px}.timeline>div{grid-template-columns:1fr}.timeline h3{margin-top:12px}.timeline p{grid-column:1}.contact-panel{margin-top:35px}.project-facts strong{font-size:14px}.project-facts{gap:10px}.mobile-nav{top:68px}}

/* v3.1 — business identity */
.business-facts{margin:22px 0 0;padding:0;border-top:1px solid var(--line)}
.business-facts>div{display:grid;grid-template-columns:minmax(130px,28%) 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}
.business-facts dt{font-size:10px;letter-spacing:.16em;color:#777;font-weight:600}
.business-facts dd{margin:0;font-size:clamp(15px,1.6vw,22px);line-height:1.7;letter-spacing:-.025em;overflow-wrap:anywhere}
.business-facts dd span{display:block;font-size:12px;color:#888;letter-spacing:0;margin-top:2px}
.footer-information>span{font-size:11px;line-height:1.6;color:#666;text-align:right}
.footer-information>span:nth-child(2){font-size:10px;color:#888}
@media(max-width:700px){.business-facts>div{grid-template-columns:1fr;gap:8px;padding:21px 0}.footer{gap:20px;align-items:flex-start}.footer-information>span{font-size:10px}.footer-information>span:nth-child(2){font-size:9px}.signature span{display:block;margin-top:8px;line-height:1.7}}

/* v3.2 contact email */
.contact-mail{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid currentColor;padding:18px 0 22px;font-size:clamp(20px,3.25vw,38px);font-weight:550;letter-spacing:-.05em;overflow-wrap:anywhere}
.contact-mail span{flex-shrink:0;font-size:24px}
.contact-mail-desc{font-size:13px;line-height:1.9;color:#666;margin:14px 0 40px}
@media(max-width:700px){.contact-mail{font-size:clamp(19px,5.1vw,28px)}.contact-mail-desc{font-size:12px}}

.legal-content{max-width:800px;margin:0 auto}.legal-content h2{font-size:22px;letter-spacing:-.04em;line-height:1.5;margin:55px 0 16px}.legal-content p{font-size:14px;line-height:2.15;color:#555}.legal-note{padding:18px 22px;border:1px solid #d6d6d3;background:#f5f5f2}.legal-date{margin-top:65px}.legal-content a{text-decoration:underline;text-underline-offset:4px}
