#root{min-height:100vh}:root{--bg:#f7f7f4;--surface:#fff;--text:#111;--muted:#666;--line:#d8d8d2;--contact-bg:#111;--contact-text:#fff}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Noto Sans JP,Helvetica Neue,Arial,system-ui,sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.site{min-height:100vh}.container{width:min(1160px,100% - 56px);margin-inline:auto}.section{padding:108px 0}.section-divider{border-top:1px solid var(--line)}.header{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:30;background:#f7f7f4ed;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:20px;min-height:76px;display:flex}.header-title{letter-spacing:.2em;font-size:.86rem;font-weight:600}.header-nav{align-items:center;gap:18px;display:flex}.nav-link{letter-spacing:.14em;color:#2c2c2c;font-size:.8rem}.button{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:48px;padding:0 22px;font-size:.93rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.button-primary{color:#fff;background:#111}.button-outline{color:#161616;background:0 0;border-color:#1e1e1e}.button-light{color:#111;background:#fff}.button-nav{color:#fff;letter-spacing:.12em;background:#111;border-color:#111;border-radius:4px;min-height:36px;padding-inline:14px;font-size:.74rem}.hero{background-image:url(/images/hero-office.png);background-position:50%;background-repeat:no-repeat;background-size:cover;align-items:center;min-height:720px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";z-index:0;background:0 0;position:absolute;inset:0}.hero-inner{z-index:1;width:100%;max-width:1180px;margin:0 auto;padding:120px 32px;position:relative}.hero-content{max-width:720px}.eyebrow{letter-spacing:.2em;color:#f5f5f5;text-shadow:0 1px 6px #00000073;margin-bottom:18px;font-size:.8rem}h1{letter-spacing:-.02em;margin-bottom:26px;font-size:clamp(2.2rem,5vw,4.4rem);font-weight:700;line-height:1.18}.lead{color:#fff;text-shadow:0 2px 14px #000000a6,0 0 2px #0000008c;max-width:760px;margin-bottom:28px;font-size:1.03rem;font-weight:500}.name{color:#fff;text-shadow:0 2px 14px #000000b3,0 0 2px #0009;margin-bottom:4px;font-size:1.28rem;font-weight:600;line-height:1.45}.role{color:#fff;text-shadow:0 2px 12px #000000ad,0 0 2px #00000094;margin-bottom:34px;font-weight:500}.hero-title{white-space:nowrap;color:#fff;text-shadow:0 3px 18px #000000b8,0 0 2px #0000009e}.hero-panel{background:0 0;border:none;border-radius:0;margin-top:10px;padding:0;display:inline-block}h2{letter-spacing:.12em;margin-bottom:30px;font-size:clamp(1.5rem,2.1vw,2rem);font-weight:700}h3{margin-bottom:12px;font-size:1.1rem;line-height:1.45}.section-head-grid{grid-template-columns:220px 1fr;align-items:start;gap:22px;margin-bottom:24px;display:grid}.section-intro{color:var(--muted);padding-top:10px}.profile-grid{grid-template-columns:340px minmax(0,1fr);align-items:flex-start;gap:56px;display:grid}.profile-photo-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden}.profile-photo{object-fit:cover;object-position:center top;width:100%;height:360px;display:block}.profile-body{min-height:auto;display:block}.profile-text{color:#2f2f2f;max-width:860px}.profile-text p{letter-spacing:.02em;margin:0 0 20px;line-height:1.75}.profile-text p:last-child{margin-bottom:0}.profile-signature{border-top:1px solid #d8d8d2;margin-top:32px;padding-top:22px}.profile-section{padding-bottom:80px}.profile-signature-name{color:#1f1f1f;margin:0 0 8px;font-size:24px;font-weight:700;line-height:1.4}.profile-signature-role{color:#222;margin:0;font-size:15px;font-weight:600;line-height:1.6}.cards{gap:16px;display:grid}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);background:var(--surface);padding:24px 22px}.card-number{letter-spacing:.14em;color:var(--muted);margin-bottom:12px;font-size:.78rem}.card p{color:var(--muted)}.cards .card{transition:border-color .2s,background-color .2s}.cards .card:hover{background:#fcfcfa;border-color:#bcbcb6}.project-card{border:1px solid var(--line);background:var(--surface);gap:14px;padding:30px;display:grid}.project-label{letter-spacing:.16em;color:var(--muted);font-size:.76rem}.project-card h3{font-size:clamp(1.4rem,2.4vw,2rem)}.project-card p{color:var(--muted)}.tag-list{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.tag{border:1px solid var(--line);color:#444;background:#fdfdfc;border-radius:999px;padding:2px 10px;font-size:.76rem}.strength-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.strength-item{border:1px solid var(--line);background:var(--surface);grid-template-columns:74px 1fr;gap:12px;padding:24px 22px;display:grid}.strength-number{color:#c1c1bb;letter-spacing:.06em;font-size:2.35rem;font-weight:700;line-height:1}.strength-item p{color:var(--muted)}.message-section{background:#efefea}.message-copy{color:#303030;gap:16px;max-width:860px;display:grid}.contact-section{background:var(--contact-bg);color:var(--contact-text)}.contact-section h2{color:var(--contact-text)}.contact-inner{gap:20px;display:grid}.contact-lead,.contact-details{color:#d8d8d8}.contact-details{gap:3px;display:grid}@media (width<=980px){.section{padding:80px 0}.section-head-grid,.profile-grid,.three-col,.strength-list{grid-template-columns:1fr}.hero{background-position:100%;min-height:640px}.hero-inner{padding:96px 32px}}@media (width<=680px){.container{width:min(1160px,100% - 32px)}.header-inner{min-height:64px}.header-nav{gap:10px}.nav-link{letter-spacing:.08em;font-size:.68rem}.button-nav{min-height:30px;padding-inline:10px;font-size:.64rem}.hero{min-height:640px}.hero-inner{padding:84px 16px 72px}h1{font-size:clamp(2rem,10vw,2.8rem)}.hero-title{white-space:normal}.hero-content{max-width:100%}.hero-panel{padding:0;display:block}.hero-content .button,.project-card .button,.contact-inner .button{width:100%;min-height:44px}.profile-text p{margin:0 0 18px;line-height:1.8}.profile-signature{margin-top:28px;padding-top:18px}.profile-signature-name{font-size:19px}.profile-photo{height:360px}}
