:root{
  --bg:#f7f6f3;
  --paper:#fbfaf7;
  --ink:#22201d;
  --muted:#77736b;
  --line:#d8d3ca;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  background:var(--bg);
  color:var(--ink);
  letter-spacing:.04em;
  line-height:1.9;
}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:10;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:34px 56px;
  mix-blend-mode:multiply;
}
.logo,.footer-logo{font-size:22px;letter-spacing:.35em;font-weight:600}
.nav{display:flex;gap:36px;font-size:14px}
.nav a{position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:.3s}
.nav a:hover::after{width:100%}
.menu-button{display:none;background:none;border:0;font:inherit;letter-spacing:.08em}
.hero{
  position:relative;
  min-height:100vh;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#e7e7e2;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(247,246,243,.12), rgba(20,25,24,.16));
}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(.88) brightness(1.03)}
.hero-copy{position:relative;z-index:1;text-align:center;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.22);padding:0 24px}
.hero-copy h1{font-size:clamp(34px,5vw,58px);font-weight:400;letter-spacing:.18em;margin:0 0 12px}
.hero-copy p{font-size:clamp(13px,1.8vw,18px);margin:0;letter-spacing:.16em}
.scroll{position:absolute;z-index:1;bottom:54px;left:50%;transform:translateX(-50%);font-size:13px;color:#fff;text-align:center}
.scroll::after{content:"";display:block;width:1px;height:36px;background:#fff;margin:10px auto 0;opacity:.7}
.section{max-width:var(--max);margin:0 auto;padding:112px 42px}
.section-title{display:flex;align-items:center;gap:22px;margin-bottom:44px}
.section-title h2{font-size:34px;font-weight:400;letter-spacing:.22em;margin:0}
.section-title span{width:44px;height:1px;background:var(--ink);opacity:.65}
.filter{display:flex;gap:34px;justify-content:center;margin:-58px 0 38px;font-size:12px;color:var(--muted)}
.filter button{font:inherit;color:inherit;background:none;border:0;padding:6px 0;cursor:pointer;position:relative}
.filter .active{color:var(--ink)}
.filter .active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gallery figure{margin:0;position:relative;overflow:hidden;background:#ddd;aspect-ratio:4/3;transition:.4s}
.gallery figure.is-hidden{display:none}
.gallery img{height:100%;object-fit:cover;filter:saturate(.78) contrast(.9);transition:transform .7s ease, filter .7s ease}
.gallery figure:hover img{transform:scale(1.035);filter:saturate(.9) contrast(.95)}
.gallery figcaption{position:absolute;left:14px;bottom:10px;color:#fff;font-size:12px;opacity:0;text-shadow:0 2px 12px rgba(0,0,0,.3);transition:.3s}
.gallery figure:hover figcaption{opacity:1}
.about-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:86px;align-items:center}
.about-grid img{max-width:430px;margin:auto;filter:saturate(.72) contrast(.9)}
.about-text{max-width:430px;font-size:14px;color:#4a4742}
.about-text .lead{font-size:20px;color:var(--ink);line-height:2.1;margin-bottom:28px}
.name{margin-top:42px;font-size:13px;color:var(--muted)}
.contact-grid{grid-template-columns:320px 1fr;gap:80px}
.contact-text{font-size:14px;color:#4a4742}
.contact-text a{border-bottom:1px solid rgba(34,32,29,.28)}
.sns{display:flex;gap:28px;margin-top:46px}
.contact-grid img{filter:saturate(.65) contrast(.9)}
.footer{padding:80px 24px 88px;text-align:center;background:linear-gradient(rgba(247,246,243,.2), rgba(247,246,243,.82)), url('../images/footer.jpg') center/cover;color:#2b2926}
.footer p{margin:8px 0;font-size:12px}.footer-logo{font-size:24px;margin-bottom:18px!important}
.back-to-top{position:fixed;right:26px;bottom:26px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(34,32,29,.16);background:rgba(251,250,247,.85);backdrop-filter:blur(8px);cursor:pointer;opacity:0;pointer-events:none;transition:.3s}.back-to-top.show{opacity:1;pointer-events:auto}
@media (max-width:760px){
  body{letter-spacing:.03em}
  .site-header{padding:22px 22px}.logo{font-size:18px}.nav{position:fixed;right:18px;top:62px;background:rgba(251,250,247,.9);backdrop-filter:blur(12px);padding:20px 22px;flex-direction:column;gap:14px;box-shadow:0 16px 42px rgba(0,0,0,.08);opacity:0;transform:translateY(-8px);pointer-events:none;transition:.25s}.nav.open{opacity:1;transform:translateY(0);pointer-events:auto}.menu-button{display:block;font-size:12px;color:var(--ink)}
  .hero{min-height:92vh}.hero-copy h1{letter-spacing:.13em}.hero-copy p{line-height:2;letter-spacing:.08em}.scroll{bottom:34px}
  .section{padding:78px 22px}.section-title{margin-bottom:28px}.section-title h2{font-size:28px}.filter{justify-content:flex-start;overflow-x:auto;gap:22px;margin:0 0 28px;padding-bottom:4px}.gallery{grid-template-columns:1fr;gap:12px}.gallery figure{aspect-ratio:4/3}.about-grid,.contact-grid{grid-template-columns:1fr;gap:34px}.about-grid img{max-width:100%;}.about-text{font-size:13px}.about-text .lead{font-size:17px}.contact-grid img{order:-1}.sns{margin-top:32px}.footer{padding:64px 24px 72px}.back-to-top{right:18px;bottom:18px}
}
