:root{
  --plum:#4a1942;--plum-2:#6b2a5f;--rose:#c8476f;--rose-soft:#fbe9ef;--gold:#d9a441;
  --bg:#fffaf7;--card:#fff;--ink:#2a1a27;--mute:#6f5d6b;--line:#eddde3;
  --shadow:0 10px 30px -12px rgba(74,25,66,.25);--r:18px;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.2;color:var(--plum)}
a{color:var(--rose);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}

/* header */
.top{background:var(--plum);color:#e9d3e4;font-size:.82rem}
.top .wrap{display:flex;justify-content:space-between;gap:12px;padding:7px 20px;flex-wrap:wrap}
.top a{color:#fff}
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,250,247,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:12px;color:var(--plum);font-family:Fraunces,serif;font-weight:700;font-size:1.2rem}
.brand:hover{text-decoration:none}
.brand .mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--rose),var(--plum));color:#fff;display:grid;place-items:center;font-size:.95rem}
.brand small{display:block;font:500 .68rem Inter;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
nav ul{list-style:none;display:flex;gap:2px;padding:0}
nav a{display:block;padding:8px 12px;border-radius:10px;color:var(--ink);font-weight:500;font-size:.92rem}
nav a:hover{background:var(--rose-soft);text-decoration:none}
nav a.on{background:var(--plum);color:#fff}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:1.1rem;cursor:pointer}
@media(max-width:1000px){
  .burger{display:block}
  nav{position:absolute;left:0;right:0;top:68px;background:var(--bg);border-bottom:1px solid var(--line);display:none}
  nav.open{display:block}
  nav ul{flex-direction:column;padding:10px 20px}
}

/* hero */
.hero{background:radial-gradient(1000px 500px at 85% -10%,#8a3a7c55,transparent),linear-gradient(135deg,var(--plum),#2e0f2a);color:#fff;padding:84px 0 110px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-120px;bottom:-160px;width:460px;height:460px;border-radius:50%;border:60px solid #ffffff0d}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.5vw,3.9rem);max-width:760px}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{max-width:600px;margin:18px 0 30px;color:#ecd9e8;font-size:1.1rem}
.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:600;font-size:.95rem;border:0;cursor:pointer;font-family:inherit}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:var(--gold);color:#2a1a27}
.btn-ghost{background:#ffffff1a;color:#fff;margin-left:8px;border:1px solid #ffffff40}
.btn-rose{background:var(--rose);color:#fff}
.stats{margin-top:-62px;position:relative;z-index:2}
.stats .grid{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(4,1fr);padding:26px 10px;border:1px solid var(--line)}
.stat{text-align:center;padding:4px 10px;border-right:1px solid var(--line)}
.stat:last-child{border:0}
.stat b{display:block;font:700 2rem Fraunces,serif;color:var(--rose)}
.stat span{font-size:.85rem;color:var(--mute)}
@media(max-width:640px){.stats .grid{grid-template-columns:1fr 1fr;gap:16px 0}.stat:nth-child(2){border:0}}

/* sections */
section.s{padding:72px 0}
section.alt{background:#fff;border-block:1px solid var(--line)}
.head{max-width:680px;margin-bottom:36px}
.head h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.head p{color:var(--mute);margin-top:10px}
.pagehead{background:linear-gradient(135deg,var(--plum),var(--plum-2));color:#fff;padding:54px 0}
.pagehead h1{color:#fff;font-size:clamp(1.9rem,4vw,2.8rem)}
.pagehead p{color:#ecd9e8;margin-top:8px;max-width:640px}
.crumb{font-size:.82rem;color:#d7b8d1;margin-bottom:8px}.crumb a{color:#fff}
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.g4{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:0 2px 0 #0000000a;transition:.2s}
.card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.card .ic{font-size:1.9rem;width:56px;height:56px;border-radius:16px;background:var(--rose-soft);display:grid;place-items:center;margin-bottom:14px}
.card h3{font-size:1.15rem;margin-bottom:6px}
.card p{color:var(--mute);font-size:.94rem}
.tag{display:inline-block;margin-top:12px;font-size:.78rem;background:var(--rose-soft);color:var(--rose);padding:3px 10px;border-radius:999px;font-weight:600}
.quick a.card{color:inherit;display:block}.quick a.card:hover{text-decoration:none}

/* people */
.person{text-align:center;padding:0;overflow:hidden}
.person .ph{aspect-ratio:4/4.4;overflow:hidden;background:var(--rose-soft)}
.person img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;transition:.4s}
.person:hover img{transform:scale(1.04)}
.person .b{padding:16px 16px 20px}
.person h3{font-size:1.05rem}
.person .role{color:var(--rose);font-weight:600;font-size:.84rem;margin:4px 0 8px;min-height:2.5em}
.person a.m{font-size:.82rem;color:var(--mute);word-break:break-all}
.warden .ph{aspect-ratio:1/1.05}
.pres{border:2px solid var(--gold)}

/* tables & tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.tab{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font:500 .9rem Inter;color:var(--ink)}
.tab.on{background:var(--plum);color:#fff;border-color:var(--plum)}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{width:100%;border-collapse:collapse;min-width:560px}
th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.93rem;vertical-align:top}
th{background:var(--rose-soft);color:var(--plum);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
tr:last-child td{border:0}
td.p{white-space:nowrap;font-weight:600;color:var(--plum)}
.note{background:#fff7e0;border:1px solid #f0dca0;border-radius:12px;padding:12px 16px;font-size:.88rem;color:#6b5314;margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.chip{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 16px;font-size:.88rem}
.chip b{display:block;color:var(--plum)}
ul.rules{padding-left:20px;color:var(--mute)}ul.rules li{margin:7px 0}
.dir{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.dir .d{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.dir .d .i{font-size:1.5rem;width:46px;height:46px;border-radius:12px;background:var(--rose-soft);display:grid;place-items:center;flex:none}
.dir .d b{display:block;font-size:.95rem}
.dir .d a{font:700 1.1rem Fraunces,serif;color:var(--rose)}
.dir small{color:var(--mute)}

/* forms */
form.f{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;display:grid;gap:14px;box-shadow:var(--shadow)}
form.f .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){form.f .row{grid-template-columns:1fr}}
label{font-size:.82rem;font-weight:600;color:var(--plum);display:grid;gap:5px}
input,select,textarea{font:inherit;padding:11px 13px;border:1px solid #dcc9d4;border-radius:10px;background:#fffdfc;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--rose);outline-offset:1px}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}

.notice{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.notice .dt{flex:none;text-align:center;background:var(--rose-soft);border-radius:14px;padding:8px 14px;color:var(--rose);font-weight:700;line-height:1.2}
.notice .dt small{display:block;font-weight:500;color:var(--mute)}
.gal{columns:3 240px;gap:16px}.gal figure{break-inside:avoid;margin-bottom:16px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.gal figcaption{padding:8px 12px;font-size:.85rem;color:var(--mute);background:#fff}
.empty{text-align:center;padding:50px 20px;background:#fff;border:2px dashed var(--line);border-radius:var(--r);color:var(--mute)}
.poster img{border-radius:var(--r);box-shadow:var(--shadow)}

footer{background:#2e0f2a;color:#cdb2c8;padding:56px 0 24px;margin-top:0;font-size:.92rem}
footer h4{color:#fff;font-family:Fraunces,serif;margin-bottom:12px}
footer a{color:#e9d3e4}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}
footer ul{list-style:none;padding:0}footer li{margin:6px 0}
footer .cp{border-top:1px solid #ffffff1f;margin-top:34px;padding-top:18px;font-size:.8rem}
@media print{.top,header.nav,footer{display:none}}

/* slider */
.hero{padding:0;min-height:560px;display:flex;align-items:center}
.hero:after{display:none}
.slides,.slide,.shade{position:absolute;inset:0}
.slide{opacity:0;transition:opacity 1s ease;background:var(--img) center/cover}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.slide.contain{background:var(--img) center/cover}
.slide.contain:before{content:"";position:absolute;inset:0;backdrop-filter:blur(22px) brightness(.6)}
.slide.contain img{position:relative;width:auto;max-width:46%;height:auto;max-height:78%;object-fit:contain;position:absolute;right:7%;top:50%;transform:translateY(-50%);border:6px solid #fff;border-radius:6px;box-shadow:0 20px 50px #0008;filter:sepia(.15)}
.shade{background:linear-gradient(90deg,rgba(46,15,42,.9) 0%,rgba(46,15,42,.62) 48%,rgba(46,15,42,.15) 100%),linear-gradient(0deg,rgba(46,15,42,.65),transparent 35%)}
.hero-in{position:relative;padding-top:70px;padding-bottom:130px}
.ctl{position:absolute;left:0;right:0;bottom:84px;margin:auto;display:flex;align-items:center;gap:14px;color:#f3e3ef;font-size:.85rem}
.ctl #cap{flex:1}
.dots{display:flex;gap:8px}
.dots button{width:10px;height:10px;border-radius:999px;border:0;background:#ffffff66;cursor:pointer;padding:0;transition:.3s}
.dots button.on{width:28px;background:var(--gold)}
.arr{width:38px;height:38px;border-radius:50%;border:1px solid #ffffff55;background:#ffffff1f;color:#fff;font-size:1.3rem;cursor:pointer;line-height:1}
.arr:hover{background:#ffffff40}
@media(max-width:760px){.slide.contain img{max-width:80%;right:10%;top:auto;bottom:140px;transform:none;max-height:30%}.hero{min-height:620px}.ctl #cap{display:none}.ctl{justify-content:center}}
.hero h1{max-width:620px}
.slide.contain img{max-width:29%;right:5%}
@media(max-width:760px){.slide.contain img{max-width:80%}}
.hero-in{width:100%}
.slide.contain img{max-width:30%;right:6%;max-height:76%}
.slide.contain img{max-height:64%;top:46%}
