
:root{--ink:#232323;--muted:#666;--line:#d9dcdd;--paper:#fff;--soft:#f1f3f3;--en:'Space Grotesk',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:16px;line-height:1.9;letter-spacing:.02em}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #245bdf;outline-offset:6px}button{font:inherit}.en{font-family:var(--en);letter-spacing:-.025em}.preview{font-size:12px;line-height:1.6;text-align:center;background:var(--soft);padding:9px 20px;color:var(--muted)}.wrap{max-width:1336px;padding:0 48px;margin:auto}.skip{position:absolute;top:-100px;background:white;padding:16px;z-index:5}.skip:focus{top:0}header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px 0}.wordmark{font-family:var(--en);font-size:36px;font-weight:600;letter-spacing:-.07em}nav{display:flex;gap:30px;align-items:center;flex-wrap:wrap;font:500 13px var(--en);letter-spacing:.02em}nav a{padding:12px 0}.nav-contact{border-bottom:1px solid var(--ink)}.hero{padding:88px 0 88px;position:relative}.eyebrow{font:500 12px var(--en);letter-spacing:.13em;margin:0 0 25px}.hero-title{font:500 clamp(64px,8.7vw,124px)/1.02 var(--en);letter-spacing:-.065em;margin:0 0 46px;max-width:1000px}.hero-title span{display:block}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.hero h1{font-size:clamp(25px,2.8vw,38px);font-weight:700;line-height:1.6;letter-spacing:.035em;margin:0}.hero p.intro{font-size:16px;line-height:2;margin:0 0 25px;max-width:39em}.text-link{display:inline-flex;gap:44px;align-items:center;border-bottom:1px solid #555;min-height:44px;font-size:14px;font-weight:500}.text-link:hover{color:#536575}.visual{height:270px;overflow:hidden;position:relative;background:#edf0f1;border:1px solid #e5e8e9;isolation:isolate}.visual:before,.visual:after{content:'';position:absolute;border:1px solid #aab9be;width:72%;height:230%;left:10%;top:-70%;border-radius:50%;transform:rotate(-25deg)}.visual:after{left:37%;top:-30%;transform:rotate(30deg);border-color:#c1ccce}.visual .orbit{position:absolute;inset:-55% 25%;border:1px solid #84979f;border-radius:50%;transform:rotate(48deg)}.visual-caption{position:absolute;bottom:24px;left:32px;font:500 12px var(--en);letter-spacing:.12em}.section{padding:104px 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-bottom:48px}.section-head h2{font:600 clamp(32px,4.2vw,54px)/1.15 var(--en);letter-spacing:-.04em;margin:0}.section-head p{margin:0;max-width:37em;line-height:2}.section-head .jp{display:block;font-family:'Noto Sans JP',sans-serif;font-weight:500;letter-spacing:.02em;font-size:14px;margin-top:16px}.service-list{list-style:none;margin:0;padding:0}.service-list li{display:grid;grid-template-columns:64px 1fr 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--line);align-items:start}.num{font:500 13px var(--en);color:var(--muted)}.service-list h3{font-size:21px;line-height:1.6;font-weight:500;margin:0}.service-list p{font-size:15px;margin:0;color:#535353}.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 28px}.image-slot{aspect-ratio:4/3;background:var(--soft);display:flex;flex-direction:column;justify-content:space-between;padding:25px;color:#667276;border:1px solid #e7eaeb}.image-slot .en{font-size:15px}.image-slot small{font-size:12px;color:#737c80}.work h3{font-size:18px;font-weight:500;line-height:1.7;margin:19px 0 12px;overflow-wrap:anywhere}.work details{font-size:14px}.work summary{cursor:pointer;list-style:none;border-bottom:1px solid var(--line);padding:10px 0;display:flex;justify-content:space-between}.work summary::-webkit-details-marker{display:none}.work details p{line-height:1.9;color:#555}.news-list{list-style:none;padding:0;margin:0}.news-list li{display:grid;grid-template-columns:155px 1fr;gap:24px;padding:26px 0;border-top:1px solid var(--line)}time{font:500 14px var(--en);padding-top:7px;color:var(--muted)}.about-copy{max-width:700px;margin-left:auto}.about-copy h3{font-size:28px;line-height:1.6;margin:0 0 24px}.contact{padding:100px 0 104px}.contact h2{font:500 clamp(54px,8vw,108px)/1.05 var(--en);letter-spacing:-.05em;margin:0 0 34px}.contact-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact p{margin:0;font-size:19px;line-height:1.9}.cta{display:inline-flex;background:var(--ink);color:white;padding:21px 28px;align-items:center;justify-content:space-between;gap:65px;min-width:290px;font-size:15px}.cta:hover{background:#465259}footer{border-top:1px solid var(--line);padding:28px 0 36px;display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--muted)}.note{font-size:12px;color:var(--muted);margin-top:25px}@media(max-width:960px){nav{gap:19px}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding-top:64px}.hero-bottom,.section-head{gap:32px}.service-list li{grid-template-columns:35px 1fr 1fr;gap:15px}}@media(max-width:640px){.wrap{padding:0 20px}header{align-items:flex-start;flex-direction:column;gap:12px;padding:20px 0}nav{gap:18px;width:100%;font-size:11px;justify-content:space-between}nav a{padding:10px 0}.wordmark{font-size:32px}.hero{padding:48px 0}.hero-title{font-size:clamp(46px,12.2vw,76px);margin-bottom:35px}.hero-bottom,.section-head{grid-template-columns:1fr;gap:24px}.hero h1{font-size:26px}.hero p.intro{font-size:16px}.visual{height:180px}.visual-caption{left:20px;font-size:10px}.section{padding:64px 0}.section-head{margin-bottom:32px}.service-list li{grid-template-columns:25px 1fr;gap:12px;padding:24px 0}.service-list p{grid-column:2;font-size:14px}.service-list h3{font-size:19px}.works-grid{grid-template-columns:1fr;gap:35px}.news-list li{grid-template-columns:1fr;gap:8px;padding:23px 0}.news-list time{font-size:13px}.about-copy h3{font-size:24px}.contact{padding:64px 0}.contact-inner{align-items:stretch;flex-direction:column;gap:28px}.contact p{font-size:17px}.cta{min-width:0}footer{flex-direction:column;gap:6px}.preview{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
