:root{--red:#e83226;--red-dark:#c1271d;--ink:#181818;--muted:#636363;--line:#dedede;--paper:#fff;--gray:#f4f4f4;--font:'Inter','Noto Sans JP',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.5;letter-spacing:-.035em}h2{font-size:clamp(2rem,3.6vw,3.2rem);font-weight:800}h3{font-weight:700}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--red);outline-offset:5px}.skip-link{position:fixed;left:20px;top:-100px;z-index:50;background:white;padding:10px 20px}.skip-link:focus{top:10px}.red-text{color:var(--red)}.eyebrow{font-size:13px;letter-spacing:.1em;font-weight:700;line-height:1.6}.red-rule{display:inline-block;background:var(--red);width:28px;height:3px;margin-right:10px;vertical-align:middle}.header{height:92px;padding:0 4.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:10;background:white}.wordmark{font-family:'Inter',sans-serif;font-size:47px;letter-spacing:-.095em;font-weight:900;line-height:1}.wordmark-dot{color:var(--red)}.nav{display:flex;align-items:center;gap:35px;font-size:14px;font-weight:600}.nav>a:not(.nav-contact){position:relative}.nav>a:not(.nav-contact):after{content:'';position:absolute;bottom:-7px;left:0;right:100%;height:2px;background:var(--red);transition:right .2s}.nav>a:hover:after{right:0}.nav-contact{display:flex;align-items:center;gap:44px;background:var(--ink);color:white;padding:12px 24px}.nav-contact:hover{background:var(--red)}.nav-contact span{font-size:22px}.menu-toggle,.mobile-nav{display:none}.hero{display:grid;grid-template-columns:1.14fr .86fr;max-width:1600px;margin:auto;position:relative;padding-left:6.2%}.hero-copy{padding:68px 22px 40px 0;position:relative;z-index:1}.hero-service{font-size:15px;font-weight:600;margin-top:28px}.hero h1{font-size:clamp(2.3rem,4.8vw,4.7rem);font-weight:900;line-height:1.48;letter-spacing:-.055em;margin:16px -55px 26px 0}.hero-description{font-size:16px;line-height:2.05}.hero-actions{display:flex;align-items:center;gap:30px;margin:34px 0 32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-height:58px;padding:15px 25px;border:0;font-size:15px;font-weight:600;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:25px;line-height:1}.button-black{background:var(--ink);color:#fff}.button-black:hover{background:var(--red)}.button-red{background:var(--red);color:white}.button-red:hover{background:var(--red-dark)}.text-link{font-size:14px;font-weight:600;border-bottom:1px solid var(--ink);padding:8px 0;white-space:nowrap}.text-link span{margin-left:13px}.hero-platforms{display:flex;gap:25px;font-weight:700;font-size:14px}.hero-platforms span+span{position:relative}.hero-platforms span+span:before{content:'/';position:absolute;left:-15px;color:#aaa;font-weight:400}.hero-portrait{position:relative;background:#f0f3f3;overflow:hidden;min-width:0}.hero-portrait>img{width:100%;height:100%;object-fit:cover;object-position:center 45%;max-height:745px}.portrait-name{position:absolute;bottom:40px;left:0;padding:15px 27px 17px;background:var(--red);color:#fff}.portrait-name>span{font-size:12px;letter-spacing:.04em;line-height:1.5}.portrait-name>p{font-size:27px;font-weight:600;letter-spacing:.05em;line-height:1.7}.portrait-side{position:absolute;right:16px;top:30px;writing-mode:vertical-rl;letter-spacing:.18em;font-size:11px;font-weight:700}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;padding:23px 6.5% 23px 0;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}.hero-bottom>a{letter-spacing:.08em;white-space:nowrap}.hero-bottom>a span{margin-left:20px}.section{max-width:1280px;margin:0 auto;padding:100px 6.2%}.section-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:43px}.section-top .eyebrow{color:var(--red)}.section-caption{font-size:13px;font-weight:500}.about-heading,.service-heading{display:flex;justify-content:space-between;gap:40px;align-items:center;margin-bottom:48px}.section-intro{font-size:16px;line-height:2}.about-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:55px;align-items:start}.work-image{position:relative}.work-image>img{width:100%;aspect-ratio:3/2;object-fit:cover;background:#e8e8e8}.work-image>figcaption{font-size:12px;color:var(--muted);margin-top:8px}.about-grid>.work-image{margin-top:5px}.about-grid>.work-image>img{aspect-ratio:4/4.4;object-position:62% center}.name-en{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--muted)}.about-text>h3{font-size:26px;margin:4px 0 24px}.about-text>h3>span{display:block;font-size:13px;letter-spacing:0;font-weight:500;margin-top:4px}.about-text>p:not(.name-en){font-size:15px;line-height:2;margin-top:16px}.personal-note{border-left:3px solid var(--red);padding-left:20px;margin-top:26px}.personal-note>span{font-size:13px;font-weight:600}.personal-note>p{font-size:15px;margin-top:7px;line-height:1.95}.experience-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.experience-strip>div{padding:25px 28px;border-right:1px solid var(--line)}.experience-strip>div:first-child{padding-left:0}.experience-strip>div:last-child{border-right:0}.experience-strip span{font-size:12px;letter-spacing:.08em;color:var(--red);font-weight:600}.experience-strip p{font-size:20px;font-weight:600;line-height:1.65;margin-top:9px}.small-note{font-size:12px;color:var(--muted);margin-top:14px}.approach-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px}.approach-intro>p{margin-top:24px;line-height:2.1;color:var(--muted);font-size:15px}.process-list{list-style:none;margin:0;padding:0}.process-list>li{display:flex;gap:22px;padding:24px 0;border-top:1px solid var(--line)}.process-list>li:first-child{padding-top:0;border-top:0}.process-number{font-family:'Inter',sans-serif;font-size:14px;color:var(--red);font-weight:600;padding-top:5px}.process-list h3{font-size:20px;margin-bottom:12px}.process-list p{font-size:14px;color:var(--muted);line-height:1.95}.output-label{display:block;font-size:12px;font-weight:500;padding-top:12px}.service-section{background:var(--gray)}.service-heading>p{font-size:15px;line-height:2;flex-shrink:0}.service-list{border-top:1px solid #ccc}.service-row{border-bottom:1px solid #ccc;display:grid;grid-template-columns:40px 1fr 1.8fr;align-items:center;gap:20px;padding:27px 0}.service-row>span{font-size:13px;color:var(--red);font-weight:700}.service-row>h3{font-size:19px}.service-row>p{font-size:14px;line-height:1.9;color:#565656}.team-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;margin-top:70px;align-items:center}.team-description>.eyebrow{color:var(--red)}.team-description>h3{font-size:30px;margin:14px 0 27px}.role-row{display:grid;grid-template-columns:108px 1fr;padding:13px 0;border-top:1px solid #ccc;font-size:13px;gap:12px}.role-row>span{font-weight:600}.role-row>p{color:#555}.team-note{font-size:13px;color:#555;line-height:1.95;margin-top:15px}.business-intro{font-size:15px;color:var(--muted);margin-top:22px}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:47px}.business-grid>article{padding-top:20px;border-top:3px solid var(--ink);display:flex;flex-direction:column}.business-number{font-size:12px;color:var(--red);font-weight:600}.business-grid h3{font-size:22px;line-height:1.7;margin-top:19px;margin-bottom:18px}.business-grid p{font-size:14px;line-height:2;color:var(--muted);padding-bottom:24px}.business-measure{font-size:12px;margin-top:auto;border-top:1px solid var(--line);padding-top:15px}.faq-section{background:var(--gray)}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.faq-grid>div:first-child>.eyebrow{color:var(--red)}.faq-grid h2{font-size:36px;margin-top:20px}.faq-grid>div:first-child>p:last-child{font-size:14px;color:var(--muted);margin-top:22px;line-height:2}.faq-list{border-top:1px solid #ccc}.faq-list>details{border-bottom:1px solid #ccc}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 0;font-size:15px;font-weight:600;cursor:pointer;line-height:1.85}.faq-list summary::-webkit-details-marker{display:none}.faq-icon{position:relative;flex:0 0 16px;height:16px}.faq-icon:before,.faq-icon:after{content:'';position:absolute;top:7px;left:0;width:16px;height:1px;background:var(--ink)}.faq-icon:after{transform:rotate(90deg);transition:transform .2s}details[open] .faq-icon:after{transform:rotate(0)}.faq-list details>p{font-size:14px;color:#555;padding-bottom:24px;line-height:2}.contact-section{background:var(--ink);color:white}.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px}.contact-copy>.eyebrow{color:#ff766d}.contact-copy>h2{font-size:clamp(2rem,3.4vw,3rem);margin:25px 0 30px}.contact-copy>p:not(.eyebrow){font-size:14px;line-height:2.1;color:#ccc;margin-bottom:22px}.contact-person{display:flex;align-items:center;gap:20px;margin-top:35px;margin-bottom:24px}.contact-person>img{width:65px;height:78px;object-fit:cover;object-position:center 35%}.contact-person span{font-size:12px;color:#bbb}.contact-person p{font-size:19px;letter-spacing:.05em}.email-link{font-size:clamp(.88rem,1.25vw,1rem);font-weight:500;display:flex;align-items:center;gap:15px;width:fit-content;overflow-wrap:anywhere}.email-link>span{font-size:20px}.copy-email{display:block;background:none;border:0;border-bottom:1px solid #666;color:#aaa;font-size:12px;padding:4px 0;margin-top:8px}.copy-email:hover{color:white}.copy-status{font-size:12px;color:#ddd;display:block;min-height:24px}.contact-form{background:#252525;padding:33px 34px 25px;border-top:3px solid var(--red)}.contact-form h3{font-size:21px}.form-explanation{font-size:13px;color:#bbb;line-height:1.9;margin-top:12px;margin-bottom:24px}.contact-form label{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:19px 0 8px;font-weight:500}.contact-form label>span{color:#ff968e;font-size:11px}.contact-form label>.optional{color:#aaa}.contact-form input,.contact-form textarea{display:block;width:100%;border:1px solid #555;border-radius:0;background:#303030;color:white;padding:12px 14px;font-size:16px;line-height:1.8}.contact-form input::placeholder,.contact-form textarea::placeholder{font-size:14px;color:#aaa}.contact-form textarea{resize:vertical;min-height:125px}.contact-form .button{width:100%;margin-top:23px}.form-note{font-size:11px;color:#aaa;line-height:1.8;margin-top:15px}.form-status{font-size:12px;color:#eee;line-height:1.8;margin-top:13px}.form-status:empty{margin:0}.footer{display:flex;align-items:center;gap:40px;padding:37px 6.2%;background:white}.footer>.wordmark{font-size:49px}.company-details{font-size:12px;color:var(--muted);line-height:1.8}.company-details>p{color:var(--ink);font-size:13px;font-weight:600}.company-details>a{margin-left:20px}.copyright{margin-left:auto;font-size:12px;color:var(--muted)}
@media(min-width:1600px){.hero{padding-left:98px}.hero-copy{padding-top:90px}.hero h1{font-size:76px}.hero-portrait>img{max-height:745px}.hero-bottom{padding-right:98px}.section{padding-left:60px;padding-right:60px}}
@media(max-width:1100px){.hero-copy{padding-top:50px}.hero h1{font-size:4.7vw}.hero-description{font-size:14px}.hero-actions{gap:20px}.hero-actions .button{font-size:14px;padding:13px 20px;gap:25px}.hero-actions .text-link{font-size:13px}.hero-platforms{font-size:13px}.hero-portrait>img{min-height:575px}.section{padding-top:80px;padding-bottom:80px}.about-grid{gap:35px}.about-text>p:not(.name-en){font-size:14px}.approach-grid{gap:40px}.service-heading{gap:25px}.service-heading>p{font-size:13px}.service-row{grid-template-columns:25px 1fr 1.4fr;gap:18px}.service-row h3{font-size:17px}.team-grid{gap:30px}.team-description>h3{font-size:25px}.business-grid{gap:25px}.business-grid h3{font-size:19px}.faq-grid{gap:40px}.contact-grid{gap:35px}.contact-form{padding:28px 25px}.contact-copy>h2{font-size:33px}.nav{gap:24px}}
@media(max-width:760px){html{scroll-padding-top:20px}.header{height:75px;padding:0 6%}.header .wordmark{font-size:41px}.nav{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:14px 4px;width:35px}.menu-toggle>span{height:2px;background:var(--ink);width:26px;transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;position:absolute;top:74px;left:0;right:0;background:white;border-bottom:1px solid #ccc;flex-direction:column;padding:20px 6% 30px;gap:18px;font-size:16px}.hero{padding:0 6%;grid-template-columns:1fr}.hero-copy{padding:38px 0 30px}.hero .eyebrow{font-size:11px}.hero-service{font-size:13px;margin-top:22px}.hero h1{font-size:clamp(2.05rem,7.9vw,3.8rem);margin:14px 0 20px;line-height:1.5;letter-spacing:-.045em}.hero-description{font-size:14px;line-height:2}.desktop-break{display:none}.hero-actions{gap:24px;margin-top:27px;margin-bottom:24px;flex-wrap:wrap}.hero-actions .button{min-height:54px;padding:13px 19px;gap:30px}.hero-platforms{font-size:13px}.hero-portrait{height:430px;margin-left:8%;margin-right:-6.8%}.hero-portrait>img{min-height:0;max-height:none;object-position:center 42%;height:100%;width:100%}.portrait-name{bottom:27px;padding:12px 22px}.portrait-name>p{font-size:23px}.portrait-name>span{font-size:10px}.portrait-side{font-size:10px;right:12px;top:20px}.hero-bottom{padding:20px 0;gap:12px;flex-direction:column;font-size:11px}.hero-bottom>a{display:none}.section{padding:65px 6%}.section-top{padding-bottom:17px;margin-bottom:30px}.eyebrow,.section-caption{font-size:11px}h2{font-size:clamp(1.8rem,6.5vw,2.6rem);letter-spacing:-.035em;line-height:1.6}.about-heading,.service-heading{display:block;margin-bottom:30px}.section-intro{font-size:14px;line-height:1.95;margin-top:20px}.about-grid{grid-template-columns:1fr;gap:26px}.about-grid>.work-image{margin-top:0}.about-grid>.work-image>img{aspect-ratio:3/2;object-position:center}.about-text>h3{font-size:25px;margin-bottom:19px}.about-text>p:not(.name-en){font-size:14px;line-height:2}.personal-note{margin-top:24px}.personal-note>p{font-size:14px}.experience-strip{margin-top:32px}.experience-strip>div{padding:19px 10px}.experience-strip span{font-size:9px;letter-spacing:.03em}.experience-strip p{font-size:13px;margin-top:9px;line-height:1.8;letter-spacing:-.025em}.small-note{font-size:11px}.approach-grid{grid-template-columns:1fr;gap:30px}.approach-intro>p{font-size:14px;margin-top:20px}.process-list>li:first-child{padding-top:25px;border-top:1px solid var(--line)}.process-list>li{gap:20px;padding:25px 0}.process-list h3{font-size:18px;margin-bottom:10px}.process-list p{font-size:13px}.output-label{font-size:11px}.service-heading>p{font-size:14px;margin-top:20px}.service-row{grid-template-columns:25px 1fr;gap:8px 15px;padding:22px 0}.service-row>span{font-size:12px}.service-row>h3{font-size:18px}.service-row>p{grid-column:2;font-size:13px}.team-grid{grid-template-columns:1fr;gap:27px;margin-top:38px}.team-description>h3{font-size:27px;margin-top:10px}.role-row{font-size:13px}.team-note{font-size:13px}.business-intro{font-size:14px;margin-top:17px}.business-grid{grid-template-columns:1fr;gap:29px;margin-top:30px}.business-grid>article{padding-top:18px;border-top-width:2px}.business-grid h3{font-size:23px;margin-top:14px;margin-bottom:15px}.business-grid h3>br{display:none}.business-grid p{font-size:14px;padding-bottom:18px}.business-measure{font-size:11px}.faq-grid{grid-template-columns:1fr;gap:30px}.faq-grid h2{font-size:29px;margin-top:15px}.faq-grid>div:first-child>p:last-child{margin-top:15px;font-size:14px}.faq-list summary{font-size:14px;padding:21px 0;gap:20px}.faq-list details>p{font-size:13px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-copy>h2{font-size:clamp(1.85rem,6.5vw,2.7rem);margin-top:20px;margin-bottom:25px}.contact-copy>p:not(.eyebrow){font-size:14px;margin-bottom:20px}.contact-person{margin-top:25px}.email-link{font-size:14px}.contact-form{padding:27px 24px 25px}.contact-form h3{font-size:21px}.contact-form label{font-size:14px}.form-explanation{font-size:13px}.form-note{font-size:11px}.footer{padding:32px 6%;gap:20px;flex-wrap:wrap}.footer>.wordmark{font-size:41px}.company-details{font-size:11px}.company-details>p{font-size:12px}.company-details>a{display:block;margin-left:0}.copyright{font-size:11px;align-self:flex-end}.work-image>figcaption{font-size:10px}}
@media(max-width:375px){.hero h1{font-size:7.7vw}.hero-actions{gap:15px}.hero-portrait{height:350px}.experience-strip p{font-size:12px}.contact-form{padding-left:20px;padding-right:20px}.email-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Profile details and consolidated support section. */
.about-text>p.profile-credentials{font-size:13px;line-height:1.8;color:var(--muted);margin-top:20px}
.interview-link{display:block;margin-top:19px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;line-height:1.8}
.interview-meta{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.interview-link:hover>span:last-child{color:var(--red)}
.interview-link>span:last-child>span{margin-left:8px}
.service-section{background:var(--ink);color:#fff}
.service-section .section-top,.service-section .service-list,.service-section .service-row,.service-section .role-row{border-color:#484848}
.service-section .section-top .eyebrow,.service-section .service-row>span,.service-section .team-description>.eyebrow{color:#ff766d}
.service-section .service-heading>p,.service-section .service-row>p,.service-section .role-row>p,.service-section .team-note{color:#ccc}
.service-section .work-image>figcaption{color:#aaa}
.approach-intro>p{max-width:380px}
.hero-actions .button{gap:25px}
@media(max-width:760px){.hero-actions{gap:18px}.hero-actions .button{font-size:14px;gap:20px}.about-text>p.profile-credentials{font-size:12px}.interview-link{font-size:14px}.interview-meta{font-size:12px}.service-heading>p{font-size:14px}.service-row>p{font-size:14px}}

.contact-form .button:disabled{opacity:.55;cursor:not-allowed}
.form-status.is-error{color:#ff968e}
