@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cormorant-500i.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cormorant-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/cormorant-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/cormorant-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --ink:#1a1a1a;--muted:#5f6368;--rule:#e4ddd0;--bg:#f5f1e9;--paper:#fffdf8;
  --night:#1a1f26;--accent:#1f4e79;--gold:#b08d57;--soft:#efe8db;
  --sans:"Inter","Noto Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --serif:"Cormorant Garamond","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.75 var(--sans);color:var(--ink);background-color:var(--bg);
  background-image:radial-gradient(rgba(60,45,20,.045) 1px,transparent 1.2px);background-size:5px 5px}
html[lang=ja] body{line-height:1.85}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:#163a5c}
img{max-width:100%;height:auto;display:block}

/* header */
header.site{background:var(--night);color:#fff;border-bottom:3px solid var(--gold)}
.bar{max-width:1120px;margin:0 auto;padding:14px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 32px}
.logo,.flogo{font:700 28px/1 var(--serif);color:#fff;text-decoration:none;letter-spacing:.3px}
.logo span,.flogo span{font-size:.55em;font-weight:600;color:var(--gold);margin-left:10px;letter-spacing:2px}
nav{display:flex;flex-wrap:wrap;gap:4px 22px;margin-left:auto}
nav a{color:#e9e4da;text-decoration:none;font-size:15px;font-weight:500;padding:6px 0;border-bottom:2px solid transparent}
nav a:hover{color:#fff;border-bottom-color:rgba(176,141,87,.6)}
nav a[aria-current]{color:#fff;border-bottom-color:var(--gold)}
@media(max-width:700px){nav{margin-left:0;gap:2px 18px}.bar{padding:12px 16px}}

/* hero */
.hero{position:relative;background:var(--night) center/cover no-repeat;color:#fff;min-height:min(70vh,620px);display:flex;align-items:flex-end}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,31,38,.15) 0%,rgba(26,31,38,.55) 55%,rgba(26,31,38,.88) 100%)}
.hin{position:relative;max-width:1120px;width:100%;margin:0 auto;padding:56px 16px 88px}
.kick{margin:0 0 14px;font:italic 500 clamp(17px,2vw,21px)/1.4 var(--serif);letter-spacing:.3px;color:#ead7b4}
.hero h1{margin:0;font:700 clamp(32px,5.4vw,58px)/1.2 var(--serif);max-width:15em;color:#fff}
.hsub{margin:14px 0 0;font:600 clamp(17px,2.2vw,22px)/1.6 var(--serif);color:#efe9de}
.band{height:clamp(160px,26vw,280px);background:var(--night) center/cover no-repeat;position:relative}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,31,38,.1),rgba(26,31,38,.45))}

/* main paper */
main{overflow-wrap:anywhere;max-width:820px;margin:40px auto 64px;padding:44px 52px;background:var(--paper);
  border:1px solid var(--rule);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px rgba(60,45,20,.07)}
.band+main{margin-top:-64px;position:relative}
main.wide{max-width:1120px}
main.home{max-width:1120px;background:transparent;border:0;box-shadow:none;padding:0 16px;margin-top:-48px;position:relative}
@media(max-width:700px){main{margin:20px 12px 40px;padding:28px 20px;border-radius:12px}.band+main{margin-top:-40px}main.home{margin:-32px auto 40px;padding:0 12px}}

/* type */
h1,h2,h3,h4{font-family:var(--serif);color:var(--night);font-weight:700}
h1.t{font-size:clamp(28px,4vw,40px);line-height:1.3;margin:0 0 6px}
h2{font-size:clamp(22px,2.6vw,27px);line-height:1.4;margin:1.8em 0 .5em}
h3{font-size:21px;line-height:1.45;margin:1.6em 0 .4em}
h4{font-size:18px;margin:1.4em 0 .2em}
main>h2:first-child{margin-top:0}
p{margin:.75em 0}
ul{padding-left:1.25em}li{margin:.35em 0}
.meta{color:var(--muted);font-size:15px;margin:0 0 1.6em;padding-bottom:1.2em;border-bottom:1px solid var(--rule)}
.back{font-size:15px;margin:0 0 18px}.back a{text-decoration:none}
figure{margin:1.4em 0}
main figure img{border-radius:10px}
.adj{font-size:15px;color:var(--muted);border-top:1px solid var(--rule);padding-top:12px}

/* home */
.intro{background:var(--paper);border:1px solid var(--rule);border-radius:16px;padding:40px 48px;box-shadow:0 12px 32px rgba(60,45,20,.08)}
.lead{font-size:19px;line-height:1.75;margin:0 0 .8em}
.lead.ja{font-size:17px;line-height:1.9;color:#33373d}
.facts{list-style:none;padding:24px 0 0;margin:28px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--rule)}
.facts li{margin:0}.facts b{display:block;font:700 30px/1.1 var(--serif);color:var(--accent)}
.facts span{font-size:14px;color:var(--muted);line-height:1.5}
.sec{margin:56px 0 18px}
.more{margin:36px 0 16px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;background:var(--night);color:#fff;text-decoration:none;font-weight:600;font-size:15px;padding:11px 22px;border-radius:999px}
.btn:hover{background:var(--accent);color:#fff}
.btn.ghost{background:transparent;color:var(--night);border:1.5px solid var(--night)}
.btn.ghost:hover{background:var(--night);color:#fff}
@media(max-width:700px){.intro{padding:26px 20px}.lead{font-size:17px}.facts{grid-template-columns:1fr;gap:12px}}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px}
.card{text-decoration:none;color:inherit;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule);
  border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(60,45,20,.06);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(60,45,20,.12)}
.card img,.card .ph{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--soft)}
.card .ph{display:flex;align-items:center;justify-content:center;font:700 34px var(--serif);color:var(--gold);background:var(--night)}
.card h2,.card h3{font-size:18px;line-height:1.45;margin:14px 18px 4px}
.card span{color:var(--muted);font-size:14px;margin:0 18px 16px}
.cb{display:flex;flex-direction:column}
main.wide .cards{margin-top:8px}
@media(max-width:400px){.cards{grid-template-columns:1fr}}

/* events list */
.events{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.events li{margin:0;padding:18px 22px;border:1px solid var(--rule);border-left:4px solid var(--gold);border-radius:10px;background:#fff}
.events a{font-weight:600;font-size:18px;text-decoration:none;color:var(--night)}
.events a:hover{color:var(--accent)}
.events span{display:block;color:var(--muted);font-size:14px;margin-top:4px}

/* team */
.people{display:grid;gap:36px;margin-top:24px}
.person{display:grid;grid-template-columns:260px 1fr;gap:12px 36px;align-items:start;padding-bottom:36px;border-bottom:1px solid var(--rule)}
.person:last-child{border-bottom:0;padding-bottom:0}
.person>img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.1)}
.person h2{margin:0 0 6px;font-size:25px}
.role{color:var(--muted);font-size:15px;line-height:1.7}
@media(max-width:700px){.person{grid-template-columns:1fr}.person>img{max-width:260px}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:20px}
.gal figure{margin:0}
.gal a{display:block;border-radius:12px;overflow:hidden}
.gal img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;transition:transform .2s}
.gal a:hover img{transform:scale(1.02)}
@media(max-width:640px){.gal{grid-template-columns:1fr}}

/* footer */
footer{background:var(--night);color:#d9d4ca;border-top:3px solid var(--gold);font-size:15px}
.fwrap{max-width:1120px;margin:0 auto;padding:36px 16px 40px;display:flex;flex-wrap:wrap;gap:20px 48px;align-items:center;justify-content:space-between}
.fwrap p{margin:.2em 0}
.fsub{color:#a9a39a;font-size:13px;margin-top:8px!important}
footer a{color:#fff}
.fsoc .ic{display:inline-flex;color:#fff;opacity:.85}.fsoc .ic:hover{opacity:1}
@media(max-width:700px){.hero{background-image:url(img/02976c_f42ca7bb14494c6098ed437be6f6581a-w960.jpg)!important}}
