/* Shared visitor-facing shell, using Character Creator's dark-theme colors. */
.public-site {
 --public-width:1100px; --public-gutter:25px;
 --public-surface:#1d1a17; --public-border:#5d4930; --public-muted:#c8bca8;
 --public-gold:#d9a567; --public-gold-light:#f7ca8d; --public-ink:#f2e3c6;
 --public-radius:.55rem; --public-shadow:0 .4rem 1.35rem rgba(0,0,0,.42);
 background:radial-gradient(circle at 100% 0%,rgba(148,96,34,.16),transparent 28rem),linear-gradient(180deg,#090807 0%,#15120f 100%);
}
.public-site .wrap {max-width:var(--public-width);padding-left:var(--public-gutter);padding-right:var(--public-gutter)}
.public-site main h1 {font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.22;max-width:100%;margin:.5rem 0 1rem;text-wrap:balance}
.public-site main h2 {font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.3}
.public-site main .hero h1 {font-size:clamp(2rem,4.2vw,3.2rem);max-width:20ch}
.public-site main>section:not(.hero) {padding-top:2.5rem;padding-bottom:2.5rem}
.public-site main>section:first-child:not(.hero) {padding-top:2rem;padding-bottom:1.25rem}
.public-site main .lede {font-size:1.0625rem;line-height:1.65;max-width:70ch;margin:.5rem 0 1rem}
.public-site main .eyebrow {font-size:.75rem;letter-spacing:.12em;margin:0 0 .65rem}
.public-site main>section.events-list-section {padding-top:0}
.public-site .events-intro .lede {margin-bottom:0}
.public-site .event-banner .events-banner {margin:0 0 1.5rem}
.public-site .event-list {margin:1rem 0 2rem}
.public-site .event-banner-archive {padding:1rem 1.25rem;margin:1.5rem 0 2rem;background:var(--public-surface);border:1px solid var(--public-border);border-radius:var(--public-radius)}
.public-site .event-banner-archive>summary {min-height:44px;align-content:center;color:var(--public-gold-light);font-size:.9375rem}
.public-site .event-banner-archive p {font-size:.9375rem;color:var(--public-muted);margin:.75rem 0}
.public-site .event-banner-archive .events-banner {margin:1rem 0 0;max-width:880px;border-color:var(--public-border)}
.visually-hidden {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.public-site .site-header {position:sticky;top:0;z-index:20;background:linear-gradient(90deg,#090807,#27231f);border-bottom:1px solid var(--public-border);box-shadow:0 .2rem .7rem #0003}
.public-site .public-nav {max-width:var(--public-width);display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand links first";gap:1rem;align-items:center;position:relative;padding:10px var(--public-gutter)}
.public-site .site-brand {grid-area:brand;display:inline-flex;align-items:center;min-height:64px}
.public-site .site-brand img {height:64px;width:auto;max-width:72px;object-fit:contain}
.public-site .public-nav-panel {grid-area:links;display:flex;gap:.15rem .35rem;align-items:center;justify-content:center;min-width:0}
.public-site .public-nav-panel>a,.public-site .public-nav-group>summary {display:flex;align-items:center;gap:.35rem;min-height:44px;padding:.5rem .55rem;font-size:.875rem;font-weight:600;color:var(--public-ink);white-space:nowrap;border-radius:.35rem}
.public-site .public-nav-group {position:relative;padding:0;border:0}
.public-site .public-nav-group>summary {list-style:none;cursor:pointer}
.public-site .public-nav-group>summary::-webkit-details-marker {display:none}
.public-site .public-nav-group>summary::after {content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:.25rem;margin-bottom:.2rem}
.public-site .public-nav-group[open]>summary::after {transform:rotate(225deg);margin-bottom:-.2rem}
.public-site .public-nav-panel>a:hover,.public-site .public-nav-group>summary:hover {background:rgba(217,165,103,.1);color:var(--public-gold-light)}
.public-site .public-nav-group[open]>summary {background:rgba(217,165,103,.1);color:var(--public-gold-light)}
.public-site .public-nav-panel a[aria-current=page] {color:var(--public-gold-light);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.45em}
.public-site .public-nav-group.contains-current>summary {color:var(--public-gold-light)}
.public-site .public-nav :is(a,button,summary):focus-visible,.public-site .event-banner-archive>summary:focus-visible {outline:2px solid var(--public-gold-light);outline-offset:3px;box-shadow:0 0 0 .15rem rgba(247,202,141,.15)}
.public-site .public-subnav {position:absolute;top:calc(100% + .5rem);left:0;width:250px;max-width:calc(100vw - 50px);padding:.5rem;background:var(--public-surface);border:1px solid var(--public-border);border-radius:var(--public-radius);box-shadow:var(--public-shadow);z-index:21}
.public-site .public-subnav a {display:flex;align-items:center;min-height:44px;padding:.6rem .75rem;border-radius:.35rem;white-space:normal;line-height:1.4;font-size:.875rem}
.public-site .public-subnav a:hover {background:rgba(217,165,103,.14);color:var(--public-gold-light)}
.public-site .public-nav-context {font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--public-muted);margin:.4rem .75rem}
.public-site .character-creator-link {border-left:1px solid var(--public-border);margin-left:.25rem;padding-left:.8rem!important;font-size:.8125rem!important}
.public-site .first-event-link {grid-area:first;display:inline-flex;align-items:center;justify-content:center;margin:0;white-space:nowrap;min-height:44px;padding:.6rem .85rem;border:1px solid #946022;border-radius:.35rem;background:var(--public-gold);color:#090807;font-size:.875rem;font-weight:600}
.public-site .first-event-link:hover {background:var(--public-gold-light);color:#090807}
.public-site .public-menu-toggle {display:none;grid-area:toggle;align-items:center;gap:.5rem;margin:0;min-height:44px;width:96px;min-width:96px;justify-content:center;padding:.6rem .75rem;background:transparent;color:var(--public-gold-light);border:1px solid var(--public-border);border-radius:.35rem;font-size:.875rem}
/* Enhanced mobile menu overlays content. Without JS the link tree stays in flow. */
@media(max-width:1060px) {
 .public-site .public-nav {grid-template-columns:auto 1fr auto;grid-template-areas:"brand first toggle" "links links links";gap:.5rem .75rem}
 .public-site .site-brand {min-height:56px}.public-site .site-brand img {height:56px;max-width:60px}
 .public-site .first-event-link {justify-self:end;font-size:.8125rem;padding:.6rem .75rem}
 .public-site .public-menu-toggle {display:inline-flex}
 .public-site .public-nav-panel {display:flex;flex-direction:column;align-items:stretch;gap:.2rem;border-top:1px solid var(--public-border);padding:.65rem}
 .public-site .public-nav.is-enhanced {grid-template-areas:"brand first toggle"}
 .public-site .public-nav.is-enhanced .public-nav-panel {grid-area:auto;position:absolute;top:100%;left:var(--public-gutter);right:var(--public-gutter);max-height:calc(100vh - 106px);max-height:calc(100dvh - 106px);overflow-y:auto;overscroll-behavior:contain;background:var(--public-surface);border:1px solid var(--public-border);border-radius:0 0 var(--public-radius) var(--public-radius);box-shadow:var(--public-shadow)}
 .public-site .public-nav-panel>a,.public-site .public-nav-group>summary {padding:.65rem .75rem}
 .public-site .public-nav-group>summary {justify-content:space-between}
 .public-site .public-subnav {position:static;width:auto;max-width:none;background:transparent;border:0;border-left:2px solid var(--public-border);border-radius:0;box-shadow:none;padding:.25rem 0 .25rem .65rem;margin:.25rem .75rem .5rem}
 .public-site .public-subnav a {padding:.6rem .65rem}
 .public-site .public-nav-context {margin:.25rem .65rem .4rem}
 .public-site .character-creator-link {border-left:0;border-top:1px solid var(--public-border);margin:.3rem 0 0;padding-left:.75rem!important;font-size:.875rem!important}
}
@media(max-width:600px) {
 .public-site {--public-gutter:18px}
 .public-site main h1 {font-size:clamp(1.8rem,6vw,2rem)}
 .public-site main>section:not(.hero) {padding-top:1.75rem;padding-bottom:1.75rem}
 .public-site main>section:first-child:not(.hero) {padding-top:1.5rem;padding-bottom:1rem}
 .public-site main>section.events-list-section {padding-top:0}
 .public-site .event-banner-archive {padding:.75rem 1rem}
}

/* Configurable navigation retains the approved shell, including nested groups. */
.public-site .public-nav-panel{flex-wrap:wrap}
.public-site .public-subnav .public-nav-group>.public-subnav{position:static;width:auto;max-width:none;border:0;border-left:2px solid var(--public-border);border-radius:0;box-shadow:none;background:transparent;margin:.25rem .5rem .5rem;padding:.2rem 0 .2rem .5rem}
.public-site .public-subnav .public-nav-group>summary{white-space:normal;justify-content:space-between}
.public-site .first-event-link{min-width:0;max-width:12rem;white-space:normal;overflow-wrap:anywhere;text-align:center}
.public-site .first-event-link--outline{background:transparent;color:var(--public-gold-light);border-color:var(--public-gold)}
.public-site .first-event-link--outline:hover{background:var(--public-gold);color:#090807}
.navigation-preview-note{padding:.75rem 1.25rem;background:#1d1a17;border-bottom:1px solid #5d4930;color:#f2e3c6;font:600 .9375rem 'Open Sans',sans-serif}
.public-site .public-nav-panel>a,.public-site .public-nav-group>summary{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.public-site .public-nav-group{max-width:100%;min-width:0}
/* Reading and keyboard focus remain visible beneath the shared sticky header. */
.public-site :is(h1,h2,h3,section,[tabindex]){scroll-margin-top:var(--public-header-offset,110px)}
.public-site .public-nav-group.opens-left>.public-subnav{left:auto;right:0}
@media(min-width:1061px){.public-site .public-nav-panel>.public-nav-group>.public-subnav{max-height:70vh;max-height:70dvh;overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:1060px){.public-site .public-nav.is-enhanced .public-nav-panel{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}.public-site .public-nav-group.opens-left>.public-subnav{left:auto;right:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.public-site *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Search is always available alongside the main menu, including on phones. */
.public-site .public-nav{grid-template-columns:auto minmax(0,1fr) 44px auto;grid-template-areas:"brand links search first"}
.public-site .public-search-link{grid-area:search;display:inline-flex;align-items:center;justify-content:center;width:44px;min-height:44px;color:var(--public-gold-light);border:1px solid var(--public-border);border-radius:.35rem}
.public-site .public-search-link:hover{background:rgba(217,165,103,.15)}
@media(max-width:1060px){.public-site .public-nav{grid-template-columns:auto minmax(0,1fr) 44px auto;grid-template-areas:"brand first search toggle" "links links links links"}.public-site .public-nav.is-enhanced{grid-template-areas:"brand first search toggle"}}
@media(max-width:420px){.public-site .public-nav{padding-inline:16px;gap:.5rem}.public-site .site-brand img{height:48px;max-width:48px}.public-site .public-menu-toggle{width:44px;min-width:44px;padding:.5rem}.public-site [data-menu-label]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
