
:root{
  --bg:#f9f9f9;
  --text:#424242;
  --muted:#707070;
  --line:#dedede;
  --soft:#f1f1f1;
  --header-h:84px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 18px)}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.section-pad{padding:96px 0}
.eyebrow{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.24em}
.eyebrow.light{color:#fff}

/* HEADER */
.site-header{
  position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:80;
  background:rgba(249,249,249,.96);border-bottom:1px solid rgba(0,0,0,.06);backdrop-filter:blur(10px)
}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.brand-logo{width:188px;height:auto}
.desktop-nav{display:flex;align-items:center;gap:26px}
.desktop-nav a{font-size:11px;letter-spacing:.12em;color:#424242;position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:#424242;transform:scaleX(0);transition:.2s}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after{transform:scaleX(1)}
.menu-toggle{display:none;position:relative;width:46px;height:46px;border:0;background:none;z-index:100}
.menu-toggle span{position:absolute;left:10px;right:10px;height:1.5px;background:#424242;top:19px;transition:.25s}
.menu-toggle span:last-child{top:27px}
.menu-toggle.is-open span{top:23px;transform:rotate(45deg);background:#fff}
.menu-toggle.is-open span:last-child{transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:70;background:#050c12;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.25s}
.mobile-menu.is-open{opacity:1;pointer-events:auto}
.mobile-menu nav{display:grid;gap:28px;text-align:center}
.mobile-menu a{font-size:20px;letter-spacing:.2em}

/* HERO */
.about-hero{
  position:relative;height:min(670px,72vh);min-height:560px;margin-top:var(--header-h);
  overflow:hidden;background:#0b1117;color:#fff
}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 43%}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(3,10,17,.72) 0%,rgba(3,10,17,.48) 42%,rgba(3,10,17,.15) 100%),
    linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.24))
}
.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.hero-content h1{margin:0;font-size:clamp(42px,5.4vw,74px);line-height:1.18;letter-spacing:.04em;font-weight:500;text-shadow:0 2px 18px rgba(0,0,0,.24)}
.hero-zero{margin:23px 0 0;font-size:clamp(20px,2.4vw,32px);letter-spacing:.34em;font-weight:500}
.hero-rule{width:62px;height:1px;background:rgba(255,255,255,.74);margin-top:28px}
.hero-location{margin:18px 0 0;font-size:9px;letter-spacing:.23em;color:rgba(255,255,255,.8)}

/* ABOUT */
.about-intro{position:relative;overflow:hidden;background:#f9f9f9}
.intro-grid{position:relative;z-index:2;display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:start}
.section-label h2{margin:0;font-size:clamp(30px,3.7vw,48px);font-weight:500;line-height:1.4;letter-spacing:.03em}
.intro-copy{font-size:15px;line-height:2.1;color:#505050}
.intro-copy p{margin:0 0 22px}
.intro-copy p:last-child{margin-bottom:0}
.zero-ghost{
  position:absolute;right:-2%;bottom:-40px;font-size:clamp(90px,15vw,220px);
  line-height:1;font-weight:700;letter-spacing:-.04em;color:rgba(0,0,0,.022);white-space:nowrap;pointer-events:none
}

/* HISTORY */
.history{background:#f1f1f1}
.section-head{margin-bottom:38px}
.section-head h2{margin:0;font-size:clamp(32px,4vw,52px);font-weight:500}
.timeline{display:grid;grid-template-columns:1fr 1fr;gap:48px 70px}
.timeline-column{position:relative}
.timeline-column::before{content:"";position:absolute;left:82px;top:7px;bottom:7px;width:1px;background:#cfcfcf}
.timeline-item{position:relative;display:grid;grid-template-columns:72px 1fr;gap:28px;padding:0 0 21px}
.timeline-item::before{content:"";position:absolute;left:78px;top:7px;width:9px;height:9px;background:#7e7e7e;border-radius:50%;box-shadow:0 0 0 5px #f1f1f1}
.timeline-item time{font-size:12px;font-weight:700;letter-spacing:.05em;color:#333}
.timeline-item p{margin:0;font-size:13px;line-height:1.8;color:#555}

/* PROFILE */
.profile{background:#f9f9f9}
.profile-grid{display:grid;grid-template-columns:.35fr 1fr;gap:60px;align-items:start}
.profile-head{position:sticky;top:calc(var(--header-h) + 28px);margin:0}
.profile-table-wrap{border-top:1px solid #bfbfbf}
.profile-table{width:100%;border-collapse:collapse;font-size:13px}
.profile-table th,.profile-table td{padding:15px 16px;border-bottom:1px solid #ddd;vertical-align:top;text-align:left}
.profile-table th{width:230px;font-weight:600;background:#f0f0f0}
.profile-table td{background:#fff}
.profile-table ul{margin:0;padding-left:1.15em}
.profile-table li{margin:0 0 5px}
.profile-table li:last-child{margin-bottom:0}
.profile-table a{text-decoration:underline;text-underline-offset:3px}

/* CONTACT */
.contact-section{background:#f1f1f1;padding-top:74px;padding-bottom:74px}
.contact-box{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.contact-box h2{margin:0 0 10px;font-size:clamp(30px,4vw,46px);font-weight:500}
.contact-box p:last-child{margin:0;color:#666;line-height:1.8}
.contact-button{
  min-width:260px;height:58px;padding:0 24px;background:#1f1f1f;color:#fff;
  display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;letter-spacing:.04em
}

/* FOOTER - common with TOP */
.site-footer.footer-network{
  position:relative;isolation:isolate;overflow:hidden;background:#000;
  border-top:1px solid rgba(255,255,255,.14);color:#fff;padding:48px 0 20px
}
#footer-network-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.footer-network-wash{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.22)),
             radial-gradient(circle at 72% 20%,rgba(0,117,255,.08),rgba(0,0,0,0) 68%)
}
.footer-grid,.copyright{position:relative;z-index:2}
.footer-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:30px;align-items:start}
.footer-brand-logo{display:block;width:190px;height:auto}
.footer-brand p,.footer-info p{margin:8px 0;color:#fff;font-size:11px}
.footer-grid nav{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;font-size:10px}
.footer-info{text-align:right}
.copyright{border-top:1px solid rgba(255,255,255,.22);margin-top:28px;padding-top:16px;font-size:9px;color:#fff}

@media(max-width:980px){
  .desktop-nav{display:none}
  .menu-toggle{display:block}
  .intro-grid,.profile-grid{grid-template-columns:1fr;gap:34px}
  .timeline{grid-template-columns:1fr;gap:0}
  .profile-head{position:static}
  .contact-box{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-grid nav{justify-content:flex-start}
  .footer-info{text-align:left}
}

@media(max-width:640px){
  :root{--header-h:76px}
  .container{width:min(calc(100% - 32px),var(--max))}
  .brand-logo{width:156px}
  .site-header.menu-open{background:#050c12;border-color:transparent}
  .site-header.menu-open .brand-logo{filter:brightness(0) invert(1)}
  .about-hero{height:540px;min-height:0}
  .hero-image{object-position:55% 43%}
  .hero-overlay{background:linear-gradient(90deg,rgba(3,10,17,.77),rgba(3,10,17,.34))}
  .hero-content h1{font-size:39px}
  .hero-zero{font-size:20px;letter-spacing:.25em}
  .section-pad{padding:68px 0}
  .section-label h2{font-size:30px}
  .intro-copy{font-size:14px}
  .timeline-item{grid-template-columns:62px 1fr;gap:22px}
  .timeline-column::before{left:70px}
  .timeline-item::before{left:66px}
  .timeline-item p{font-size:12px}
  .profile-table,.profile-table tbody,.profile-table tr,.profile-table th,.profile-table td{display:block;width:100%}
  .profile-table tr{border-bottom:1px solid #d8d8d8}
  .profile-table th{border:0;padding:13px 14px 5px;background:#f0f0f0;font-size:11px}
  .profile-table td{border:0;padding:7px 14px 15px;background:#fff;font-size:12px}
  .contact-button{width:100%;min-width:0}
  .footer-brand-logo{width:178px}
  .footer-grid nav{font-size:9px}
}
