:root{--serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans-serif;--latin:'DM Sans',sans-serif}
body{font-family:var(--sans);font-weight:400;letter-spacing:.015em;color:#1b2521;background:#fcfdfb}
.header{height:86px;padding:0 clamp(24px,4vw,72px);background:rgba(252,253,251,.94);border-bottom:1px solid #dde2dd;backdrop-filter:blur(12px);position:sticky;top:0}
.brand-wordmark{width:144px!important;height:54px!important}.desktop-nav{gap:42px;font-family:var(--latin);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.desktop-nav a{position:relative;padding:10px 0}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:#b98b35;transition:.25s}.desktop-nav a:hover:after{right:0}.header-contact{border-radius:0;background:transparent;color:#143d32;border:1px solid #143d32;padding:11px 17px;font-family:var(--latin);font-size:12px;letter-spacing:.08em}.header-contact span{color:#b98b35;margin-left:16px}
.hero{min-height:calc(100vh - 86px);padding:clamp(54px,6vw,90px) clamp(24px,4vw,72px) 62px;grid-template-columns:minmax(410px,.83fr) minmax(520px,1.17fr);gap:clamp(24px,3vw,54px);background:#fcfdfb;align-items:center}.hero-copy{padding-left:clamp(0px,2vw,26px);position:relative;z-index:2}.eyebrow{font-family:var(--latin);font-size:11px;letter-spacing:.19em;font-weight:500;color:#a97828}.hero h1{font-family:var(--serif);font-size:clamp(50px,5.65vw,84px);font-weight:400;line-height:1.22;letter-spacing:-.055em;margin:27px 0 30px;color:#1b2521}.hero h1 em{color:#174b3d;font-weight:400}.hero-lead{font-size:15px;line-height:2.05;max-width:540px;color:#58635e}.hero-actions{gap:31px;margin-top:38px}.btn{border-radius:0;font-family:var(--latin);font-size:12px;letter-spacing:.08em;padding:15px 19px;gap:38px}.btn.primary{background:#174b3d;color:#fff}.btn.primary span{color:#d3af65}.text-link{font-size:13px;color:#36443e;border-color:#b98b35}
.hero-image{height:min(72vh,720px);min-height:520px;border-radius:0;background:#fff;position:relative;overflow:hidden}.hero-image:after{content:"MULTIPLE EXPERTISE / ONE TEAM";position:absolute;right:18px;bottom:14px;font-family:var(--latin);font-size:9px;letter-spacing:.15em;color:#6d756f}.hero-image img{object-fit:cover;object-position:center center;transform:scale(1.015)}.scroll{left:clamp(24px,4vw,72px);color:#6c756f}.scroll span{background:#b98b35}
.ticker{background:#174b3d;color:#fff;padding:12px 0;font-family:var(--latin);font-size:11px;font-weight:400;letter-spacing:.16em}.ticker b{color:#d3af65}
.section{padding-top:clamp(88px,10vw,150px);padding-bottom:clamp(88px,10vw,150px)}.section-label{margin-bottom:60px}.section-label p,.section-label span{font-family:var(--latin);font-weight:500}.section-label span{border-color:#c9d0ca;color:#a97828}
.jp-kicker{font-family:var(--sans);font-size:12px;font-weight:500;color:#a97828}.display,.statement h2,.contact h2,.focus-copy h2,.ecosystem-copy h2{font-family:var(--serif);font-weight:400!important;letter-spacing:-.045em!important}.display em,.statement h2 em,.contact h2 em{font-weight:400}.concept .display,.services .display,.company .display{font-size:clamp(42px,5.5vw,78px);line-height:1.28}.concept-grid .lead{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2vw,29px);line-height:1.8}.body-copy{color:#56605b}
.business-ecosystem{background:#f6f8f4}.ecosystem-copy h2{font-size:clamp(30px,3.7vw,50px)}.business-head .display{font-size:clamp(42px,5.5vw,78px);line-height:1.28}.business-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,1.9vw,30px)}.business-card div>p:last-child{font-size:15px;line-height:1.9}
.focus-copy h2{font-size:clamp(40px,4.9vw,68px);line-height:1.28}.focus-copy>p:last-child{font-size:16px;line-height:2}.service-tile h3,.principle h3{font-family:var(--serif);font-weight:400}.service-tile{background:#fff!important}.strength{background:#f1f4ef}.statement h2{font-size:clamp(44px,5.8vw,78px);line-height:1.24}.company-wrap .display{line-height:1.18}.contact h2{font-size:clamp(44px,6.2vw,82px);line-height:1.18}.contact-button{border-radius:0}
@media(max-width:1080px){.hero{grid-template-columns:.9fr 1.1fr}.hero h1{font-size:clamp(46px,5.6vw,70px)}.hero-image{min-height:480px}}
@media(max-width:900px){.header{height:76px}.hero{grid-template-columns:1fr;padding-top:48px}.hero-copy{padding-left:0}.hero-image{height:auto;min-height:0;aspect-ratio:16/9}.hero h1{font-size:clamp(48px,11vw,72px)}}
@media(max-width:560px){.header{height:70px}.brand-wordmark{width:126px!important;height:48px!important}.hero{padding-top:38px;gap:34px}.hero h1{font-size:clamp(43px,12vw,58px);line-height:1.25}.hero-lead{font-size:14px;line-height:1.9}.hero-image{aspect-ratio:4/3}.hero-image img{object-position:59% center}.hero-actions{margin-top:30px}.ticker{font-size:10px}}

/* Centered editorial hero */
.hero{display:flex;flex-direction:column;align-items:center;min-height:auto;padding:clamp(62px,7vw,104px) clamp(24px,4vw,72px) 0;gap:clamp(48px,6vw,82px);overflow:visible}
.hero-copy{width:min(920px,100%);padding-left:0;text-align:center;display:flex;flex-direction:column;align-items:center;translate:0 var(--hero-copy-y,0px)}
.hero h1{font-size:clamp(54px,6.4vw,92px);line-height:1.2;margin:24px 0 26px}
.hero-lead{max-width:710px;font-size:16px;line-height:2}.hero-actions{justify-content:center}
.hero-image{width:100%;height:auto;min-height:0;aspect-ratio:2.18/1;overflow:hidden;background:#fff}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center center;transform:none}
.hero-image:after{right:20px;bottom:13px}.scroll{display:none}

/* FV motion: particles burst outward, then resolve into the main copy. */
.hero-motion{position:absolute;z-index:1;inset:0 0 auto;height:min(730px,72vw);overflow:hidden;pointer-events:none;translate:0 var(--hero-motion-y,0px)}
.hero-copy{animation:hero-copy-resolve 4.9s cubic-bezier(.22,.7,.2,1) both}
.motion-orb{position:absolute;border-radius:50%;opacity:0;filter:blur(1px)}
.mo1{width:46px;height:46px;background:#c69845;left:23%;top:28%;animation:hero-orb-a 4.9s both}
.mo2{width:70px;height:70px;background:#174b3d;right:20%;top:31%;animation:hero-orb-b 4.9s .08s both}
.mo3{width:34px;height:34px;background:#174b3d;left:34%;top:59%;animation:hero-orb-c 4.9s .16s both}
.mo4{width:56px;height:56px;background:#dfe9e4;right:29%;top:62%;animation:hero-orb-d 4.9s .24s both}
.motion-wave{position:absolute;left:50%;top:47%;width:82px;height:82px;border:18px solid #c69845;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.1);animation:hero-wave 4.9s both}
.motion-line{position:absolute;left:11%;right:11%;top:47%;height:2px;background:#c69845;opacity:0;transform:scaleX(0);animation:hero-line 4.9s both}
.motion-sparks{position:absolute;left:50%;top:47%;width:1px;height:1px}
.motion-sparks i{position:absolute;width:10px;height:10px;border-radius:50%;background:#174b3d;opacity:0;--sx:0px;--sy:0px;animation:hero-spark 4.9s calc(var(--i)*.025s) both}
.motion-sparks i:nth-child(2n){width:15px;height:15px;background:#c69845}.motion-sparks i:nth-child(3n){width:24px;height:6px;border-radius:0}
.motion-sparks i:nth-child(1){--sx:420px;--sy:-230px;--i:1}.motion-sparks i:nth-child(2){--sx:340px;--sy:220px;--i:2}.motion-sparks i:nth-child(3){--sx:125px;--sy:-285px;--i:3}.motion-sparks i:nth-child(4){--sx:-165px;--sy:-260px;--i:4}.motion-sparks i:nth-child(5){--sx:-390px;--sy:-155px;--i:5}.motion-sparks i:nth-child(6){--sx:-430px;--sy:135px;--i:6}.motion-sparks i:nth-child(7){--sx:-220px;--sy:250px;--i:7}.motion-sparks i:nth-child(8){--sx:58px;--sy:285px;--i:8}.motion-sparks i:nth-child(9){--sx:465px;--sy:55px;--i:9}.motion-sparks i:nth-child(10){--sx:265px;--sy:-175px;--i:10}.motion-sparks i:nth-child(11){--sx:-305px;--sy:200px;--i:11}.motion-sparks i:nth-child(12){--sx:-45px;--sy:-300px;--i:12}
@keyframes hero-wave{0%,8%{opacity:0;transform:translate(-50%,-50%) scale(.1)}21%{opacity:1;transform:translate(-50%,-50%) scale(.65)}38%{opacity:.78;transform:translate(-50%,-50%) scale(9)}49%,100%{opacity:0;transform:translate(-50%,-50%) scale(14)}}
@keyframes hero-spark{0%,13%{opacity:0;transform:translate(0,0) scale(.1) rotate(0)}23%{opacity:1;transform:translate(calc(var(--sx)*.22),calc(var(--sy)*.22)) scale(2) rotate(90deg)}42%{opacity:.95;transform:translate(var(--sx),var(--sy)) scale(1) rotate(260deg)}58%{opacity:.5;transform:translate(calc(var(--sx)*.58),calc(var(--sy)*.54)) scale(.65) rotate(430deg)}72%,100%{opacity:0;transform:translate(0,0) scale(.05) rotate(620deg)}}
@keyframes hero-orb-a{0%{opacity:0;transform:scale(.1)}18%{opacity:1;transform:scale(5)}37%{transform:translate(105px,88px) scale(2.4)}57%{opacity:.35;transform:translate(180px,105px) scale(.55)}70%,100%{opacity:0;transform:translate(240px,120px) scale(.1)}}
@keyframes hero-orb-b{0%{opacity:0;transform:scale(.1)}20%{opacity:.94;transform:scale(4.6)}39%{transform:translate(-110px,72px) scale(2.1)}59%{opacity:.3;transform:translate(-195px,100px) scale(.5)}72%,100%{opacity:0;transform:translate(-250px,115px) scale(.1)}}
@keyframes hero-orb-c{0%{opacity:0;transform:scale(.1)}21%{opacity:.85;transform:scale(5.4)}41%{transform:translate(85px,-92px) scale(2)}61%{opacity:.3;transform:translate(160px,-110px) scale(.5)}73%,100%{opacity:0;transform:translate(225px,-125px) scale(.1)}}
@keyframes hero-orb-d{0%{opacity:0;transform:scale(.1)}23%{opacity:1;transform:scale(4.8)}43%{transform:translate(-90px,-98px) scale(2.2)}63%{opacity:.28;transform:translate(-155px,-118px) scale(.5)}75%,100%{opacity:0;transform:translate(-220px,-130px) scale(.1)}}
@keyframes hero-line{0%,37%{opacity:0;transform:scaleX(0)}49%{opacity:1;transform:scaleX(1)}62%{opacity:.55;transform:scaleX(.36)}73%,100%{opacity:0;transform:scaleX(0)}}
@keyframes hero-copy-resolve{0%,39%{opacity:0;filter:blur(28px);transform:scale(1.28);letter-spacing:.12em}52%{opacity:.35;filter:blur(12px);transform:scale(.9)}65%{opacity:1;filter:blur(2px);transform:scale(1.025)}75%,100%{opacity:1;filter:none;transform:none;letter-spacing:normal}}
@media(max-width:700px){.hero-motion{height:650px}.motion-sparks{transform:scale(.58)}.motion-wave{border-width:12px}.hero-copy{animation-duration:4.5s}}
@media(prefers-reduced-motion:reduce){.hero-copy{animation:none}.hero-motion{display:none}}
@media(max-width:900px){.hero{padding-top:52px;gap:46px}.hero h1{font-size:clamp(50px,10vw,76px)}.hero-image{aspect-ratio:1.75/1}}
@media(max-width:560px){.hero{padding-top:40px;gap:34px}.hero-copy{text-align:left;align-items:flex-start}.hero h1{font-size:clamp(42px,12vw,58px)}.hero-lead{font-size:14px}.hero-actions{justify-content:flex-start;align-items:flex-start}.hero-image{width:calc(100% + 48px);aspect-ratio:1.08/1}.hero-image img{object-position:62% center}.hero-image:after{display:none}}

/* Continuous editorial image rail */
.hero-gallery{width:100vw;margin-left:calc(50% - 50vw);margin-bottom:-138px;overflow:hidden;padding:8px 0 180px;mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);translate:0 var(--hero-gallery-y,0px)}
.hero-gallery-track{display:flex;width:max-content;animation:hero-gallery-scroll 42s linear infinite;will-change:transform}
.hero-gallery-set{display:flex;gap:clamp(16px,2vw,30px);padding-right:clamp(16px,2vw,30px)}
.hero-slide{position:relative;width:clamp(250px,21vw,360px);height:clamp(340px,31vw,520px);margin:0;overflow:hidden;background:#edf1ed;flex:none;translate:0 var(--slide-parallax-y,0px);scale:var(--slide-parallax-scale,1);box-shadow:0 var(--slide-shadow-y,0px) var(--slide-shadow-blur,0px) rgba(20,61,50,var(--slide-shadow-alpha,0));transition:box-shadow .12s linear}
.hero-slide:nth-child(5n+1){border-radius:0 0 112px 0}
.hero-slide:nth-child(5n+2){clip-path:polygon(0 0,100% 0,100% 100%,17% 100%,0 86%)}
.hero-slide:nth-child(5n+3){border-radius:0 0 112px 112px}
.hero-slide:nth-child(5n+4){clip-path:polygon(0 0,100% 0,100% 86%,83% 100%,0 100%)}
.hero-slide:nth-child(5n+5){border-radius:0 0 0 112px}
.hero-slide img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.hero-slide:hover img{transform:scale(1.025)}
.hero-slide figcaption{position:absolute;left:18px;top:18px;display:flex;align-items:center;gap:9px;margin:0;padding:8px 12px;background:rgba(252,253,251,.9);color:#174b3d;font:500 10px/1 'DM Sans',sans-serif;letter-spacing:.12em;backdrop-filter:blur(8px)}
.hero-slide figcaption span{color:#a97828}
@keyframes hero-gallery-scroll{to{transform:translateX(-50%)}}
@media(max-width:900px){.hero-gallery{padding-bottom:82px;margin-bottom:-48px}.hero-slide{width:clamp(235px,39vw,330px);height:clamp(320px,52vw,455px)}.hero-gallery-track{animation-duration:36s}}
@media(max-width:560px){.hero-gallery{width:100vw;margin-left:calc(50% - 50vw);margin-bottom:-71px;padding-top:0;padding-bottom:95px;mask-image:none}.hero-gallery-set{gap:12px;padding-right:12px}.hero-slide{width:72vw;height:92vw}.hero-slide:nth-child(5n+1),.hero-slide:nth-child(5n+3){border-bottom-right-radius:72px}.hero-slide:nth-child(5n+3){border-bottom-left-radius:72px}.hero-slide:nth-child(5n+5){border-bottom-left-radius:72px}.hero-gallery-track{animation-duration:32s}}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-motion,.hero-gallery,.hero-slide{translate:none;scale:1}.hero-gallery{overflow-x:auto;mask-image:none}.hero-gallery-track{animation:none}.hero-slide:hover img{transform:none}}

/* Four-business value cycle */
.ecosystem-flow{height:560px;display:grid;grid-template-columns:1fr 54px 1fr;grid-template-rows:1fr 54px 1fr;gap:0;padding:28px;background-color:#fdfefc;background-image:linear-gradient(rgba(20,61,50,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(20,61,50,.035) 1px,transparent 1px);background-size:32px 32px}.ecosystem-flow:before{display:none}.flow-card{position:relative!important;inset:auto!important;min-width:0!important;padding:26px 28px!important;background:rgba(255,255,255,.96)!important;border:1px solid #d8ded9!important;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.flow-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#174b3d}.flow-card span{font:500 10px/1 'DM Sans';letter-spacing:.14em;color:#a97828}.flow-card strong{font-family:'Noto Serif JP',serif;font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1.1;margin:18px 0 10px;color:#174b3d}.flow-card b{font-size:16px;font-weight:500}.flow-card p{margin:8px 0 0;color:#68716d;font-size:13px}.flow-card.f4{border-color:#c69845!important}.flow-card.f4:before{background:#c69845}.f1{grid-column:1;grid-row:1}.f2{grid-column:3;grid-row:1}.f3{grid-column:3;grid-row:3}.f4{grid-column:1;grid-row:3}.flow-arrow{position:static!important;transform:none!important;align-self:center;justify-self:center;font-style:normal;color:#b98b35;font-size:26px}.a1{grid-column:2;grid-row:1}.a2{grid-column:3;grid-row:2}.a3{grid-column:2;grid-row:3}.a4{grid-column:1;grid-row:2}.flow-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:210px;height:150px;background:#143d32;color:#fff;border:8px solid #fdfefc;box-shadow:0 0 0 1px #c69845;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.flow-core img{width:105px;filter:invert(1);margin-bottom:8px}.flow-core small{font:500 9px/1 'DM Sans';letter-spacing:.12em;color:#d7e1dd}.flow-core b{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:400;margin-top:10px}
@media(max-width:760px){.ecosystem-flow{height:auto;display:flex;flex-direction:column;padding:18px;gap:0}.flow-card{min-height:155px!important;padding:22px 22px 22px 28px!important}.flow-card strong{font-size:34px}.flow-arrow{padding:4px;font-size:0!important;transform:none!important}.flow-arrow:before{content:"↓";font-size:26px}.flow-core{position:relative;left:auto;top:auto;transform:none;width:100%;height:130px;order:10;border:0;box-shadow:none;margin-top:18px}.f1{order:1}.a1{order:2}.f2{order:3}.a2{order:4}.f3{order:5}.a3{order:6}.f4{order:7}.a4{display:none}}

/* Reserve a clear centre lane so the Diary panel never covers card copy. */
.ecosystem-flow{height:620px;grid-template-columns:1fr 170px 1fr;grid-template-rows:1fr 140px 1fr}.flow-core{width:160px;height:110px;border-width:6px}.flow-core img{width:82px;margin-bottom:5px}.flow-core small{font-size:8px}.flow-core b{font-size:12px;margin-top:7px}
@media(max-width:760px){.ecosystem-flow{height:auto}.flow-core{width:100%;height:130px;border:0}.flow-core img{width:105px;margin-bottom:8px}.flow-core small{font-size:9px}.flow-core b{font-size:15px;margin-top:10px}}
.focus-illustration{grid-column:2/-1;margin:38px 0 0;position:relative;background:#fff;border:1px solid var(--line);overflow:hidden}
.focus-illustration img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.focus-illustration figcaption{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 22px;border-top:1px solid var(--line);background:#fff}
.focus-illustration figcaption span{font:500 10px/1 'DM Sans',sans-serif;letter-spacing:.14em;color:var(--gold)}
.focus-illustration figcaption b{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:400;color:var(--ink)}
@media(max-width:900px){.focus-illustration{grid-column:1/-1}}
@media(max-width:700px){.focus-illustration{margin-top:28px}.focus-illustration img{aspect-ratio:4/3}.focus-illustration figcaption{align-items:flex-start;flex-direction:column;gap:9px;padding:15px}.focus-illustration figcaption b{font-size:14px;line-height:1.7}}
