:root { --paper:#f3f1ea; --ink:#18302a; --green:#29443d; --muted:#777b73; --line:rgba(24,48,42,.24); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; padding-top:72px; background:var(--paper); color:var(--ink); font-family:"Helvetica Neue","Noto Sans JP",Arial,sans-serif; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; height:100%; object-fit:cover; }
.site-header { height:72px; padding:0 3.2vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(243,241,234,.96); backdrop-filter:blur(12px); position:fixed; z-index:1000; top:0; left:0; right:0; }
.brand { display:flex; align-items:center; gap:13px; }
.header-symbol { width:34px; height:34px; overflow:hidden; display:block; }
.header-symbol img { object-fit:contain; mix-blend-mode:multiply; }
.wordmark { font-size:22px; font-weight:500; letter-spacing:.32em; white-space:nowrap; }
.wordmark small, footer small { font-size:.52em; letter-spacing:.08em; }
.desktop-nav { display:flex; align-items:center; gap:3.5vw; font-family:Georgia,serif; font-size:14px; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:currentColor; transition:right .3s ease; }
.desktop-nav a:hover::after { right:0; }
.menu-button { display:none; border:0; background:transparent; color:inherit; padding:12px 0 12px 12px; text-transform:uppercase; font:500 11px/1 "Helvetica Neue",sans-serif; letter-spacing:.2em; align-items:center; gap:12px; cursor:pointer; }
.menu-icon { position:relative; width:26px; height:12px; display:block; }
.menu-icon::before,.menu-icon::after { content:""; position:absolute; left:0; width:100%; height:1px; background:currentColor; transition:transform .3s ease,top .3s ease; }
.menu-icon::before { top:2px; } .menu-icon::after { top:10px; }
.menu-button[aria-expanded="true"] .menu-icon::before { top:6px; transform:rotate(45deg); }
.menu-button[aria-expanded="true"] .menu-icon::after { top:6px; transform:rotate(-45deg); }
.mobile-nav { position:fixed; z-index:999; inset:72px 0 0; padding:7vh 8vw; background:var(--paper); flex-direction:column; align-items:stretch; overflow:auto; }
.mobile-nav:not([hidden]) { display:flex; }
.mobile-nav a { display:grid; grid-template-columns:42px 1fr; padding:20px 0; border-bottom:1px solid var(--line); font-family:"Yu Mincho",serif; font-size:clamp(22px,5vw,34px); }
.mobile-nav a span { font:11px Georgia,serif; padding-top:8px; }
.hero { min-height:calc(100vh - 72px); display:grid; grid-template-columns:55% 45%; overflow:hidden; }
.hero-copy { min-height:740px; position:relative; padding:9vw 7vw 5vw 15.5vw; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.eyebrow { margin:0 0 32px; font-size:11px; letter-spacing:.3em; font-weight:500; }
h1,h2 { font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif; font-weight:400; letter-spacing:.035em; }
h1 { position:relative; z-index:2; margin:0; font-size:clamp(44px,4vw,68px); line-height:1.48; }
.hero-lead { max-width:520px; margin:44px 0 38px; font-family:"Yu Mincho","Noto Serif JP",serif; font-size:14px; line-height:2.15; }
.text-link { min-width:240px; padding:14px 0; display:flex; justify-content:space-between; border-bottom:1px solid currentColor; font-size:12px; letter-spacing:.14em; }
.hero-calligraphy { position:absolute; z-index:0; left:-4vw; bottom:-16%; width:38vw; height:auto; opacity:.14; mix-blend-mode:multiply; }
.slide-index { position:absolute; left:3vw; bottom:30px; font-family:Georgia,serif; font-size:12px; letter-spacing:.12em; }
.hero-image { position:relative; margin:0; overflow:hidden; }
.hero-image img { object-position:center center; animation:hero-in 1.2s ease-out both; }
.hero-image figcaption { position:absolute; right:24px; bottom:22px; color:white; font-size:9px; letter-spacing:.25em; writing-mode:vertical-rl; }
@keyframes hero-in { from { opacity:.3; transform:scale(1.025); } to { opacity:1; transform:scale(1); } }
.section { padding:130px 7vw; display:grid; grid-template-columns:8% 42% 50%; }
.section-number { font-family:Georgia,serif; font-size:12px; }
.section h2 { margin:0; font-size:clamp(36px,3.6vw,58px); line-height:1.6; }
.intro-body { max-width:570px; padding:54px 0 0 6vw; font-family:"Yu Mincho","Noto Serif JP",serif; font-size:15px; line-height:2.1; }
.intro-body p { margin:0 0 28px; }
.small-copy { color:#5c635d; font-size:13px; }
.image-band { display:grid; grid-template-columns:66% 34%; height:70vh; min-height:560px; gap:10px; padding:0 10px; }
.image-band figure { margin:0; overflow:hidden; }
.dark { background:#172721; color:#f0eee6; }
.business { grid-template-columns:8% 42% 50%; }
.business-list { padding-left:5vw; }
.business-list article { display:grid; grid-template-columns:42px 1fr; column-gap:20px; padding:25px 0; border-top:1px solid rgba(255,255,255,.25); }
.business-list article:last-child { border-bottom:1px solid rgba(255,255,255,.25); }
.business-list span { font-family:Georgia,serif; font-size:11px; }
.business-list h3 { margin:0 0 12px; font-family:"Yu Mincho",serif; font-size:22px; font-weight:400; }
.business-list p { grid-column:2; margin:0; color:#b9c1bc; font-size:12px; line-height:1.8; }
.muku { display:grid; grid-template-columns:55% 45%; min-height:790px; }
.muku-image { min-height:650px; }
.muku-copy { padding:11vw 8vw; background:#e5e2d9; }
.muku-copy h2 { margin:0 0 42px; font-size:clamp(36px,3.5vw,56px); }
.muku-copy > p:not(.eyebrow) { font-family:"Yu Mincho",serif; line-height:2.1; font-size:14px; }
.muku dl { margin:42px 0; border-top:1px solid var(--line); }
.muku dl div { display:grid; grid-template-columns:90px 1fr; padding:14px 0; border-bottom:1px solid var(--line); font-size:12px; }
.muku dt { font-family:Georgia,serif; }
.muku dd { margin:0; }
.stones-section { height:82vh; min-height:650px; position:relative; overflow:hidden; }
.stones-section::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.55),transparent 62%); }
.stones-caption { position:absolute; z-index:2; left:7vw; bottom:10vh; color:white; }
.stones-caption span { font-size:11px; letter-spacing:.3em; }
.stones-caption p { max-width:560px; margin:22px 0 0; font-family:"Yu Mincho",serif; font-size:clamp(28px,3vw,48px); line-height:1.6; }
.company-list { margin:0; }
.company-list div { display:grid; grid-template-columns:140px 1fr; padding:19px 0; border-top:1px solid var(--line); font-size:13px; }
.company-list div:last-child { border-bottom:1px solid var(--line); }
.company-list dt { color:var(--muted); }
.company-list dd { margin:0; }
footer { min-height:680px; background:#172721; color:#f0eee6; position:relative; padding:120px 8vw 34px; overflow:hidden; }
.footer-mark { position:absolute; right:-4vw; top:-14%; width:52vw; height:auto; opacity:.09; mix-blend-mode:screen; }
.footer-mark img { object-fit:contain; filter:invert(1); }
.footer-copy { position:relative; z-index:2; max-width:760px; }
.footer-copy h2 { margin:0; font-size:clamp(48px,6vw,94px); }
.footer-copy > p:not(.eyebrow) { margin:32px 0; color:#b9c1bc; }
.contact-link { display:inline-flex; gap:80px; padding:18px 0; border-bottom:1px solid currentColor; font-family:Georgia,serif; font-size:20px; }
.footer-bottom { position:absolute; left:8vw; right:8vw; bottom:32px; display:flex; justify-content:space-between; align-items:end; border-top:1px solid rgba(255,255,255,.2); padding-top:22px; font-size:10px; letter-spacing:.12em; }
.footer-bottom span:first-child { font-size:18px; letter-spacing:.28em; }
.company-hero { min-height:620px; padding:120px 8vw 80px; display:grid; grid-template-columns:55% 45%; align-items:center; overflow:hidden; }
.company-hero-copy h1 { margin:0 0 36px; font-size:clamp(56px,7vw,110px); }
.company-hero-copy > p:last-child { max-width:570px; font-family:"Yu Mincho",serif; font-size:15px; line-height:2.1; }
.company-hero-mark { width:42vw; height:42vw; max-width:620px; max-height:620px; opacity:.16; mix-blend-mode:multiply; }
.company-hero-mark img { object-fit:contain; }
.company-detail { padding:120px 8vw 150px; display:grid; grid-template-columns:42% 58%; border-top:1px solid var(--line); }
.company-intro h2 { margin:0; font-size:clamp(34px,3.8vw,58px); }
.company-place { display:grid; grid-template-columns:58% 42%; min-height:650px; background:#e5e2d9; }
.company-place-copy { padding:10vw 7vw; }
.company-place-copy h2 { margin:0 0 38px; font-size:clamp(34px,3.2vw,52px); line-height:1.5; }
.company-place-copy p:last-child { font-family:"Yu Mincho",serif; line-height:2; }
.company-footer { min-height:220px; padding:60px 8vw; display:flex; align-items:end; justify-content:space-between; }
.company-footer .text-link { min-width:220px; }
.contact-section { padding:130px 8vw 150px; display:grid; grid-template-columns:42% 58%; gap:7vw; background:#172721; color:#f0eee6; }
.contact-heading h2 { margin:0 0 30px; font-size:clamp(44px,5vw,78px); line-height:1.45; }
.contact-heading > p:last-child { color:#b9c1bc; line-height:2; }
.contact-form { max-width:760px; }
.form-row { display:grid; grid-template-columns:190px 1fr; gap:22px; padding:18px 0; border-top:1px solid rgba(255,255,255,.25); }
.form-row:last-of-type { border-bottom:1px solid rgba(255,255,255,.25); }
.form-row label { padding-top:12px; font-size:12px; letter-spacing:.06em; }
.form-row label span { margin-left:7px; color:#c9b78f; font-size:10px; }
.form-row input,.form-row select,.form-row textarea { width:100%; border:1px solid rgba(255,255,255,.24); border-radius:0; background:rgba(255,255,255,.04); color:#f0eee6; padding:12px 14px; font:16px/1.7 inherit; }
.form-row select option { color:#172721; }
.form-row textarea { resize:vertical; }
.form-row input:focus,.form-row select:focus,.form-row textarea:focus { outline:2px solid #c9b78f; outline-offset:2px; }
.honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.privacy-check { display:flex; gap:12px; align-items:flex-start; margin:28px 0; font-size:12px; line-height:1.7; }
.privacy-check input { margin-top:4px; }
.privacy-check a { text-decoration:underline; text-underline-offset:3px; }
.submit-button { width:100%; display:flex; justify-content:space-between; border:1px solid #f0eee6; background:transparent; color:#f0eee6; padding:19px 22px; font:500 13px/1 inherit; letter-spacing:.12em; cursor:pointer; transition:.25s; }
.submit-button:hover { background:#f0eee6; color:#172721; }
.form-note { color:#9fa9a3; font-size:10px; line-height:1.7; }
.site-footer { min-height:230px; }
.legal-page,.message-page { max-width:920px; min-height:100vh; margin:0 auto; padding:120px 7vw; }
.legal-page h1,.message-page h1 { font-size:clamp(44px,7vw,82px); }
.legal-page section { margin:80px 0; max-width:760px; }
.legal-page section h2 { margin:48px 0 14px; font-size:22px; }
.legal-page section p,.message-page > p:not(.eyebrow) { line-height:2; }
.policy-date { margin-top:50px; color:var(--muted); font-size:12px; }

@media (max-width:900px) {
  .desktop-nav { display:none; } .menu-button { display:flex; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { min-height:680px; padding:100px 8vw 90px; }
  .hero-image { min-height:64vh; }
  .hero-calligraphy { left:-18vw; width:82vw; }
  .section,.business { grid-template-columns:1fr; gap:36px; padding:90px 8vw; }
  .intro-body,.business-list { padding:0; }
  .section-number { display:none; }
  .image-band { height:auto; min-height:0; grid-template-columns:1fr; }
  .image-band figure { height:55vh; } .image-band figure:last-child { height:38vh; }
  .muku { grid-template-columns:1fr; } .muku-image { min-height:62vh; }
  .muku-copy { padding:90px 8vw; }
  .stones-section { height:70vh; min-height:560px; }
  .company-hero,.company-detail,.company-place { grid-template-columns:1fr; }
  .company-hero { padding:100px 8vw 60px; }
  .company-hero-mark { width:80vw; height:50vw; }
  .company-detail { gap:60px; padding:90px 8vw; }
  .company-place > div:first-child { min-height:60vh; }
  .company-footer { align-items:flex-start; flex-direction:column; gap:50px; }
  .contact-section { grid-template-columns:1fr; padding:90px 8vw 110px; }
  .form-row { grid-template-columns:1fr; gap:7px; }
  .form-row label { padding-top:0; }
}
@media (max-width:560px) {
  body { padding-top:64px; }
  .site-header { height:64px; } .wordmark { font-size:15px; } .header-symbol { width:28px; height:28px; }
  .mobile-nav { inset-top:64px; inset-block-start:64px; }
  .hero-copy { min-height:620px; padding-top:80px; }
  h1 { font-size:36px; line-height:1.55; }
  .hero-lead { font-size:13px; }
  .section h2,.muku-copy h2 { font-size:34px; }
  .business-list article { grid-template-columns:30px 1fr; }
  .company-list div { grid-template-columns:1fr; gap:8px; }
  footer { min-height:580px; padding-top:90px; }
  .contact-link { font-size:15px; gap:40px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { animation:none!important; transition:none!important; } }

.desktop-nav a[aria-current="page"]::after { right:0; }
.home-intro .text-link { margin-top:40px; }
.home-business { padding:110px 7vw 88px; background:#172721; color:#f0eee6; }
.home-business-head { display:grid; grid-template-columns:63% 37%; align-items:end; gap:5vw; margin-bottom:48px; }
.home-business-head h2 { margin:0; font-size:clamp(38px,4vw,62px); line-height:1.38; }
.home-business-head > p { max-width:390px; margin:0 0 8px; color:#bdc6bf; font:14px/2 "Yu Mincho",serif; }
.home-business-layout { display:grid; grid-template-columns:62% 38%; gap:12px; }
.home-business-layout article { position:relative; overflow:hidden; background:#0f1e19; }
.home-business-layout img { position:absolute; inset:0; opacity:.66; transition:transform .5s ease,opacity .5s ease; }
.home-business-layout article:hover img { transform:scale(1.025); opacity:.78; }
.business-primary { min-height:520px; }
.home-business-layout article::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,17,13,.86),rgba(8,17,13,.08) 70%); }
.home-business-layout article > div { position:relative; z-index:1; padding:38px 42px; height:100%; display:flex; flex-direction:column; justify-content:flex-end; }
.home-business-layout span,.business-detail article > div > span { font:12px Georgia,serif; color:#d0d6d1; }
.home-business-layout h3 { margin:16px 0 10px; font:400 clamp(27px,2.7vw,42px)/1.45 "Yu Mincho",serif; }
.home-business-layout p { margin:0; color:#e0e4df; font:13px/1.85 "Yu Mincho",serif; }
.home-business-layout a { display:flex; justify-content:space-between; max-width:250px; padding-top:24px; margin-top:24px; border-top:1px solid rgba(255,255,255,.5); font-size:12px; letter-spacing:.12em; }
.business-secondary { display:grid; grid-template-rows:1fr 1fr; gap:12px; }.business-secondary article { min-height:254px; }.business-secondary article > div { padding:26px 30px; }.business-secondary h3 { margin:10px 0 6px; font-size:clamp(20px,2vw,28px); }.business-secondary p { color:#d0d6d1; font-size:11px; letter-spacing:.08em; }
.business-all-link { display:flex; justify-content:space-between; max-width:280px; margin:32px 0 0 auto; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.7); font-size:12px; letter-spacing:.14em; }
.feature-stone { min-height:76vh; position:relative; overflow:hidden; color:white; }
.feature-stone::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,.08) 70%); }
.feature-stone > img { position:absolute; inset:0; }.feature-stone > div { position:relative; z-index:1; max-width:750px; padding:13vh 8vw; }.feature-stone h2 { margin:0 0 46px; font-size:clamp(34px,4vw,62px); line-height:1.55; }
.recruit-teaser { display:grid; grid-template-columns:48% 52%; min-height:640px; background:#e5e2d9; }.recruit-teaser > div { padding:10vw 8vw; }.recruit-teaser h2 { margin:0 0 30px; font-size:clamp(36px,3.8vw,58px); line-height:1.55; }.recruit-teaser > div > p:not(.eyebrow) { line-height:2; font-family:"Yu Mincho",serif; margin-bottom:42px; }.recruit-teaser > img { min-height:520px; }
.recruit-only { display:none; }.recruit-only.is-visible { display:grid; }
.page-heading { padding:130px 8vw 80px; border-bottom:1px solid var(--line); }.page-heading h1 { margin:0; font-size:clamp(56px,7vw,108px); }.page-heading > p:last-child { margin:28px 0 0; font:15px/2 "Yu Mincho",serif; }.page-wide-image { height:min(56vw,710px); margin:0; }.about-image img { object-position:center 58%; }
.statement { padding:130px 8vw; display:grid; grid-template-columns:48% 52%; gap:6vw; }.statement h2 { margin:0; font-size:clamp(42px,4.4vw,72px); line-height:1.55; }.statement div { max-width:560px; padding-top:12px; font:16px/2.2 "Yu Mincho",serif; }.statement p { margin:0 0 28px; }
.history { padding:110px 8vw 140px; background:#172721; color:#f0eee6; }.history h2 { margin:0 0 60px; font-size:clamp(38px,4vw,62px); }.history dl { margin:0; max-width:1100px; }.history dl div { display:grid; grid-template-columns:180px 1fr; padding:26px 0; border-top:1px solid rgba(255,255,255,.22); }.history dl div:last-child { border-bottom:1px solid rgba(255,255,255,.22); }.history dt { font:30px Georgia,serif; }.history dd { margin:0; padding-top:9px; font:15px/1.8 "Yu Mincho",serif; }
.business-heading { padding-bottom:100px; }.business-detail article { display:grid; grid-template-columns:52% 48%; min-height:720px; border-bottom:1px solid var(--line); }.business-detail article:nth-child(even) { direction:rtl; background:#e5e2d9; }.business-detail article:nth-child(even) > * { direction:ltr; }.business-detail figure { margin:0; min-height:640px; }.business-detail article > div { padding:9vw 8vw; }.business-detail h2 { margin:35px 0 32px; font-size:clamp(36px,3.7vw,58px); line-height:1.5; }.business-detail h3 { margin:0 0 18px; font:400 22px/1.5 "Yu Mincho",serif; }.business-detail p { font:15px/2.1 "Yu Mincho",serif; margin:0 0 24px; }.business-detail dl { border-top:1px solid var(--line); margin:32px 0; }.business-detail dl div { display:grid; grid-template-columns:90px 1fr; padding:12px 0; border-bottom:1px solid var(--line); font-size:12px; }.business-detail dt { font-family:Georgia,serif; }.business-detail dd { margin:0; }.link-row { display:flex; gap:28px; }.link-row a { border-bottom:1px solid currentColor; padding-bottom:8px; font:12px Georgia,serif; letter-spacing:.1em; }.link-row span { margin-left:14px; }.node-pair { display:grid; grid-template-rows:1fr 1fr; gap:8px; background:var(--paper); }.node-pair img { min-height:0; }
.recruit-hero { height:min(70vw,760px); min-height:580px; position:relative; color:#f0eee6; overflow:hidden; }.recruit-hero::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.46); }.recruit-hero > img { position:absolute; inset:0; }.recruit-hero > div { position:absolute; z-index:1; left:8vw; bottom:13%; }.recruit-hero h1 { margin:0; font-size:clamp(48px,5vw,82px); line-height:1.48; }.recruit-message { padding:130px 8vw; display:grid; grid-template-columns:46% 54%; gap:7vw; }.recruit-message h2 { margin:0; font-size:clamp(40px,4.2vw,68px); line-height:1.55; }.recruit-message div { max-width:600px; font:16px/2.2 "Yu Mincho",serif; }.recruit-message p { margin:0 0 26px; }.job-detail { padding:110px 8vw 140px; background:#e5e2d9; }.job-detail h2 { margin:0 0 54px; font-size:clamp(40px,4vw,64px); }.job-detail dl { margin:0 0 56px; max-width:1100px; }.job-detail dl div { display:grid; grid-template-columns:220px 1fr; gap:20px; padding:25px 0; border-top:1px solid var(--line); }.job-detail dl div:last-child { border-bottom:1px solid var(--line); }.job-detail dt { color:var(--muted); font-size:13px; }.job-detail dd { margin:0; font:15px/2 "Yu Mincho",serif; }.tag { display:inline-block; border:1px solid var(--green); padding:5px 10px; margin-right:8px; font:11px/1 inherit; }.button-link { display:flex; justify-content:space-between; max-width:520px; padding:20px 24px; background:#172721; color:#f0eee6; font-size:13px; letter-spacing:.1em; }
.map-section { height:500px; }.map-section iframe { width:100%; height:100%; border:0; filter:grayscale(1) contrast(.9); }.company-pdf { padding:130px 8vw 150px; }.company-pdf h2 { margin:0 0 25px; font-size:clamp(38px,4vw,62px); }.company-pdf p:not(.eyebrow) { max-width:560px; margin:0 0 42px; font:15px/2 "Yu Mincho",serif; }
@media (max-width:900px) { .home-business { padding:90px 8vw 70px; }.home-business-head,.home-business-layout { grid-template-columns:1fr; }.home-business-head { gap:24px; }.home-business-head > p { max-width:560px; }.business-primary { min-height:58vh; }.business-secondary { grid-template-columns:1fr 1fr; grid-template-rows:none; }.business-secondary article { min-height:320px; }.recruit-teaser > img { min-height:55vh; }.statement,.business-detail article,.recruit-message { grid-template-columns:1fr; }.statement { gap:44px; padding:90px 8vw; }.history { padding:90px 8vw; }.history dl div,.job-detail dl div { grid-template-columns:1fr; gap:10px; }.business-detail article:nth-child(even) { direction:ltr; }.business-detail figure { min-height:58vh; }.business-detail article > div { padding:75px 8vw; }.recruit-hero { min-height:560px; height:75vh; }.recruit-message { gap:45px; padding:90px 8vw; }.job-detail { padding:90px 8vw; }.page-heading { padding:100px 8vw 60px; }.page-wide-image { height:55vh; }.map-section { height:420px; } }
@media (max-width:560px) { .home-business { padding:72px 6vw 56px; }.home-business-head h2 { font-size:34px; }.business-primary { min-height:460px; }.business-secondary { grid-template-columns:1fr; }.business-secondary article { min-height:240px; }.home-business-layout article > div { padding:24px; }.home-business-layout h3 { font-size:26px; }.business-secondary h3 { font-size:22px; }.business-all-link { margin-top:24px; }.feature-stone > div { padding:90px 8vw; }.feature-stone h2 { font-size:32px; }.statement h2,.recruit-message h2 { font-size:36px; }.page-heading h1 { font-size:54px; }.business-detail h2 { font-size:34px; }.link-row { flex-direction:column; gap:16px; align-items:flex-start; } }
