:root{--sky-top:#9ec4e0;--sky-mid:#c5d6e6;--sky-fog:#e4eaf0;--stone:#dbe3eb;--ink:#1a2838;--muted:#4a6074;--gold:#c49a3c;--gold-deep:#8a6a22;--steel:#3d5c78;--banner:#2f5578;--paper:#f3f6f9;--line:#b7c4d2;--ok:#2d6b4a;--warn:#8b3a2a}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:"Source Serif 4","Noto Serif",serif;color:var(--ink);background-color:var(--sky-mid);background-image:radial-gradient(1200px 520px at 50% -8%,#f7fbff 0,transparent 62%),linear-gradient(180deg,var(--sky-top) 0,var(--sky-mid) 38%,var(--sky-fog) 100%),repeating-linear-gradient(90deg,transparent 0 47px,rgba(255,255,255,.08) 47px 48px);background-attachment:fixed}a{color:inherit;text-decoration:none}.ornament{display:block;height:10px;margin:.55rem 0 .2rem;background:linear-gradient(90deg,transparent,var(--gold-deep) 12%,var(--gold) 50%,var(--gold-deep) 88%,transparent);-webkit-clip-path:polygon(0 50%,6% 0,94% 0,100% 50%,94% 100%,6% 100%);clip-path:polygon(0 50%,6% 0,94% 0,100% 50%,94% 100%,6% 100%);animation:trim-shine 5.5s ease-in-out infinite}@keyframes trim-shine{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}@keyframes banner-sway{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}@keyframes hall-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.top{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.2rem .85rem;background:linear-gradient(180deg,rgba(243,246,249,.92),rgba(219,227,235,.88));border-bottom:3px solid var(--gold-deep);box-shadow:0 1px 0 var(--gold)}.logo{font-family:Cinzel,Times New Roman,serif;font-weight:700;letter-spacing:.16em;font-size:.95rem;color:var(--banner)}nav{display:flex;gap:1.25rem;font-family:Cinzel,serif;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}nav a:hover{color:var(--gold-deep)}.wrap{max-width:1080px;margin:0 auto;padding:1.4rem 1.1rem 3.2rem;animation:hall-rise .7s ease-out}.hero{position:relative;min-height:calc(100vh - 64px);display:grid;align-content:center;justify-items:center;text-align:center;padding:3.5rem 1.1rem 4rem;overflow:hidden}.hero:before{content:"";inset:0;background:linear-gradient(180deg,rgba(158,196,224,.15),rgba(228,234,240,.55)),radial-gradient(ellipse at 50% 18%,rgba(255,255,255,.55),transparent 48%)}.hero-banner,.hero:before{position:absolute;pointer-events:none}.hero-banner{top:8%;width:min(42vw,280px);height:46vh;background:linear-gradient(180deg,var(--banner),#1d3b56);-webkit-clip-path:polygon(18% 0,82% 0,100% 12%,92% 100%,8% 100%,0 12%);clip-path:polygon(18% 0,82% 0,100% 12%,92% 100%,8% 100%,0 12%);opacity:.22;transform-origin:top center;animation:banner-sway 7s ease-in-out infinite}.hero-banner.left{left:4%}.hero-banner.right{right:4%;animation-delay:-3.5s}.hero-inner{position:relative;z-index:1;max-width:36rem}.brand{font-weight:800;letter-spacing:.22em;font-size:clamp(1.7rem,5vw,3.1rem);margin:0;color:var(--banner);text-shadow:0 1px 0 #fff}.brand,.hero h1{font-family:Cinzel,serif}.hero h1{font-weight:700;font-size:clamp(1.15rem,2.4vw,1.55rem);letter-spacing:.12em;text-transform:uppercase;margin:.85rem 0 .5rem}.lead{margin:0 auto;max-width:28rem;color:var(--muted);line-height:1.5;font-size:1.05rem}.cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.4rem}h1,h2{font-family:Cinzel,serif;font-weight:700;letter-spacing:.04em}h1{margin:0 0 .45rem;font-size:clamp(1.4rem,3vw,2rem)}.muted{color:var(--muted);line-height:1.55}.section-title{margin-top:.4rem}.halls{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.3rem}@media (min-width:800px){.halls{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1.4fr .8fr}}.grid{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.25rem}.plaque{position:relative;padding:1.05rem 1.1rem 1.15rem;background:linear-gradient(180deg,#eef3f7,#d5dee8);border:1px solid var(--gold);outline:3px solid var(--gold-deep);outline-offset:3px;transition:transform .22s ease,box-shadow .22s ease}.plaque:hover{transform:translateY(-4px);box-shadow:0 10px 0 -4px rgba(138,106,34,.35)}.plaque .kind{font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}.plaque h2{margin:.35rem 0 .25rem;font-size:1.12rem}.capacity{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--steel);font-size:.92rem}.btn{display:inline-block;margin-top:.85rem;padding:.55rem 1.15rem;border:1px solid var(--gold-deep);background:linear-gradient(180deg,#e8c56a,var(--gold) 45%,var(--gold-deep));color:#2a210c;font-family:Cinzel,serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:transparent;color:var(--banner);box-shadow:none}.panel{background:linear-gradient(180deg,rgba(243,246,249,.92),rgba(219,227,235,.9));border:1px solid var(--gold);outline:2px solid rgba(138,106,34,.45);outline-offset:4px;padding:1.1rem 1.15rem}.input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);font:inherit}.label{display:block;margin:.7rem 0 .3rem;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}.frame{width:100%;min-height:480px;border:2px solid var(--gold-deep);background:#0c1722}.chat{display:flex;flex-direction:column;gap:.45rem;max-height:420px;overflow:auto;padding-right:.2rem}.msg{padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.95rem}.msg b{font-family:Cinzel,serif;color:var(--banner);font-weight:700}.err{color:var(--warn)}.shield{width:64px;height:74px;margin:0 auto .6rem;background:linear-gradient(180deg,var(--gold),var(--gold-deep));-webkit-clip-path:polygon(50% 0,100% 18%,86% 100%,50% 86%,14% 100%,0 18%);clip-path:polygon(50% 0,100% 18%,86% 100%,50% 86%,14% 100%,0 18%);display:grid;place-items:center}.shield span{width:42px;height:50px;background:var(--banner);-webkit-clip-path:polygon(50% 6%,94% 22%,82% 92%,50% 78%,18% 92%,6% 22%);clip-path:polygon(50% 6%,94% 22%,82% 92%,50% 78%,18% 92%,6% 22%)}