:root { --red:#e60012; --ink:#151515; --paper:#f7f7f4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.siteHeader { position:absolute; inset:0 0 auto; z-index:10; height:92px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; animation:headerIn .8s ease both; }
.brand { display:flex; align-items:center; gap:14px; }
.brandMark { width:42px; height:42px; display:flex; align-items:flex-end; gap:3px; transform:skewX(-15deg); }
.brandMark i { display:block; width:6px; background:var(--red); }
.brandMark i:nth-child(1),.brandMark i:nth-child(5){height:18px}.brandMark i:nth-child(2),.brandMark i:nth-child(4){height:30px}.brandMark i:nth-child(3){height:42px}
.brandType { display:grid; line-height:1; gap:5px; }.brandType b{font:800 20px/1 Arial,sans-serif;letter-spacing:.13em}.brandType small{font-size:9px;letter-spacing:.22em}
nav { display:flex; align-items:center; gap:34px; font-size:12px; font-weight:700; letter-spacing:.09em; }
.navContact { border:1px solid var(--ink); padding:13px 19px; }
.hero { min-height:760px; position:relative; overflow:hidden; display:flex; align-items:center; background:#fff; }
.heroGrid { position:absolute; inset:0 0 0 52%; background-image:linear-gradient(rgba(230,0,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(230,0,18,.12) 1px,transparent 1px);background-size:26px 26px; transform:skewX(-9deg); transform-origin:bottom; animation:gridIn 1.25s cubic-bezier(.2,.8,.2,1) both; }
.heroGrid::before { content:""; position:absolute; inset:18% 8% 12%; background:var(--red); clip-path:polygon(51% 0,100% 30%,73% 100%,0 77%,18% 18%); opacity:.93; }
.heroGrid::after { content:""; position:absolute; width:48%; aspect-ratio:1; right:14%; top:23%; border:18px solid #fff; transform:rotate(45deg); }
.heroInner { width:min(1180px,100%); margin:auto; padding:138px clamp(24px,7vw,100px) 84px; position:relative; z-index:2; animation:heroIn .9s .15s ease both; }
.eyebrow { margin:0 0 30px; font:700 11px/1.4 Arial,sans-serif; letter-spacing:.22em; color:var(--red); }
h1 { font-size:clamp(45px,6vw,82px); line-height:1.28; letter-spacing:.02em; margin:0 0 34px; font-weight:800; }
.heroLead { margin:0; font-size:15px; line-height:2.1; letter-spacing:.04em; max-width:610px; }
.heroActions { display:flex; align-items:center; gap:30px; margin-top:44px; }
.primaryButton { background:var(--ink); color:#fff; padding:18px 24px; min-width:190px; display:flex; justify-content:space-between; font-size:13px; font-weight:700; transition:transform .25s,background .25s; }.primaryButton:hover{transform:translateY(-3px);background:var(--red)}
.primaryButton span { color:var(--red); }.textLink{font-size:12px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:5px}
.heroStatement { position:absolute; right:3.5%; bottom:4%; z-index:2; color:#151515; font:900 clamp(42px,7vw,92px)/.82 Arial,sans-serif; letter-spacing:-.05em; text-align:right; }
.section { padding:clamp(78px,10vw,140px) clamp(24px,7vw,100px); }
.sectionLabel { display:flex; align-items:baseline; gap:18px; margin-bottom:65px; }.sectionLabel span{font:800 clamp(28px,3vw,40px)/1 Arial,sans-serif;letter-spacing:.04em;color:var(--red)}.sectionLabel small{font-size:11px;letter-spacing:.14em}.sectionLabel.light span{color:#fff}.sectionLabel.light small{color:#ffb7bd}
.intro { max-width:1280px; margin:auto; }.introBody,.messageBody{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,9vw,135px);align-items:start}.bigCopy{font-size:clamp(30px,4vw,52px);line-height:1.55;font-weight:800;margin:0}.introBody>div p,.messageBody>div>p{font-size:14px;line-height:2.25;margin:0 0 22px}.principles{display:grid;grid-template-columns:1fr;background:#cfcfca;border:1px solid #cfcfca;margin-top:90px;gap:1px}.principles article{background:#fff;padding:38px 42px;display:grid;grid-template-columns:72px minmax(210px,.8fr) 1.5fr;gap:34px;align-items:start;transition:background .25s,transform .25s}.principles article:hover{background:#faf8f7;transform:translateX(6px)}.principles b{font:800 14px Arial;color:var(--red);padding-top:7px}.principles h3{font-size:22px;margin:0;line-height:1.65}.principles p{font-size:13px;line-height:2.05;margin:0;color:#4d4d4d}
.business { background:#eeeae6; color:var(--ink); position:relative; }.business::before{content:"";position:absolute;left:0;top:0;width:10px;height:100%;background:var(--red)}.businessHead{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end;max-width:1140px;margin:0 auto 60px}.businessHead h2{font-size:clamp(34px,4.5vw,58px);line-height:1.5;margin:0}.businessHead p{font-size:13px;line-height:2.2;margin:0;color:#555}.businessGrid{display:grid;grid-template-columns:repeat(2,1fr);max-width:1140px;margin:auto;gap:14px}.businessCard{padding:44px;min-height:300px;background:#fff;border:1px solid #d6d2ce;transition:transform .3s,box-shadow .3s,border-color .3s}.businessCard:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(30,20,15,.09);border-color:#bbb5af}.businessCard:first-child{grid-column:1/-1;min-height:350px;padding-right:42%;position:relative;background:#fff;border-top:5px solid var(--red)}.businessCard:first-child::after{content:"PRIMARY BUSINESS";position:absolute;right:44px;bottom:36px;font:900 clamp(32px,5vw,68px)/.85 Arial;letter-spacing:-.05em;color:#e7e4e1}.businessCard>div{display:flex;justify-content:space-between}.businessCard b{font:800 34px Arial;color:var(--red)}.businessCard small{font:700 10px Arial;letter-spacing:.16em;color:#8b8783}.businessCard h3{font-size:21px;margin:46px 0 18px}.businessCard p{font-size:12px;line-height:2;margin:0;max-width:40em;color:#555}
.research{min-height:720px;background:#101010;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;overflow:hidden}.researchArt{height:510px;position:relative;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:24px 24px}.researchArt svg{position:absolute;inset:0;width:100%;height:100%}.researchArt .edge{stroke:var(--red);stroke-width:2.5;stroke-linecap:round}.researchArt .edgeMain{stroke-width:3}.researchArt .edgeFaint{stroke-width:2;stroke-dasharray:2 8;opacity:.45}.researchArt .node{fill:var(--red)}.researchArt .nodeTarget{stroke:#fff;stroke-width:2}.researchArt .nodeRing{fill:none;stroke:var(--red);stroke-width:1.5;opacity:.5}.researchBody{max-width:520px}.researchBody h2{font-size:clamp(40px,5vw,66px);margin:0 0 20px}.researchLead{font-size:20px!important;font-weight:700;line-height:1.8!important}.researchBody>p{font-size:13px;line-height:2.2}.outlineButton{display:flex;justify-content:space-between;border:1px solid #fff;padding:17px 20px;margin-top:36px;max-width:310px;font-size:12px;font-weight:700}.outlineButton span{color:var(--red)}
.strength{max-width:1280px;margin:auto}.strengthIntro{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end;margin-bottom:70px}.strengthIntro h2{font-size:clamp(34px,4.5vw,56px);line-height:1.5;margin:0}.strengthIntro p{font-size:13px;line-height:2.2;margin:0;color:#555}.strengthGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#d3cfcb;border:1px solid #d3cfcb}.strengthGrid article{background:#fff;padding:34px 26px 38px;min-height:280px}.strengthGrid span{font:800 12px Arial;color:var(--red)}.strengthGrid h3{font-size:18px;margin:50px 0 18px}.strengthGrid p{font-size:12px;line-height:2;margin:0;color:#555}
.process{background:#202020;color:#fff}.process .sectionLabel span{color:#fff}.process .sectionLabel small{color:#aaa}.processList{max-width:1140px;margin:auto}.processList article{display:grid;grid-template-columns:100px 1fr;border-top:1px solid #555;padding:34px 0}.processList article:last-child{border-bottom:1px solid #555}.processList article>b{font:800 38px Arial;color:var(--red)}.processList article>div{display:grid;grid-template-columns:150px 220px 1fr;gap:30px;align-items:baseline}.processList small{font:700 10px Arial;letter-spacing:.15em;color:#888}.processList h3{font-size:20px;margin:0}.processList p{font-size:12px;line-height:2;margin:0;color:#c7c7c7}
.group{max-width:1280px;margin:auto}.groupBox{background:#fff;border:1px solid #d5d5d0;padding:clamp(36px,6vw,76px);display:grid;grid-template-columns:1fr 1fr;gap:8vw;position:relative;overflow:hidden}.groupBox::after{content:"";position:absolute;width:220px;height:220px;border:26px solid rgba(230,0,18,.09);right:-70px;bottom:-80px;transform:rotate(45deg)}.groupKicker{font:800 11px Arial;letter-spacing:.2em;color:var(--red)}.groupBox h2{font-size:clamp(30px,4vw,48px);line-height:1.55;margin:20px 0 0}.groupBox>div:last-child p{font-size:13px;line-height:2.25;margin:0 0 28px}
.message{background:#fff}.message .sectionLabel,.messageBody{max-width:1140px;margin-left:auto;margin-right:auto}.signature{text-align:right;margin-top:42px!important;font-size:21px!important;font-weight:700}.signature small{display:block;font-size:10px;font-weight:400;margin-bottom:7px;letter-spacing:.12em}
.company{max-width:1140px;margin:auto}.company dl{margin:0 0 0 auto;max-width:800px}.company dl>div{display:grid;grid-template-columns:180px 1fr;border-top:1px solid #cecec9;padding:24px 0}.company dl>div:last-child{border-bottom:1px solid #cecec9}.company dt{font-size:12px;color:#666}.company dd{margin:0;font-size:13px;line-height:2}.company dd a{text-decoration:underline}
.contact{background:var(--red);color:#fff;text-align:center;padding:100px 24px}.contact .eyebrow{color:#fff}.contact h2{font-size:clamp(34px,5vw,60px);margin:16px 0 20px}.contact>p:not(.eyebrow){font-size:13px}.contactTel{display:block;background:#fff;color:var(--ink);max-width:420px;margin:42px auto 18px;padding:18px;font:800 25px Arial}.contactTel small{display:block;font:400 10px sans-serif;letter-spacing:.1em;margin-bottom:7px}.contactMail{display:block;font-size:13px;margin-bottom:18px;text-decoration:underline}.serviceContact{font-size:12px;border-bottom:1px solid #fff;padding-bottom:4px}
footer{background:#101010;color:#fff;padding:58px clamp(24px,7vw,100px);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px}footer p{font:10px Arial;letter-spacing:.12em;margin:0}.brandMark.white i{background:#fff}
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}[data-reveal].isVisible{opacity:1;transform:none}.businessCard:nth-child(2){transition-delay:.08s}.businessCard:nth-child(3){transition-delay:.16s}.businessCard:nth-child(4){transition-delay:.24s}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes gridIn{from{opacity:0;transform:translateX(12%) skewX(-9deg)}to{opacity:1;transform:skewX(-9deg)}}@keyframes headerIn{from{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:none}}
@media(max-width:760px){.siteHeader nav a:not(.navContact){display:none}.siteHeader{height:76px}.navContact{padding:10px 12px}.hero{min-height:720px;align-items:flex-start}.heroInner{padding-top:144px}.heroGrid{inset:52% -25% 0 18%;transform:skewX(-9deg)}h1{font-size:44px}.heroLead br{display:none}.heroActions{align-items:flex-start;flex-direction:column;gap:22px}.heroStatement{font-size:44px;bottom:3%}.sectionLabel{margin-bottom:42px}.introBody,.messageBody,.businessHead,.research,.groupBox,.strengthIntro{grid-template-columns:1fr;gap:42px}.principles,.businessGrid,.strengthGrid{grid-template-columns:1fr}.principles{margin-top:55px}.principles article{grid-template-columns:48px 1fr;gap:14px 20px;padding:30px 24px}.principles article p{grid-column:2}.businessCard{min-height:250px;padding:34px 26px}.businessCard:first-child{grid-column:auto;min-height:280px;padding-right:26px}.businessCard:first-child::after{display:none}.businessCard h3{margin-top:35px}.research{padding-left:0;padding-right:0}.researchArt{height:340px;margin-right:24px}.researchBody{padding:0 24px}.strengthGrid article{min-height:220px}.processList article{grid-template-columns:55px 1fr}.processList article>div{grid-template-columns:1fr;gap:8px}.processList h3{margin:5px 0}.groupBox{padding:35px 28px}.company dl>div{grid-template-columns:100px 1fr}.contactTel{font-size:22px}footer{align-items:flex-start;gap:36px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}}
