
:root { --navy:#061824; --navy-2:#0b2b3c; --ink:#13242d; --cream:#f3f0e8; --paper:#faf9f5; --red:#e64337; --mint:#8fc9bc; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:84px; padding:0 4.5vw; display:flex; align-items:center; gap:34px; position:absolute; inset:0 0 auto; z-index:20; color:white; border-bottom:1px solid rgba(255,255,255,.18); }
.brand { display:flex; align-items:center; gap:13px; margin-right:auto; }
.brand-mark { display:grid; place-items:center; width:39px; height:39px; border:1px solid rgba(255,255,255,.7); border-radius:50%; font-family:Georgia,serif; font-size:21px; }
.brand strong,.footer-brand strong { display:block; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.08em; font-size:15px; }
.brand small,.footer-brand small { display:block; margin-top:4px; font-size:8px; letter-spacing:.15em; opacity:.7; }
nav { display:flex; gap:30px; font-size:12px; letter-spacing:.08em; }
nav a { opacity:.78; transition:.2s; } nav a:hover { opacity:1; }
.header-contact { border-left:1px solid rgba(255,255,255,.25); padding-left:28px; font-size:12px; }
.header-contact span,.button span { margin-left:12px; }
.hero { min-height:820px; position:relative; overflow:hidden; color:white; background:radial-gradient(circle at 78% 38%,#194b60 0,transparent 32%),linear-gradient(128deg,#03121c 15%,#082332 61%,#0d3546); padding:180px 7vw 112px; display:grid; grid-template-columns:1.1fr .9fr; align-items:center; }
.hero-grid { position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,transparent 20%,black); }
.hero-copy { position:relative; z-index:2; }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:.22em; display:flex; align-items:center; gap:12px; }
.eyebrow span { display:inline-block; width:34px; height:2px; background:var(--red); }
.hero h1 { margin:31px 0 28px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(43px,5vw,73px); line-height:1.35; letter-spacing:.03em; font-weight:500; }
.hero h1 em { color:#a9d9cf; font-style:normal; }
.hero-lead { color:#d5dfe2; font-size:16px; line-height:2; letter-spacing:.05em; }
.hero-actions { display:flex; align-items:center; gap:35px; margin-top:42px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; min-width:190px; padding:17px 20px; font-size:13px; font-weight:700; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--red); color:white; }
.text-link { font-size:12px; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:6px; }
.text-link span { margin-left:14px; }
.hero-visual { position:relative; height:470px; }
.orb { position:absolute; border:1px solid rgba(143,201,188,.4); border-radius:50%; }
.orb-one { width:420px;height:420px;inset:20px auto auto 10%; }
.orb-two { width:260px;height:260px;inset:100px auto auto 28%; border-color:rgba(230,67,55,.45); }
.network-line { position:absolute; height:1px; background:linear-gradient(90deg,transparent,#8fc9bc,transparent); transform-origin:left; }
.line-one { width:480px; top:100px; left:0; transform:rotate(31deg); }.line-two { width:430px; top:320px; left:20px; transform:rotate(-23deg); }.line-three { width:300px; top:70px; left:250px; transform:rotate(90deg); }
.visual-card { position:absolute; right:4%; top:78px; width:290px; padding:33px; background:rgba(4,21,31,.74); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.18); box-shadow:0 30px 80px rgba(0,0,0,.3); }
.visual-card span { font-size:9px; letter-spacing:.2em; color:var(--mint); text-transform:uppercase; }
.visual-card strong { display:block; font-family:"Yu Mincho",serif; font-weight:500; font-size:28px; line-height:1.6; margin:48px 0 68px; }
.card-index { font-size:10px; letter-spacing:.15em; color:#879ba4; border-top:1px solid rgba(255,255,255,.15); padding-top:17px; }
.credentials { position:absolute; left:7vw; right:7vw; bottom:0; height:72px; border-top:1px solid rgba(255,255,255,.18); display:flex; gap:28px; align-items:center; font-size:11px; letter-spacing:.08em; color:#9fb0b7; }
.credentials strong { color:white; font-size:12px; }
.section-pad { padding:125px 8vw; }
.section-number { font:700 10px/1 Arial,sans-serif; letter-spacing:.2em; color:var(--red); }
.intro { display:grid; grid-template-columns:1fr 2.4fr; gap:70px; background:var(--cream); }
.intro h2,.section-heading h2,.institute h2,.cta h2 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:500; font-size:clamp(34px,4vw,57px); line-height:1.5; letter-spacing:.04em; }
.intro>div>p { max-width:760px; margin:36px 0 0; line-height:2.2; font-size:15px; color:#4e5c62; }
.services { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.service-list { border-top:1px solid #cdd1cf; }
.service-list article { display:grid; grid-template-columns:50px 1fr; gap:20px; padding:32px 8px; border-bottom:1px solid #cdd1cf; }
.service-list article>span,.value-grid article>span { font:700 10px Arial; color:var(--red); }
.service-list h3 { margin:0 0 13px; font-family:"Yu Mincho",serif; font-size:22px; font-weight:600; }
.service-list p { margin:0; color:#637078; line-height:1.9; font-size:13px; }
.philosophy { color:white; background:linear-gradient(138deg,#071c28,#0b3443); }
.section-heading.light { max-width:780px; }
.philosophy-intro { max-width:690px; color:#b8c7cc; line-height:2; margin-top:28px; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; border-top:1px solid rgba(255,255,255,.18); }
.value-grid article { padding:34px 36px 15px 0; min-height:295px; border-right:1px solid rgba(255,255,255,.18); }
.value-grid article+article { padding-left:36px; }
.value-grid h3 { font-family:"Yu Mincho",serif; font-size:26px; font-weight:500; margin:48px 0 25px; }
.value-grid h3 small { display:block; margin-top:9px; font:700 9px Arial; letter-spacing:.18em; color:var(--mint); }
.value-grid p { color:#afbdc2; font-size:13px; line-height:2; }
.institute { display:grid; grid-template-columns:1fr 1fr; gap:10vw; background:#e8eee9; }
.institute-en { margin-top:72px; color:#678078; letter-spacing:.18em; font-size:11px; }
.institute h2 span { color:#237662; font-style:italic; }
.institute-copy { padding-top:50px; }
.institute-copy .lead { font-family:"Yu Mincho",serif; font-size:27px; line-height:1.7; color:#173f3a; }
.institute-copy>p:not(.lead) { font-size:13px; line-height:2.1; color:#596a66; }
.research-note { margin-top:38px; border:1px solid #aac0b9; padding:22px 25px; display:flex; gap:25px; align-items:center; }
.research-note span { font-size:10px; color:#237662; font-weight:700; white-space:nowrap; }.research-note p { margin:0; font-size:13px; line-height:1.7; }
.cta { text-align:center; color:white; background:var(--red); }
.cta .eyebrow { justify-content:center; }.cta .eyebrow span { background:white; }
.cta h2 { margin-top:35px; }.cta>p:not(.eyebrow) { margin:28px auto 36px; font-size:13px; letter-spacing:.05em; }
.button-light { background:white; color:var(--red); margin:auto; }
footer { background:#03131c; color:white; padding:75px 8vw 32px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; }
footer address { font-style:normal; font-size:12px; line-height:1.9; color:#a2b0b5; }
.footer-links { display:flex; flex-direction:column; gap:15px; align-items:flex-start; font-size:11px; }.footer-links a { border-bottom:1px solid rgba(255,255,255,.22); padding-bottom:5px; }
.copyright { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.14); margin:30px 0 0; padding-top:25px; font-size:8px; letter-spacing:.18em; color:#73868d; }
@media(max-width:900px){
  .site-header { height:70px; padding:0 22px; }.site-header nav,.header-contact { display:none; }
  .hero { min-height:760px; padding:130px 7vw 100px; grid-template-columns:1fr; }.hero-copy { z-index:3; }.hero-visual { position:absolute; inset:170px -130px auto 45%; opacity:.55; width:600px; }.visual-card { display:none; }
  .credentials { left:7vw; right:7vw; height:80px; flex-wrap:wrap; gap:8px 20px; align-content:center; }
  .intro,.services,.institute { grid-template-columns:1fr; }.intro { gap:35px; }.services,.institute { gap:65px; }
  .value-grid { grid-template-columns:1fr; }.value-grid article { border-right:0; border-bottom:1px solid rgba(255,255,255,.18); padding:28px 0; min-height:auto; }.value-grid article+article { padding-left:0; }
  footer { grid-template-columns:1fr 1fr; }.footer-links { grid-column:1/-1; }
}
@media(max-width:560px){
  .brand strong { font-size:13px; }.hero { min-height:720px; padding-top:120px; }.hero h1 { font-size:39px; }.hero-lead br { display:none; }.hero-actions { align-items:flex-start; flex-direction:column; gap:25px; }
  .section-pad { padding:88px 7vw; }.intro h2,.section-heading h2,.institute h2,.cta h2 { font-size:34px; }.service-list article { grid-template-columns:36px 1fr; }
  footer { grid-template-columns:1fr; }.footer-links { grid-column:auto; }.copyright { grid-column:1; }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
