@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&family=Noto+Serif+JP:wght@500;600&display=swap');
:root{--ink:#151513;--paper:#f4f1e9;--white:#ffffff;--muted:#777268;--line:rgba(21,21,19,.17);--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:22px 4vw;color:var(--white);mix-blend-mode:difference}.brand{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.14em;font-weight:600}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid currentColor;border-radius:50%;font-family:"Noto Serif JP",serif;font-size:16px}.nav{display:flex;align-items:center;gap:26px;font-size:11px;letter-spacing:.14em}.nav a{opacity:.88}.nav-cta{padding-bottom:5px;border-bottom:1px solid currentColor}

.header-right {
  display: flex;
  align-items: center;
  gap: 24px;
}

.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 10px;
  letter-spacing: .12em;
}

.lang-button {
  appearance: none;
  padding: 4px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  color: inherit;
  background: transparent;
  font: inherit;
  letter-spacing: inherit;
  cursor: pointer;
  opacity: .55;
}

.lang-button:hover,
.lang-button:focus-visible {
  opacity: 1;
}

.lang-button.is-active {
  border-bottom-color: currentColor;
  opacity: 1;
}

.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);background:#20211e}.hero-media{position:absolute;inset:0;background:url("assets/forest.webp") center/cover no-repeat;transform:scale(1.02)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.76),rgba(0,0,0,.08) 62%),linear-gradient(to right,rgba(0,0,0,.28),transparent 62%)}.hero-inner{position:relative;z-index:2;width:min(var(--max),92vw);margin:0 auto;padding:0 0 10vh}.eyebrow,.section-label{margin:0 0 24px;font-size:11px;letter-spacing:.18em;font-weight:600}.hero h1{max-width:960px;margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(42px,7.2vw,102px);line-height:1.16;letter-spacing:-.04em;font-weight:500}.hero-copy{margin:32px 0 0;font-size:clamp(14px,1.5vw,18px);line-height:1.9;letter-spacing:.04em}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 25px;border:1px solid transparent;font-size:13px;letter-spacing:.06em;transition:transform .25s ease,background .25s ease,color .25s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--white);color:var(--ink)}.button-ghost{border-color:rgba(255,255,255,.55);color:var(--white)}.button-light{background:var(--paper);color:var(--ink)}.scroll-cue{position:absolute;z-index:2;right:4vw;bottom:4.2vh;display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.18em;writing-mode:vertical-rl}.scroll-line{display:block;width:1px;height:54px;background:rgba(255,255,255,.8)}
.section{width:min(var(--max),92vw);margin:0 auto;padding:135px 0}.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:start}.intro h2,.section-heading h2,.about h2{margin:0;font-family:"Noto Serif JP",serif;font-weight:500;letter-spacing:-.03em}.intro h2{font-size:clamp(30px,4.5vw,62px);line-height:1.45}.intro-grid p{margin:0 0 20px;font-size:15px;line-height:2.1;color:#46433d}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:50px}.section-heading h2,.about h2{font-size:clamp(34px,4vw,58px)}.section-note{margin:0 0 8px;color:var(--muted);font-size:12px;letter-spacing:.05em}
.work,.service,.process,.about{border-top:1px solid var(--line)}.work-block+.work-block{margin-top:100px}.work-subhead{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px;padding-bottom:16px;border-bottom:1px solid var(--line)}.work-subhead span{font-size:12px;letter-spacing:.18em;font-weight:600}.work-subhead p{margin:0;color:#5b574f;font-size:13px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 28px}.work-card{min-width:0}.work-frame{margin:0;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:16px;background:#ffffff;border:1px solid #e8e8e8;box-shadow:0 1px 0 rgba(0,0,0,.03)}.work-frame img{width:100%;height:100%;object-fit:contain;object-position:center}.work-meta{margin-top:16px}.work-type{margin:0;color:var(--muted);font-size:10px;letter-spacing:.14em}.work-meta h3{margin:8px 0 0;font-family:"Noto Serif JP",serif;font-size:24px;font-weight:500}.work-caption{max-width:520px;margin:10px 0 0;color:#5b574f;font-size:12px;line-height:1.8}.work-disclosure{max-width:760px;margin:72px 0 0 auto;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.8}
.service-list{border-top:1px solid var(--line);padding-top:16px}.service-item{display:grid;grid-template-columns:100px 1fr;gap:28px;padding:35px 28px;border:1px solid var(--line);background:#ffffff;margin-bottom:16px}.service-number{margin:3px 0 0;color:var(--muted);font-size:11px;letter-spacing:.12em}.service-item h3{margin:0 0 12px;font-family:"Noto Serif JP",serif;font-size:clamp(25px,3vw,38px);font-weight:500}.service-item p:last-child{max-width:760px;margin:0;color:#57534b;line-height:1.9;font-size:14px}

.english-service {
  border-top: 1px solid var(--line);
}

.english-intro {
  max-width: 820px;
  margin-bottom: 45px;
}

.english-intro p {
  margin: 0;
  color: #4e4a43;
  font-size: 15px;
  line-height: 2;
}

.english-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.english-card {
  min-height: 440px;
  padding: 28px;
  border: 1px solid var(--line);
  background: #ffffff;
}

.english-number {
  margin: 0 0 46px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: .14em;
}

.english-card h3 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.35;
  font-weight: 500;
}

.english-lead {
  margin: 18px 0 24px;
  color: #4e4a43;
  font-size: 13px;
  line-height: 1.9;
}

.english-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.english-card li {
  position: relative;
  padding: 12px 0 12px 17px;
  border-bottom: 1px solid var(--line);
  color: #5b574f;
  font-size: 12px;
  line-height: 1.7;
}

.english-card li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--muted);
}

.english-note {
  max-width: 820px;
  margin: 40px 0 0 auto;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.english-note p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.9;
}

.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0;padding:0;list-style:none}.process-grid li{min-height:285px;padding:26px;border:1px solid var(--line);background:#ffffff}.process-grid span{color:var(--muted);font-size:10px;letter-spacing:.12em}.process-grid h3{margin:58px 0 14px;font-family:"Noto Serif JP",serif;font-size:24px;font-weight:500}.process-grid p{margin:0;color:#5d5951;font-size:13px;line-height:1.9}
.about{display:grid;grid-template-columns:.42fr 1fr;gap:10vw;align-items:start}.about-index{position:sticky;top:120px;min-height:420px;padding:28px;border:1px solid var(--line)}.about-photo-frame{margin:0 auto;width:100%;max-width:520px;border:1px solid var(--line);background:#fff;padding:14px;box-sizing:border-box}.about-photo-frame img{display:block;width:100%;height:auto}.about-photo-index{position:relative}.about-photo-number{position:absolute;top:34px;left:34px;z-index:2;font-family:"Noto Serif JP",serif;font-size:clamp(70px,9vw,140px);line-height:.8;color:rgba(231,225,212,.86);pointer-events:none}.about-photo-label{position:absolute;right:30px;bottom:28px;z-index:2;font-size:10px;letter-spacing:.18em;writing-mode:vertical-rl;color:rgba(255,255,255,.92);text-shadow:0 1px 4px rgba(0,0,0,.35);pointer-events:none}.about-role{margin:10px 0 35px;color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.about-copy>p:not(.about-role){margin:0 0 20px;max-width:760px;color:#4e4a43;font-size:14px;line-height:2}.about-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:36px}.about-links a{padding-bottom:4px;border-bottom:1px solid var(--line);font-size:12px}
.contact{padding:130px 4vw;text-align:center;color:var(--white);background:var(--ink)}.contact h2{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(42px,6vw,84px);line-height:1.3;font-weight:500;letter-spacing:-.04em}.contact>p:not(.eyebrow):not(.contact-small):not(.contact-email){margin:30px auto 38px;max-width:670px;color:rgba(255,255,255,.72);font-size:14px;line-height:1.9}.contact-email{margin:24px 0 0;font-size:12px;letter-spacing:.04em}.contact-small{margin:10px 0 0;color:rgba(255,255,255,.48);font-size:10px}.footer{display:flex;justify-content:space-between;gap:20px;padding:28px 4vw;background:var(--ink);color:rgba(255,255,255,.45);border-top:1px solid rgba(255,255,255,.12);font-size:10px;letter-spacing:.08em}.footer p{margin:0}
@media (max-width:860px){.site-header{padding:18px 20px}.header-right{gap:14px}.language-switch{gap:5px}.nav a:not(.nav-cta){display:none}.brand-text{display:none}.hero-inner{width:calc(100% - 40px);padding-bottom:12vh}.hero h1{font-size:clamp(39px,12vw,62px)}.desktop-only{display:none}.section{width:calc(100% - 40px);padding:90px 0}.intro-grid,.about,.work-grid{grid-template-columns:1fr;gap:50px}.intro h2{font-size:34px}.section-heading,.work-subhead{display:block}.section-note,.work-subhead p{margin-top:15px}.service-item{grid-template-columns:50px 1fr;gap:15px;padding:24px 18px}.process-grid{grid-template-columns:1fr 1fr}.about-index{position:static;min-height:auto}.contact{padding:95px 20px}}
@media (max-width:560px){.hero-actions .button{width:100%}.scroll-cue{display:none}.process-grid{grid-template-columns:1fr}.process-grid li{min-height:180px}.process-grid h3{margin-top:35px}.footer{display:block}.footer p+p{margin-top:8px}}
