* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #eef2e8; color: #183125; font-family: "Noto Sans SC", "Noto Sans JP", sans-serif; }
a { color: inherit; text-decoration: none; }.language-page { display: none; }.language-page.active { display: block; }
.language-switch { backdrop-filter: blur(10px); background: rgba(239,245,235,.82); border: 1px solid #a8b8a7; display: flex; padding: 3px; position: fixed; right: 4vw; top: 78px; z-index: 50; }.language-switch button { background: none; border: 0; color: #627668; cursor: pointer; font: inherit; font-size: 9px; padding: 7px 11px; }.language-switch button.active { background: #2c6348; color: #fff; }
.site-header { align-items: center; color: #fff; display: flex; height: 64px; justify-content: space-between; padding: 0 4vw; position: absolute; width: 100%; z-index: 20; }.logo { align-items: center; display: flex; font-size: 9px; font-weight: 700; gap: 12px; letter-spacing: .16em; }.brand-mark { display: grid; gap: 2px; grid-template-columns: repeat(2, 7px); transform: rotate(45deg); }.brand-mark b { background: #dcebd9; display: block; height: 7px; }.brand-mark b:nth-child(1), .brand-mark b:nth-child(4) { background: #75a36d; }nav { display: flex; font-size: 9px; gap: 26px; }.header-cta { border-bottom: 1px solid #bdd5b9; font-size: 9px; padding-bottom: 5px; }
.hero { background: radial-gradient(circle at 72% 42%, #98b99a 0, #426c54 30%, #173c2d 68%, #102b21 100%); color: #fff; min-height: 100vh; overflow: hidden; position: relative; }.hero::before { background: linear-gradient(105deg, rgba(255,255,255,.08), transparent 42%); content: ""; inset: 0; position: absolute; }.bamboo-grove { inset: 0; position: absolute; }.bamboo-grove i { background: linear-gradient(90deg,#214d36,#7ca477 47%,#214d36); border-left: 1px solid rgba(255,255,255,.2); height: 130%; position: absolute; top: -15%; width: clamp(18px, 2.2vw, 34px); }.bamboo-grove i::before, .bamboo-grove i::after { border-top: 2px solid rgba(255,255,255,.25); content: ""; left: -3px; position: absolute; right: -3px; }.bamboo-grove i::before { top: 34%; }.bamboo-grove i::after { top: 66%; }.bamboo-grove i:nth-child(1){left:4%;transform:rotate(-4deg)}.bamboo-grove i:nth-child(2){left:18%;transform:rotate(3deg);opacity:.55}.bamboo-grove i:nth-child(3){right:31%;transform:rotate(-2deg);opacity:.45}.bamboo-grove i:nth-child(4){right:15%;transform:rotate(4deg);opacity:.75}.bamboo-grove i:nth-child(5){right:3%;transform:rotate(-3deg);opacity:.5}
.system-status { color: #b9d0bc; display: flex; font-size: 7px; gap: 25px; left: 4vw; letter-spacing: .18em; position: absolute; top: 95px; z-index: 3; }.hero-copy { padding: 20vh 7vw 10vh 9vw; position: relative; width: 66%; z-index: 4; }.eyebrow { color: #a9d2a2; font-size: 8px; font-weight: 700; letter-spacing: .27em; margin: 0 0 22px; text-transform: uppercase; }h1, h2 { font-family: "Noto Serif JP", "Noto Sans JP", serif; font-weight: 600; letter-spacing: -.045em; line-height: 1.2; margin: 0; }h1 { font-size: clamp(52px, 6.8vw, 108px); max-width: 8em; text-shadow: 0 3px 25px rgba(0,0,0,.22); }h2 { font-size: clamp(39px, 5vw, 74px); }
.lead { color: #d7e5d7; font-size: 12px; line-height: 2.1; margin-top: 34px; max-width: 580px; }.actions { display: flex; gap: 18px; margin-top: 38px; }.button { border-bottom: 1px solid #dcebd9; font-size: 9px; font-weight: 700; padding: 9px 2px; }.button.primary { border-color: #9bc193; color: #c7e3c2; }
.hero-emblem { align-items: center; display: flex; height: 65vh; justify-content: center; position: absolute; right: 4vw; top: 18vh; width: 36vw; z-index: 3; }.hero-emblem::before, .hero-emblem::after { border: 1px solid rgba(226,243,224,.35); border-radius: 50%; content: ""; height: 34vw; position: absolute; width: 34vw; }.hero-emblem::after { height: 25vw; width: 25vw; }.emblem-core { align-items: center; backdrop-filter: blur(8px); background: rgba(233,244,230,.8); border-radius: 50%; color: #326249; display: flex; height: min(18vw,270px); justify-content: center; width: min(18vw,270px); }.emblem-core b { font-family: "Noto Serif JP", serif; font-size: clamp(70px,9vw,135px); }.hero-emblem span { bottom: 0; font-size: 7px; letter-spacing: .35em; position: absolute; right: 5%; writing-mode: vertical-rl; }.hero-terminal { bottom: 25px; color: #b9d0bc; display: flex; font-size: 7px; gap: 25px; left: 4vw; letter-spacing: .2em; position: absolute; z-index: 5; }
.prologue { align-items: center; background: #dfe9dc; border-bottom: 1px solid #b4c4b2; display: grid; gap: 5vw; grid-template-columns: .2fr 1.5fr .4fr; padding: 42px 7vw; }.prologue span { color: #397158; font-family: "Noto Serif JP", serif; font-size: 57px; }.prologue p { font-family: "Noto Serif JP", serif; font-size: 14px; margin: 0; }.prologue b { color: #66806d; font-size: 7px; letter-spacing: .2em; }
.section { padding: 135px 7vw; }.story { background: linear-gradient(135deg,#eef2e8,#dde8d9); display: grid; gap: 8vw; grid-template-columns: .35fr 1.65fr; position: relative; }.story::after { border: 1px solid rgba(67,116,85,.2); border-radius: 50%; content: ""; height: 42vw; position: absolute; right: -12vw; top: 10%; width: 42vw; }.chapter-mark,.story-copy { position: relative; z-index: 2; }.chapter-mark { border-top: 1px solid #78917e; display: flex; justify-content: space-between; padding-top: 12px; }.chapter-mark span { font-size: 7px; letter-spacing: .2em; }.chapter-mark b { color: #397158; font-family: "Noto Serif JP", serif; font-size: 50px; line-height: 1; }.story-copy > p:not(.eyebrow) { color: #607267; font-size: 12px; line-height: 2.2; margin: 42px 0 27px; max-width: 760px; }.story-copy strong { border-left: 3px solid #72a06e; display: block; font-size: 12px; max-width: 760px; padding: 10px 0 10px 20px; }
.chapter-heading { align-items: end; display: flex; gap: 10vw; justify-content: space-between; margin-bottom: 70px; }.chapter-heading > p { color: #829086; font-size: 11px; line-height: 2; max-width: 360px; }.audiences { background: #173c2d; color: #fff; position: relative; }.audiences::before { background: radial-gradient(circle at 50% 0,rgba(171,211,169,.22),transparent 45%); content:""; inset:0; position:absolute }.audiences > * { position:relative }.audience-grid { display: grid; gap: 16px; grid-template-columns: repeat(3,1fr); }.audience-card { background: rgba(238,246,235,.06); border: 1px solid #577361; min-height: 500px; padding: 30px; }.audience-index { color:#9fc69a;font-family:"Noto Serif JP",serif;font-size:13px }.node-signal { display:flex;gap:7px;margin:65px 0 35px }.node-signal i { background:#9fc69a;border-radius:50%;height:7px;width:7px }.node-signal i:nth-child(2){opacity:.5}.node-signal i:nth-child(3){opacity:.2}.audience-card h3,.service-card h3,.principle h3 { font-family:"Noto Serif JP",serif;font-size:19px;margin:0 0 16px }.card-body,.service-card p,.principle p { color:#aebfb2;font-size:11px;line-height:2 }.audience-card ul { border-top:1px solid #577361;list-style:none;margin:27px 0 0;padding:16px 0 0 }.audience-card li { font-size:10px;padding:5px 0 }
.services { background:#f3f5ee }.service-grid { display:grid;gap:25px 45px;grid-template-columns:repeat(2,1fr) }.service-card { border-top:1px solid #9db09e;min-height:245px;padding:20px 20px 25px 0;position:relative }.service-card::after { border:1px solid #6f9671;border-radius:50%;bottom:20px;color:#4f795a;content:"泉";font-family:"Noto Serif JP",serif;font-size:18px;height:42px;padding:5px;position:absolute;right:15px;text-align:center;width:42px }.service-card:nth-child(even){margin-top:55px}.service-meta { color:#4f795a;display:flex;font-size:7px;justify-content:space-between;letter-spacing:.2em;margin-bottom:45px }.service-card p { color:#687a6e }
.statement { background:linear-gradient(145deg,#77a878,#3e7658 50%,#174331);color:#fff;min-height:70vh;overflow:hidden;padding:140px 8vw;position:relative }.statement::before,.statement::after { border:1px solid rgba(255,255,255,.22);border-radius:50%;content:"";height:50vw;position:absolute;right:-10vw;top:-15vw;width:50vw }.statement::after { height:35vw;right:-2vw;top:-7vw;width:35vw }.statement>*{position:relative;z-index:2}.statement-stamp { border:1px solid #dcebd9;border-radius:50%;font-family:"Noto Serif JP",serif;font-size:42px;margin-bottom:42px;padding:12px;width:fit-content }.statement p { font-size:8px;letter-spacing:.25em }.statement h2 { max-width:1050px }.statement em { color:#173c2d;font-style:normal }
.principles { background:#102b21;color:#fff;display:grid;gap:8vw;grid-template-columns:.35fr 1.65fr }.principle-grid { border-top:1px solid #526d5b;margin-top:60px }.principle { border-bottom:1px solid #526d5b;display:grid;gap:30px;grid-template-columns:.15fr .65fr 1.2fr;padding:30px 0 }.principle>span { color:#8db389;font-family:"Noto Serif JP",serif;font-size:23px }.principle p { margin:0 }
.contact { background:linear-gradient(#eef3e9,#dfe9dc);padding:140px 8vw;position:relative;text-align:center }.contact::before { border:1px solid #aebfae;border-radius:50%;content:"";height:36vw;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:36vw }.contact>*{position:relative}.contact h2 { margin:auto;max-width:1000px }.contact>p:not(.eyebrow){color:#657568;font-size:11px;line-height:2;margin:30px auto;max-width:620px}.contact-label { border-bottom:1px solid #4f795a;display:inline-block;font-size:9px;padding:9px 2px }
footer { align-items:center;background:#102b21;color:#7f9987;display:flex;font-size:8px;justify-content:space-between;padding:29px 4vw }footer strong { color:#fff;font-size:9px;letter-spacing:.15em }footer p{margin:3px 0}footer button{background:none;border:0;color:inherit;cursor:pointer;font:inherit;text-decoration:underline}dialog{border:0;border-top:5px solid #4f795a;max-width:650px;padding:43px}dialog::backdrop{background:rgba(11,42,30,.85)}dialog h2{font-size:22px}dialog p{color:#657568;font-size:11px;line-height:2}.dialog-close{background:none;border:0;cursor:pointer;font-size:25px;position:absolute;right:14px;top:7px}.reveal{opacity:0;transform:translateY(20px);transition:.9s}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){nav{display:none}.site-header{padding:0 18px}.language-switch{right:18px;top:72px}.hero-copy{padding:150px 24px 65px;width:100%}.hero-emblem{bottom:40px;height:32vh;opacity:.65;right:-18vw;top:auto;width:65vw}.emblem-core{height:45vw;width:45vw}.system-status{display:none}.prologue{grid-template-columns:.2fr 1fr;padding:28px 20px}.prologue b{display:none}.section{padding:82px 20px}.story,.principles{grid-template-columns:1fr}.chapter-heading{align-items:start;flex-direction:column;gap:25px}.audience-grid,.service-grid{grid-template-columns:1fr}.audience-card{min-height:auto}.service-card:nth-child(even){margin-top:0}.statement{min-height:auto;padding:92px 22px}.principle{gap:14px;grid-template-columns:.2fr 1fr}.principle p{grid-column:2}.contact{padding:90px 22px}footer{align-items:flex-start;flex-direction:column;gap:15px}}

/* High-impact bamboo and spring layer. */
.hero { background: #071b12 url("assets/bamboo-spring-hero-v2.png") center/cover no-repeat; }
.hero::before { background: linear-gradient(90deg,rgba(2,16,10,.9) 0,rgba(3,22,14,.7) 34%,rgba(6,26,17,.15) 68%,rgba(2,15,10,.28) 100%),linear-gradient(0deg,rgba(2,16,10,.64),transparent 34%); clip-path: none; }
.hero::after { border: 1px solid rgba(222,243,211,.32); border-radius: 50%; box-shadow: 0 0 0 28px rgba(222,243,211,.04),0 0 0 95px rgba(222,243,211,.025); content: ""; height: 35vw; position: absolute; right: 8vw; top: 16vh; width: 35vw; }
.bamboo-grove { mix-blend-mode: soft-light; opacity: .28; }
.bamboo-grove i { box-shadow: 15px 0 35px rgba(0,0,0,.3); height: 145%; top: -22%; width: clamp(16px,1.8vw,28px); }
h1 { font-size: clamp(58px,8vw,130px); line-height: 1.05; max-width: 7.5em; text-shadow: 0 8px 38px rgba(0,0,0,.4); }
.hero-emblem::before,.hero-emblem::after { border-width: 2px; box-shadow: 0 0 55px rgba(208,239,197,.2); height: 38vw; width: 38vw; }.hero-emblem::after { height: 27vw; width: 27vw; }
.hero-emblem { opacity: .82; }.emblem-core { background: rgba(231,244,224,.72); box-shadow: 0 18px 80px rgba(2,20,12,.38); }
.prologue { background: linear-gradient(90deg,#dbe9d5,#f3f6ed 54%,#c7ddc3); border-bottom: 8px solid #386b4c; overflow: hidden; padding-bottom: 52px; padding-top: 52px; position: relative; }
.prologue::after { color: rgba(39,92,61,.08); content: "竹 水"; font-family: "Noto Serif JP",serif; font-size: 110px; letter-spacing: .18em; position: absolute; right: 3vw; top: -40px; }
.story { background: linear-gradient(100deg,rgba(244,247,239,.97),rgba(221,234,216,.93)),repeating-linear-gradient(90deg,transparent 0 30px,rgba(41,88,59,.06) 31px 32px); }
.story::before { background: linear-gradient(115deg,transparent 48%,rgba(40,92,59,.08) 49%,transparent 50%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.audiences { background: radial-gradient(circle at 75% 0,rgba(151,201,139,.28),transparent 35%),linear-gradient(145deg,#163c2b,#071d14); }
.audience-card { backdrop-filter: blur(8px); background: linear-gradient(150deg,rgba(238,246,235,.1),rgba(238,246,235,.025)); }
.services { background: linear-gradient(135deg,#f7f8f2 0,#e4eee0 100%); position: relative; }
.services::before { background: repeating-radial-gradient(circle at 100% 100%,transparent 0 34px,rgba(65,119,79,.09) 35px 36px); content: ""; inset: 0; pointer-events: none; position: absolute; }
.services > * { position: relative; }
.audience-card { min-height: 520px; transition: .35s; }.audience-card:hover { background: #39765a; transform: translateY(-14px); }
.statement { background: linear-gradient(100deg,rgba(5,31,20,.92),rgba(24,78,49,.62)),url("assets/bamboo-spring-hero-v2.png") center 64%/cover no-repeat; min-height: 85vh; padding-bottom: 155px; padding-top: 155px; }
.statement::before,.statement::after { border-width: 2px; box-shadow: 0 0 55px rgba(255,255,255,.13); height: 65vw; right: -18vw; top: -22vw; width: 65vw; }.statement::after { height: 42vw; right: -6vw; top: -10vw; width: 42vw; }
.contact { background: linear-gradient(rgba(241,246,237,.9),rgba(218,234,212,.96)),repeating-radial-gradient(circle at 50% 100%,transparent 0 42px,rgba(53,108,71,.13) 43px 44px); }
@media(max-width:850px){.hero{background-position:58% center}.hero::after{height:75vw;right:-32vw;top:42vh;width:75vw}.bamboo-grove i{width:14px}.hero-emblem{opacity:.5}.audience-card:hover{transform:none}.statement{background-position:60% center;min-height:auto}}

/* Language-specific typography prevents mixed CJK glyph fallback. */
.language-page[data-language-page="ja"] { font-family: "Noto Sans JP", sans-serif; }
.language-page[data-language-page="zh"] { font-family: "Noto Sans SC", sans-serif; }
.language-page[data-language-page="en"] { font-family: Arial, sans-serif; }
.language-page[data-language-page="zh"] :is(h1,h2,.emblem-core b,.prologue span,.prologue p,.chapter-mark b,.audience-index,.audience-card h3,.service-card h3,.principle h3,.statement-stamp,.principle>span) { font-family: "Noto Serif SC", serif; }
.language-page[data-language-page="ja"] :is(h1,h2,.emblem-core b,.prologue span,.prologue p,.chapter-mark b,.audience-index,.audience-card h3,.service-card h3,.principle h3,.statement-stamp,.principle>span) { font-family: "Noto Serif JP", serif; }
.language-page[data-language-page="en"] :is(h1,h2,.audience-card h3,.service-card h3,.principle h3) { font-family: Georgia, serif; letter-spacing: -.035em; }

/* Full website pages: bamboo and spring edition. */
.card-link { bottom: 25px; color: #9fc69a; font-size: 8px; font-weight: 700; letter-spacing: .18em; position: absolute; }
.audience-card { position: relative; }
.sub-header { background: rgba(7,29,20,.88); backdrop-filter: blur(12px); position: fixed; }
.subpage { background: #edf3e9; min-height: 100vh; overflow: hidden; }
.subhero { background: linear-gradient(90deg,rgba(2,20,12,.9),rgba(8,49,29,.46)),url("assets/bamboo-spring-hero-v2.png") center/cover no-repeat; color: #fff; min-height: 78vh; overflow: hidden; padding: 22vh 8vw 12vh; position: relative; }
.subhero::after { border: 1px solid rgba(223,244,216,.42); border-radius: 50%; box-shadow: 0 0 0 38px rgba(223,244,216,.04),0 0 0 120px rgba(223,244,216,.025); content: ""; height: 38vw; position: absolute; right: 5vw; top: 14vh; width: 38vw; }
.subhero > *:not(.wild-word) { max-width: 900px; position: relative; z-index: 2; }
.subhero h1 { font-size: clamp(58px,8vw,125px); }
.subhero .lead { color: #d5e5d4; max-width: 700px; }
.subhero .wild-word { display: none; }
.detail-grid { display: grid; gap: 24px; grid-template-columns: repeat(2,1fr); }
.detail-card { background: rgba(255,255,255,.82); border: 1px solid #9db09e; min-height: 320px; padding: 34px; position: relative; }
.detail-card:nth-child(2n) { background: #246044; color: #fff; transform: translateY(40px); }
.detail-card > span { color: #4f795a; font-family: "Noto Serif JP",serif; font-size: 27px; }
.detail-card:nth-child(2n) > span { color: #a9d2a2; }
.detail-card h2 { font-size: clamp(28px,3.4vw,52px); margin: 65px 0 20px; }
.detail-card p { color: #687a6e; font-size: 12px; line-height: 2.1; }
.detail-card:nth-child(2n) p { color: #d6e5d7; }
.detail-cta { background: linear-gradient(145deg,#79aa79,#174331); color: #fff; padding: 130px 8vw; position: relative; }
.detail-cta p { font-size: 8px; letter-spacing: .25em; }
.detail-cta h2 { font-size: clamp(44px,6vw,90px); max-width: 950px; }
.detail-cta a { border-bottom: 1px solid #dcebd9; display: inline-block; font-size: 9px; font-weight: 700; margin-top: 45px; padding-bottom: 8px; }
@media(max-width:850px){.subhero{background-position:58% center;min-height:auto;padding:160px 22px 100px}.subhero::after{height:75vw;right:-35vw;top:30vh;width:75vw}.detail-grid{grid-template-columns:1fr}.detail-card{min-height:260px}.detail-card:nth-child(2n){transform:none}.detail-cta{padding:90px 22px}}
