:root {
  --bg-0: #060807;
  --bg-1: #0c1010;
  --undergrowth-1: #1c6a52;
  --undergrowth-2: #9b821e;
  --gambol-1: #9e4ba0;
  --gambol-2: #ff7f27;
  --gambol-3: #9e4ba0;
  --retreat-1: #29a9a1;
  --retreat-2: #ff4500;
  --altar-1: #f20fb6;
  --altar-2: #04bf33;
  --archive-1: #e8f4f8;
  --archive-2: #9db4c0;
  --archive-3: #5c7c8a;
  --magenta: #FF1178;
  --acid: #C6FF00;
  --toxic: #39FF14;
  --amber: #FF5F1F;
  --white: #F2F2F2;
  --font-base: 'Protest Revolution', system-ui, sans-serif;
  --font-undergrowth: 'Eater', serif;
  --font-gambol: 'Limelight', serif;
  --font-altar: 'Pirata One', serif;
  --font-retreat: 'Nosifer', serif;
  --font-archive: 'Special Elite', serif;
}
.gang-tooltip{
  position: fixed;
  top: 0; left: 0;
  transform: translate(12px,-28px);
  padding: 6px 10px;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .04em;
  border: 2px solid;
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  pointer-events: none;
  white-space: nowrap;
  opacity: 0;
  z-index: 5000;
  transition: opacity .12s ease;
  color: black;
}
.gang-tooltip[data-gang="undergrowth"]{
  font-family: var(--font-undergrowth, inherit);
  background: linear-gradient(135deg, var(--undergrowth-1,#2e8b57), rgba(155,130,30,.25));
  border-color: var(--undergrowth-1,#2e8b57);
}
.gang-tooltip[data-gang="gambol"]{
  font-family: var(--font-gambol, inherit);
  background: linear-gradient(135deg, var(--gambol-1,#9e4ba0), rgba(255,127,39,.25));
  border-color: var(--gambol-1,#9e4ba0);
}
.gang-tooltip[data-gang="retreat"]{
  font-family: var(--font-retreat, inherit);
  background: linear-gradient(135deg, var(--retreat-1,#29a9a1), rgba(255,69,0,.25));
  border-color: var(--retreat-1,#29a9a1);
}
.gang-tooltip[data-gang="altar"]{
  font-family: var(--font-altar, inherit);
  background: linear-gradient(135deg, var(--altar-1,#f20fb6), rgba(4,191,51,.25));
  border-color: var(--altar-1,#f20fb6);
}
.gang-tooltip[data-gang="archive"]{
  font-family: var(--font-archive, inherit);
  background: linear-gradient(135deg, var(--archive-1,#e8f4f8), rgba(92,124,138,.25));
  border-color: var(--archive-3,#5c7c8a);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: radial-gradient(1200px 800px at 50% 30%, #0f1614 0%, var(--bg-0) 60%) fixed;
  overflow-x: hidden;
  min-height: 100vh;
  position: relative;
  transition: background 0.8s ease;
}
.page { display: none; min-height: 100vh; padding-top: 110px; }
.page.active { display: block; }
nav {
  position: fixed;
  top: 0;
  width: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.9), rgba(0,0,0,.6));
  backdrop-filter: blur(8px);
  z-index: 2000;
  padding: .9rem 0;
  border-bottom: 2px solid var(--hazard);
  box-shadow: 0 0 24px rgba(255,208,0,.2);
  transition: all 0.5s ease;
  min-height: 90px;
}
.nav-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  padding: 0 2rem;
}
.nav-title {
  color: var(--hazard);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 2px;
  line-height: 1.2;
  text-shadow: 0 0 18px rgba(255,208,0,.45);
  transition: .5s;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.nav-title img { transition: filter 0.5s ease; filter: drop-shadow(0 0 10px rgba(255,208,0,.3)); }
.nav-buttons { display: flex; gap: 1rem; flex-wrap: wrap; }
.nav-btn {
  background: rgba(198,255,0,.06);
  color: var(--white);
  border: 2px solid var(--acid);
  padding: .45rem .9rem;
  cursor: pointer;
  transition: .3s;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .5px;
  text-shadow: 0 0 6px rgba(198,255,0,.25);
  box-shadow: inset 0 0 12px rgba(57,255,20,.15);
  text-decoration: none;
  display: inline-block;
}
.nav-btn:hover,
.nav-btn.active {
  background: linear-gradient(90deg, rgba(198,255,0,.18), rgba(57,255,20,.18));
  transform: translateY(-2px);
  box-shadow: 0 0 20px rgba(57,255,20,.35), inset 0 0 18px rgba(198,255,0,.25);
  border-color: var(--toxic);
}
.sponsors-footer {
  background: linear-gradient(135deg, rgba(12,16,16,.95), rgba(6,8,7,.9));
  border-top: 2px solid;
  padding: 3rem 2rem 2rem;
  margin-top: 4rem;
}
.sponsors-content {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  align-items: start;
}
.sponsors-section h3 {
  color: var(--hazard);
  font-size: 1.4rem;
  margin-bottom: 1rem;
  text-shadow: 0 0 12px rgba(255,208,0,.35);
}
.sponsors-text { color: var(--white); font-size: 1.1rem; margin-bottom: 1.5rem; line-height: 1.6; }
.sponsor-images {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 1.25rem;
  overflow-x: auto;
  padding: 0.25rem 0;
}
.sponsor-logo {
  display: inline-flex;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  width: auto;
  height: auto;
  box-shadow: none;
  transform: none;
}
.sponsor-logo:hover { box-shadow: none; transform: none; }
.sponsor-logo img {
  height: clamp(28px, 4rem, 75px);
  width: auto;
  max-width: 100px;
  object-fit: contain;
  display: block;
  transition: transform .2s ease, filter .2s ease, opacity .2s ease;
}
.sponsor-logo img:hover { transform: translateY(-2px) scale(1.05); }
.links-section h3 { color: var(--acid); font-size: 1.2rem; margin-bottom: 1rem; text-shadow: 0 0 10px rgba(198,255,0,.35); }
.footer-links { list-style: none; padding: 0; }
.footer-links li { margin-bottom: .8rem; }
.footer-links a { color: var(--white); text-decoration: none; transition: .3s; font-size: 1rem; }
.footer-links a:hover { color: var(--toxic); text-shadow: 0 0 8px rgba(57,255,20,.5); }
.main-footer {
  background: var(--bg-0);
  border-top: 1px solid rgba(198,255,0,.25);
  padding: 1.5rem 2rem;
}
.main-footer-content {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.calarts-logo { width: 140px; height: auto; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: .3s; }
.calarts-logo-svg { width: 100%; height: auto; transition: .3s; filter: drop-shadow(0 0 12px rgba(255,208,0,.5)); }
.calarts-logo:hover { transform: translateY(-2px); }
.copyright { color: rgba(242,242,242,.8); font-size: .9rem; }
.font-glitch { animation: fontGlitch 0.8s ease-out; }
@keyframes fontGlitch {
  0% { transform: translate(0); filter: hue-rotate(0); }
  10% { transform: translate(-2px,1px); filter: hue-rotate(90deg); }
  20% { transform: translate(-1px,-2px); filter: hue-rotate(180deg); }
  30% { transform: translate(1px,2px); filter: hue-rotate(270deg); }
  40% { transform: translate(2px,-1px); filter: hue-rotate(360deg); }
  50% { transform: translate(-1px,2px); filter: hue-rotate(90deg); }
  60% { transform: translate(-2px,1px); filter: hue-rotate(180deg); }
  70% { transform: translate(2px,1px); filter: hue-rotate(270deg); }
  80% { transform: translate(-1px,-1px); filter: hue-rotate(360deg); }
  90% { transform: translate(1px,2px); filter: hue-rotate(90deg); }
  100% { transform: translate(0); filter: hue-rotate(0); }
}
.main-title.font-glitch { animation: titleGlitchScale 0.2s steps(3, end); }
@keyframes titleGlitchScale {
  0% { transform: translate(0) scale(1); filter: hue-rotate(0deg); }
  33% { transform: translate(-5px,4px) scale(1.2); filter: hue-rotate(180deg); }
  66% { transform: translate(5px,-4px) scale(0.8); filter: hue-rotate(360deg); }
  100% { transform: translate(0) scale(1); filter: hue-rotate(0deg); }
}
.fx-overlay, .fx-vignette, .fx-scan { pointer-events: none; position: fixed; inset: 0; z-index: -1; }
.fx-overlay {
  background:
    radial-gradient(1000px 700px at 70% 10%, rgba(57,255,20,0.06) 0%, transparent 60%),
    radial-gradient(900px 500px at 20% 80%, rgba(255,208,0,0.05) 0%, transparent 60%);
  filter: saturate(110%) contrast(110%);
  animation: reactorPulse 6s ease-in-out infinite;
}
.fx-vignette { box-shadow: inset 0 0 180px 80px rgba(0,0,0,0.85); }
.fx-scan {
  background: repeating-linear-gradient(to bottom, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 1px, transparent 2px, transparent 4px);
  mix-blend-mode: overlay;
  animation: scan 8s linear infinite;
}
@keyframes scan { 0% { background-position: 0 -200px; } 100% { background-position: 0 200px; } }
@keyframes reactorPulse { 0%, 100% { opacity: .55; } 50% { opacity: .85; filter: saturate(120%) contrast(115%); } }
#particles { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.particle {
  position: absolute;
  border-radius: 50%;
  box-shadow: 0 0 14px rgba(57,255,20,.5), 0 0 30px rgba(198,255,0,.25) inset;
  animation: float 22s linear infinite, flicker 2.2s steps(4,end) infinite;
  background: radial-gradient(circle at 30% 30%, rgba(198,255,0,.9), rgba(57,255,20,.65) 60%, rgba(0,0,0,.2) 100%);
  filter: drop-shadow(0 0 6px rgba(198,255,0,.65));
}
@keyframes float {
  0% { transform: translateY(100vh) rotate(0) scale(.5); opacity: 0; }
  10% { opacity: .9; }
  90% { opacity: .7; }
  100% { transform: translateY(-110vh) rotate(360deg) scale(1.1); opacity: 0; }
}
@keyframes flicker {
  0% { filter: drop-shadow(0 0 5px rgba(198,255,0,.7)); }
  50% { filter: drop-shadow(0 0 10px rgba(255,17,120,.55)); }
  100% { filter: drop-shadow(0 0 6px rgba(57,255,20,.7)); }
}
.main-title {
  font-size: clamp(2.6rem, 6vw, 4.6rem);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--hazard);
  text-shadow: 2px 2px 0 #000;
  filter: drop-shadow(0 0 35px rgba(255,208,0,.7)) drop-shadow(0 0 70px rgba(255,17,120,.4));
  animation: titleGlitch 13s infinite;
  transition: color .5s ease, filter .5s ease, font-family .5s ease;
  height: 120px; min-height: 120px; max-height: 120px;
  line-height: 1; display: flex; align-items: center; justify-content: center;
}
@keyframes titleGlitch {
  0%,100% { transform: none; }
  10% { transform: skewX(-2deg) translateX(-3px) scale(1.02); }
  11% { transform: skewX(3deg) translateX(4px) scale(0.98); }
  12% { transform: translateY(-2px) scale(1.01); }
  13% { transform: none; }
}
.subtitle { font-size: clamp(1.4rem,3.2vw,2.2rem); color: var(--magenta); text-shadow: 0 0 16px rgba(255,17,120,.35); letter-spacing: .08em; margin-bottom: 1rem; }
.date-location { font-size: 1.1rem; color: var(--white); text-shadow: 0 0 10px rgba(255,255,255,.35); margin-bottom: 2rem; }
.title-page { padding: 2rem; }
.title-header { text-align: center; max-width: 900px; margin-left: auto; margin-right: auto; }
.map-container {
  max-width: 850px;
  width: 100%;
  position: relative;
  background: linear-gradient(135deg, rgba(198,255,0,.08), rgba(57,255,20,.05));
  border: 2px solid var(--toxic);
  border-radius: 8px;
  padding: 1.4rem;
  box-shadow: inset 0 0 28px rgba(57,255,20,.15), 0 0 24px rgba(198,255,0,.15);
  margin: 0 auto;
  transition: background .5s ease, border-color .5s ease, box-shadow .5s ease;
}
.map-container::before {
  content: "";
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 14px, rgba(198,255,0,.05) 14px, rgba(198,255,0,.05) 28px);
  pointer-events: none;
}
.map-title {
  text-align: center; color: var(--hazard); font-size: 1.1rem; margin-bottom: .9rem; letter-spacing: .2em;
  text-shadow: 0 0 12px rgba(255,208,0,.35); text-transform: uppercase;
}
.interactive-map {
  aspect-ratio: 3 / 2.15;
  height: auto;
  min-height: 0 !important;
  position: relative;
  overflow: visible;
  background: transparent; 
}
.interactive-map::before { content: none; }
.interactive-map .map-threads {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
.map-point {
  position: absolute;
  width: 20px;
  height: 20px;
  cursor: pointer;
  z-index: 10;
  overflow: visible;
}
.map-point::before { content: none !important; }
.map-point.postit .postit-note {
  position: relative;
  background: #FFD966; 
  border: 1px solid rgba(0,0,0,.25);
  box-shadow: 0 3px 8px rgba(0,0,0,.35);
  transform-origin: center;
  transform: rotate(var(--rot, -1deg));
  transition: filter .18s ease;
}
.map-point.postit .symbol {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 54px;
  line-height: 1;
  pointer-events: none;
}
.map-point.postit:nth-child(7n+1) { --rot: -1.5deg; }
.map-point.postit:nth-child(7n+2) { --rot: 1.2deg;  }
.map-point.postit:nth-child(7n+3) { --rot: -0.8deg; }
.map-point.postit:nth-child(7n+4) { --rot: 0.9deg;  }
.map-point.postit:nth-child(7n+5) { --rot: -1.2deg; }
.map-point.postit:nth-child(7n+6) { --rot: 1.5deg;  }
.map-point.postit:nth-child(7n+7) { --rot: -0.5deg; }
.map-point.postit .postit-note::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 20% 10%, rgba(0,0,0,.08) 0%, transparent 60%),
    radial-gradient(80% 120% at 80% 90%, rgba(0,0,0,.06) 0%, transparent 60%);
  mix-blend-mode: multiply;
  opacity: .35;
  pointer-events: none;
}
.undergrowth-point .postit-note,
.green .postit-note { fill: #A5D6A7 !important; }
.gambol-point .postit-note,
.orange .postit-note { fill: #FFAB91 !important; }
.retreat-point .postit-note,
.teal .postit-note { fill: #80CBC4 !important; }
.altar-point .postit-note,
.hotpink .postit-note { fill: black !important; }
.archive-point .postit-note,
.lightblue .postit-note { fill: #B3E5FC !important; }
.lime .postit-note { fill: #DCE775 !important; }
.purple .postit-note { fill: #CE93D8 !important; }
.gray .postit-note { fill: #CFD8DC !important; }
.undergrowth-point .postit-note,
.green .postit-note { filter: drop-shadow(0 2px 8px rgba(28,106,82,.25)); }
.gambol-point .postit-note,
.orange .postit-note { filter: drop-shadow(0 2px 8px rgba(158,75,160,.22)); }
.retreat-point .postit-note,
.teal .postit-note { filter: drop-shadow(0 2px 8px rgba(41,169,161,.22)); }
.altar-point .postit-note,
.hotpink .postit-note { filter: drop-shadow(0 2px 8px rgba(242,15,182,.22)); }
.archive-point .postit-note,
.lightblue .postit-note { filter: drop-shadow(0 2px 8px rgba(92,124,138,.22)); }
body.default-theme { background: radial-gradient(1200px 800px at 50% 30%, #1a0f1a 0%, #0a050a 60%) fixed; }
body.default-theme .main-title,
body.default-theme .page-header {
  font-family: var(--font-base);
  color:#C6FF00;
  filter:drop-shadow(0 0 35px rgba(198,255,0,.8)) drop-shadow(0 0 70px rgba(138,43,226,.5));
  letter-spacing:.15em;
}
body.default-theme .nav-btn{ background:rgba(198,255,0,.08); border-color:#C6FF00; color:var(--white); text-shadow:0 0 6px rgba(198,255,0,.4); box-shadow:inset 0 0 12px rgba(198,255,0,.2);}
body.default-theme .nav-btn:hover,
body.default-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(198,255,0,.2), rgba(138,43,226,.15)); border-color:#8A2BE2; box-shadow:0 0 20px rgba(198,255,0,.5), inset 0 0 18px rgba(138,43,226,.3);}
body.default-theme .subtitle{color:#8A2BE2;}
body.default-theme .date-location{color:#C6FF00; text-shadow:0 0 10px rgba(198,255,0,.55);}
body.default-theme .map-title{color:#C6FF00;}
body.default-theme nav{border-bottom-color:#C6FF00; box-shadow:0 0 24px rgba(198,255,0,.3);}
body.default-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(198,255,0,.6));}
body.default-theme .map-container, body.default-theme .faq-item {border-color:#C6FF00; background:linear-gradient(135deg, rgba(198,255,0,.12), rgba(138,43,226,.08));}
body.default-theme .interactive-map, body.default-theme .schedule-section {border-color:#C6FF00;}
body.default-theme .schedule-title,
.default-theme .team-title,
.default-theme .archives-title,
.default-theme .faq-title{color:#C6FF00; text-shadow:0 0 20px rgba(198,255,0,.55);}
body.default-theme .schedule-section h3{color:#C6FF00;}
body.default-theme .time{color:#8A2BE2; text-shadow:0 0 8px rgba(138,43,226,.55);}
body.default-theme .faq-question{color:#C6FF00;}
body.default-theme .story-page-content h2{color:#C6FF00; text-shadow:0 0 16px rgba(198,255,0,.55);}
body.default-theme .story-book{border-color:rgba(198,255,0,.5); box-shadow:0 0 36px rgba(198,255,0,.35);}
body.default-theme .story-nav-btn{background:linear-gradient(90deg, rgba(198,255,0,.25), rgba(138,43,226,.18)); border-color:rgba(198,255,0,.5);}
body.default-theme .modal-content{background:linear-gradient(135deg, #1a0f1a, #2d1a2d); border-color:rgba(198,255,0,.5); box-shadow:0 0 50px rgba(198,255,0,.45);}
body.default-theme .modal h2{color:#C6FF00;} body.default-theme .modal h3{color:#8A2BE2;}
body.default-theme .sponsors-footer{border-top-color:#C6FF00;}
body.default-theme .sponsors-section h3{color:#C6FF00; text-shadow:0 0 12px rgba(198,255,0,.55);}
body.default-theme .links-section h3{color:#8A2BE2; text-shadow:0 0 10px rgba(138,43,226,.55);}
body.default-theme .intro-text{text-shadow:0 0 8px rgba(198,255,0,.3);}
body.default-theme .page-indicator{color:#C6FF00;}
body.default-theme .calarts-logo-svg path{fill:#C6FF00;}
body.default-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px rgba(198,255,0,.5));}
body.undergrowth-theme { background: radial-gradient(1200px 800px at 50% 30%, #0f1a16 0%, #0a0f0c 60%) fixed; }
body.undergrowth-theme .main-title, body.undergrowth-theme .page-header{
  font-family: var(--font-undergrowth); color:var(--undergrowth-1);
  filter:drop-shadow(0 0 35px rgba(28,106,82,.7)) drop-shadow(0 0 70px rgba(155,130,30,.45));
}
body.undergrowth-theme .subtitle{color:var(--undergrowth-2);}
body.undergrowth-theme .date-location{color:var(--undergrowth-1); text-shadow:0 0 10px rgba(28,106,82,.55);}
body.undergrowth-theme .map-title{color:var(--undergrowth-1); text-shadow:0 0 12px rgba(28,106,82,.45);}
body.undergrowth-theme nav{border-bottom-color:var(--undergrowth-1); box-shadow:0 0 24px rgba(28,106,82,.2);}
body.undergrowth-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(28,106,82,.6));}
body.undergrowth-theme .map-container, body.undergrowth-theme .faq-item{border-color:var(--undergrowth-1); background:linear-gradient(135deg, rgba(28,106,82,.12), rgba(155,130,30,.08));}
body.undergrowth-theme .interactive-map, body.undergrowth-theme .schedule-section {border-color:var(--undergrowth-1);}
body.undergrowth-theme .nav-btn{ background:rgba(28,106,82,.08); border-color:var(--undergrowth-1); color:var(--white); text-shadow:0 0 6px rgba(28,106,82,.4); box-shadow:inset 0 0 12px rgba(28,106,82,.2);}
body.undergrowth-theme .nav-btn:hover,
.undergrowth-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(28,106,82,.2), rgba(155,130,30,.15)); border-color:var(--undergrowth-2); box-shadow:0 0 20px rgba(28,106,82,.5), inset 0 0 18px rgba(155,130,30,.3);}
body.undergrowth-theme .schedule-title,
.undergrowth-theme .team-title,
.undergrowth-theme .archives-title,
.undergrowth-theme .faq-title{color:var(--undergrowth-1); text-shadow:0 0 20px rgba(28,106,82,.55);}
body.undergrowth-theme .schedule-section,
.undergrowth-theme .faq-item,
.undergrowth-theme .team-card,
body.undergrowth-theme .schedule-section h3{color:var(--undergrowth-1);}
body.undergrowth-theme .time{color:var(--undergrowth-2); text-shadow:0 0 8px rgba(155,130,30,.55);}
body.undergrowth-theme .faq-question{color:var(--undergrowth-1);}
body.undergrowth-theme .story-page-content h2{color:var(--undergrowth-1); text-shadow:0 0 16px rgba(28,106,82,.55);}
body.undergrowth-theme .story-book{border-color:rgba(28,106,82,.5); box-shadow:0 0 36px rgba(28,106,82,.35);}
body.undergrowth-theme .story-nav-btn{background:linear-gradient(90deg, rgba(28,106,82,.25), rgba(155,130,30,.18)); border-color:rgba(28,106,82,.5);}
body.undergrowth-theme .modal-content{background:linear-gradient(135deg, #0f1a16, #1a2d1c); border-color:rgba(28,106,82,.5); box-shadow:0 0 50px rgba(28,106,82,.45);}
body.undergrowth-theme .modal h2{color:var(--undergrowth-1);} body.undergrowth-theme .modal h3{color:var(--undergrowth-2);}
body.undergrowth-theme .sponsors-footer{border-top-color:var(--undergrowth-1);}
body.undergrowth-theme .sponsors-section h3{color:var(--undergrowth-1); text-shadow:0 0 12px rgba(28,106,82,.55);}
body.undergrowth-theme .links-section h3{color:var(--undergrowth-2); text-shadow:0 0 10px rgba(155,130,30,.55);}
body.undergrowth-theme .intro-text{text-shadow:0 0 8px rgba(28,106,82,.3);}
body.undergrowth-theme .page-indicator{color:var(--undergrowth-1);}
body.undergrowth-theme .calarts-logo-svg path{fill:var(--undergrowth-1);}
body.undergrowth-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px rgba(28,106,82,.5));}
body.gambol-theme { background: radial-gradient(1200px 800px at 50% 30%, #1a0f1a 0%, #0a0508 60%) fixed; }
body.gambol-theme .main-title, body.gambol-theme .page-header{
  font-family:var(--font-gambol); color:var(--gambol-1);
  filter:drop-shadow(0 0 35px rgba(158,75,160,.75)) drop-shadow(0 0 70px rgba(255,127,39,.45));
  letter-spacing:.1em;
}
body.gambol-theme .subtitle{color:var(--gambol-2);}
body.gambol-theme .date-location{color:var(--gambol-1); text-shadow:0 0 10px rgba(158,75,160,.55);}
body.gambol-theme .map-title{color:var(--gambol-1); text-shadow:0 0 12px rgba(158,75,160,.45);}
body.gambol-theme nav{border-bottom-color:var(--gambol-1); box-shadow:0 0 24px rgba(158,75,160,.3);}
body.gambol-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(158,75,160,.6));}
body.gambol-theme .map-container, body.gambol-theme .faq-item{border-color:var(--gambol-1); background:linear-gradient(135deg, rgba(158,75,160,.12), rgba(255,127,39,.08));}
body.gambol-theme .interactive-map, body.gambol-theme .schedule-section {border-color:var(--gambol-1);}
body.gambol-theme .nav-btn{ background:rgba(158,75,160,.08); border-color:var(--gambol-1); color:var(--white); text-shadow:0 0 6px rgba(158,75,160,.4); box-shadow:inset 0 0 12px rgba(158,75,160,.2);}
body.gambol-theme .nav-btn:hover,
.gambol-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(158,75,160,.2), rgba(255,127,39,.15)); border-color:var(--gambol-2); box-shadow:0 0 20px rgba(158,75,160,.5), inset 0 0 18px rgba(255,127,39,.3);}
body.gambol-theme .schedule-title,
.gambol-theme .team-title,
.gambol-theme .archives-title,
.gambol-theme .faq-title{color:var(--gambol-1); text-shadow:0 0 20px rgba(158,75,160,.55);}
body.gambol-theme .schedule-section,
.gambol-theme .faq-item,
.gambol-theme .team-card,
body.gambol-theme .schedule-section h3{color:var(--gambol-1);}
body.gambol-theme .time{color:var(--gambol-2); text-shadow:0 0 8px rgba(255,127,39,.55);}
body.gambol-theme .faq-question{color:var(--gambol-1);}
body.gambol-theme .story-page-content h2{color:var(--gambol-1); text-shadow:0 0 16px rgba(158,75,160,.55);}
body.gambol-theme .story-book{border-color:rgba(158,75,160,.5); box-shadow:0 0 36px rgba(158,75,160,.35);}
body.gambol-theme .story-nav-btn{background:linear-gradient(90deg, rgba(158,75,160,.25), rgba(255,127,39,.18)); border-color:rgba(158,75,160,.5);}
body.gambol-theme .modal-content{background:linear-gradient(135deg, #1a0f1a, #2d1a20); border-color:rgba(158,75,160,.5); box-shadow:0 0 50px rgba(158,75,160,.45);}
body.gambol-theme .modal h2{color:var(--gambol-1);} body.gambol-theme .modal h3{color:var(--gambol-2);}
body.gambol-theme .sponsors-footer{border-top-color:var(--gambol-1);}
body.gambol-theme .sponsors-section h3{color:var(--gambol-1); text-shadow:0 0 12px rgba(158,75,160,.55);}
body.gambol-theme .links-section h3{color:var(--gambol-2); text-shadow:0 0 10px rgba(255,127,39,.55);}
body.gambol-theme .intro-text{text-shadow:0 0 8px rgba(158,75,160,.3);}
body.gambol-theme .page-indicator{color:var(--gambol-1);}
body.gambol-theme .calarts-logo-svg path{fill:var(--gambol-1);}
body.gambol-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px rgba(158,75,160,.5));}
body.retreat-theme { background: radial-gradient(1200px 800px at 50% 30%, #0a1514 0%, #050a0a 60%) fixed; }
body.retreat-theme .main-title, body.retreat-theme .page-header{
  font-family:var(--font-retreat); color:var(--retreat-1);
  filter:drop-shadow(0 0 35px rgba(41,169,161,.8)) drop-shadow(0 0 70px rgba(255,69,0,.45));
}
body.retreat-theme .subtitle{color:var(--retreat-2);}
body.retreat-theme .date-location{color:var(--retreat-1); text-shadow:0 0 10px rgba(41,169,161,.55);}
body.retreat-theme .map-title{color:var(--retreat-1); text-shadow:0 0 12px rgba(41,169,161,.45);}
body.retreat-theme nav{border-bottom-color:var(--retreat-1); box-shadow:0 0 24px rgba(41,169,161,.3);}
body.retreat-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(41,169,161,.6));}
body.retreat-theme .map-container, body.retreat-theme .faq-item{border-color:var(--retreat-1); background:linear-gradient(135deg, rgba(41,169,161,.12), rgba(255,69,0,.08));}
body.retreat-theme .interactive-map, body.retreat-theme .schedule-section{border-color:var(--retreat-1);}
body.retreat-theme .nav-btn{ background:rgba(41,169,161,.08); border-color:var(--retreat-1); color:var(--white); text-shadow:0 0 6px rgba(41,169,161,.4); box-shadow:inset 0 0 12px rgba(41,169,161,.2);}
body.retreat-theme .nav-btn:hover,
.retreat-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(41,169,161,.2), rgba(255,69,0,.15)); border-color:var(--retreat-2); box-shadow:0 0 20px rgba(41,169,161,.5), inset 0 0 18px rgba(255,69,0,.3);}
body.retreat-theme .schedule-title,
.retreat-theme .team-title,
.retreat-theme .archives-title,
.retreat-theme .faq-title{color:var(--retreat-1); text-shadow:0 0 20px rgba(41,169,161,.55);}
body.retreat-theme .schedule-section,
.retreat-theme .faq-item,
.retreat-theme .team-card,
body.retreat-theme .schedule-section h3{color:var(--retreat-1);}
body.retreat-theme .time{color:var(--retreat-2); text-shadow:0 0 8px rgba(255,69,0,.55);}
body.retreat-theme .faq-question{color:var(--retreat-1);}
body.retreat-theme .story-page-content h2{color:var(--retreat-1); text-shadow:0 0 16px rgba(41,169,161,.55);}
body.retreat-theme .story-book{border-color:rgba(41,169,161,.5); box-shadow:0 0 36px rgba(41,169,161,.35);}
body.retreat-theme .story-nav-btn{background:linear-gradient(90deg, rgba(41,169,161,.25), rgba(255,69,0,.18)); border-color:rgba(41,169,161,.5);}
body.retreat-theme .modal-content{background:linear-gradient(135deg, #0a1514, #14281a); border-color:rgba(41,169,161,.5); box-shadow:0 0 50px rgba(41,169,161,.45);}
body.retreat-theme .modal h2{color:var(--retreat-1);} body.retreat-theme .modal h3{color:var(--retreat-2);}
body.retreat-theme .sponsors-footer{border-top-color:var(--retreat-1);}
body.retreat-theme .sponsors-section h3{color:var(--retreat-1); text-shadow:0 0 12px rgba(41,169,161,.55);}
body.retreat-theme .links-section h3{color:var(--retreat-2); text-shadow:0 0 10px rgba(255,69,0,.55);}
body.retreat-theme .intro-text{text-shadow:0 0 8px rgba(41,169,161,.3);}
body.retreat-theme .page-indicator{color:var(--retreat-1);}
body.retreat-theme .calarts-logo-svg path{fill:var(--retreat-1);}
body.retreat-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px rgba(41,169,161,.5));}
body.altar-theme { background: radial-gradient(1200px 800px at 50% 30%, #180f1a 0%, #0a0810 60%) fixed; }
body.altar-theme .main-title, body.altar-theme .page-header{
  font-family:var(--font-altar); color:var(--altar-1);
  filter:drop-shadow(0 0 35px rgba(242,15,182,.7)) drop-shadow(0 0 70px rgba(4,191,51,.45));
}
body.altar-theme .subtitle{color:var(--altar-2);}
body.altar-theme .date-location{color:var(--altar-1); text-shadow:0 0 10px rgba(242,15,182,.55);}
body.altar-theme .map-title{color:var(--altar-1); text-shadow:0 0 12px rgba(242,15,182,.45);}
body.altar-theme nav{border-bottom-color:var(--altar-1); box-shadow:0 0 24px rgba(242,15,182,.25);}
body.altar-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(242,15,182,.6));}
body.altar-theme .map-container, body.altar-theme .faq-item{border-color:var(--altar-1); background:linear-gradient(135deg, rgba(242,15,182,.12), rgba(4,191,51,.08));}
body.altar-theme .interactive-map, body.altar-theme .schedule-section{border-color:var(--altar-1);}
body.altar-theme .nav-btn{ background:rgba(242,15,182,.08); border-color:var(--altar-1); color:var(--white); text-shadow:0 0 6px rgba(242,15,182,.4); box-shadow:inset 0 0 12px rgba(242,15,182,.2);}
body.altar-theme .nav-btn:hover,
.altar-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(242,15,182,.2), rgba(4,191,51,.15)); border-color:var(--altar-2); box-shadow:0 0 20px rgba(242,15,182,.5), inset 0 0 18px rgba(4,191,51,.3);}
body.altar-theme .schedule-title,
.altar-theme .team-title,
.altar-theme .archives-title,
.altar-theme .faq-title{color:var(--altar-1); text-shadow:0 0 20px rgba(242,15,182,.55);}
body.altar-theme .schedule-section,
.altar-theme .faq-item,
.altar-theme .team-card,
body.altar-theme .schedule-section h3{color:var(--altar-1);}
body.altar-theme .time{color:var(--altar-2); text-shadow:0 0 8px rgba(4,191,51,.55);}
body.altar-theme .faq-question{color:var(--altar-1);}
body.altar-theme .story-page-content h2{color:var(--altar-1); text-shadow:0 0 16px rgba(242,15,182,.55);}
body.altar-theme .story-book{border-color:rgba(242,15,182,.5); box-shadow:0 0 36px rgba(242,15,182,.35);}
body.altar-theme .story-nav-btn{background:linear-gradient(90deg, rgba(242,15,182,.25), rgba(4,191,51,.18)); border-color:rgba(242,15,182,.5);}
body.altar-theme .modal-content{background:linear-gradient(135deg, #110d14, #1c1322); border-color:rgba(242,15,182,.5); box-shadow:0 0 50px rgba(242,15,182,.4);}
body.altar-theme .modal h2{color:var(--altar-1);} body.altar-theme .modal h3{color:var(--altar-2);}
body.altar-theme .sponsors-footer{border-top-color:var(--altar-1);}
body.altar-theme .sponsors-section h3{color:var(--altar-1); text-shadow:0 0 12px rgba(242,15,182,.55);}
body.altar-theme .links-section h3{color:var(--altar-2); text-shadow:0 0 10px rgba(4,191,51,.55);}
body.altar-theme .intro-text{text-shadow:0 0 8px rgba(242,15,182,.3);}
body.altar-theme .page-indicator{color:var(--altar-1);}
body.altar-theme .calarts-logo-svg path{fill:var(--altar-1);}
body.altar-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px var(--altar-2));}
body.archive-theme { background: radial-gradient(1200px 800px at 50% 30%, #1a2328 0%, #0a0f12 60%) fixed; }
body.archive-theme .main-title, body.archive-theme .page-header{
  font-family:var(--font-archive); color:var(--archive-1);
  filter:drop-shadow(0 0 35px rgba(232,244,248,.8)) drop-shadow(0 0 70px rgba(92,124,138,.55));
  letter-spacing:.05em;
}
body.archive-theme .subtitle{color:var(--archive-2);}
body.archive-theme .date-location{color:var(--archive-1); text-shadow:0 0 10px rgba(232,244,248,.55);}
body.archive-theme .map-title{color:var(--archive-1); text-shadow:0 0 12px rgba(232,244,248,.45);}
body.archive-theme nav{border-bottom-color:var(--archive-3); box-shadow:0 0 24px rgba(92,124,138,.3);}
body.archive-theme .nav-title img{filter:drop-shadow(0 0 18px rgba(232,244,248,.6));}
body.archive-theme .map-container, body.archive-theme .faq-item{border-color:var(--archive-3); background:linear-gradient(135deg, rgba(157,180,192,.12), rgba(92,124,138,.08));}
body.archive-theme .interactive-map, body.archive-theme .schedule-section{border-color:var(--archive-3);}
body.archive-theme .nav-btn{ background:rgba(157,180,192,.08); border-color:var(--archive-3); color:var(--white); text-shadow:0 0 6px rgba(157,180,192,.4); box-shadow:inset 0 0 12px rgba(157,180,192,.2);}
body.archive-theme .nav-btn:hover,
.archive-theme .nav-btn.active{ background:linear-gradient(90deg, rgba(157,180,192,.2), rgba(232,244,248,.15)); border-color:var(--archive-1); box-shadow:0 0 20px rgba(157,180,192,.5), inset 0 0 18px rgba(232,244,248,.3);}
body.archive-theme .schedule-section,
.archive-theme .faq-item,
.archive-theme .team-card,
body.archive-theme .schedule-section h3{color:var(--archive-1);}
body.archive-theme .time{color:var(--archive-2); text-shadow:0 0 8px rgba(157,180,192,.45);}
body.archive-theme .faq-question{color:var(--archive-1);}
body.archive-theme .story-page-content h2{color:var(--archive-1); text-shadow:0 0 16px rgba(232,244,248,.45);}
body.archive-theme .story-book{border-color:rgba(157,180,192,.5); box-shadow:0 0 36px rgba(92,124,138,.35);}
body.archive-theme .story-nav-btn{background:linear-gradient(90deg, rgba(157,180,192,.25), rgba(92,124,138,.18)); border-color:rgba(157,180,192,.5);}
body.archive-theme .modal-content{background:linear-gradient(135deg, #1a2328, #283540); border-color:rgba(157,180,192,.5); box-shadow:0 0 50px rgba(92,124,138,.45);}
body.archive-theme .modal h2{color:var(--archive-1);} body.archive-theme .modal h3{color:var(--archive-2);}
body.archive-theme .sponsors-footer{border-top-color:var(--archive-3);}
body.archive-theme .sponsors-section h3{color:var(--archive-1); text-shadow:0 0 12px rgba(232,244,248,.45);}
body.archive-theme .links-section h3{color:var(--archive-2); text-shadow:0 0 10px rgba(157,180,192,.45);}
body.archive-theme .intro-text{text-shadow:0 0 8px rgba(157,180,192,.3);}
body.archive-theme .page-indicator{color:var(--archive-1);}
body.archive-theme .calarts-logo-svg path{fill:var(--archive-1);}
body.archive-theme .calarts-logo-svg{filter:drop-shadow(0 0 12px rgba(157,180,192,.5));}
.page-header { text-align: center; font-size: 3rem; margin-bottom: 2.2rem; color: var(--hazard); }
.schedule-container, .team-container, .archives-container, .faq-container { max-width: 1200px; margin: 0 auto; padding: 2rem; }
.schedule-section {
  background: linear-gradient(135deg, rgba(198,255,0,.06), rgba(57,255,20,.05));
  border: 1.5px solid;
  border-radius: 12px;
  padding: 1.2rem;
  box-shadow: inset 0 0 22px rgba(57,255,20,.15), 0 0 18px rgba(198,255,0,.1);
  position: relative;
  backdrop-filter: blur(2px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: auto;
  column-gap: 2rem;
  row-gap: .75rem;
}
.schedule-section::before { display: none !important; }
.schedule-section h3 {
  grid-column: 1 / -1;
  color: var(--acid);
  font-size: 1.3rem;
  margin: 1.2rem 0 .9rem;
  letter-spacing: .06em;
  text-align: center;
  border-bottom: 2px solid rgba(198,255,0,.3);
  padding-bottom: .5rem;
  background: transparent;
  border-radius: 0;
  text-shadow: none;
}
.schedule-section h3:first-of-type { margin-top: .2rem; }
.schedule-section h3:not(:first-of-type) { margin-top: 1.4rem; }
.schedule-item {
  padding: .55rem .75rem;
  border: 1px dashed rgba(198,255,0,.18);
  border-radius: 8px;
  color: #e8fdea;
  background: rgba(0,0,0,.25);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.schedule-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,.35);
  border-color: rgba(198,255,0,.35);
  background: rgba(0,0,0,.35);
}
.schedule-item .time {
  display: inline-block;
  min-width: 110px;
  font-weight: 900;
  color: var(--amber);
  text-shadow: 0 0 8px rgba(255,95,31,.35);
}
.schedule-item::before { content: none !important; }
.schedule-section h3:nth-of-type(3) {
  color: var(--magenta);
  border-bottom-color: rgba(255,17,120,.45);
  text-shadow: 0 0 20px rgba(255,17,120,.65);
}
.schedule-section h3:nth-of-type(3) ~ .schedule-item {
  background: linear-gradient(90deg, rgba(255,17,120,.10), rgba(0,0,0,.25) 55%);
}
.schedule-section h3:nth-of-type(3) ~ .schedule-item .time {
  color: var(--magenta);
  text-shadow: 0 0 10px rgba(255,17,120,.45);
}
.schedule-section .schedule-item:last-of-type {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1rem 1.25rem;
  border: 2px solid rgba(255,95,31,.45);
  background:
    radial-gradient(80% 120% at 50% 0%, rgba(255,95,31,.12) 0%, rgba(0,0,0,.35) 65%),
    rgba(0,0,0,.35);
  box-shadow: 0 10px 26px rgba(0,0,0,.45), inset 0 0 20px rgba(255,95,31,.15);
  border-radius: 10px;
  text-align: center;
  font-size: 1.3rem;
}
.schedule-section h3:nth-of-type(3) + .schedule-item .time,
.schedule-section .schedule-item:last-of-type .time {
  min-width: auto;
  text-shadow: 0 0 10px rgba(255,95,31,.5);
}
.schedule-section h3:nth-of-type(3) + .schedule-item span:not(.time),
.schedule-section .schedule-item:last-of-type span:not(.time) {
  font-weight: 900;
}
@media (max-width: 800px) {
  .schedule-section { grid-template-columns: 1fr; row-gap: .55rem; }
  .schedule-item .time { min-width: 96px; }
  .schedule-section h3:nth-of-type(3) + .schedule-item,
  .schedule-section .schedule-item:last-of-type {
    font-size: 1.1rem;
    padding: .9rem 1rem;
  }
  .schedule-section h3:nth-of-type(3) + .schedule-item .time,
  .schedule-section .schedule-item:last-of-type .time {
    font-size: 1.15rem;
  }
}
.gangs-container { max-width: 1400px; margin: 0 auto; padding: 2rem; position: relative; font-family: 'Caveat', cursive; }
#gangs {
  position: relative;
}
#gangs::before {
  content: '';
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background-image:
    radial-gradient(ellipse at 30% 20%, rgba(100,20,20,.15) 0%, transparent 25%),
    radial-gradient(ellipse at 70% 60%, rgba(80,15,15,.12) 0%, transparent 30%),
    radial-gradient(ellipse at 15% 80%, rgba(90,25,25,.1) 0%, transparent 20%);
  pointer-events: none; z-index: 0; opacity: .6;
}
.gang-selector { display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; padding: 0 20px; margin-bottom: 2rem; }
.gang-btn {
  font-family: 'Caveat', cursive;
  font-size: 14px; font-weight: 700; padding: 10px 20px;
  border: 2px solid; background: rgba(6,8,7,.95); cursor: pointer; transition: all .3s ease;
  text-transform: uppercase; letter-spacing: 1px; box-shadow: 0 0 10px rgba(0,0,0,.5);
}
.gang-btn:nth-child(1){transform:rotate(-4deg);}
.gang-btn:nth-child(2){transform:rotate(3deg);}
.gang-btn:nth-child(3){transform:rotate(-2deg);}
.gang-btn:nth-child(4){transform:rotate(4deg);}
.gang-btn:nth-child(5){transform:rotate(-3deg);}
.gang-btn:hover{ transform: scale(1.05) rotate(0deg); box-shadow: 0 0 20px; }
.gang-btn.active{ transform: scale(1.1) rotate(0deg); box-shadow: 0 0 25px; }
.gang-btn.undergrowth{ border-color:var(--undergrowth-1); color:var(--undergrowth-1);}
.gang-btn.undergrowth:hover,.gang-btn.undergrowth.active{ box-shadow:0 0 25px var(--undergrowth-1);}
.gang-btn.gambol{ border-color:var(--gambol-1); color:var(--gambol-1);}
.gang-btn.gambol:hover,.gang-btn.gambol.active{ box-shadow:0 0 25px var(--gambol-1);}
.gang-btn.retreat{ border-color:var(--retreat-1); color:var(--retreat-1);}
.gang-btn.retreat:hover,.gang-btn.retreat.active{ box-shadow:0 0 25px var(--retreat-1);}
.gang-btn.altar{ border-color:var(--altar-1); color:var(--altar-1);}
.gang-btn.altar:hover,.gang-btn.altar.active{ box-shadow:0 0 25px var(--altar-1);}
.gang-btn.archive{ border-color:var(--archive-3); color:var(--archive-1);}
.gang-btn.archive:hover,.gang-btn.archive.active{ box-shadow:0 0 25px var(--archive-3); }
.container { max-width: 1400px; margin: 0 auto; position: relative; z-index: 1; }
.gang-board { display: none; animation: fadeIn .5s ease; }
.gang-board.active { display: block; }
.gangs-container h1, .gangs-container h2, .gangs-container h3 {
  text-transform: uppercase;
  color: #1a1a1a;
}
.gangs-container h1{font-size:56px; letter-spacing:3px; font-weight:700;}
.gangs-container h2{font-size:32px; letter-spacing:2px; margin-bottom:8px; margin-top:0; font-weight:700;}
.gangs-container h3{font-size:22px; margin-bottom:5px; font-weight:700;}
.note-content { font-size: 18px; line-height: 1.3; color: #1a1a1a; }
.gang-board p { font-family: 'Caveat', cursive; font-size: 20px; font-weight: 700; color: #1a1a1a; margin: 0; }
.gang-board .gang-intel .note-content,
.gang-board .gang-intel .note-content * {
  font-family: 'Caveat', cursive !important;
  color: #1a1a1a !important;
  font-weight: 700;
  line-height: 1.15;
}
.gang-board .polaroid-caption,
.gang-board .top-section .post-it p {
  font-family: 'Caveat', cursive !important;
  color: #1a1a1a !important;
  font-weight: 700;
  line-height: 1.1;
}
#gangs .gang-board .post-it h1,
#gangs .gang-board .post-it h2,
#gangs .gang-board .post-it h3 {
  color: #111 !important;                 
  -webkit-text-fill-color: #111 !important; 
  text-shadow: none !important;            
  filter: none !important;                 
  mix-blend-mode: normal !important;       
}
#gangs .post-it { 
  color: #111 !important;
}
#undergrowth-board .post-it h1,
#gambol-board .post-it h1,
#retreat-board .post-it h1,
#altar-board .post-it h1,
#archive-board .post-it h1 {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}
.undergrowth-board h1, .undergrowth-board h2, .undergrowth-board h3 {
  font-family: var(--font-undergrowth);
  letter-spacing: -.1em;
}
.gambol-board h1, .gambol-board h2, .gambol-board h3 {
  font-family: var(--font-gambol);
  letter-spacing: .02em;
}
.retreat-board h1, .retreat-board h2, .retreat-board h3 {
  font-family: var(--font-retreat);
  letter-spacing: -.05em;
}
.altar-board h1, .altar-board h2, .altar-board h3 {
  font-family: var(--font-altar);
  letter-spacing: .03em;
}
.archive-board h1, .archive-board h2, .archive-board h3 {
  font-family: var(--font-archive);
  letter-spacing: .02em;
}
.post-it { padding: 12px; position: relative; border: 1px solid rgba(60,50,40,.4); box-shadow: 2px 2px 8px rgba(0,0,0,.3); }
.post-it.yellow{background:#FFD966;} .post-it.blue{background:#9EAAB5;} .post-it.pink{background:#FFB6C1;} .post-it.green{background:#A5D6A7;} .post-it.teal{background:#80CBC4;}
.post-it.orange{background:#FFAB91;} .post-it.purple{background:#CE93D8;} .post-it.hotpink{background:black;} .post-it.lime{background:#DCE775;} .post-it.lightblue{background:#B3E5FC;} .post-it.gray{background:#CFD8DC;}
.image-box { background:#0a0f0c; border:2px solid; display:flex; align-items:center; justify-content:center; color:#666; font-size:20px; text-align:center; font-weight:700; box-shadow:0 0 15px; }
.polaroid { background:#E8E0D0; padding:8px 8px 15px 8px; border:1px solid rgba(80,70,60,.3); position:relative; width:220px; box-shadow:3px 3px 10px rgba(0,0,0,.4); }
.polaroid-inner { width:100%; height:200px; background:linear-gradient(135deg,#2a2a2a 0%,#1a1a1a 100%); display:flex; align-items:center; justify-content:center; color:#666; font-size:72px; border:1px solid rgba(0,0,0,.3); }
.polaroid-caption { text-align:center; margin-top:8px; font-size:18px; font-weight:700; color:#1a1a1a; }
.pushpin {
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px; background: radial-gradient(circle, #8B0000 0%, #5a0000 100%);
  border-radius: 50%; z-index: 5; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.pushpin::after { content:''; position:absolute; bottom:-3px; left:50%; transform:translateX(-50%); width:3px; height:8px; background:linear-gradient(180deg,#6a0000 0%,#3a0000 100%); }
.top-section { display:flex; gap:10px; margin-bottom:10px; align-items:start; justify-content:center; }
.middle-section { display:grid; grid-template-columns:350px 500px; gap:10px; margin-bottom:0; align-items:start; justify-content:center; margin-left:auto; margin-right:auto; width:fit-content; }
.left-cluster { position:relative; height:380px; margin-top: -50px; }
.clustered-item { position:absolute; }
.members-section { margin:0; padding:0; margin-top:-50px !important; margin-bottom: 20px; }
.members-wrapper { display:flex; justify-content:center; margin:0; padding:0; }
.members-content { display:inline-block; margin:auto; padding:0; }
.members-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.bottom-section { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-top:10px; margin-bottom:40px; }
.top-section > div:first-child { width:290px; height:290px; display:flex; align-items:center; justify-content:center; }
.top-section > div:first-child .post-it { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.top-section > div:first-child strong { font-size:80px; }
.top-section > div:nth-child(2) { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.top-section .post-it { width:fit-content; padding:12px 20px; display:inline-block; white-space:nowrap; }
.top-section > div:nth-child(2) > .post-it:first-child { transform: rotate(1deg); }
.top-section > div:nth-child(2) > .post-it:last-child { transform: rotate(-1deg); white-space: normal; max-width: 400px; }
.top-section .polaroid { transform: rotate(2deg); position: relative; z-index: 10; }
.top-section > div:nth-child(2) > .post-it:last-child {
  margin-left: auto;
  margin-right: auto;
  margin-top: -20px;
}
.gang-intel { transform: rotate(-1deg); width: 500px; margin-top: -45px; }
.gang-intel .note-content p { margin-top: 8px; }
.gang-intel .note-content p:first-child { margin-top: 0; }
.members-content h2 { margin-bottom: 8px; font-size: 32px; text-align: center; }
.members-grid .polaroid:nth-child(1){transform:rotate(-1deg);}
.members-grid .polaroid:nth-child(2){transform:rotate(2deg);}
.members-grid .polaroid:nth-child(3){transform:rotate(-2deg);}
.members-grid .team-card {
  background: #E8E0D0;
  padding: 10px 10px 15px 10px;
  border: 1px solid rgba(0,0,0,.15);
  width: 220px;
  position: relative;
  box-shadow: 3px 3px 14px rgba(0,0,0,.45);
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}
.members-grid .team-card:hover {
  transform: translateY(-8px) scale(1.05) rotate(0deg);
  box-shadow: 5px 10px 20px rgba(0,0,0,.55);
  z-index: 10;
}
.members-grid .team-card .polaroid-inner {
  width: 100%;
  height: 200px;
}
.members-grid .team-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  border: 1px solid rgba(0,0,0,.25);
}
.members-grid .team-card h3,
.members-grid .team-card p {
  font-family: 'Caveat', cursive;
  color: #0f1110;
  text-align: center;
  line-height: 1.15;
  margin: 0;
}
.members-grid .team-card h3 {
  font-size: 20px;
  font-weight: 700;
  margin-top: 8px;
}
.members-grid .team-card p {
  font-size: 18px;
  font-weight: 700;
}
.bottom-section .image-box:nth-child(1){height:250px; transform:rotate(3deg);}
.bottom-section .image-box:nth-child(2){height:250px; transform:rotate(-1deg);}
.bottom-section .image-box:nth-child(3){height:250px; transform:rotate(2deg);}
.bottom-section .image-box strong { font-size: 24px; }
.undergrowth-board .image-box{border-color:var(--undergrowth-1); box-shadow:0 0 15px var(--undergrowth-1);}
.undergrowth-board .members-content h2{color:var(--undergrowth-1);}
.gambol-board .image-box{border-color:var(--gambol-1); box-shadow:0 0 15px var(--gambol-1);}
.gambol-board .members-content h2{color:var(--gambol-1);}
.retreat-board .image-box{border-color:var(--retreat-1); box-shadow:0 0 15px var(--retreat-1);}
.retreat-board .members-content h2{color:var(--retreat-1);}
.altar-board .image-box{border-color:var(--altar-1); box-shadow:0 0 15px var(--altar-1);}
.altar-board .members-content h2{color:var(--altar-1);}
.archive-board .image-box{border-color:var(--archive-3); box-shadow:0 0 15px var(--archive-3);}
.archive-board .members-content h2{color:var(--archive-1);}
#team .team-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
  max-width: 1200px; margin: 0 auto; justify-items: center;
}
#team .team-card {
  background:#E8E0D0;
  padding: 10px 10px 15px 10px;
  border: 1px solid rgba(0,0,0,.15);
  width: 220px; position: relative;
  box-shadow: 3px 3px 14px rgba(0,0,0,.45);
  cursor: pointer; transition: transform .3s ease, box-shadow .3s ease;
}
#team .team-card::before {
  content: ""; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px; border-radius: 50%;
  background: radial-gradient(circle, #8B0000 0%, #5a0000 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5); z-index: 2;
}
#team .team-card::after {
  content: ""; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 10px; background: linear-gradient(180deg,#6a0000 0%, #3a0000 100%); z-index: 1;
}
#team .team-card:nth-child(1){transform:rotate(-1deg);}
#team .team-card:nth-child(2){transform:rotate(2deg);}
#team .team-card:nth-child(3){transform:rotate(-2deg);}
#team .team-card:nth-child(4){transform:rotate(1deg);}
#team .team-card:nth-child(5){transform:rotate(-1deg);}
#team .team-card:nth-child(6){transform:rotate(2deg);}
#team .team-card:hover { transform: translateY(-8px) scale(1.05) rotate(0deg); box-shadow: 5px 10px 20px rgba(0,0,0,.55); z-index: 10; }
#team .team-card img { width: 100%; height: 200px; object-fit: cover; display: block; border: 1px solid rgba(0,0,0,.25); }
#team .team-card h3, #team .team-card p { font-family: 'Caveat', cursive; color: #0f1110; text-align: center; line-height: 1.15; margin: 0; }
#team .team-card h3 { font-size: 20px; font-weight: 700; margin-top: 8px; }
#team .team-card p { font-size: 18px; font-weight: 700; }
.archive-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2.5rem; max-width: 1200px; margin: 0 auto;
}
.archive-card {
  position: relative; display: flex; flex-direction: column; align-items: center;
  text-decoration: none; color: inherit; cursor: pointer;
  background: transparent; border: none; box-shadow: none;
  transition: transform .25s ease, filter .25s ease;
}
.archive-card:hover { transform: translateY(-6px) scale(1.03); filter: saturate(1.05); }
.archive-card img {
  height: 280px; object-fit: cover; display: block;
  background: #111;
  border: 2px solid #222;
  box-shadow: 0 12px 28px rgba(0,0,0,.6);
  transform: rotate(-1.5deg);
  position: relative;
}
.archive-card:nth-child(even) img { transform: rotate(1.8deg); }
.archive-card::before {
  content: ""; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px; border-radius: 50%;
  background: radial-gradient(circle, #8B0000 0%, #5a0000 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5); z-index: 2;
}
.archive-card::after {
  content: ""; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 10px; background: linear-gradient(180deg,#6a0000 0%, #3a0000 100%); z-index: 1;
}
.archive-card h3,
.archive-card p {
  font-family: 'Caveat', cursive; color: #f2f2f2; text-align: center;
  text-shadow: 0 2px 10px rgba(0,0,0,.6), 0 0 6px rgba(255,255,255,.08);
  margin: 8px 0 0 0; line-height: 1.1;
}
.archive-card h3 { font-size: 26px; font-weight: 700; }
.archive-card p  { font-size: 20px; font-weight: 700; opacity: .9; }
.faq-item {
  background: linear-gradient(135deg, rgba(198,255,0,.06), rgba(57,255,20,.05));
  border: 1.5px solid var(--acid); border-radius: 10px; padding: 1.4rem;
  box-shadow: inset 0 0 22px rgba(57,255,20,.15), 0 0 18px rgba(198,255,0,.1);
  position: relative; margin-bottom: 1.2rem; backdrop-filter: blur(2px);
}
.faq-item::before {
  content: ""; position: absolute; inset: 0; border-radius: 10px;
  opacity: .35; pointer-events: none;
}
.faq-question {
  color: var(--acid); font-weight: 900; margin-bottom: .6rem;
  display: flex; justify-content: space-between; align-items: center; cursor: pointer;
}
.faq-toggle { font-size: 1.5rem; transition: .2s; }
.faq-answer { display: none; line-height: 1.65; color: white;}
.faq-answer.active { display: block; animation: fadeIn .3s ease-in-out; }
.faq-item:hover { box-shadow: 0 8px 22px rgba(57,255,20,.18); }
.faq-item.active .faq-toggle { transform: rotate(45deg); }
.intro-section { max-width: 800px; margin: 1.5rem auto 0; padding: 0 2rem; text-align: center; }
.modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: none;
  padding: 48px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: auto;
  font-family: 'Caveat', cursive;
  cursor: default;
}
.modal.is-open {
  display: grid;
  place-items: center;                
}
.modal[style*="display: block"],
.modal[style*="display:block"],
.modal[style*="display: flex"],
.modal[style*="display:flex"] {
  display: grid !important;
  place-items: center !important;
}
.modal-content {
  position: relative;
  display: block;                     
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  max-width: min(820px, 92vw);
  margin: 0 auto;
  overflow: visible;
  pointer-events: auto;
  padding: 8px;
  box-sizing: border-box;
}
.modal-content .modal-stack {
  display: grid;
  grid-template-columns: 240px minmax(360px, 1fr); 
  align-items: start;
  gap: 0;                               
  justify-content: center;
  max-height: calc(100vh - 128px);
  overflow: auto;
  padding: 40px 16px 16px 16px;
  box-sizing: border-box;
}
.modal .modal-polaroid { position: relative; z-index: 3; min-width: 0; }
.modal .polaroid {
  width: 240px;
  max-width: 100%;
  transform: rotate(1.5deg);
  background: #E8E0D0;
  box-shadow: 3px 3px 10px rgba(0,0,0,.4);
  position: relative;
  margin-right: -36px;                 
}
.modal .polaroid-inner {
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  border: 1px solid rgba(0,0,0,.3);
}
.modal .modal-postit { position: relative; z-index: 2; min-width: 0; }
.modal .post-it {
  transform: rotate(-1.2deg);
  margin-left: 0;                       
  max-width: clamp(340px, 50vw, 520px);
}
.modal .note-content,
.modal .polaroid-caption,
.modal p, .modal a, .modal h2, .modal h3 { font-family: 'Caveat', cursive; color: #1a1a1a; }
.modal img {
  border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  width: 100%; height: auto; object-fit: cover; display: block;
}
.close { display: none !important; }
@media (max-width: 700px) {
  .modal-content { max-width: min(560px, 96vw); }
  .modal-content .modal-stack {
    grid-template-columns: 1fr;
    padding-top: 24px;                  
  }
  .modal .polaroid { margin-right: 0; }
}
@media (max-width: 1024px) {
  .nav-container { flex-direction: column; gap: 1rem; }
  .nav-buttons { justify-content: center; }
  .container { margin-top: 0; }
  .page { padding-top: 150px; }
  .schedule-section { grid-template-columns: 1fr; }
  .top-section { flex-direction: column; align-items: center; }
  .middle-section, .bottom-section { grid-template-columns: 1fr; }
  .members-grid { grid-template-columns: 1fr;}
  .left-cluster { height: auto; position: static; }
  .clustered-item { position: static; margin-bottom: 10px; }
  #team .team-grid { grid-template-columns: repeat(3, 1fr); }
  .archive-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
  .sponsors-content { grid-template-columns: 1fr; gap: 2rem; }
  .sponsor-images { grid-template-columns: repeat(auto-fit, minmax(100px,1fr)); }
  .sponsor-logo { width: 100px; height: 70px; }
  .main-footer-content { flex-direction: column; gap: 1rem; text-align: center; }
  .interactive-map { min-height: 300px; }
  .title-header { margin-bottom: 1.5rem; }
  .map-container { max-width: 100%; width: 100%; }
  .schedule-title, .team-title, .archives-title, .faq-title { font-size: 2rem; }
  .story-book { padding: 1.3rem; }
  #team .team-grid { grid-template-columns: repeat(2, 1fr); }
  .archive-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  #team .team-grid { grid-template-columns: 1fr; }
  .archive-grid { grid-template-columns: 1fr; }
  .faq-title { font-size: 2rem; }
  .story-book { padding: 1.3rem; }
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.guidelines-modal {
  position: fixed; inset: 0; z-index: 5000;
  display: none; 
}
.guidelines-modal.is-open { display: block; }
.guidelines-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.guidelines-card {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%) rotate(-1.2deg);
  width: min(680px, 92vw);
  background: #FFD966; 
  border: 1px solid rgba(0,0,0,.25);
  box-shadow: 0 12px 30px rgba(0,0,0,.5), inset 0 0 18px rgba(0,0,0,.08);
  padding: 22px 22px 18px;
  font-family: Arial , sans-serif;
  color: #1a1a1a;
}
.guidelines-card::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(120% 80% at 20% 10%, rgba(0,0,0,.08) 0%, transparent 60%),
    radial-gradient(80% 120% at 80% 90%, rgba(0,0,0,.06) 0%, transparent 60%);
  opacity: .35;
}
.guidelines-card .pushpin {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 22px; height: 22px; border-radius: 50%;
  background: radial-gradient(circle, #8B0000 0%, #5a0000 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  z-index: 2;
}
.guidelines-card .pushpin::after {
  content: ""; position: absolute; bottom: -4px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 10px; background: linear-gradient(180deg,#6a0000 0%, #3a0000 100%);
}
.guidelines-body { font-size: 20px; }
.guidelines-list {
  list-style: none; margin: 0 0 14px 0; padding: 0;
  display: grid; gap: 6px;
}
.guidelines-list li {
  background: rgba(255,255,255,.35);
  border: 1px dashed rgba(0,0,0,.25);
  border-radius: 8px;
  padding: 8px 10px;
  font-weight: 700;
}
.agree-row {
  display: flex; align-items: center; gap: 10px;
  margin-top: 8px; font-weight: 700;
}
.agree-row input[type="checkbox"] {
  width: 20px; height: 20px; cursor: pointer;
  accent-color: #1a1a1a;
}
.guidelines-actions {
  display: flex; justify-content: center; margin-top: 12px;
}
.agree-btn {
  background: rgba(198,255,0,.10);
  color: var(--white);
  border: 2px solid var(--acid);
  text-transform: uppercase; font-weight: 900; letter-spacing: .06em;
  padding: 10px 18px; cursor: pointer;
  box-shadow: inset 0 0 12px rgba(57,255,20,.15);
  transition: .2s ease;
}
.agree-btn[disabled] {
  opacity: .6; cursor: not-allowed; filter: grayscale(0.2);
}
.agree-btn:not([disabled]):hover {
  transform: translateY(-2px);
  background: linear-gradient(90deg, rgba(198,255,0,.18), rgba(57,255,20,.18));
  box-shadow: 0 0 20px rgba(57,255,20,.35), inset 0 0 18px rgba(198,255,0,.25);
  border-color: var(--toxic);
}
body.guidelines-locked { overflow: hidden !important; }
@media (max-width: 520px) {
  .guidelines-card { padding: 18px 16px 14px; }
  .guidelines-list li { font-size: 18px; }
}
.guidelines-card {
  background: #d9c85a url('https://www.transparenttextures.com/patterns/paper-fibers.png') repeat; 
  color: #1b1b1b !important;
  border: 1px solid rgba(0,0,0,0.18);
  box-shadow: 0 10px 36px rgba(0,0,0,0.6), inset 0 0 18px rgba(0,0,0,0.05);
  width: min(640px, 92vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  padding: 22px 26px 18px !important;
  transform: translate(-50%, -50%) rotate(-0.8deg);
  overflow: visible !important;    
  border-radius: 0 !important;     
}
.guidelines-card::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(90% 60% at 25% 20%, rgba(255,255,255,.35) 0%, transparent 70%),
    radial-gradient(80% 110% at 85% 90%, rgba(0,0,0,.10) 0%, transparent 70%);
  opacity: .35;
  mix-blend-mode: overlay;
}
.guidelines-card .pushpin {
  position: absolute;
  top: -18px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #c31818 0%, #6e0000 100%);
  box-shadow: 0 5px 12px rgba(0,0,0,.55);
  z-index: 3;
}
.guidelines-card .pushpin::after {
  content: ""; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 14px; border-radius: 1px;
  background: linear-gradient(180deg, #5a0000 0%, #2a0000 100%);
}
.guidelines-header {
  flex-shrink: 0;
  text-align: center;
  margin-bottom: 12px !important;
  border: none !important;
}
.guidelines-header h2 {
  margin: 0;
  font-size: clamp(26px, 5vw, 50px);
  color: #111 !important;
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: .05em;
}
.guidelines-header h3 { 
  font-size: clamp(28px, 2vw, 80px);
}
.guidelines-sub {
  margin-top: 4px;
  color: #2a2a2a !important;
  font-size: 16px;
}
.guidelines-body {
  flex: 1;
  overflow-y: auto;
  padding-right: 6px;
  margin-bottom: 12px;
}
.guidelines-body::-webkit-scrollbar { width: 6px; }
.guidelines-body::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.25);
}
.guidelines-list {
  list-style: none;
  padding: 0; margin: 0;
  display: grid;
  gap: 8px;
}
.guidelines-list li {
  display: grid;
  grid-template-columns: 1.4em 1fr;  
  align-items: start;
  column-gap: 10px;
  background: none !important;
  border: none !important;
  color: #1b1b1b !important;
  font-size: 18px;
  line-height: 1.45;
}
.guidelines-list li::before {
  content: "★";
  display: block;
  margin-top: 2px;
  font-size: 18px;
  color: #6e0000; 
  text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}
.guidelines-signoff {
  margin: 10px 0 0;
  font-weight: 800;
  color: #111;
}
.guidelines-footer {
  flex-shrink: 0;
  margin-top: 6px;
}
.agree-row {
  display: flex; align-items: center; gap: 10px;
  color: #111; font-size: 16px;
}
.agree-row input[type="checkbox"] {
  width: 20px; height: 20px; accent-color: #111;
}
.guidelines-actions {
  display: flex; justify-content: center; margin-top: 10px;
}
.agree-btn {
  background: #222; color: #fff; border: 1px solid #000;
  font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  padding: 10px 18px; border-radius: 0; 
  transition: background .2s ease;
  box-shadow: 0 3px 0 rgba(0,0,0,.25);
}
.agree-btn[disabled] { opacity: .55; cursor: not-allowed; }
.agree-btn:not([disabled]):hover { background: #333; }
.guidelines-backdrop {
  background: rgba(0,0,0,0.8) !important;
  backdrop-filter: blur(8px) !important;
}
@media (max-width: 520px) {
  .guidelines-card { width: 90vw; padding: 18px !important; }
  .guidelines-list li { font-size: 16px; }
}
:root{
  --paper-1-url: url('Images/texture_paper1.jpg');
  --paper-2-url: url('Images/texture_paper2.jpg');
  --paper-3-url: url('Images/texture_paper3.jpg');
}
.post-it,
.map-point.postit .postit-note,
.modal .post-it,
.guidelines-card{
  position: relative; 
  isolation: isolate; 
}
.post-it::after,
.map-point.postit .postit-note::after,
.modal .post-it::after,
.guidelines-card::after{
  content:"";
  position:absolute; inset:0;
  background-image: var(--paper-1-url);   
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  mix-blend-mode: multiply;               
  opacity:.55;                            
  pointer-events:none;
  z-index: 0;                             
}
.post-it > *,.map-point.postit .postit-note > *,
.modal .post-it > *,.guidelines-card > *{ position: relative; z-index: 1; }
.map-point.postit .postit-note::after{
  background-image: var(--paper-1-url);
}
.modal .post-it::after{
  background-image: var(--paper-2-url);
}
.gangs-container .post-it::after{ background-image: var(--paper-1-url); }
.gangs-container .post-it:nth-child(2n)::after{ background-image: var(--paper-2-url); }
.gangs-container .post-it:nth-child(3n)::after{ background-image: var(--paper-1-url); }
.gangs-container .post-it:nth-child(5n)::after{ background-image: var(--paper-2-url); }
.gangs-container .post-it:nth-child(7n)::after{ background-image: var(--paper-1-url); }
.guidelines-card{
  background: #d9c85a !important;
}
.guidelines-card::after{
  background-image: var(--paper-3-url);
  opacity:.6; 
}
.post-it::before,
.map-point.postit .postit-note::before,
.modal .post-it::before,
.guidelines-card::before{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  mix-blend-mode:multiply;
  background:
    radial-gradient(80% 60% at 20% 10%, rgba(0,0,0,.06), transparent 60%),
    radial-gradient(70% 90% at 85% 90%, rgba(0,0,0,.05), transparent 65%);
  opacity:.35;
  z-index: 0; 
}
.gang-logo {
  display: block;
  width: 60px;         
  height: auto;        
  max-width: 100%;      
  margin: 6px auto 0;  
  object-fit: contain;
}
.gang-board .gang-logo {
  width: 100%;
}
.map-point.postit:hover {
  transform: none !important;
}
.map-point.postit:hover .postit-note {
  transform: rotate(var(--rot)) !important;
  box-shadow: 0 0 20px rgba(0,0,0,.4);
  filter: none;
  transition: box-shadow 0.25s ease, filter 0.25s ease;
}
.interactive-map a.map-point {
  transform: none !important;
  transition: filter .25s ease; 
}
.interactive-map a.map-point:hover,
.interactive-map a.map-point:focus {
  transform: none !important;          
}
.map-point.postit .postit-note {
  transition: filter .25s ease;
}
.map-point.postit:hover .postit-note,
.map-point.postit:focus .postit-note {
  filter: url(#roughen-edges);
}
.map-point.postit .postit-note {
  filter: url(#roughen-edges) !important;
  transition: filter .22s ease;
}
.interactive-map a.map-point,
.interactive-map a.map-point:hover,
.interactive-map a.map-point:focus {
  transform: none !important;
}
.undergrowth-point:hover .postit-note,
.undergrowth-point:focus .postit-note { filter: url(#pin-glow-undergrowth) !important; }
.gambol-point:hover .postit-note,
.gambol-point:focus .postit-note { filter: url(#pin-glow-gambol) !important; }
.retreat-point:hover .postit-note,
.retreat-point:focus .postit-note { filter: url(#pin-glow-retreat) !important; }
.altar-point:hover .postit-note,
.altar-point:focus .postit-note { filter: url(#pin-glow-altar) !important; }
.archive-point:hover .postit-note,
.archive-point:focus .postit-note { filter: url(#pin-glow-archive) !important; }
.top-section .polaroid-inner img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.middle-section {
  display: flex;
  justify-content:  center;
  gap: 50px;
  width: 100%;
  text-align: left;
  margin-bottom: 80px;
  flex-wrap: wrap;
  align-items: center;
}
.art-png-stack {
  --sheet: 210px;   
  --gap: 130px;     
  position: relative;
  flex: 0 0 auto;
  width: calc(var(--sheet) + var(--gap) * 1.2);
  height: 240px;
  overflow: visible;
}
.art-png-stack .sheet {
  position: absolute;
}
.art-png-stack img {
  display: block;
  width: auto;
  height: auto;
  max-width: var(--sheet);
  max-height: 210px;
  object-fit: contain;
  border: 1px solid rgba(0,0,0,.25);
  border-radius: 3px;
  background: #111;
  box-shadow: 0 3px 8px rgba(0,0,0,.45);
  cursor: zoom-in;
}
.art-png-stack .s3 { 
  top: 12px;
  left: 0;
  transform: rotate(-4deg);
  z-index: 1;
}
.art-png-stack .s2 { 
  top: 6px;
  left: var(--gap);
  transform: rotate(3deg);
  z-index: 2;
}
.art-png-stack .s1 { 
  top: 0;
  left: calc(var(--gap) * 2);
  transform: rotate(-2deg);
  z-index: 3;
}
.post-it.gang-intel {
  flex: 0 1 auto;
  margin: 0;
  min-width: 400px;
}
@media (max-width: 900px) {
  .art-png-stack { --sheet: 190px; --gap: 150px; height: 200px; width: 70%;}
  .art-png-stack img { max-height: 190px; }
}
@media (max-width: 720px) {
  .art-png-stack { --sheet: 160px; --gap: 120px; height: 200px;}
  .art-png-stack img { max-height: 170px; }
}
#guidelinesModal[aria-hidden="true"] {
  display: none !important;
  pointer-events: none !important;
}
.guidelines-modal:not(.is-open) {
  pointer-events: none !important;
}
#guidelinesModal[aria-hidden="true"] {
  display: none !important;
  pointer-events: none !important;
}
.guidelines-modal:not(.is-open) {
  pointer-events: none !important;
}
#image-modal-img{
  max-height: 50vh;
  object-fit: contain;
  border-radius: 8px;
  display: block;
  margin: auto;
}
.image-modal-figure {
  margin: 0;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: .5rem;
  justify-items: center;
}
#image-modal-img {
  max-height: 70vh;
  object-fit: contain;
  border-radius: 8px;
  display: block;
  width: auto;
}
#image-modal-cap {
  color: #fff;
  font-size: 2rem;
  line-height: 1.35;
  text-align: center;
  opacity: .95;
  padding: .35rem .5rem .1rem;
}