/* Mobile-only precision layer; desktop styles and interaction code stay intact. */
@media(max-width:767px){
 :root{--gutter:clamp(16px,5vw,24px)}
 body{overflow-wrap:break-word}
 main,section,.section-inner,.profile-wrap,.profile-intro-inner,.portfolio-section-content{min-width:0}
 .section-inner,.profile-wrap{max-width:100%}
 h1,h2,h3{word-break:normal;overflow-wrap:normal;line-break:strict;text-wrap:balance}
 p,li,dd{word-break:normal;line-break:strict;overflow-wrap:break-word}
 .v3-home .v3-section,.v3-home .v3-contact,.profile-intro-compact,.portfolio-section{padding-inline:var(--gutter)}
 .v3-home .v3-section{padding-block:clamp(48px,14vw,64px)}
 .v3-home .v3-section-no,.v3-home .profile-kicker,.v3-home .portfolio-kicker{text-align:center;margin-bottom:clamp(24px,7vw,34px)}
 .v3-home #about>.v3-section-no{width:100%;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{font-size:clamp(1.35rem,6.1vw,1.85rem);line-height:1.6;text-align:center;max-width:100%;margin-inline:auto}
 .mobile-phrase{display:inline-block;max-width:100%;word-break:normal}
 .v3-home #profile-intro-title .mobile-phrase{white-space:normal}
 .v3-home .v3-problem-grid p,.v3-home .profile-intro-body,.portfolio-summary,.profile-experience-copy p,.direction-section p,.company-profile dd,.contact-lead p,.form-row label{font-size:1rem;line-height:1.85}
 .v3-home .profile-intro-body,.v3-home .v3-tools-list,.profile-experience-copy,.portfolio-summary{text-align:left}
 .v3-home .portfolio-intro h2,.v3-home .portfolio-intro-line,.v3-home .portfolio-theme-middle,.v3-home .portfolio-theme-end{white-space:normal}
 .portfolio-project h3,.portfolio-detail-hero h1,.profile-experience h2{font-size:clamp(1.5rem,7vw,2rem);max-width:100%;line-height:1.55}
 .v3-home .v3-company-grid h2{white-space:normal;overflow-wrap:normal;font-size:clamp(1.1rem,4.7vw,1.5rem)}
 /* The approved portrait hero contains baked-in typography: retain its ratio. */
 .v3-home .v3-hero{height:calc(100vw * 1536 / 711);min-height:0;max-height:none}
 .site-header{padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
 .site-header .brand{min-width:0;max-width:calc(100% - 52px)}
 .site-header .brand-type{white-space:normal}
 .menu-toggle{min-width:44px;min-height:44px;flex-shrink:0}
 .site-header .mobile-nav.open{max-height:calc(100dvh - 72px);overflow-y:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 .site-header .mobile-nav a.nav-translate{max-width:100%}
 .finish-footer nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 .finish-footer nav a.nav-translate{min-height:44px;min-width:0;gap:4px}
 .finish-footer .nav-translate .nav-ja{white-space:normal;overflow-wrap:anywhere;line-height:1.5;font-size:clamp(.5625rem,2.4vw,.6875rem)}
 .finish-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .footer-address,.footer-contacts,.footer-info{max-width:100%;overflow-wrap:anywhere}
 .profile-text-link,.text-link,.project-link,.direction-contact-link,.company-contact-link,.footer-access{min-height:44px}
 .form-row input,.form-row textarea,.form-row select{font-size:16px;max-width:100%;min-height:44px}
 button,.form-actions a{min-height:44px}
 img,video,iframe{max-width:100%}
}
