:root{--ink:#141814;--paper:#DDE1D5;--muted:#8C947F;--rule:rgba(126,142,104,.28);
      --straw:#C6AA76;--measure:31rem}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);
  font-family:"Zen Kaku Gothic New",system-ui,sans-serif;font-weight:300;
  font-size:clamp(1rem,.95rem + .25vw,1.08rem);line-height:1.85;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:auto}

.hero{position:relative;min-height:100svh;overflow:hidden;display:flex;align-items:flex-end}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 40%}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(12,16,12,.93) 0%,rgba(12,16,12,.45) 35%,rgba(12,16,12,.05) 70%)}
.hero-text{position:relative;z-index:2;padding:0 6vw 9vh;
  animation:rise 1.5s cubic-bezier(.2,.7,.3,1) both .3s}
@keyframes rise{from{opacity:0;transform:translateY(1.4rem)}to{opacity:1;transform:none}}
.mark-svg{width:3rem;height:3rem;margin:0 0 1.5rem;display:block;fill:#F0F2E8;opacity:.95}
.mark{font-family:"Shippori Mincho",serif;font-weight:500;
  font-size:clamp(2.5rem,10.5vw,4.2rem);line-height:1.15;
  margin:0;color:#F0F2E8;text-shadow:0 1px 24px rgba(0,0,0,.5)}
.mark .lg{letter-spacing:.12em}
.mark .sm{font-size:0.88em;letter-spacing:.12em;padding:0 .06em}
.roman{font-family:"Shippori Mincho",serif;color:var(--straw);
  letter-spacing:.22em;font-size:.78rem;margin:1.3rem 0 0}

.block{padding:clamp(4.5rem,13vh,8rem) 6vw;max-width:calc(var(--measure) + 12vw)}
.block p{margin:0 0 1.1em}
.block p:last-child{margin-bottom:0}
.lede p{font-family:"Shippori Mincho",serif;
  font-size:clamp(1.18rem,1.05rem + .8vw,1.55rem);line-height:1.7;margin-bottom:.6em}
h2{font-family:"Shippori Mincho",serif;font-weight:400;
  font-size:clamp(1.3rem,1.2rem + .4vw,1.6rem);letter-spacing:.03em;margin:0 0 1.6rem;color:#EDEFE4}
.quiet{color:var(--muted)}
a{color:var(--straw);text-underline-offset:.25em;text-decoration-thickness:1px}
a:focus-visible{outline:2px solid var(--straw);outline-offset:4px}

figure{margin:0}
figure img{max-height:80svh;object-fit:cover}
figcaption{padding:.85rem 6vw 0;color:var(--muted);font-size:.8rem;
  letter-spacing:.04em;line-height:1.7;max-width:44rem}

.places{list-style:none;margin:0 0 1.8rem;padding:0}
.places li{padding:.95rem 0;border-top:1px solid var(--rule);
  font-family:"Shippori Mincho",serif;font-size:1.08rem;color:#EDEFE4}
.places li:last-child{border-bottom:1px solid var(--rule)}

.contact{position:relative;isolation:isolate;padding:clamp(7rem,20vh,12rem) 6vw}
.contact img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.contact::before{content:"";position:absolute;inset:0;background:rgba(14,19,14,.72);z-index:-1}
.contact-inner{max-width:var(--measure)}
.mail{font-family:"Shippori Mincho",serif;
  font-size:clamp(1.2rem,1.05rem + 1vw,1.7rem);display:inline-block;margin-top:.4rem}
footer{padding:3rem 6vw 4rem;color:var(--muted);font-size:.78rem;letter-spacing:.05em;
  display:flex;align-items:center;gap:1rem}
footer svg{width:1.7rem;height:1.7rem;fill:var(--muted);flex:none}
@media (prefers-reduced-motion:reduce){.hero-text{animation:none}}
