/* Shared shell for generated pages (Past Events). Tokens, atmosphere, nav and footer
   mirror the inline styles in /index.html — keep the two in step. */
:root{
  --void:#070312;--deep:#130726;--plum:#22103f;--plum2:#2e1552;
  --magenta:#ff3fa4;--rose:#ff86cf;--violet:#9d5cff;--indigo:#6a45f7;--aqua:#36e7d7;--gold:#ffd479;
  --cream:#f3ecff;--muted:#b7a6da;--muted-dim:#8e7cb4;--line:rgba(157,92,255,.22);
  --iris:linear-gradient(108deg,#ff86cf 0%,#9d5cff 34%,#36e7d7 66%,#ffd479 100%);
  --maxw:1180px;--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:96px}
body{background:var(--void);color:var(--cream);font-family:"Outfit",system-ui,sans-serif;font-weight:300;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--aqua);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:12px;z-index:200;background:var(--cream);color:var(--void);padding:.6em 1em;border-radius:999px}
.skip:focus{left:16px}

.cosmos{position:fixed;inset:0;z-index:-3;overflow:hidden;background:
  radial-gradient(1200px 800px at 78% -8%, rgba(255,63,164,.24), transparent 60%),
  radial-gradient(1000px 760px at 12% 8%, rgba(106,69,247,.30), transparent 62%),
  radial-gradient(1300px 900px at 50% 112%, rgba(54,231,215,.12), transparent 60%),
  linear-gradient(180deg,#0a0418 0%, #070312 40%, #0b0420 100%);}
.stars{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.75}
.stars::before{content:"";position:absolute;inset:-50%;
  background-image:radial-gradient(1.4px 1.4px at 20% 30%,#fff,transparent),radial-gradient(1.2px 1.2px at 70% 60%,#cfe6ff,transparent),
    radial-gradient(1px 1px at 40% 80%,#ffd479,transparent),radial-gradient(1.6px 1.6px at 85% 20%,#ff86cf,transparent),
    radial-gradient(1px 1px at 55% 15%,#fff,transparent),radial-gradient(1.3px 1.3px at 10% 70%,#aef,transparent);
  background-size:520px 520px;animation:drift 140s linear infinite}
@keyframes drift{to{transform:translateY(-520px)}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
@media(max-width:520px){.wrap{padding:0 18px}}
.iris-text{background:var(--iris);-webkit-background-clip:text;background-clip:text;color:transparent}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:400;line-height:1.06;letter-spacing:.005em;text-wrap:balance}

.btn{display:inline-flex;align-items:center;gap:.55em;font-family:"Outfit";font-weight:500;font-size:.92rem;letter-spacing:.02em;
  padding:.85em 1.6em;border-radius:999px;cursor:pointer;border:0;color:#0b0320;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),filter .35s var(--ease)}
.btn-iris{background:var(--iris);box-shadow:0 10px 34px -10px rgba(157,92,255,.7),inset 0 0 0 1px rgba(255,255,255,.18)}
.btn-iris:hover{transform:translateY(-3px);filter:saturate(1.18) brightness(1.05)}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid var(--line)}
.btn-ghost:hover{border-color:rgba(54,231,215,.6);transform:translateY(-2px)}

/* Nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(10,4,22,.72);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-family:"Cormorant Garamond";font-size:1.5rem;letter-spacing:.02em}
.brand .seed{width:30px;height:30px;flex:none}
.brand b{font-weight:500}
.nav-links{display:flex;align-items:center;gap:28px;font-size:.9rem}
.nav-links a{color:var(--muted);position:relative;letter-spacing:.02em;transition:color .3s}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:100%;background:var(--iris);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--cream)}
.nav-links a:hover::after,.nav-links a[aria-current]::after{transform:scaleX(1)}
.nav-links .nav-cta{padding:.6em 1.25em;font-size:.85rem;color:#0b0320}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2px;background:var(--cream);transition:.3s}
@media(max-width:940px){
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);flex-direction:column;justify-content:center;gap:26px;
    background:rgba(13,6,32,.97);transform:translateX(100%);transition:transform .45s var(--ease);font-size:1.1rem;border-left:1px solid var(--line)}
  .nav-links.open{transform:none}
  .nav-links a{color:var(--cream)}
  .burger{display:flex;z-index:60}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* Footer */
footer{border-top:1px solid var(--line);padding:64px 0 44px;margin-top:clamp(72px,10vw,130px)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:30px}}
.foot-brand{font-family:"Cormorant Garamond";font-size:1.8rem}
.foot-brand p{font-family:"Outfit";font-size:.92rem;color:var(--muted);margin-top:12px;max-width:38ch}
.foot-col h4{font-family:"Outfit";font-weight:500;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dim);margin-bottom:16px}
.foot-col a,.foot-col p{display:block;color:var(--muted);font-size:.94rem;margin-bottom:9px;transition:color .3s}
.foot-col a:hover{color:var(--cream)}
.foot-bot{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:.8rem;color:var(--muted-dim)}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
