.profile-intro,.profile-page{--profile-paper:#f7f5f0;--profile-ink:#181817;--profile-muted:#5c5a56;--profile-line:#d8d5ce;color:var(--profile-ink);background:var(--profile-paper)}
.profile-intro *, .profile-page main *{box-sizing:border-box}
.profile-intro{padding:clamp(5rem,9vw,9rem) clamp(2rem,5vw,6rem);border-top:1px solid var(--profile-line);border-bottom:1px solid var(--profile-line)}
.profile-intro-inner,.profile-wrap{max-width:80rem;margin-inline:auto}
.profile-intro-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.84fr);gap:clamp(3rem,8vw,9rem);align-items:start}
.profile-kicker,.profile-index,.profile-role{font-family:Outfit,'Noto Sans JP',sans-serif;letter-spacing:.15em;font-size:.78rem;font-weight:500;line-height:1.6}
.profile-kicker{margin:0 0 2.2rem}.profile-intro h2{font-size:clamp(2rem,3.4vw,3.65rem);font-weight:500;letter-spacing:-.035em;line-height:1.55;margin:0}
.profile-intro-body{padding-top:3rem;max-width:36rem;font-size:clamp(.97rem,1.1vw,1.08rem);line-height:1.95}.profile-intro-body p{margin:0 0 1.5rem}.profile-intro-body .profile-intro-lead{font-size:clamp(1.08rem,1.4vw,1.35rem);line-height:1.8}
.profile-intro-person{margin:2.8rem 0 1.4rem;border-top:1px solid var(--profile-line);padding-top:1.4rem}.profile-intro-person h3{font-size:clamp(1.5rem,2vw,2.15rem);font-weight:500;letter-spacing:.05em;line-height:1.4;margin:0 0 .3rem}.profile-intro-person span{font-family:Outfit,sans-serif;font-size:.76rem;letter-spacing:.15em;color:var(--profile-muted)}
.profile-nowrap{white-space:nowrap}
.profile-text-link{display:inline-flex;align-items:center;gap:1.4rem;padding:.75rem .1rem;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;line-height:1.6;transition:opacity .2s ease}.profile-text-link:hover,.profile-back-link:hover{opacity:.62}.profile-text-link:focus-visible,.profile-back-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.profile-page{min-width:0}.profile-page main{overflow:hidden}.profile-wrap{width:calc(100% - 2 * clamp(2rem,5vw,6rem))}.profile-hero{padding-top:clamp(10rem,16vw,17rem);padding-bottom:clamp(5rem,9vw,9rem)}.profile-hero h1{font-size:clamp(3.3rem,7vw,7rem);font-weight:500;letter-spacing:.07em;line-height:1.2;margin:0}.profile-role{margin:1rem 0 clamp(4.5rem,8vw,8rem);color:var(--profile-muted)}.profile-hero h2{font-size:clamp(2rem,3.2vw,3.4rem);font-weight:500;letter-spacing:-.03em;line-height:1.55;margin:0 0 3.5rem}.profile-hero-copy{max-width:42rem;margin-left:auto;font-size:clamp(1rem,1.2vw,1.15rem);line-height:2}.profile-hero-copy p{margin:0 0 1.6rem}
.profile-experience{border-top:1px solid var(--profile-line);padding:clamp(4rem,7vw,7rem) 0}.profile-experience-grid{display:grid;grid-template-columns:minmax(12rem,.5fr) minmax(0,1fr);gap:clamp(2rem,7vw,8rem)}.profile-index span{display:block;margin-bottom:.6rem}.profile-index span:last-child{color:var(--profile-muted)}.profile-experience-copy{max-width:42rem}.profile-experience h2{font-size:clamp(1.8rem,2.8vw,3rem);line-height:1.55;letter-spacing:-.025em;font-weight:500;margin:0 0 2.4rem}.profile-experience-copy p{font-size:clamp(1rem,1.15vw,1.12rem);line-height:2;margin:0 0 1.5rem}
.profile-closing{border-top:1px solid var(--profile-line);padding:clamp(6rem,10vw,11rem) 0;text-align:center}.profile-closing h2{font-size:clamp(2rem,3.4vw,3.8rem);line-height:1.6;letter-spacing:-.03em;font-weight:500;margin:0 auto 3rem}.profile-closing h2 span{display:inline-block;margin-top:.8rem}.profile-closing p:not(.profile-kicker){max-width:39rem;margin:0 auto 2rem;text-align:left;line-height:2}.profile-closing .profile-text-link{margin:1rem auto 2.8rem}.profile-back-link{display:block;width:max-content;max-width:100%;margin:0 auto;color:inherit;text-decoration:none;font-size:.85rem;border-bottom:1px solid var(--profile-line);padding:.5rem;transition:opacity .2s ease}.profile-closing .profile-review-note{font-size:.76rem;color:var(--profile-muted);margin:2rem auto 0;text-align:center}
@media(max-width:700px){
 .profile-intro{padding:5rem 1.65rem}.profile-intro-inner{display:block}.profile-intro-heading{text-align:center}.profile-kicker{font-size:.72rem;margin-bottom:1.5rem}.profile-intro h2{font-size:clamp(1.55rem,5.6vw,2.1rem);line-height:1.55}.profile-intro-body{padding-top:2.7rem;max-width:32rem;margin:auto;font-size:.96rem;line-height:1.9}.profile-intro-body .profile-intro-lead{font-size:1.06rem}.profile-intro-person{margin-top:2.5rem}.profile-wrap{width:calc(100% - 3.3rem)}.profile-hero{padding-top:9rem;padding-bottom:5rem}.profile-hero h1{font-size:clamp(2.7rem,12vw,4.2rem)}.profile-role{margin-bottom:4.5rem}.profile-hero h2{font-size:clamp(1.55rem,5.4vw,2.15rem);line-height:1.65;margin-bottom:2.4rem}.profile-hero-copy{font-size:.98rem;line-height:1.9}.profile-experience{padding:4.5rem 0}.profile-experience-grid{display:block}.profile-index{font-size:.72rem;margin-bottom:2rem}.profile-experience h2{font-size:clamp(1.55rem,5.3vw,2.2rem);margin-bottom:1.8rem}.profile-experience-copy p{font-size:.97rem;line-height:1.9}.profile-closing{padding:5.5rem 0}.profile-closing h2{font-size:clamp(1.65rem,5.5vw,2.3rem);line-height:1.7}.profile-closing p:not(.profile-kicker){font-size:.96rem;line-height:1.9}.profile-closing .profile-review-note{font-size:.73rem}
 .profile-closing{padding:4.5rem 0}.profile-closing h2{margin-bottom:2rem}
}
@media(prefers-reduced-motion:reduce){.profile-text-link,.profile-back-link{transition:none}}

.profile-related{margin-top:2rem;padding-top:1.15rem;border-top:1px solid var(--profile-line)}
.profile-related-pair>div+div{margin-top:1.8rem}
.profile-exp-two .profile-subsection h3{font-family:Outfit,'Noto Sans JP',sans-serif;font-size:.76rem;letter-spacing:.14em;font-weight:500;margin:0 0 1.15rem}.profile-exp-two .profile-subsection+.profile-subsection{margin-top:3rem;padding-top:2.4rem;border-top:1px solid var(--profile-line)}.profile-exp-two .profile-related{margin-top:1.2rem;padding-top:0;border-top:0}
.profile-related-label{font-family:Outfit,'Noto Sans JP',sans-serif;font-size:.72rem!important;letter-spacing:.13em;line-height:1.6!important;color:var(--profile-muted);margin:0 0 .45rem!important}
.profile-experience-copy .profile-related-note{font-size:clamp(.92rem,1vw,1.02rem);line-height:1.85;margin:0 0 .75rem}
.profile-external-link{display:inline-flex;flex-wrap:wrap;align-items:baseline;color:var(--profile-ink);font-size:clamp(.87rem,1vw,.99rem);line-height:1.6;letter-spacing:.01em;text-decoration:none;border-bottom:1px solid var(--profile-muted);padding:.4rem 0 .55rem;transition:opacity .2s ease,border-color .2s ease}
.profile-external-link>span:not(.profile-sr-only){white-space:nowrap}
.profile-external-link:hover{opacity:.65;border-color:var(--profile-ink)}
.profile-external-link:focus-visible{outline:2px solid var(--profile-ink);outline-offset:4px}
.profile-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
 .profile-related{margin-top:1.65rem;padding-top:1rem}
 .profile-related-pair>div+div{margin-top:1.5rem}
 .profile-external-link{font-size:.87rem;max-width:100%;padding-block:.5rem .6rem}
 .profile-experience-copy .profile-related-note{font-size:.91rem;line-height:1.85}
}
@media(prefers-reduced-motion:reduce){.profile-external-link{transition:none}}

/* The profile hero is composed independently for a wide reading canvas. */
@media(min-width:701px){
 .profile-page .profile-hero{padding-top:clamp(9.5rem,13vw,13rem);padding-bottom:clamp(5rem,7vw,7rem)}
 .profile-page .profile-hero h1{font-size:clamp(3.4rem,5vw,5.4rem)}
 .profile-page .profile-role{margin-bottom:clamp(3.5rem,5vw,5.5rem)}
 .profile-page .profile-hero h2{font-size:clamp(2rem,2.7vw,2.8rem);max-width:25em;line-height:1.55;margin-bottom:2.8rem}
 .profile-page .profile-hero h2 span{display:block;white-space:nowrap}
 .profile-page .profile-hero-copy{max-width:38rem}
 .profile-page .profile-rhythm{margin-block:2.3rem;line-height:2.1}
}
/* Narrow screens use their own type scale and spacing; the wide layout is untouched. */
@media(max-width:700px){
 .profile-page .profile-hero h1{font-size:clamp(2.35rem,10vw,3.4rem)}
 .profile-page .profile-role{margin-bottom:3.25rem}
 .profile-page .profile-hero h2{font-size:clamp(1.13rem,4.8vw,1.4rem);letter-spacing:-.035em;line-height:1.7;margin-bottom:2.1rem;max-width:none}
 .profile-page .profile-hero h2 span{display:block;white-space:nowrap}
 .profile-page .profile-hero-copy{letter-spacing:0;line-height:1.88}
 .profile-page .profile-rhythm{margin-block:2rem;line-height:2.05}
}

/* A quiet personal introduction after the company's work and before COMPANY. */
.profile-intro-compact{padding:clamp(3.5rem,5vw,5rem) var(--gutter)}
.profile-intro-compact .profile-intro-inner{max-width:65rem;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:clamp(2rem,5vw,5rem)}
.profile-intro-compact .profile-kicker{font-family:'Noto Sans JP',sans-serif;letter-spacing:.06em;font-size:.8rem;margin-bottom:1.15rem}
.profile-intro-compact h2{font-size:clamp(1.65rem,2.4vw,2.2rem);letter-spacing:.06em;line-height:1.4}
.profile-intro-compact .profile-name-en{font-family:Outfit,sans-serif;font-size:.7rem;letter-spacing:.15em;color:var(--profile-muted);margin:.65rem 0 0}
.profile-intro-compact .profile-intro-body{padding-top:0;max-width:38rem;font-size:1rem;line-height:1.95}
@media(max-width:700px){.profile-intro-compact{padding:3.25rem var(--gutter)}.profile-intro-compact .profile-intro-heading{text-align:left}.profile-intro-compact .profile-intro-body{padding-top:1.8rem;font-size:.94rem;line-height:1.85}.profile-intro-compact h2{font-size:1.7rem}.profile-intro-compact .profile-kicker{margin-bottom:.9rem}}

#profile{scroll-margin-top:6rem}

/* Corporate introduction and business record retain the editorial page system. */
.corporate-intro h2{font-size:clamp(1.8rem,2.5vw,2.55rem);letter-spacing:-.025em;line-height:1.55}
.business-experience-hero .profile-role{margin-bottom:2.8rem}
.business-experience-hero .experience-attribution{font-size:.85rem;line-height:1.85;color:var(--profile-muted);border-top:1px solid var(--profile-line);padding-top:1.4rem;margin-top:2rem}
.profile-product-official{display:flex;width:max-content;margin-top:1rem;font-size:.85rem}
@media(max-width:700px){.corporate-intro h2{font-size:1.85rem}.business-experience-hero .profile-role{margin-bottom:2rem}.business-experience-hero .experience-attribution{font-size:.82rem}}

/* The business record starts closer to the header than the former personal hero. */
.profile-page .business-experience-hero{padding-top:4rem;padding-bottom:4rem}
@media(max-width:700px){.profile-page .business-experience-hero{padding-top:3rem;padding-bottom:3rem}}

.profile-intro-compact.corporate-intro .profile-intro-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,4vw,4rem)}
.profile-intro-compact.corporate-intro .profile-intro-heading{text-align:center}
.corporate-intro h2{font-size:clamp(1.6rem,2.35vw,2.45rem);line-height:1.6}
.profile-experience-copy h2,.profile-external-link>span:not(.profile-sr-only){white-space:normal}
.profile-external-link{column-gap:.15rem;row-gap:.1rem}
@media(max-width:700px){.corporate-intro h2{font-size:1.65rem}.profile-experience{padding-block:3.5rem}.profile-experience-copy p{line-height:1.85}.profile-closing{padding-block:3.5rem}}

/* Home section headings share a centre; reading copy keeps its left edge. */
.v3-home .v3-section-no,
.v3-home .portfolio-intro .eyebrow,
.v3-home .v3-name-content>.eyebrow,
.v3-home .profile-intro-heading{text-align:center}
.v3-home #about h2,
.v3-home #audience h2,
.v3-home #services h2,
.v3-home #projects-title,
.v3-home #profile-intro-title,
.v3-home .v3-work-heading h2,
.v3-home .v3-name-content>h2,
.v3-home .v3-company-grid>h2,
.v3-home .v3-contact-grid>div:first-child{text-align:center}
.v3-home .profile-intro-heading,
.v3-home .profile-intro-body,
.v3-home .v3-company-grid>h2{grid-column:1/-1}
.v3-home .profile-intro-body{width:100%;margin-inline:auto;text-align:left}
.v3-home .v3-name .v3-logo-art{margin-inline:auto}
.v3-home #about>.v3-section-no{display:block;width:100%;text-align:center}
