@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/serif-0.woff2) format('truetype');
}

@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/sans-0.woff2) format('truetype');
}

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600&display=swap');
:root{--bg:#fff;--paper:#f8f6f2;--ink:#152129;--muted:#5d6466;--line:#dedbd4;--accent:#ae8c54;--serif:'Noto Serif JP','Yu Mincho',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9;letter-spacing:.03em}a{color:inherit;text-decoration:none}a:hover{color:#987444}a:focus-visible,button:focus-visible{outline:3px solid #ae8c54;outline-offset:5px}p{margin:0 0 1.3em}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:.04em}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.7;margin:0 0 28px}h3{line-height:1.7}img{max-width:100%}.site-header{position:relative;z-index:30;background:#fff;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 3%;backdrop-filter:none}.wordmark{display:flex;gap:13px;align-items:center;white-space:nowrap;font-family:var(--serif);font-size:25px;letter-spacing:.13em;line-height:1.4;font-weight:600}.wordmark small{display:block;font-family:Georgia,serif;font-size:10px;letter-spacing:.29em;margin-top:4px}.star{color:var(--accent);font-size:48px;line-height:1}#site-nav{display:flex;align-items:center;gap:27px;font-size:13px;white-space:nowrap}.contact-link{background:var(--ink);color:white;padding:12px 22px}.menu-toggle{display:none}.skip-link{position:absolute;left:20px;top:-100px;z-index:99;background:white}.skip-link:focus{top:10px}.homepage section{border:0}.brand-hero{min-height:600px;padding:0;position:relative;display:flex;align-items:center;overflow:hidden;background:#faf9f6}.hero-copy{position:relative;z-index:2;width:57%;padding:58px 0 60px 5%;pointer-events:none}.hero-copy a{pointer-events:auto}.script-note{font-family:Georgia,serif;font-style:italic;color:#ad8e61;font-size:21px;letter-spacing:.06em;margin-bottom:28px}.brand-hero h1{font-size:clamp(38px,4.25vw,68px);line-height:1.52;letter-spacing:.055em;margin:0 0 24px}.brand-hero h1 span{color:var(--accent)}.hero-sub{font-family:var(--serif);font-size:clamp(15px,1.25vw,19px);line-height:2}.hero-visual{position:absolute;right:0;top:0;bottom:0;width:65%}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#faf9f6 0%,rgba(250,249,246,.95) 8%,rgba(250,249,246,.5) 23%,transparent 38%)}.image-caption{position:absolute;bottom:20px;right:30px;z-index:1;font-family:var(--serif);font-size:22px;color:#fff;text-shadow:0 1px 10px #000}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;background:var(--ink);color:#fff;padding:15px 26px;font-family:var(--serif);font-size:15px;border:1px solid var(--ink);margin-top:8px}.button:hover{background:#34434a;color:#fff}.mobile-break{display:none}.service-index{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 4%;border-bottom:1px solid var(--line);gap:28px}.service-index a{font-family:var(--serif);font-size:16px;border-right:1px solid var(--line);padding-right:20px}.service-index a:last-child{border:0}.service-index span{display:block;color:var(--accent);font-family:Georgia,serif;font-size:30px;line-height:1.3;margin-bottom:10px}.service-index small{font-size:10px;letter-spacing:.1em;margin-left:12px;color:var(--ink)}.section-shell{padding:90px max(6%,calc((100% - 1280px)/2));margin:0}.eyebrow{font-family:Georgia,serif;font-size:12px;letter-spacing:.17em;color:#9a7847;margin:0 0 20px}.support{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:70px}.support h2{font-size:31px}.support p{max-width:590px}.audiences{list-style:none;display:flex;flex-wrap:wrap;gap:10px 24px;padding:20px 0 0;border-top:1px solid var(--line);font-size:14px;margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px}.philosophy{padding-top:115px;padding-bottom:100px}.philosophy h2{font-size:clamp(34px,4vw,55px);line-height:1.7}.philosophy em{font-style:normal;color:var(--accent)}.intro{font-family:var(--serif);font-size:26px}.steps{padding:12px 0 0;list-style:none}.steps li{display:flex;gap:25px;border-top:1px solid var(--line);padding:20px 0 5px}.steps li>span{font-family:Georgia,serif;color:var(--accent);font-size:24px}.steps b{font-weight:500}.steps p{font-size:14px;color:var(--muted);margin-top:3px}.services{background:var(--paper)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:35px}.text-link{font-size:14px;display:inline-block;border-bottom:1px solid #a98b5c;padding-bottom:7px}.service{display:grid;grid-template-columns:75px 1fr 1.2fr;gap:40px;padding:40px 0;border-top:1px solid #d3cfc6}.service-num{font-family:Georgia,serif;font-size:42px;color:var(--accent);line-height:1.2}.service .eyebrow{font-size:11px;margin-bottom:10px}.service h3{font-size:28px;margin:0}.service p{font-size:15px}.service-links{display:grid;gap:5px}.service-links a{font-size:13px;display:flex;justify-content:space-between;gap:15px;padding:7px 0;border-bottom:1px solid var(--line)}.project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:45px}.project-list>a{border-top:2px solid var(--accent);padding:25px 0}.project-list span,.reading-links span{font-family:Georgia,serif;color:#927447;font-size:12px;letter-spacing:.07em}.project-list h3{font-size:24px;margin:18px 0}.project-list p{font-size:14px;color:var(--muted)}.project-list b{font-size:13px;font-weight:500}.project-note{font-size:12px;color:var(--muted)}.representative{display:grid;grid-template-columns:1fr 1fr;gap:70px;background:#f5f3ee}.representative h2{font-size:33px}.signature{margin:32px 0;font-size:13px}.signature strong{font-family:var(--serif);font-size:31px;font-weight:500;letter-spacing:.15em;display:inline-block;margin-top:12px}.signature small{display:inline-block;font-family:Georgia,serif;margin-left:20px;color:#9a7847;letter-spacing:.12em}.official{margin-left:20px}.reading-links{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}.reading-links>a{border-top:1px solid var(--line);padding-top:25px}.reading-links h3{font-size:21px}.reading-links p{font-size:14px;color:var(--muted)}.company-block{border-top:1px solid var(--line)!important}.company-block dl{margin:0}.company-block dl>div{display:grid;grid-template-columns:110px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:16px 0;font-size:14px}.company-block dt{color:var(--muted)}.company-block dd{margin:0}.closing{text-align:center;background:#eeeae1;padding:75px 24px 80px}.closing h2{font-size:clamp(26px,3vw,42px)}.closing p{font-size:15px}.closing>div{display:flex;justify-content:center;gap:30px;margin-top:28px;font-size:13px}.site-footer{padding:50px 6% 25px;background:#152129;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:30px;font-size:13px}.footer-brand{font-family:var(--serif);font-size:23px}.site-footer p{color:#c0c5c7;font-size:12px;margin-top:12px}.site-footer nav{display:flex;flex-wrap:wrap;gap:15px 25px;align-content:start}.site-footer>small{grid-column:1/-1;color:#c0c5c7;font-size:10px;letter-spacing:.1em}.preserved-message{padding:60px 0}.preserved-message h2{font-size:32px}
body:not(.homepage){background:#fcfbf8}body:not(.homepage) h1{font-family:var(--serif);font-size:clamp(32px,5vw,65px);line-height:1.6;letter-spacing:.03em}body:not(.homepage) h2{font-size:clamp(27px,4vw,42px);line-height:1.65}body:not(.homepage) .hero{min-height:0;padding:70px 0;background:#f7f5ef}body:not(.homepage) .hero:after{display:none}body:not(.homepage) .lead{font-size:clamp(18px,2vw,25px);line-height:1.9}body:not(.homepage) .card{background:#fff;border-top:1px solid #c9b590}body:not(.homepage) .btn{font-size:15px}body:not(.homepage) main{overflow-wrap:anywhere}
@media(min-width:1600px){.brand-hero{min-height:700px}.hero-copy{padding-left:max(5%,calc((100% - 1500px)/2))}}
@media(max-width:1100px){#site-nav{gap:16px;font-size:12px}.wordmark{font-size:20px}.contact-link{padding:10px 13px}.hero-copy{width:62%}.brand-hero{min-height:550px}.service-index{gap:15px}.service-index small{display:block;margin:3px 0}.section-shell{padding:65px 5%}.split,.support,.representative{gap:40px}.service{grid-template-columns:50px 1fr 1.1fr;gap:20px}.service h3{font-size:24px}}
@media(max-width:800px){html{scroll-padding-top:20px}.site-header{padding:16px 5%;flex-wrap:wrap;gap:12px}.wordmark{font-size:20px}.wordmark small{font-size:8px}.star{font-size:38px}.menu-toggle{display:block;border:1px solid #ccc;background:white;padding:10px 12px;color:var(--ink);font-size:12px}#site-nav{display:none;width:100%;padding:20px 0;white-space:normal}#site-nav.is-open{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:14px}#site-nav .contact-link{grid-column:1/-1;text-align:center}.brand-hero{display:flex;flex-direction:column;min-height:0}.hero-copy{width:100%;padding:34px 6% 32px;pointer-events:auto}.script-note{font-size:15px;margin-bottom:18px}.brand-hero h1{font-size:clamp(31px,7.5vw,54px);line-height:1.6;letter-spacing:.025em;margin-bottom:18px}.hero-sub{font-size:14px;line-height:2}.mobile-break{display:block}.hero-visual{position:relative;width:100%;height:auto;aspect-ratio:1.65}.hero-visual img{display:block;object-fit:cover}.hero-visual:after{background:linear-gradient(0deg,rgba(0,0,0,.28),transparent 35%)}.image-caption{font-size:18px;right:18px;bottom:12px}.button{font-size:14px;min-height:48px;padding:12px 22px}.service-index{grid-template-columns:1fr 1fr;gap:24px 20px;padding:28px 6%}.service-index a{font-size:13px;padding:0 10px 0 0}.service-index a:nth-child(2){border:0}.service-index span{font-size:25px}.service-index small{font-size:9px}.section-shell{padding:55px 6%}.support,.split,.representative{grid-template-columns:1fr;gap:20px}.support h2,.representative h2{font-size:25px}.support p{font-size:15px}.eyebrow{font-size:11px;margin-bottom:17px}.philosophy h2{font-size:34px}.intro{font-size:24px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:27px}.section-heading .text-link{margin-top:0}.service{grid-template-columns:40px 1fr;gap:10px 16px;padding:30px 0}.service>div:last-child{grid-column:2}.service-num{font-size:31px}.service h3{font-size:24px}.service h3 br{display:none}.service p{font-size:14px}.project-list,.reading-links{grid-template-columns:1fr;gap:0;margin-top:20px}.project-list>a{padding:24px 0 30px}.reading-links>a{padding:24px 0 12px}.signature small{font-size:10px}.official{margin:15px 0 0;display:table}.company-block dl>div{grid-template-columns:85px 1fr;gap:14px;font-size:13px}.closing{padding:55px 6%}.closing h2{font-size:25px}.closing>div{gap:15px;flex-wrap:wrap}.site-footer{grid-template-columns:1fr;padding:35px 6% 20px}.footer-brand{font-size:21px}.site-footer nav{font-size:12px}.site-footer>small{grid-column:1}body:not(.homepage) .hero{padding:45px 0}body:not(.homepage) .service-row{grid-template-columns:35px 1fr;gap:12px}body:not(.homepage) .service-row .arrow{display:none}body:not(.homepage) .three{grid-template-columns:1fr}body:not(.homepage) main{padding-top:40px}body:not(.homepage) .company{grid-template-columns:90px 1fr}.preserved-message{padding:30px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
button,input,textarea,select{font-family:inherit}

.service-row .num{white-space:nowrap;font-size:25px;letter-spacing:0}

/* Approved six-person hero: show the complete artwork on desktop. */
.balanced-hero{display:block;min-height:0;overflow:hidden}
.balanced-hero .hero-visual{position:relative;width:100%;height:auto;aspect-ratio:auto}
.balanced-hero .hero-visual img{display:block;width:100%;height:auto;object-fit:contain}
.balanced-hero .hero-visual:after,.balanced-hero .image-caption{display:none}
@media(min-width:801px){
.balanced-hero .hero-copy{position:absolute;inset:0;width:100%;padding:0}
.balanced-hero .hero-copy>p,.balanced-hero h1{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.balanced-hero .hero-copy .button{position:absolute;left:2.7%;top:83.7%;width:20.6%;height:9.6%;margin:0;padding:0;border:0;background:transparent;color:transparent;font-size:0}
.balanced-hero .hero-copy .button span{visibility:hidden}
.balanced-hero .hero-copy .button:hover{background:rgba(255,255,255,.12)}
}
@media(max-width:800px){
.balanced-hero .hero-copy{position:relative;width:100%;padding:34px 6% 32px}
.balanced-hero .hero-visual{width:100%;aspect-ratio:1238/845;overflow:hidden;clip-path:polygon(10.2% 0,100% 0,100% 100%,0 100%)}
.balanced-hero .hero-visual img{position:absolute;right:0;top:0;width:150.4%;max-width:none;height:100%;object-fit:fill}
}
