
:root { --ink:#f5f7fa; --muted:#a8b3c2; --paper:#0c1320; --panel:#151e2f; --line:#26344d; --blue:#4ea3ff; --gold:#d9a63a; --max:1180px; }
*{box-sizing:border-box} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink);line-height:1.55} a{color:inherit;text-decoration:none} a:hover{color:var(--blue)}
.site-header{position:sticky;top:0;z-index:10;background:rgba(12,19,32,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px clamp(18px,4vw,54px)} .brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand-mark{background:var(--gold);color:#0c1320;padding:10px 12px;font-family:Georgia,serif}.brand-text{font-size:.92rem;line-height:1.05}.nav{display:flex;align-items:center;gap:20px;font-size:.93rem;font-weight:650}.nav .active{color:var(--blue);border-bottom:2px solid var(--gold)}.menu-toggle{display:none}
.hero,.page-hero,.section{max-width:var(--max);margin:0 auto;padding-left:24px;padding-right:24px}.hero{padding-top:clamp(56px,9vw,110px);padding-bottom:clamp(56px,9vw,110px);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:44px;align-items:end;border-bottom:1px solid var(--line)}.page-hero{padding-top:clamp(54px,8vw,96px);padding-bottom:54px;border-bottom:1px solid var(--line)}.section{padding-top:70px;padding-bottom:70px;border-bottom:1px solid var(--line)}
.eyebrow,.tag,.label{color:var(--blue);text-transform:uppercase;font-size:.78rem;font-weight:800;letter-spacing:.12em;margin:0 0 14px} h1,h2,h3{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em;line-height:1.05;margin:0} h1{font-size:clamp(2.8rem,8vw,6.4rem);max-width:990px}h2{font-size:clamp(1.7rem,3vw,3rem)}h3{font-size:1.35rem}.lede{font-size:clamp(1.1rem,2vw,1.35rem);color:var(--muted);max-width:800px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.button,button{background:var(--gold);color:#0c1320;border:0;padding:13px 18px;font-weight:800;cursor:pointer;display:inline-block}.button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:28px}.feature-card,.card,.team-card,.contact-card,.featured-news,.discord-box,.callout,.quote,.faq-list details,.news-item{background:var(--panel);border:1px solid var(--line);box-shadow:0 18px 45px rgba(0,0,0,.18)}.feature-card{padding:28px;border-top:5px solid var(--gold)}.card-grid,.team-grid,.contact-grid{display:grid;gap:18px}.card-grid.four{grid-template-columns:repeat(4,1fr)}.card,.team-card,.contact-card{padding:24px;min-height:230px}.card p,.team-card p,.contact-card p,.feature-card p,.featured-news p,.news-item p,.discord-box li,.callout p,.faq-list p{color:var(--muted)}
.quote-section{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quote{padding:28px}.quote p{font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.1;margin:0 0 18px}.quote span{color:var(--gold);font-weight:800}.faq-list{display:grid;gap:12px}.faq-list details{padding:20px 24px}.faq-list summary{cursor:pointer;font-weight:850;font-size:1.1rem}.team-grid{grid-template-columns:repeat(3,1fr)}.avatar{width:72px;height:72px;border-radius:50%;background:var(--gold);color:#0c1320;display:grid;place-items:center;font-weight:900;font-family:Georgia,serif;font-size:1.3rem;margin-bottom:20px}.callout,.featured-news{padding:34px}.featured-news{border-left:5px solid var(--gold)}.news-list{display:grid;gap:18px}.news-item{padding:24px;display:grid;grid-template-columns:1fr 130px;gap:24px}.news-item span,.meta{color:var(--gold);font-weight:800}.join-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:stretch}.discord-box{padding:28px}
.footer{background:#070d17;color:white;padding:54px clamp(18px,4vw,54px) 24px}.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:34px}.footer-brand{display:block;font-family:Georgia,serif;font-size:1.7rem;line-height:1.05;margin-bottom:12px}.footer h3{font-family:Inter,sans-serif;font-size:.86rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:12px}.footer a{display:block;color:white;margin:8px 0}.footer p{color:#dce9f4;margin-top:0}.small{font-size:.86rem}.footer-bottom{max-width:var(--max);margin:40px auto 0;border-top:1px solid rgba(255,255,255,.25);padding-top:18px;display:flex;justify-content:space-between;gap:16px;font-size:.9rem}
@media(max-width:900px){.menu-toggle{display:inline-block;background:transparent;color:var(--ink);border:1px solid var(--line)}.nav{display:none;position:absolute;top:76px;left:18px;right:18px;padding:18px;background:var(--panel);border:1px solid var(--line);flex-direction:column;align-items:start}.nav.open{display:flex}.hero,.join-hero,.quote-section{grid-template-columns:1fr;display:grid}.card-grid.four,.team-grid,.contact-grid,.footer-grid{grid-template-columns:1fr}.news-item{grid-template-columns:1fr}.footer-bottom{flex-direction:column}}
.article-hero {
  max-width: var(--max);
  margin: 0 auto;
  padding: 80px 24px 44px;
  border-bottom: 1px solid var(--line);
}

.article-layout {
  max-width: var(--max);
  margin: 0 auto;
  padding: 50px 24px 80px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 50px;
}

.article-sidebar {
  position: sticky;
  top: 100px;
  align-self: start;
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 24px;
}

.article-sidebar p {
  color: var(--muted);
}

.article-body {
  max-width: 760px;
}

.article-body h2 {
  margin-top: 42px;
  margin-bottom: 12px;
}

.article-body p,
.article-body li {
  font-size: 1.08rem;
  color: var(--muted);
}

.article-body blockquote {
  margin: 36px 0;
  padding: 24px;
  border-left: 5px solid var(--gold);
  background: var(--panel);
  font-family: Georgia, serif;
  font-size: 1.5rem;
  line-height: 1.2;
}

@media (max-width: 900px) {
  .article-layout {
    grid-template-columns: 1fr;
  }

  .article-sidebar {
    position: static;
  }
}
.article-body figure img {
    width: 100%;
    max-width: 450px;
    cursor: zoom-in;
}
/* Animations */

body {
  animation: fadeIn 0.45s ease;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.page-hero h1,
.article-hero h1,
.hero h1 {
  animation: slideUp 0.7s ease;
}

.page-hero .lede,
.article-hero .lede,
.hero .lede {
  animation: slideUp 0.9s ease;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.nav a {
  position: relative;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width 0.25s ease;
}

.nav a:hover::after {
  width: 100%;
}

.news-item,
.featured-news,
.card,
.team-card,
.contact-card,
.article-sidebar,
.feature-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.news-item:hover,
.featured-news:hover,
.card:hover,
.team-card:hover,
.contact-card:hover,
.article-sidebar:hover,
.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
}

.button {
  transition: transform 0.2s ease, filter 0.2s ease;
}

.button:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
}

.article-body figure {
  overflow: hidden;
}

.article-body figure img {
  transition: transform .4s ease;
}

.article-body figure:hover img {
  transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
.hero-video {
    position: relative;
    height: 80vh;
    overflow: hidden;
}

.hero-video video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 2;
}

.hero-content {
    position: relative;
    z-index: 3;
    color: white;

    height: 100%;
    max-width: 1200px;
    margin: auto;
    padding: 0 40px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-content h1 {
    color: white;
    text-shadow: 0 3px 20px rgba(0,0,0,0.5);
}

.hero-content .lede {
    color: rgba(255,255,255,0.95);
    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}

.hero-content .eyebrow {
    color: var(--gold);
    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  background: var(--panel);
}

.candidate-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 1000px;
}

.candidate-table th,
.candidate-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.candidate-table th {
  color: var(--gold);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.stance {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.82rem;
}

.stance.support {
  background: #1f8f5f;
  color: white;
}

.stance.oppose {
  background: #a33a3a;
  color: white;
}

.stance.unsure {
  background: #a8842c;
  color: white;
}

.stance.no-response {
  background: #4b5563;
  color: white;
}

.small-text {
  color: var(--muted);
  font-size: .85rem;
}
.hover-target {
  cursor: pointer;
  color: blue;
  text-decoration: underline;
}

/* The floating image container */
#hover-image {
  position: fixed;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: 9999;
}

#hover-image img {
  width: 220px;
  border: 1px solid #ccc;
  background: white;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  border-radius: 6px;
}

/* School representation map */

.map-container {
  position: relative;
  width: 100%;
  margin-top: 2rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  background: var(--panel);
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
}

#sydney-map {
  width: 100%;
  height: 620px;
}

.perth-inset {
  position: absolute;
  right: 22px;
  bottom: 22px;
  width: 310px;
  height: 230px;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--panel);
  box-shadow: 0 14px 35px rgba(0,0,0,.42);
  z-index: 500;
}

#perth-map {
  width: 100%;
  height: 100%;
}

.inset-label {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 700;
  background: rgba(12,19,32,.88);
  color: var(--gold);
  border: 1px solid var(--line);
  padding: 5px 8px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.school-marker span {
  display: block;
  width: 18px;
  height: 18px;
  background: var(--gold);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(217,166,58,.25), 0 8px 20px rgba(0,0,0,.35);
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: #151e2f;
  color: #f5f7fa;
  border: 1px solid var(--line);
}

.leaflet-popup-content {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: .95rem;
}

.leaflet-popup-content strong {
  color: var(--gold);
}

.leaflet-popup-content span {
  color: var(--muted);
}

.map-note {
  margin-top: 1rem;
  color: var(--muted);
  font-size: .95rem;
}

@media (max-width: 800px) {
  #sydney-map {
    height: 520px;
  }

  .perth-inset {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 260px;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
  }
}
