@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&display=swap');
:root{--ink:#24142e;--purple:#51365f;--lilac:#aa90b7;--paper:#f6f3f0;--line:#d9d1d8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #c39ed5;outline-offset:5px}.skip{position:absolute;left:-9999px;z-index:10}.skip:focus{left:1rem;top:1rem;background:white;padding:.5rem 1rem}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,90px);background:#fff;position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px;font-family:'Noto Serif JP',serif;font-size:17px;font-weight:700;line-height:1.2;white-space:nowrap}.brand small{display:block;margin-top:5px;font:500 9px/1.1 'Noto Sans JP',sans-serif;letter-spacing:.18em}.brand-mark{width:42px;height:42px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:400}.site-header nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,44px);font-size:12px;font-weight:600}.site-header nav a:hover,.text-link:hover{opacity:.64}.nav-accent{border-bottom:1px solid currentColor;padding-bottom:5px}.hero{min-height:min(730px,calc(100svh - 88px));position:relative;overflow:hidden;background:radial-gradient(circle at 70% 28%,#604368 0,#35223d 38%,#201328 80%);color:#fff}.hero-art{position:absolute;inset:0;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:680px;height:680px;right:-6%;top:-23%;background:radial-gradient(circle at 36% 38%,#806b8c 0,#5d466e 32%,#302039 67%,transparent 69%);opacity:.65}.orb-two{width:530px;height:530px;right:14%;bottom:-60%;border:1px solid #aa90b755;box-shadow:0 0 0 70px #a990b707,0 0 0 150px #a990b706}.line-art{position:absolute;width:800px;height:800px;right:-17%;top:-40%;border:1px solid #bd9fc239;border-radius:50%;box-shadow:0 0 0 90px #aa90b70d,0 0 0 220px #aa90b70a}.huge-kanji{font:400 clamp(360px,48vw,700px)/1 'Noto Serif JP',serif;position:absolute;right:5%;top:5%;color:#ffffff0b;transform:rotate(-11deg)}.hero-inner{position:relative;max-width:1250px;margin:auto;padding:clamp(100px,15vh,155px) 7% 145px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.23em;color:#815d90;margin:0 0 25px}.eyebrow.light{color:#c4a9cd}.hero h1,.intro h2,.access h2{font-family:'Noto Serif JP',serif;font-weight:500;letter-spacing:.08em;line-height:1.45}.hero h1{font-size:clamp(45px,6vw,82px);margin:0 0 26px}.hero-copy{font-size:clamp(14px,1.4vw,17px);line-height:2.2;color:#eee4f0;margin:0 0 43px}.text-link{display:inline-flex;gap:45px;align-items:center;border-bottom:1px solid currentColor;padding:0 0 9px;font-weight:600;font-size:13px;transition:opacity .2s}.light-link{color:#fff}.hero-foot{position:absolute;bottom:33px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.22em;color:#cab9cf}.section-wrap{max-width:1340px;margin:auto;padding-left:clamp(24px,6vw,100px);padding-right:clamp(24px,6vw,100px)}.intro,.company{display:grid;grid-template-columns:180px 1fr;gap:6%;padding-top:145px;padding-bottom:150px}.section-side{display:flex;flex-direction:column;gap:28px;align-items:flex-start}.section-no{font-size:11px;letter-spacing:.18em;color:#775c80;white-space:nowrap}.vertical-rule{width:1px;height:135px;background:var(--line)}h2{margin:0}.intro h2{font-size:clamp(31px,3.6vw,50px);margin-bottom:54px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:820px}.intro-grid p{margin:0;font-size:14px;line-height:2.4}.signature{text-align:right;max-width:820px;margin-top:52px;font-family:'Noto Serif JP',serif;font-size:14px}.business{background:#eae3e9;padding:120px 0 140px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px}.section-head h2,.company h2{font-family:'Noto Serif JP',serif;font-size:clamp(32px,3vw,44px);font-weight:500}.section-head>p{font-size:13px;line-height:2;margin:0}.business-list{border-top:1px solid #c9bdca}.business-list article{display:grid;grid-template-columns:80px 1fr 70px;gap:20px;align-items:center;padding:32px 15px;border-bottom:1px solid #c9bdca}.business-num{color:#937b9d;font-size:12px}.business-list h3{font-family:'Noto Serif JP',serif;font-weight:500;font-size:clamp(24px,2.4vw,33px);margin:0}.business-list p{font-size:10px;letter-spacing:.22em;color:#806a87;margin:2px 0 0}.business-icon{justify-self:end;font-size:38px;font-weight:300;color:#9b829e}.company h2{margin-bottom:38px}.company dl{margin:0;border-top:1px solid var(--line);max-width:870px}.company dl>div{display:grid;grid-template-columns:175px 1fr;gap:20px;padding:21px 12px;border-bottom:1px solid var(--line);font-size:14px}.company dt{color:#7d7180}.company dd{margin:0}.access{background:#2a1b33;color:white;overflow:hidden}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;min-height:480px}.access h2{font-size:clamp(34px,4.5vw,59px);margin:0 0 24px}.access p:not(.eyebrow){font-size:14px;color:#dfd3e2;line-height:2.2;margin-bottom:28px}.access-art{height:100%;min-height:400px;display:grid;place-items:center;position:relative}.access-art:before,.access-art:after{content:'';position:absolute;width:1px;height:150%;background:#ffffff12;transform:rotate(45deg)}.access-art:after{transform:rotate(-45deg)}.access-art>span{position:absolute;right:0;bottom:44px;font-size:10px;letter-spacing:.15em;color:#bdabca}.access-circle{width:min(330px,70%);aspect-ratio:1;border:1px solid #b19dbb77;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 45px #a190ad12,0 0 0 100px #a190ad08;background:radial-gradient(circle,#66487388,#31203900 68%)}.access-circle span{font-family:'Noto Serif JP',serif;font-size:34px;letter-spacing:.25em;margin-left:.25em}footer{background:#1b1122;color:white;padding:48px clamp(24px,6vw,100px) 25px}.footer-top,.footer-bottom{max-width:1140px;margin:auto;display:flex;justify-content:space-between;align-items:center}.footer-top>a:last-child{font-size:11px;letter-spacing:.1em;border-bottom:1px solid #aaa;padding-bottom:7px}.footer-bottom{border-top:1px solid #ffffff25;margin-top:58px;padding-top:22px;color:#ad9cb6;font-size:10px;letter-spacing:.12em}@media(max-width:750px){.site-header{height:72px;padding:0 20px}.brand{font-size:13px}.brand-mark{width:35px;height:35px;font-size:16px}.brand small{font-size:7px}.site-header nav{gap:14px;font-size:10px}.site-header nav a:not(.nav-accent){display:none}.hero{min-height:680px}.hero-inner{padding:145px 7% 145px}.hero h1{font-size:clamp(43px,10vw,66px)}.hero-copy br{display:none}.hero-copy{max-width:310px}.huge-kanji{top:23%;right:-20%;font-size:470px}.orb-one{right:-85%;top:-5%}.intro,.company{display:block;padding-top:85px;padding-bottom:95px}.section-side{margin-bottom:35px}.vertical-rule{display:none}.intro h2{margin-bottom:30px}.intro-grid{display:block}.intro-grid p+p{margin-top:15px}.signature{text-align:left;margin-top:35px}.business{padding:80px 0 95px}.section-head{display:block}.section-head>p{margin-top:18px}.business-list article{grid-template-columns:35px 1fr 35px;padding:23px 4px;gap:8px}.business-icon{font-size:25px}.company dl>div{grid-template-columns:105px 1fr;gap:12px;padding:18px 3px;font-size:12px}.access-grid{display:block;padding-top:90px;padding-bottom:55px}.access-art{min-height:280px}.access-circle{width:190px}.access-circle span{font-size:25px}.access-art>span{bottom:0}.footer-top,.footer-bottom{gap:20px}.footer-bottom{margin-top:43px}.footer-top>a:last-child{font-size:9px}}

/* Readability and section rhythm, 2026-10-23 */
body{font-size:16px;line-height:1.9;font-weight:400}
.site-header{height:84px}
.brand{font-size:19px}
.brand small{font-size:10px;letter-spacing:.15em}
.site-header nav{font-size:14px;gap:clamp(20px,2.8vw,42px)}
.eyebrow{font-size:12px;letter-spacing:.2em;margin-bottom:20px}
.hero{min-height:min(680px,calc(100svh - 84px))}
.hero-inner{padding-top:clamp(105px,14vh,145px);padding-bottom:125px}
.hero h1{font-size:clamp(48px,5.7vw,76px);line-height:1.48;margin-bottom:25px}
.hero-copy{font-size:clamp(17px,1.45vw,19px);line-height:2;max-width:720px;margin-bottom:33px}
.text-link{font-size:15px}
.hero-foot{font-size:11px}
.intro,.company{grid-template-columns:145px minmax(0,1fr);gap:5%;padding-top:110px;padding-bottom:115px}
.section-no{font-size:12px}
.vertical-rule{height:105px}
.intro h2{font-size:clamp(34px,3.5vw,48px);margin-bottom:34px;line-height:1.5}
.intro-grid{gap:42px}
.intro-grid p{font-size:16px;line-height:2.15}
.signature{font-size:16px;margin-top:36px}
.business{padding:105px 0 112px}
.section-head{margin-bottom:36px}
.section-head h2,.company h2{font-size:clamp(35px,3.2vw,46px)}
.section-head>p{font-size:16px;line-height:1.9}
.business-list article{grid-template-columns:72px minmax(0,1fr) 48px;gap:16px;padding:27px 12px}
.business-list h3{font-size:clamp(24px,2.2vw,31px);line-height:1.5}
.business-list p{font-size:12px;line-height:1.5;letter-spacing:.16em;margin-top:5px}
.business-icon{font-size:30px}
.company h2{margin-bottom:28px}
.company dl>div{font-size:16px;line-height:1.8;padding:18px 12px}
.company dd{overflow-wrap:anywhere}
.access-grid{min-height:420px;gap:45px}
.access h2{font-size:clamp(38px,4.3vw,56px);margin-bottom:20px}
.access p:not(.eyebrow){font-size:16px;line-height:2.05;margin-bottom:0}
footer{padding-top:43px}
.footer-top>a:last-child{font-size:13px}
.footer-bottom{font-size:12px;margin-top:42px}
@media(max-width:750px){
  .site-header{height:72px;padding:0 20px;gap:14px}
  .brand{font-size:15px;gap:9px}
  .brand-mark{width:38px;height:38px;font-size:18px}
  .brand small{font-size:8px}
  .site-header nav{font-size:12px;gap:0}
  .site-header nav a:not([href="#business"]){display:none}
  .hero{min-height:620px}
  .hero-inner{padding:115px 7% 120px}
  .hero h1{font-size:clamp(42px,10.8vw,59px);line-height:1.48}
  .hero-copy{font-size:16px;line-height:2;max-width:360px}
  .hero-foot{font-size:10px}
  .eyebrow{font-size:11px;margin-bottom:17px}
  .intro,.company{padding-top:80px;padding-bottom:85px}
  .section-side{margin-bottom:24px}
  .intro h2{font-size:clamp(30px,8vw,39px);margin-bottom:24px}
  .intro-grid p{font-size:16px;line-height:2}
  .intro-grid p+p{margin-top:20px}
  .signature{font-size:15px;margin-top:26px}
  .business{padding:80px 0 85px}
  .section-head{margin-bottom:30px}
  .section-head h2,.company h2{font-size:35px}
  .section-head>p{font-size:15px;line-height:1.8;margin-top:13px}
  .business-list article{grid-template-columns:32px minmax(0,1fr) 28px;padding:23px 3px;gap:10px}
  .business-list h3{font-size:clamp(20px,5.6vw,26px)}
  .business-list p{font-size:10px;letter-spacing:.08em}
  .business-icon{font-size:23px}
  .company dl>div{grid-template-columns:95px minmax(0,1fr);font-size:15px;gap:10px;padding:19px 3px}
  .access-grid{padding-top:75px;padding-bottom:48px}
  .access h2{font-size:clamp(36px,8.5vw,48px)}
  .access p:not(.eyebrow){font-size:15px;line-height:2}
  .access-art{min-height:240px}
  .footer-top>a:last-child{font-size:11px}
  .footer-bottom{font-size:10px}
}
@media(max-width:370px){
  .site-header{padding-inline:15px}
  .brand{font-size:13px}
  .brand-mark{width:35px;height:35px}
  .site-header nav{font-size:11px}
  .company dl>div{grid-template-columns:85px minmax(0,1fr)}
}

body{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}
.hero h1,.intro h2,.section-head h2,.company h2,.access h2,.business-list h3{font-family:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif}
