* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #eeeae2; color: #171411; 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 { background: #f7f3eb; border: 1px solid #b9b0a4; display: flex; padding: 3px; position: fixed; right: 4vw; top: 80px; z-index: 50; }.language-switch button { background: none; border: 0; color: #756c63; cursor: pointer; font: inherit; font-size: 9px; padding: 7px 11px; }.language-switch button.active { background: #a9191e; 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: 13px; letter-spacing: .18em; }
.brand-mark { border: 1px solid #fff; display: grid; gap: 2px; grid-template-columns: repeat(2, 7px); padding: 4px; transform: rotate(45deg); }.brand-mark b { background: #fff; display: block; height: 7px; }.brand-mark b:nth-child(1), .brand-mark b:nth-child(4) { background: #a9191e; }
nav { display: flex; font-size: 9px; gap: 27px; letter-spacing: .08em; }.header-cta { border: 1px solid rgba(255,255,255,.7); font-size: 9px; padding: 8px 15px; }
.hero { background: #11100f; color: #fff; display: grid; grid-template-columns: 1.35fr .65fr; min-height: 100vh; overflow: hidden; position: relative; }.hero::before { background: repeating-linear-gradient(90deg, transparent 0 79px, rgba(255,255,255,.035) 80px); content: ""; inset: 0; position: absolute; }
.system-status { color: #aaa198; display: flex; font-size: 7px; gap: 28px; left: 4vw; letter-spacing: .2em; position: absolute; top: 92px; z-index: 3; }.hero-copy { align-self: center; padding: 145px 6vw 90px 9vw; position: relative; z-index: 2; }.hero-copy::before { background: #a9191e; content: ""; height: 2px; left: 0; position: absolute; top: 50%; width: 6vw; }
.eyebrow { color: #a9191e; font-size: 8px; font-weight: 700; letter-spacing: .28em; margin: 0 0 23px; text-transform: uppercase; }h1, h2 { font-family: "Noto Serif JP", "Noto Sans JP", serif; font-weight: 600; letter-spacing: -.045em; line-height: 1.25; margin: 0; }h1 { font-size: clamp(50px, 6.5vw, 105px); max-width: 8em; }h2 { font-size: clamp(39px, 5vw, 75px); }
.lead { color: #b8b0a7; font-size: 12px; line-height: 2.1; margin: 34px 0 0; max-width: 580px; }.actions { display: flex; gap: 10px; margin-top: 40px; }.button { border-bottom: 1px solid #fff; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .12em; padding: 10px 3px; }.button.primary { border-color: #a9191e; color: #d14a4e; }
.hero-emblem { align-items: center; background: #a9191e; display: flex; flex-direction: column; justify-content: center; min-height: 100vh; position: relative; }.hero-emblem::before { border: 1px solid rgba(255,255,255,.45); content: ""; height: 65%; position: absolute; width: 58%; }.hero-emblem::after { background: #fff; content: ""; height: 1px; position: absolute; width: 80%; }
.emblem-core { align-items: center; background: #f5efe5; border-radius: 50%; color: #a9191e; display: flex; height: min(20vw, 290px); justify-content: center; position: relative; width: min(20vw, 290px); z-index: 2; }.emblem-core b { font-family: "Noto Serif JP", serif; font-size: clamp(70px, 9vw, 140px); font-weight: 600; }.hero-emblem span { bottom: 8vh; font-size: 7px; letter-spacing: .3em; position: absolute; writing-mode: vertical-rl; }
.hero-terminal { bottom: 22px; color: #8f8780; display: flex; font-size: 7px; gap: 25px; left: 4vw; letter-spacing: .2em; position: absolute; z-index: 4; }.prologue { align-items: center; background: #f4f0e8; border-bottom: 1px solid #bcb3a7; display: grid; gap: 6vw; grid-template-columns: .2fr 1.5fr .4fr; padding: 45px 7vw; }.prologue span { color: #a9191e; font-family: "Noto Serif JP", serif; font-size: 55px; }.prologue p { font-family: "Noto Serif JP", serif; font-size: 14px; margin: 0; }.prologue b { color: #8e857b; font-size: 7px; letter-spacing: .2em; }
.section { padding: 135px 7vw; }.story { background: #eeeae2; display: grid; gap: 8vw; grid-template-columns: .35fr 1.65fr; }.chapter-mark { border-top: 1px solid #9b9187; display: flex; justify-content: space-between; padding-top: 12px; }.chapter-mark span { font-size: 7px; letter-spacing: .2em; }.chapter-mark b { color: #a9191e; font-family: "Noto Serif JP", serif; font-size: 50px; font-weight: 500; line-height: 1; }.story-copy > p:not(.eyebrow) { color: #70675f; font-size: 12px; line-height: 2.2; margin: 42px 0 26px; max-width: 770px; }.story-copy strong { border-left: 3px solid #a9191e; display: block; font-family: "Noto Serif JP", serif; font-size: 13px; 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: #8a8178; font-size: 11px; line-height: 2; max-width: 360px; }.audiences { background: #151310; color: #fff; }.audience-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); background: #665d55; }
.audience-card { background: #151310; min-height: 530px; padding: 32px; position: relative; }.audience-card::before { border: 1px solid #60564e; content: ""; inset: 12px; pointer-events: none; position: absolute; }.audience-card:hover { background: #a9191e; }.audience-index { color: #cf6a6e; font-family: "Noto Serif JP", serif; font-size: 13px; }.node-signal { border-top: 1px solid #675e56; display: flex; gap: 8px; margin: 70px 0 38px; padding-top: 15px; }.node-signal i { background: #a9191e; border-radius: 50%; height: 5px; width: 5px; }.node-signal i:nth-child(2) { opacity: .55; }.node-signal i:nth-child(3) { opacity: .25; }.audience-card h3, .service-card h3, .principle h3 { font-family: "Noto Serif JP", serif; font-size: 19px; font-weight: 600; margin: 0 0 17px; }.card-body, .service-card p, .principle p { color: #aaa198; font-size: 11px; line-height: 2; }.audience-card ul { border-top: 1px solid #5d554e; list-style: none; margin: 28px 0 0; padding: 16px 0 0; }.audience-card li { font-size: 10px; padding: 5px 0; }
.services { background: #f4f0e8; }.service-grid { display: grid; gap: 35px 55px; grid-template-columns: repeat(2, 1fr); }.service-card { border-top: 1px solid #a59b91; min-height: 245px; padding: 18px 20px 25px 0; position: relative; }.service-card::after { border: 1px solid #a9191e; bottom: 18px; color: #a9191e; content: "印"; font-family: "Noto Serif JP", serif; font-size: 18px; height: 38px; padding: 4px; position: absolute; right: 8px; text-align: center; width: 38px; }.service-card:nth-child(even) { margin-top: 65px; }.service-meta { color: #a9191e; display: flex; font-size: 7px; justify-content: space-between; letter-spacing: .2em; margin-bottom: 45px; }
.statement { background: #a9191e; color: #fff; padding: 145px 9vw; position: relative; }.statement::before { border: 1px solid rgba(255,255,255,.45); content: ""; inset: 28px; position: absolute; }.statement p { font-size: 8px; letter-spacing: .25em; position: relative; }.statement h2 { max-width: 1050px; position: relative; }.statement em { color: #171411; font-style: normal; }
.principles { background: #171411; color: #fff; display: grid; gap: 8vw; grid-template-columns: .35fr 1.65fr; }.principle-grid { border-top: 1px solid #5c544d; margin-top: 62px; }.principle { border-bottom: 1px solid #5c544d; display: grid; gap: 30px; grid-template-columns: .15fr .65fr 1.2fr; padding: 30px 0; }.principle > span { color: #a9191e; font-family: "Noto Serif JP", serif; font-size: 23px; }.principle p { margin: 0; }
.contact { background: #eeeae2; padding: 140px 9vw; position: relative; text-align: center; }.contact::before { border: 1px solid #aaa096; content: ""; inset: 35px; position: absolute; }.contact .eyebrow, .contact h2, .contact p, .contact span { position: relative; }.contact h2 { margin: auto; max-width: 1000px; }.contact > p:not(.eyebrow) { color: #756c63; font-size: 11px; line-height: 2; margin: 32px auto; max-width: 620px; }.contact-label { border-bottom: 1px solid #a9191e; display: inline-block; font-size: 9px; padding: 10px 3px; }
footer { align-items: center; background: #171411; color: #8f867e; display: flex; font-size: 8px; justify-content: space-between; padding: 30px 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 #a9191e; max-width: 650px; padding: 43px; }dialog::backdrop { background: rgba(20,17,15,.85); }dialog h2 { font-size: 22px; }dialog p { color: #70675f; 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(18px); transition: .8s; }.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 { display: block; }.hero-copy { min-height: 70vh; padding: 145px 25px 65px; }.hero-emblem { min-height: 55vh; }.emblem-core { height: 55vw; width: 55vw; }.system-status { display: none; }.prologue { grid-template-columns: .2fr 1fr; padding: 28px 20px; }.prologue b { display: none; }.section { padding: 80px 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 { padding: 90px 25px; }.principle { gap: 14px; grid-template-columns: .2fr 1fr; }.principle p { grid-column: 2; }.contact { padding: 90px 25px; }footer { align-items: flex-start; flex-direction: column; gap: 15px; } }

/* 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,.story-copy strong,.audience-index,.audience-card h3,.service-card h3,.principle h3,.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,.story-copy strong,.audience-index,.audience-card h3,.service-card h3,.principle h3,.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: Japanese corporate cultural edition. */
.card-link { bottom: 26px; color: #cf6a6e; font-size: 8px; font-weight: 700; letter-spacing: .2em; position: absolute; }
.sub-header { background: rgba(17,16,15,.94); backdrop-filter: blur(12px); position: fixed; }
.subpage { background: #eeeae2; min-height: 100vh; overflow: hidden; }
.subhero { background: #11100f; color: #fff; min-height: 78vh; overflow: hidden; padding: 22vh 8vw 12vh; position: relative; }
.subhero::before { background: repeating-linear-gradient(90deg,transparent 0 79px,rgba(255,255,255,.035) 80px); content:""; inset:0; position:absolute; }
.subhero::after { background: #a9191e; border: 1px solid rgba(255,255,255,.5); box-shadow: inset 0 0 0 28px #a9191e,inset 0 0 0 29px rgba(255,255,255,.45); content: "鼎"; display: grid; font-family: "Noto Serif JP",serif; font-size: 16vw; height: 38vw; place-items: center; position: absolute; right: 0; top: 0; width: 32vw; }
.subhero > *:not(.wild-word) { max-width: 850px; position: relative; z-index: 2; }
.subhero h1 { font-size: clamp(55px,7.5vw,116px); }
.subhero .lead { color: #c2b9b0; max-width: 690px; }
.detail-grid { display: grid; gap: 1px; grid-template-columns: repeat(2,1fr); background: #9b9187; padding: 1px; }
.detail-card { background: #f4f0e8; min-height: 330px; padding: 38px; position: relative; }
.detail-card:nth-child(2n) { background: #171411; color: #fff; }
.detail-card > span { color: #a9191e; font-family: "Noto Serif JP",serif; font-size: 25px; }
.detail-card h2 { font-size: clamp(28px,3.2vw,50px); margin: 70px 0 20px; }
.detail-card p { color: #70675f; font-size: 12px; line-height: 2.1; }
.detail-card:nth-child(2n) p { color: #aaa198; }
.detail-cta { background: #a9191e; color: #fff; padding: 130px 9vw; position: relative; }
.detail-cta::before { border: 1px solid rgba(255,255,255,.45); content:""; inset:28px; position:absolute; }
.detail-cta > * { position: relative; }
.detail-cta p { font-size: 8px; letter-spacing: .25em; }
.detail-cta h2 { font-size: clamp(44px,6vw,88px); max-width: 950px; }
.detail-cta a { border-bottom: 1px solid #fff; display: inline-block; font-size: 9px; font-weight: 700; margin-top: 45px; padding-bottom: 8px; }
@media(max-width:850px){.subhero{min-height:auto;padding:160px 22px 100px}.subhero::after{font-size:34vw;height:80vw;opacity:.38;right:-30vw;top:18vh;width:65vw}.detail-grid{grid-template-columns:1fr}.detail-card{min-height:270px}.detail-cta{padding:90px 25px}}
