
:root{
  --ink:#0b0908;
  --ink-soft:#17110d;
  --wood:#24150d;
  --wine:#4b1720;
  --wine-light:#762a37;
  --gold:#c99a4b;
  --gold-light:#ebc985;
  --cream:#f2e7cf;
  --paper:#e7d4ad;
  --muted:#cbbd9f;
  --line:rgba(201,154,75,.45);
  --shadow:0 18px 60px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--cream);
  background:
    radial-gradient(circle at 20% 0%,rgba(110,61,28,.16),transparent 34rem),
    radial-gradient(circle at 85% 18%,rgba(91,27,36,.18),transparent 32rem),
    linear-gradient(180deg,#080706,#100b08 58%,#090706);
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.7;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;opacity:.16;z-index:-1;
  background-image:
    linear-gradient(30deg,rgba(255,255,255,.025) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.025) 87.5%),
    linear-gradient(150deg,rgba(255,255,255,.025) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.025) 87.5%);
  background-size:42px 74px;
}
a{color:inherit}
img{display:block;max-width:100%}
button,input{font:inherit}
.site-header{
  position:relative;
  background:
    linear-gradient(rgba(7,5,4,.82),rgba(13,8,6,.92)),
    radial-gradient(circle at center,rgba(126,73,30,.18),transparent 50%);
  border-bottom:1px solid var(--line);
  box-shadow:0 14px 38px rgba(0,0,0,.5);
}
.site-header::before,.site-header::after{
  content:"";display:block;height:8px;
  background:
    linear-gradient(90deg,transparent,var(--gold),transparent),
    repeating-linear-gradient(90deg,transparent 0 8px,rgba(201,154,75,.25) 8px 10px);
  opacity:.8;
}
.header-inner{max-width:1180px;margin:auto;padding:18px 24px 14px;text-align:center}
.brand{
  width:min(260px,62vw);
  margin:0 auto 8px;
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.65));
}
.brand img{width:100%;height:auto}
.header-ornament{width:min(760px,90vw);margin:2px auto 8px;opacity:.9}
.main-nav{
  display:flex;justify-content:center;align-items:center;gap:clamp(16px,4vw,42px);
  flex-wrap:wrap;padding:7px 0 3px;
}
.main-nav a{
  position:relative;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;
  font-size:.78rem;color:var(--gold-light);padding:8px 2px;
}
.main-nav a:not(.nav-button)::after{
  content:"";position:absolute;left:50%;right:50%;bottom:2px;height:1px;
  background:var(--gold);transition:.25s ease;
}
.main-nav a:hover::after,.main-nav a:focus-visible::after{left:0;right:0}
.nav-button,.button{
  border:1px solid var(--gold);background:linear-gradient(180deg,#8e622e,#62401d);
  color:#fff7e9!important;text-decoration:none;border-radius:2px;padding:10px 18px!important;
  box-shadow:inset 0 0 0 2px rgba(17,10,6,.55),0 8px 20px rgba(0,0,0,.28);
}
.nav-button:hover,.button:hover{background:linear-gradient(180deg,#b07b38,#6b451f)}
.hero{
  min-height:78vh;display:grid;place-items:center;position:relative;
  background:
    linear-gradient(90deg,rgba(5,4,3,.76),rgba(5,4,3,.38) 45%,rgba(5,4,3,.55)),
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.55)),
    url("assets/grand-banquet-hall.jpg") center/cover no-repeat;
  isolation:isolate;
}
.hero::before{
  content:"";position:absolute;inset:24px;border:1px solid rgba(235,201,133,.45);
  outline:1px solid rgba(74,45,20,.8);outline-offset:-8px;pointer-events:none;
}
.hero-panel{
  width:min(760px,calc(100% - 48px));text-align:center;padding:48px 42px;
  background:linear-gradient(180deg,rgba(12,8,6,.76),rgba(15,9,7,.9));
  border:1px solid rgba(235,201,133,.62);box-shadow:var(--shadow);position:relative;
}
.hero-panel::before,.hero-panel::after,.frame::before,.frame::after{
  content:"";position:absolute;width:105px;height:105px;
  background:url("assets/corner-flourish.svg") center/contain no-repeat;opacity:.85;pointer-events:none;
}
.hero-panel::before,.frame::before{left:-4px;top:-4px}
.hero-panel::after,.frame::after{right:-4px;bottom:-4px;transform:rotate(180deg)}
.eyebrow{
  text-transform:uppercase;letter-spacing:.34em;color:var(--gold-light);font-size:.72rem;
  margin:0 0 12px;
}
h1,h2,h3{font-weight:400;line-height:1.15;margin-top:0}
h1{font-size:clamp(2.35rem,7vw,5.7rem);letter-spacing:.06em;margin-bottom:18px}
h2{font-size:clamp(2rem,4vw,3.55rem);color:var(--gold-light);letter-spacing:.03em}
h3{font-size:1.4rem;color:var(--gold-light)}
.hero-copy{font-size:clamp(1.05rem,2vw,1.35rem);max-width:620px;margin:0 auto 30px;color:#f5ead5}
.button-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.button.secondary{background:rgba(9,7,6,.72)}
.section{max-width:1180px;margin:auto;padding:88px 24px}
.section-heading{text-align:center;max-width:760px;margin:0 auto 42px}
.ornament{width:min(700px,90%);margin:18px auto 0}
.split{display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:center}
.frame{
  position:relative;padding:12px;border:1px solid var(--line);background:#0f0a08;
  box-shadow:var(--shadow);
}
.frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
.prose p{color:#ded0b4;font-size:1.06rem}
.dropcap::first-letter{
  float:left;font-size:4.1rem;line-height:.82;padding:.1em .12em 0 0;color:var(--gold-light);
}
.chapter-list{
  list-style:none;padding:0;margin:28px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;
}
.chapter-list li{border-bottom:1px solid var(--line);padding:8px 0;color:var(--paper)}
.show-section{
  background:
    linear-gradient(rgba(16,10,8,.88),rgba(16,10,8,.93)),
    url("assets/gallery-scene.jpg") center/cover fixed;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px;
}
.card{
  position:relative;min-height:270px;padding:34px 28px;text-align:center;
  background:
    linear-gradient(180deg,rgba(51,28,18,.92),rgba(17,11,8,.96));
  border:1px solid rgba(201,154,75,.58);box-shadow:var(--shadow);overflow:hidden;
}
.card::before,.card::after{
  content:"";position:absolute;width:72px;height:72px;
  background:url("assets/corner-flourish.svg") center/contain no-repeat;opacity:.45;
}
.card::before{left:-1px;top:-1px}.card::after{right:-1px;bottom:-1px;transform:rotate(180deg)}
.card p{color:#d8c9aa}
.icon-medallion{
  width:62px;height:62px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;
  margin:0 auto 18px;background:radial-gradient(circle,#6f4822,#22140c 70%);color:var(--gold-light);
  box-shadow:inset 0 0 0 4px rgba(7,5,4,.55);
}
.icon-medallion svg{width:28px;height:28px}
.envelope-button{
  appearance:none;border:0;background:none;color:inherit;cursor:pointer;width:100%;padding:0;
}
.envelope{
  width:180px;height:116px;margin:8px auto 20px;position:relative;
  background:linear-gradient(145deg,#dbc494,#a88b55);
  border:1px solid #765728;box-shadow:0 15px 32px rgba(0,0,0,.4);
}
.envelope::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(32deg,transparent 49.3%,rgba(92,63,29,.45) 50%,transparent 50.7%),
             linear-gradient(-32deg,transparent 49.3%,rgba(92,63,29,.45) 50%,transparent 50.7%);
}
.envelope-flap{
  position:absolute;left:0;right:0;top:0;margin:auto;width:0;height:0;
  border-left:90px solid transparent;border-right:90px solid transparent;
  border-top:66px solid #ead7ab;filter:drop-shadow(0 2px 0 rgba(91,61,27,.45));
  transform-origin:top;transition:.55s ease;
}
.wax{
  position:absolute;width:50px;height:50px;left:65px;top:42px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#b94b52,#721b27 60%,#3e0c13);
  border:2px solid #5a111b;box-shadow:0 4px 8px rgba(0,0,0,.45),inset 0 0 0 4px rgba(255,255,255,.06);
  display:grid;place-items:center;color:#e6bb76;font-size:1.5rem;font-weight:bold;
}
.envelope-button:hover .envelope{transform:translateY(-3px)}
.envelope-button:hover .wax{filter:brightness(1.12)}
.society-message{margin-top:12px;color:var(--gold-light);min-height:28px}
.social-grid{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:24px}
.social-link{
  width:54px;height:54px;border:1px solid var(--gold);display:grid;place-items:center;
  background:linear-gradient(180deg,#3a2415,#160e0a);color:var(--gold-light);border-radius:50%;
  box-shadow:inset 0 0 0 4px rgba(6,4,3,.42),0 9px 20px rgba(0,0,0,.28);
}
.social-link:hover{transform:translateY(-3px);box-shadow:0 0 22px rgba(201,154,75,.34)}
.social-link svg{width:24px;height:24px}
.social-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mini-gallery{display:grid;grid-template-columns:1.35fr .65fr;gap:22px}
.mini-gallery .frame:first-child{grid-row:span 2}
.mini-gallery img{height:100%;object-fit:cover}
.site-footer{
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,#120c09,#070504);padding:48px 24px 32px;text-align:center;
}
.footer-brand{width:min(190px,55vw);margin:0 auto 16px}
.footer-links,.footer-actions{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:16px 0}
.footer-links a,.footer-actions a{color:var(--gold-light);text-decoration:none}
.footer-links a:hover,.footer-actions a:hover{text-decoration:underline}
.copyright{color:#bfae90;font-size:.92rem}
.legal-shell{max-width:980px;margin:auto;padding:70px 24px}
.legal-card{
  background:linear-gradient(180deg,rgba(36,21,13,.94),rgba(13,9,7,.97));
  border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(28px,6vw,64px);position:relative;
}
.legal-card h1{font-size:clamp(2.5rem,6vw,4.6rem);color:var(--gold-light)}
.legal-card h2{font-size:1.65rem;margin-top:42px}
.legal-card h3{margin-top:28px}
.legal-card p,.legal-card li{color:#ded0b4}
.legal-card a{color:var(--gold-light)}
.notice{
  border-left:3px solid var(--gold);padding:14px 18px;background:rgba(201,154,75,.08);margin:24px 0;
}
.modal{
  position:fixed;inset:0;background:rgba(0,0,0,.78);display:none;place-items:center;padding:24px;z-index:20;
}
.modal.open{display:grid}
.modal-card{
  width:min(520px,100%);background:linear-gradient(180deg,#3a2415,#120c09);
  border:1px solid var(--gold);box-shadow:var(--shadow);padding:42px;text-align:center;position:relative;
}
.modal-close{position:absolute;right:14px;top:10px;background:none;border:0;color:var(--gold-light);font-size:1.8rem;cursor:pointer}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:12px;top:12px;background:#fff;color:#000;padding:10px;z-index:99}
@media(max-width:900px){
  .split,.cards,.mini-gallery{grid-template-columns:1fr}
  .mini-gallery .frame:first-child{grid-row:auto}
  .cards{gap:18px}
  .hero{min-height:72vh}
}
@media(max-width:620px){
  .header-inner{padding:14px 16px 10px}
  .brand{width:min(220px,72vw)}
  .main-nav{gap:12px 20px}
  .hero::before{inset:10px}
  .hero-panel{padding:38px 24px}
  .section{padding:68px 18px}
  .chapter-list{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
  .show-section{background-attachment:scroll}
}
