:root{
 --ink:#111111; --sub:#505050; --muted:#747474; --line:#e7e7e7; --paper:#fff; --dark:#111111;
 --container:1200px; --gutter:clamp(24px,5.1vw,72px);
 --space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--space-6:72px;--space-7:112px;
 --font-en:Inter,Arial,Helvetica,sans-serif;
 --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font-jp);-webkit-font-smoothing:antialiased;line-height:1.75}
a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #356dcf;outline-offset:4px}button{font:inherit}
img{max-width:100%;height:auto;display:block}.container{width:min(calc(100% - var(--gutter)*2),var(--container));margin-inline:auto}
.skip{position:absolute;left:15px;top:-80px;background:#111;color:#fff;padding:12px;z-index:999}.skip:focus{top:10px}
.site-header{height:76px;background:rgba(255,255,255,.95);border-bottom:1px solid rgba(220,220,220,.65);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.site-header .container{height:100%;display:flex;align-items:center;justify-content:space-between;gap:40px}
.wordmark{font-family:var(--font-en);font-size:20px;font-weight:800;letter-spacing:-.055em;line-height:1}
.header-nav{display:flex;gap:36px;align-items:center;font-family:var(--font-en);font-size:11px;font-weight:650;letter-spacing:.14em}
.header-nav a{position:relative;padding:10px 0}.header-nav a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:#111;transition:width .2s}.header-nav a:hover::after{width:100%}
.menu-toggle{display:none;background:none;border:0;padding:12px;margin-right:-12px;cursor:pointer}.menu-toggle span{display:block;background:#111;width:25px;height:1.5px;margin:6px 0;transition:transform .2s}
.eyebrow{font:700 10px/1.5 var(--font-en);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.section{border-top:1px solid var(--line);padding-block:var(--space-7)}
h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.048em;line-height:1.31}h1{font:750 clamp(47px,5.55vw,77px)/1.075 var(--font-en);letter-spacing:-.065em}h2{font-size:clamp(26px,2.8vw,40px);font-weight:700}h3{font-size:clamp(20px,2.1vw,27px);font-weight:700}
.bodycopy{font-size:15px;color:var(--sub);line-height:2.04;max-width:650px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:27px;min-height:49px;padding:0 24px;border:1px solid var(--ink);font-size:12px;font-weight:700;transition:transform .18s,background .18s,color .18s}.btn:hover{transform:translateY(-2px)}.btn-dark{background:#111;color:#fff}.btn-light{background:#fff;color:#111}.arrow{font-size:19px;line-height:1;font-family:var(--font-en);font-weight:400}
.hero{min-height:610px;display:grid;grid-template-columns:1.02fr .98fr;overflow:hidden;border-bottom:1px solid var(--line)}
.hero-copy{position:relative;z-index:2;padding:105px 0 106px max(var(--gutter), calc((100vw - var(--container))/2));max-width:690px;align-self:center}
.hero h1{margin:29px 0 21px}.hero .jp{font-size:clamp(18px,1.85vw,24px);font-weight:650;letter-spacing:-.03em;margin-bottom:25px}
.hero .bodycopy{max-width:460px;font-size:13px}.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-image{position:relative;min-height:610px;background-image:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.74) 12%,rgba(255,255,255,.12) 38%,rgba(255,255,255,0) 56%),url('/assets/img/hero-texture.webp');background-size:cover;background-position:center}
.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,255,255,.14),transparent 45%)}
.about-row{display:grid;grid-template-columns:1fr .84fr;gap:8%;align-items:center}.section-head{margin-bottom:30px}.section-head .eyebrow{margin-bottom:22px}.about-row .bodycopy{max-width:610px;margin-top:26px}
.about-illustration{height:310px;position:relative;display:flex;align-items:center;justify-content:center}.about-illustration img{width:100%;height:100%;object-fit:contain;opacity:.85;filter:grayscale(1)}
.section-top{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.section-top .eyebrow{margin-bottom:22px}.link-more{font-size:12px;font-weight:700;border-bottom:1px solid #777;padding-bottom:8px;white-space:nowrap}
.business-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.business-card img{width:100%;aspect-ratio:1.65;object-fit:cover;background:#f2f2f2}.business-card .eyebrow{margin:22px 0 10px;font-size:9px}
.business-card h3{font-size:22px;margin-bottom:13px}.business-card .bodycopy{font-size:13px;line-height:1.9}
.numbers-flex{display:grid;grid-template-columns:.95fr 1fr 1fr;gap:34px;align-items:center}.number-block{border-left:1px solid var(--line);padding-left:44px;min-height:120px}.number-big{font:780 clamp(49px,5.9vw,80px)/1.05 var(--font-en);letter-spacing:-.08em}.number-big .small{font-family:var(--font-jp);font-size:.34em;letter-spacing:-.01em;font-weight:700}.number-block .name{font-family:var(--font-en);font-size:14px;font-weight:700;margin-top:12px}.number-block .jpname{font-size:12px;color:var(--muted);margin-top:2px}
.strength-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:0}.strength-intro{padding-right:44px}.strength-intro p{margin-top:25px}.strength{border-left:1px solid var(--line);padding:6px 26px 0 30px}.strength .count{font:400 26px/1 var(--font-en);color:#999;margin-bottom:22px}.strength h3{font-size:16px;margin-bottom:13px}.strength p{color:var(--sub);font-size:12px;line-height:1.85}
.mission{color:#fff;background:#101010;min-height:350px;position:relative;overflow:hidden;display:flex;align-items:center}
.mission::before{content:"";position:absolute;inset:0 0 0 44%;background:url('/assets/img/mission-garden.webp') center/cover no-repeat;opacity:.8}
.mission::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101010 0%,#101010 44%,rgba(16,16,16,.98) 50%,rgba(16,16,16,.72) 60%,rgba(16,16,16,.35) 75%,rgba(16,16,16,.05) 88%,rgba(16,16,16,0) 100%)}
.mission .container{position:relative;z-index:1;padding-block:80px}.mission .eyebrow{color:#a4a4a4;margin-bottom:30px}.mission h2{font-size:clamp(29px,3.5vw,46px);margin-bottom:9px}.mission .english{font:400 17px/1.6 var(--font-en);color:#bcbcbc;letter-spacing:.01em}.mission .link-more{display:inline-block;margin-top:34px;color:#fff;border-color:#ddd}
.contact-grid{display:flex;justify-content:space-between;gap:32px;align-items:center}.contact-grid h2{margin:19px 0}.contact-grid p{font-size:13px;color:var(--sub)}
.site-footer{background:#111;color:#fff}.site-footer .container{display:flex;align-items:center;justify-content:space-between;min-height:98px;gap:28px}.footlinks{display:flex;gap:28px;font:600 10px/1.5 var(--font-en);letter-spacing:.1em}.copyright{font:400 11px/1.6 var(--font-en);color:#aaa}.prototype-note{font-size:11px;color:#888;padding:16px 0 24px;border-top:1px solid #353535}
@media(max-width:1000px){.hero-copy{padding-left:var(--gutter)}.hero{min-height:560px}.hero-image{min-height:560px}.number-block{padding-left:26px}.strength-grid{grid-template-columns:repeat(3,1fr);row-gap:35px}.strength-intro{grid-column:1/-1;padding-right:0}.strength{padding-right:20px}.strength:first-of-type{border-left:0;padding-left:0}}
@media(max-width:740px){
 :root{--gutter:23px;--space-7:68px;--space-6:48px}
 .site-header{height:64px}.wordmark{font-size:19px}.menu-toggle{display:block}
 .header-nav{position:absolute;top:64px;left:0;right:0;display:none;padding:25px var(--gutter) 36px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 13px 24px rgba(0,0,0,.055);flex-direction:column;align-items:stretch;gap:5px;font-size:14px;letter-spacing:.1em}
 .header-nav.open{display:flex}.header-nav a{padding:14px 0;border-bottom:1px solid #eee}
 .hero{display:flex;flex-direction:column;min-height:0}.hero-copy{width:100%;padding:74px var(--gutter) 58px}.hero h1{font-size:clamp(44px,11.4vw,62px);margin:24px 0 19px}.hero .jp{font-size:18px;margin-bottom:24px}.hero .bodycopy{font-size:13px;line-height:1.85}.hero .actions{gap:9px;margin-top:26px}.btn{padding-inline:18px;min-height:48px;font-size:11px;gap:18px}.hero-image{height:300px;min-height:300px;width:100%;background-image:linear-gradient(0deg,rgba(255,255,255,.04),transparent),url('/assets/img/hero-texture.webp');background-position:center 42%}
 .about-row{display:flex;flex-direction:column;align-items:stretch;gap:24px}.about-illustration{height:215px}.section-head{margin-bottom:22px}.section-head .eyebrow{margin-bottom:17px}h2{font-size:clamp(25px,7vw,33px)}.about-row .bodycopy{margin-top:19px}.bodycopy{font-size:14px;line-height:1.9}
 .section-top{display:block;margin-bottom:29px}.section-top .eyebrow{margin-bottom:16px}.section-top .link-more{display:inline-block;margin-top:20px}
 .business-grid{grid-template-columns:1fr;gap:39px}.business-card img{aspect-ratio:1.65}.business-card .eyebrow{margin:17px 0 8px}.business-card h3{font-size:21px;margin-bottom:9px}.business-card .bodycopy{font-size:13px}
 .numbers-flex{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:19px;row-gap:29px}.numbers-flex>div:first-child{grid-column:1/-1}.number-block{padding-left:17px;min-height:110px}.number-big{font-size:clamp(42px,11vw,67px)}.number-block .name{font-size:12px;margin-top:13px}.number-block .jpname{font-size:11px}
 .strength-grid{grid-template-columns:1fr}.strength-intro{grid-column:auto;margin-bottom:10px}.strength{display:grid;grid-template-columns:44px 1fr;column-gap:10px;border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.strength .count{font-size:24px;margin:0}.strength h3{font-size:17px}.strength p{grid-column:2;margin-top:6px;font-size:12px}
 .mission{min-height:355px}.mission::before{inset:0;opacity:.38}.mission::after{background:linear-gradient(90deg,rgba(9,9,9,.94),rgba(9,9,9,.48))}.mission .container{padding-block:69px}.mission h2{font-size:clamp(29px,7.5vw,40px)}.mission .english{font-size:14px}
 .contact-grid{display:block}.contact-grid .btn{margin-top:25px}.contact-grid h2{margin:19px 0 14px}
 .site-footer .container{align-items:flex-start;flex-direction:column;padding-top:40px;padding-bottom:30px;gap:22px}.footlinks{width:100%;flex-wrap:wrap;gap:17px 27px}.copyright{font-size:10px}.prototype-note{line-height:1.8}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Shared page system, v2.0 */
html{scroll-padding-top:78px}
body{overflow-x:hidden}
.site-header .header-nav a[aria-current="page"]:after{width:100%}
.section-tight{padding-block:72px}
.page-hero{border-bottom:1px solid var(--line);position:relative;overflow:hidden;background:#fff}
.page-hero .container{min-height:430px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:9%}
.page-hero-copy{padding-block:92px;position:relative;z-index:2}
.page-hero .eyebrow{margin-bottom:28px}
.page-hero h1{font-family:var(--font-jp);font-size:clamp(41px,4.2vw,64px);font-weight:700;line-height:1.35;letter-spacing:-.045em}
.page-hero h1.en{font-family:var(--font-en);line-height:1.06;letter-spacing:-.06em}
.page-hero .lead{font-size:14px;line-height:2;color:var(--sub);max-width:630px;margin-top:24px}
.hero-aside-image{align-self:stretch;position:relative;min-height:380px;overflow:hidden}
.hero-aside-image img{height:100%;width:100%;object-fit:cover;object-position:center}
.hero-aside-image.map img{object-fit:contain;filter:grayscale(1);opacity:.68}
.hero-aside-image.map:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff,transparent 30%);z-index:2}
.page-hero.plain .container{display:block;min-height:0}.page-hero.plain .page-hero-copy{max-width:850px;padding:100px 0 95px}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8%;align-items:center}
.page-grid.reverse .page-content{order:2}.page-grid.reverse .page-photo{order:1}
.page-content .eyebrow{margin-bottom:21px}.page-content h2{margin-bottom:23px}.page-content h3{font-size:21px;margin-bottom:17px}
.page-content .bodycopy + .bodycopy{margin-top:18px}
.page-photo img{width:100%;height:380px;object-fit:cover;background:#f5f5f5}
.page-photo.contain img{object-fit:contain}
.detail-list{border-top:1px solid var(--line);margin:25px 0 0;padding:14px 0 0 20px;font-size:13px;line-height:2.1;color:var(--sub)}
.detail-list li{padding-left:2px}
.detail-kicker{font:700 11px/1.5 var(--font-en);letter-spacing:.16em;color:#8a8a8a;margin-bottom:11px}
.section-note{margin-top:22px;color:var(--muted);font-size:11px}
.full-bleed-dark{color:#fff;background:#111;position:relative;padding:96px 0}
.full-bleed-dark .eyebrow{color:#aaa;margin-bottom:25px}
.full-bleed-dark h2{max-width:810px;font-size:clamp(30px,3.4vw,49px);margin-bottom:17px}
.full-bleed-dark p{color:#ccc;max-width:760px;font-size:14px;line-height:2}
.vision-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.vision-item{border-top:1px solid #505050;padding-top:28px}
.vision-item .eyebrow{margin-bottom:24px}.vision-item h3{font-size:clamp(25px,2.65vw,38px);margin-bottom:20px}.vision-item p{max-width:490px}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:44px}
.case{border:1px solid var(--line);background:#fff;display:grid;grid-template-columns:45% 55%;min-height:275px}
.case img{width:100%;height:100%;object-fit:cover}
.case .inner{padding:30px 28px}
.case .inner .eyebrow{font-size:9px;margin-bottom:16px}
.case h3{font-size:18px;margin-bottom:16px}
.case p{font-size:12px;color:var(--sub);line-height:1.9}
.feature-note{display:inline-flex;border:1px solid var(--line);padding:8px 12px;color:#777;font-size:10px;letter-spacing:.04em;margin-top:20px}
.info-grid{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--line)}
.info-grid .term,.info-grid .def{border-bottom:1px solid var(--line);padding:24px 0;min-height:64px}
.info-grid .term{font-size:13px;color:var(--muted)}.info-grid .def{font-size:15px;line-height:1.9}
.company-intro{max-width:920px;padding-bottom:42px}.small-photo-strip{margin-top:70px;position:relative;height:360px;overflow:hidden}
.small-photo-strip img{width:100%;height:100%;object-fit:cover;filter:saturate(.78)}
.small-photo-strip:after{content:'';inset:0;position:absolute;background:linear-gradient(0deg,rgba(0,0,0,.12),transparent)}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;align-items:start}
.contact-layout .prompt h2{font-size:clamp(28px,3.2vw,44px);margin-bottom:25px}.contact-layout .prompt .bodycopy{margin-bottom:30px}
.form-shell{border-top:1px solid #111;padding-top:30px}
.form-field{margin-bottom:26px}.form-field label{display:block;font-size:12px;font-weight:650;margin-bottom:10px}
.form-field label .req{color:#888;font-size:10px;font-weight:400;margin-left:6px}
.form-field input,.form-field select,.form-field textarea{width:100%;font-family:var(--font-jp);font-size:14px;background:#fff;border:1px solid #d8d8d8;border-radius:0;color:#111;padding:13px 14px;line-height:1.65}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid #777;outline-offset:1px}
.form-field textarea{min-height:180px;resize:vertical}
.form-field .hint{font-size:11px;color:#777;margin-top:7px}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.checkbox-row{display:flex;gap:12px;align-items:flex-start;font-size:12px;color:#555;line-height:1.9;margin:14px 0 24px}
.checkbox-row input{accent-color:#111;width:17px;height:17px;margin-top:3px}
.form-alert{font-size:12px;padding:14px 16px;border:1px solid #cfcfcf;background:#f6f6f6;line-height:1.9;margin-top:16px}
.form-confirm{border:1px solid #bdbdbd;background:#f6f6f6;padding:22px;margin-top:18px;white-space:pre-wrap;font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.privacy-copy{max-width:860px}.privacy-copy p{color:var(--sub);font-size:15px;line-height:2;margin-bottom:18px}
.bottom-cta{background:#111;color:#fff;padding:65px 0}.bottom-cta .container{display:flex;justify-content:space-between;align-items:center;gap:30px}
.bottom-cta h2{font-size:32px;margin-top:15px}.bottom-cta p{color:#bbb;font-size:13px;margin-top:15px}
.bottom-cta .btn{border-color:#fff;color:#111}
.site-footer .footlinks{flex-wrap:wrap}.site-footer .footlinks a{display:inline-flex}
.site-footer .prototype-note{max-width:none}
@media(max-width:1000px){.case{grid-template-columns:1fr}.case img{height:220px}.contact-layout{gap:6%}}
@media(max-width:740px){
 html{scroll-padding-top:64px}
 .page-hero .container{display:flex;flex-direction:column;gap:0;min-height:0;align-items:stretch}
 .page-hero-copy{padding:72px 0 58px}.page-hero h1{font-size:clamp(35px,9vw,49px)}
 .page-hero .lead{font-size:13px;margin-top:22px}
 .hero-aside-image{height:225px;min-height:225px;margin-inline:calc(-1*var(--gutter))}
 .page-hero.plain .page-hero-copy{padding:74px 0 64px}
 .page-grid,.page-grid.reverse{display:flex;flex-direction:column;gap:30px;align-items:stretch}
 .page-grid.reverse .page-content,.page-grid.reverse .page-photo{order:unset}
 .page-photo img{height:230px}.page-content h3{font-size:20px}
 .section-tight{padding-block:52px}
 .vision-grid,.case-grid{grid-template-columns:1fr;gap:30px}
 .full-bleed-dark{padding:74px 0}.vision-grid .vision-item{padding-top:22px}
 .case{grid-template-columns:38% 62%;min-height:180px}
 .case img{height:100%;min-height:195px}.case .inner{padding:22px 18px}.case h3{font-size:16px}
 .info-grid{grid-template-columns:110px 1fr}.info-grid .term,.info-grid .def{padding:19px 0;font-size:12px}
 .info-grid .def{font-size:14px}.small-photo-strip{margin-top:42px;height:220px}
 .contact-layout{grid-template-columns:1fr;gap:50px}.form-row-2{grid-template-columns:1fr;gap:0}
 .bottom-cta .container{flex-direction:column;align-items:stretch}.bottom-cta h2{font-size:27px}
 .site-footer .container{flex-wrap:wrap}
}
@media(max-width:420px){.case{display:block}.case img{height:175px;min-height:0}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Targeted text-wrap adjustments; preserve the supplied layout and images. */
.nowrap-ending { white-space: nowrap; }
.hero .bodycopy,
.page-hero.plain:has(#contact-title) .lead { text-wrap: pretty; }
.numbers-flex { grid-template-columns: 1.25fr .9fr .9fr; }
.numbers-flex h2 { font-size: clamp(21px, 2.4vw, 30px); white-space: nowrap; }
.strength-grid { grid-template-columns: 1.45fr repeat(3, minmax(0,1fr)); }
.strength-intro { padding-right: 24px; }
.strength-intro h2 { font-size: clamp(23px, 2.2vw, 30px); white-space: nowrap; }
@media (max-width: 1000px) {
  .strength-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .strength-intro { grid-column: 1/-1; padding-right: 0; }
}
@media (max-width: 740px) {
  .numbers-flex { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .numbers-flex > div:first-child { grid-column: 1/-1; }
  .numbers-flex h2 { font-size: clamp(20px,5.5vw,27px); }
  .strength-intro h2 { font-size: clamp(24px,6.5vw,32px); }
}

/* Contact form (production) */
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.turnstile-box{margin:0 0 24px;min-height:0}
.turnstile-box:empty{display:none}
.form-review,.form-done{border-top:1px solid #111;padding-top:30px}
.form-review-title,.form-done h3{font-size:22px;margin:14px 0 12px}
.form-review-lead{font-size:13px;color:var(--sub);margin-bottom:26px}
.review-grid{margin:0}.review-grid dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.form-review-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.form-done .bodycopy+.bodycopy{margin-top:12px}
.btn[disabled]{opacity:.55;cursor:wait;transform:none}
@media(max-width:740px){.form-review-actions .btn{flex:1 1 100%}}
.site-header .wordmark img{display:block;width:83px;height:auto}
@media (max-width:740px){.site-header .wordmark img{width:79px}}
.site-footer .wordmark img{display:block;width:83px;height:auto}
