/* ============================================================
   Zodiac Scape — obsidian, cold steel and god-fire
   ============================================================ */

:root{
  --panel:#0c1220;
  --panel-2:#101828;
  --line:rgba(146,178,214,.16);
  --line-hot:rgba(120,190,255,.42);

  --steel:#9db2cc;
  --steel-dim:#647a95;
  --text:#dbe6f4;
  --muted:#94a7bf;

  --azure:#3fa0ff;
  --azure-hot:#8ad4ff;
  --azure-deep:#0d3f6e;
  --ember:#ff4f26;
  --verd:#5fd98f;
  --parch:#d9c7a3;
  --blurple:#5865f2;

  --display:"Cinzel",Georgia,serif;
  --body:"Barlow",system-ui,-apple-system,Segoe UI,sans-serif;

  --wrap:1140px;
  --r:4px;
  --shadow:0 18px 50px -18px rgba(0,0,0,.85);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  display:flex;flex-direction:column;
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  color:var(--text);
  /* Old-school look: cracked stone held dark enough to read on, ivy climbing both page edges. */
  background-color:#14150f;
  background-image:
    url("../img/bg-ivy.png"),
    url("../img/bg-ivy-r.png"),
    linear-gradient(180deg,rgba(0,0,0,.50),rgba(0,0,0,.66)),
    url("../img/bg-stone.jpg");
  background-repeat:repeat-y, repeat-y, no-repeat, repeat;
  background-position:left top, right top, center, center;
  background-size:170px auto, 170px auto, cover, 512px 512px;
  background-attachment:fixed, fixed, fixed, fixed;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:var(--azure-hot);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.15;margin:0;letter-spacing:.01em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

main{flex:1 0 auto;position:relative;z-index:1}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

:focus-visible{outline:2px solid var(--azure-hot);outline-offset:3px;border-radius:2px}

.skip-link{
  position:absolute;left:12px;top:-60px;z-index:60;padding:10px 16px;
  background:var(--panel-2);border:1px solid var(--line-hot);color:var(--text);
  transition:top .18s
}
.skip-link:focus{top:12px}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(18px,4vw,32px);position:relative;z-index:1}
.wrap-narrow{max-width:820px}

/* ============================================================
   Masthead
   ============================================================ */

.masthead{
  position:sticky;top:0;z-index:50;
  background:#121310;
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(138,212,255,.14);
}
.masthead-inner{
  max-width:var(--wrap);margin-inline:auto;
  padding:12px clamp(18px,4vw,32px);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;
}

.brand{display:inline-flex;align-items:center;gap:10px;justify-self:start;color:var(--text)}
.brand:hover{text-decoration:none;color:#fff}
.brand-mark{
  width:34px;height:34px;border-radius:6px;object-fit:cover;
  box-shadow:0 0 0 1px rgba(138,212,255,.34),0 0 16px -3px rgba(63,160,255,.7);
}
.brand-name{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.06em;text-transform:uppercase}

.tabs{display:flex;justify-content:center}
.tablist{
  display:inline-flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:4px;
  background:linear-gradient(180deg,#0a101c,#0e1626);
  border:1px solid var(--line);border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(160,200,255,.10);
}
.tab{
  --tab:#ff6a45;--tab-hi:#ffb39c;--tab-deep:#a81f06;
  position:relative;display:inline-flex;align-items:center;gap:8px;
  padding:9px 22px;border:0;background:transparent;cursor:pointer;
  font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--tab);transition:color .18s,background .18s;border-radius:3px;
}
.tab:hover{color:var(--tab-hi)}
.tab[aria-selected="true"]{
  color:#000;
  background:linear-gradient(180deg,var(--tab),var(--tab-deep));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42),0 0 22px -6px var(--tab);
}
.tab-rune{width:5px;height:5px;background:currentColor;transform:rotate(45deg);opacity:.6}
.tab[aria-selected="true"] .tab-rune{background:#000;opacity:1;box-shadow:none}

/* Per-tab colours: Home and Download keep the site red. */
.tab[data-route="bosses"]{--tab:#c49bff;--tab-hi:#e3ccff;--tab-deep:#5a2ea6}
.tab[data-route="staff"]{--tab:#f5c542;--tab-hi:#ffe08a;--tab-deep:#a8791f}
.tab[data-route="donate"]{--tab:#4ef59a;--tab-hi:#a9ffd0;--tab-deep:#0f8f4c}
.tab[data-route="discord"]{--tab:#fff;--tab-hi:#fff;--tab-deep:#c9d3e0}

/* Staff Team heading matches its gold tab. */
#panel-staff .block-head h2{
  color:#f5c542;text-shadow:0 0 34px rgba(245,197,66,.35);
}
#panel-staff .block-head h2::after{
  background:linear-gradient(90deg,#f5c542,transparent);
  box-shadow:0 0 12px #f5c542;
}

/* ============================================================
   Buttons
   ============================================================ */

.btn{
  --bg1:#16233a;--bg2:#0c1424;--bc:var(--line);--fg:var(--text);--glow:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 26px;border:1px solid var(--bc);border-radius:var(--r);
  background:linear-gradient(180deg,var(--bg1),var(--bg2));color:var(--fg);
  font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  cursor:pointer;text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(190,220,255,.14),0 0 26px -12px var(--glow),var(--shadow);
  transition:transform .14s,box-shadow .18s,border-color .18s,filter .18s;
}
.btn:hover{text-decoration:none;transform:translateY(-1px);filter:brightness(1.14)}
.btn:active{transform:translateY(0)}

.btn-primary{--bg1:#3d9dff;--bg2:#0e4a86;--bc:rgba(160,220,255,.6);--fg:#02101d;--glow:#3fa0ff;
  text-shadow:0 1px 0 rgba(255,255,255,.28)}
.btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 34px -6px rgba(63,160,255,.85)}

/* Download buttons only — the store and Discord buttons keep the azure look. */
.btn-download{--bg1:#ff6a45;--bg2:#a81f06;--bc:rgba(255,170,140,.6);--fg:#000;--glow:#ff4f26;
  text-shadow:0 1px 0 rgba(255,255,255,.22)}
.btn-download:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 0 34px -6px rgba(255,79,38,.85)}

.btn-steel{--bg1:#1b2740;--bg2:#0d1424;--bc:rgba(157,178,204,.3);--fg:#cfe0f2}

.btn-ghost{--bg1:transparent;--bg2:transparent;--bc:rgba(138,212,255,.34);--fg:var(--azure-hot)}
.btn-ghost:hover{--bc:rgba(138,212,255,.7)}

.btn-discord{--bg1:#6a76ff;--bg2:#3b46b8;--bc:rgba(170,180,255,.55);--fg:#fff;--glow:#5865f2;
  width:100%;padding:16px 26px;font-size:16px}
.btn-discord:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 0 40px -6px rgba(88,101,242,.9)}

.btn-tiny{padding:4px 10px;font-size:11px;letter-spacing:.1em}

/* ============================================================
   Hero
   ============================================================ */

.tabpanel{position:relative;z-index:1}

.hero{
  position:relative;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:clamp(34px,5vw,64px) clamp(18px,4vw,32px) 0;
  max-width:var(--wrap);margin-inline:auto;
}

.hero-tag{
  text-align:center;
  font-family:var(--display);font-size:clamp(19px,3vw,27px);font-weight:500;
  color:#e6f0fb;letter-spacing:.02em;
  text-shadow:0 0 26px rgba(63,160,255,.4);
}

/* ============================================================
   Blocks
   ============================================================ */

.block{padding-block:clamp(48px,7vw,86px)}
.block-head{max-width:660px;margin-bottom:clamp(26px,4vw,40px)}
.block-head h2{
  font-size:clamp(25px,4vw,38px);color:#f0f6ff;
  text-shadow:0 0 34px rgba(63,160,255,.35);
}
.block-head h2::after{
  content:"";display:block;width:64px;height:2px;margin-top:14px;
  background:linear-gradient(90deg,var(--azure),transparent);
  box-shadow:0 0 12px var(--azure);
}
.block-head p{margin-top:14px;color:var(--muted);font-size:17.5px}
.block-head code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;
  color:var(--azure-hot);background:rgba(63,160,255,.09);
  border:1px solid rgba(138,212,255,.24);border-radius:3px;padding:1px 6px;
}

/* ---------- staff roster ---------- */

.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(12px,1.6vw,18px)}

.mate{
  --metal:var(--steel);
  --metal-hi:#eef3f9;
  --glow:rgba(157,178,204,.45);
  display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;
  padding:clamp(16px,1.8vw,22px);
  background:
    radial-gradient(300px 150px at 14% -20%,color-mix(in srgb,var(--metal) 14%,transparent),transparent 70%),
    linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);
  border-left:2px solid color-mix(in srgb,var(--metal) 65%,transparent);
  border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.08),var(--shadow);
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.mate:hover{
  transform:translateY(-3px);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.14),0 0 42px -16px var(--glow),var(--shadow);
}

/* crown metals — owner gold, co-owner champagne, admin silver, mod bronze */
.mate-owner  {--metal:#f5c542;--metal-hi:#fff0b8;--glow:rgba(245,197,66,.6)}
.mate-coowner{--metal:#d9b56b;--metal-hi:#f2e0b4;--glow:rgba(217,181,107,.5)}
.mate-admin  {--metal:#c3ccd9;--metal-hi:#f2f6fb;--glow:rgba(195,204,217,.5)}
.mate-mod    {--metal:#b4763f;--metal-hi:#e0a468;--glow:rgba(180,118,63,.5)}

.mate-crest{width:64px;height:48px;display:grid;place-items:center;filter:drop-shadow(0 0 14px var(--glow))}
.crown{width:100%;height:auto;overflow:visible}
.crown-body{fill:var(--metal)}
.crown-band{fill:color-mix(in srgb,var(--metal) 72%,#000)}
.crown-orb{fill:var(--metal-hi)}
.jew{display:none}
.mate-owner  .jew-1{display:block;fill:#e0452e}
.mate-owner  .jew-2{display:block;fill:#3fa0ff}
.mate-owner  .jew-3{display:block;fill:#5fd98f}
.mate-coowner .jew-1{display:block;fill:#e0452e}
.mate-admin  .jew-2{display:block;fill:#3fa0ff}

.mate-rank{
  font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--metal);
}
.mate-name{
  margin-top:4px;font-family:var(--display);font-size:21px;font-weight:600;color:#f2f7ff;
  word-break:break-word;
}
.mate-note{margin-top:6px;font-size:15px;color:var(--muted)}

/* vacant positions: hollow crest, dashed frame */
.mate.is-open{
  border-style:dashed;border-left-style:dashed;
  background:linear-gradient(180deg,rgba(16,24,40,.55),rgba(12,18,32,.4));
  box-shadow:none;
}
.mate.is-open .mate-crest{filter:none;opacity:.55}
.mate.is-open .crown-body,
.mate.is-open .crown-band{fill:none;stroke:var(--metal);stroke-width:2}
.mate.is-open .crown-orb{fill:none;stroke:var(--metal);stroke-width:1.6}
.mate.is-open .jew{display:none}
.mate.is-open .mate-rank{color:var(--steel-dim)}
.mate-open{margin-top:4px;font-size:16px;color:var(--steel-dim);font-style:italic}

.roster-empty,.shelf-empty,.boss-empty{
  padding:22px 24px;border:1px dashed var(--line-hot);border-radius:var(--r);
  background:rgba(12,18,32,.5);color:var(--muted);font-size:16px;
}
.roster-empty code,.shelf-empty code,.boss-empty code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14.5px;
  color:var(--azure-hot);background:rgba(63,160,255,.09);
  border:1px solid rgba(138,212,255,.24);border-radius:3px;padding:2px 7px;
}

/* ============================================================
   Donation store
   ============================================================ */

.buyer{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;
  margin-bottom:20px;padding:14px 16px;
  background:linear-gradient(180deg,rgba(63,160,255,.07),rgba(63,160,255,.02));
  border:1px solid var(--line);border-left:2px solid rgba(63,160,255,.5);border-radius:var(--r);
}
.buyer-label{
  font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.06em;
  color:var(--text);text-transform:uppercase;
}
.buyer-input{
  font-family:var(--body);font-size:15px;color:var(--text);
  width:170px;padding:9px 12px;
  background:rgba(5,9,16,.72);border:1px solid var(--line-hot);border-radius:3px;
}
.buyer-input::placeholder{color:var(--steel-dim)}
.buyer-input:focus-visible{outline:2px solid var(--azure-hot);outline-offset:2px}
.buyer-hint{font-size:13.5px;color:var(--steel-dim);flex:1 1 240px}

.shelf{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.shelf-tab{
  font-family:var(--body);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel-dim);padding:9px 17px;cursor:pointer;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:999px;
  transition:color .18s,border-color .18s,box-shadow .18s;
}
.shelf-tab:hover{color:var(--text);border-color:var(--line-hot)}
.shelf-tab:focus-visible{outline:2px solid var(--azure-hot);outline-offset:2px}
.shelf-tab[aria-selected="true"]{
  color:#04121f;border-color:rgba(160,220,255,.7);
  background:linear-gradient(180deg,var(--azure-hot),var(--azure));
  box-shadow:0 0 24px -6px rgba(63,160,255,.85);
}

.shelf-blurb{max-width:66ch;color:var(--muted);font-size:16.5px;margin-bottom:clamp(18px,2.4vw,26px)}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(12px,1.6vw,18px)}

.pack{
  display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;
  padding:clamp(16px,1.8vw,22px);
  background:
    radial-gradient(300px 150px at 14% -20%,rgba(63,160,255,.13),transparent 70%),
    linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);
  border-left:2px solid rgba(63,160,255,.5);
  border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.08),var(--shadow);
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.pack:hover{
  transform:translateY(-3px);border-color:var(--line-hot);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.14),0 0 42px -16px rgba(63,160,255,.6),var(--shadow);
}

.pack-img{width:64px;height:64px;display:grid;place-items:center}
.pack-img img{
  width:auto;height:auto;max-width:56px;max-height:56px;
  image-rendering:pixelated;
  filter:drop-shadow(0 0 14px rgba(63,160,255,.4));
}
.pack-img.no-img{
  width:56px;height:56px;border:1px dashed var(--line-hot);border-radius:3px;
  background:rgba(63,160,255,.06);
}
.pack-token{
  width:52px;height:52px;
  filter:drop-shadow(0 0 14px rgba(63,160,255,.45));
}
.pack-token .tok-rim{fill:rgba(63,160,255,.16);stroke:var(--azure-hot);stroke-width:1.4}
.pack-token .tok-face{fill:none;stroke:rgba(138,212,255,.5);stroke-width:1}
.pack-token .tok-star{fill:var(--parch);opacity:.92}

.pack-name{
  font-family:var(--display);font-size:20px;font-weight:600;color:#f2f7ff;word-break:break-word;
}
.pack-tag{
  margin-top:8px;width:max-content;
  font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--parch);background:rgba(217,199,163,.08);
  border:1px solid rgba(217,199,163,.38);border-radius:999px;padding:3px 10px;
}
.pack-qty{margin-top:5px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel-dim)}
.pack-blurb{margin-top:9px;font-size:15.5px;color:var(--muted)}
.pack-buy{margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pack-price{
  font-family:var(--display);font-size:22px;font-weight:700;color:var(--azure-hot);
  text-shadow:0 0 22px rgba(63,160,255,.5);
}
.pack-spend{
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel-dim);
}

.pack.is-open{
  border-style:dashed;border-left-style:dashed;
  background:linear-gradient(180deg,rgba(16,24,40,.55),rgba(12,18,32,.4));
  box-shadow:none;
}
.pack.is-open .pack-img{opacity:.45}
.pack.is-open .pack-name{color:var(--steel-dim)}

.shelf-note{margin-top:24px;font-size:15px;font-style:italic;color:var(--steel-dim)}

.dl-actions{margin:0 0 26px}

/* ---------- bosses ---------- */

.boss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:clamp(12px,1.6vw,18px)}

.boss{
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-top:2px solid rgba(63,160,255,.5);border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.08),var(--shadow);
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.boss:hover{
  transform:translateY(-3px);border-color:var(--line-hot);
  box-shadow:inset 0 1px 0 rgba(190,220,255,.14),0 0 42px -16px rgba(63,160,255,.6),var(--shadow);
}

.boss-img{
  height:158px;display:grid;place-items:center;padding:12px;
  background:radial-gradient(220px 120px at 50% 0,rgba(63,160,255,.14),transparent 70%),#080d17;
  border-bottom:1px solid var(--line);
}
.boss-img img{
  max-width:100%;max-height:134px;height:auto;object-fit:contain;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.6));
}
.boss-img img.is-sprite{image-rendering:pixelated}
.boss-img.no-img{background:rgba(63,160,255,.05);border-bottom-style:dashed}

.boss-info{padding:clamp(14px,1.6vw,20px);display:flex;flex-direction:column;gap:9px}
.boss-name{
  font-family:var(--display);font-size:19px;font-weight:600;color:#f2f7ff;word-break:break-word;
}
.boss-loc{
  width:max-content;
  font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--parch);background:rgba(217,199,163,.08);
  border:1px solid rgba(217,199,163,.38);border-radius:999px;padding:3px 10px;
}
.boss-blurb{font-size:15.5px;line-height:1.55;color:var(--muted)}

.boss-more{
  margin-top:clamp(20px,2.6vw,32px);text-align:center;
  font-family:var(--display);font-weight:800;
  font-size:clamp(26px,4.4vw,44px);line-height:1.2;letter-spacing:.04em;
  color:#fff;text-shadow:0 0 28px rgba(255,255,255,.4);
}

/* ============================================================
   Discord tab
   ============================================================ */

.discord-card{
  position:relative;overflow:hidden;
  border:1px solid rgba(120,130,255,.3);border-radius:8px;
  background:linear-gradient(180deg,#141a34,#0a0e1c);
  box-shadow:inset 0 1px 0 rgba(180,190,255,.16),0 0 70px -26px rgba(88,101,242,.85),var(--shadow);
}
.discord-glow{
  position:absolute;inset:-40% -10% auto;height:120%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(88,101,242,.5),transparent 72%);
  filter:blur(28px);opacity:.75;
}
.discord-body{position:relative;padding:clamp(30px,5vw,52px);text-align:center}
.discord-logo{width:62px;height:62px;margin:0 auto 18px;color:#fff;filter:drop-shadow(0 6px 20px rgba(88,101,242,.9))}
.discord-logo svg{width:100%;height:100%}
.discord-server{
  font-family:var(--display);font-size:clamp(22px,3.2vw,30px);font-weight:700;color:#fff;letter-spacing:.03em;
}
.discord-counts{margin-top:8px;color:#b9c2ea;font-size:16px;letter-spacing:.04em}
.discord-note{margin-top:8px;color:var(--steel-dim);font-size:14px}
.discord-card .btn{margin-top:26px}
.discord-invite{
  margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  font-size:14px;color:var(--steel-dim);
}
.invite-label{letter-spacing:.2em;text-transform:uppercase;font-size:11px}
.discord-invite code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--azure-hot);background:rgba(63,160,255,.09);
  border:1px solid rgba(138,212,255,.24);border-radius:3px;padding:4px 10px;font-size:14px;
}

.channels{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.8vw,18px)}
.channel{
  display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;
  padding:20px 22px;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .2s,background .2s;
}
.channel:hover{border-color:var(--line-hot)}
.channel-hash{font-family:var(--display);font-size:20px;color:var(--blurple);line-height:1.3}
.channel h3{font-family:var(--body);font-size:16px;font-weight:600;letter-spacing:.04em;color:#e7eef8;text-transform:lowercase}
.channel p{margin-top:5px;color:var(--muted);font-size:15.5px}

.discord-widget{
  width:100%;height:520px;border:1px solid var(--line);border-radius:var(--r);
  background:#0a0e1c;box-shadow:var(--shadow);
}

/* ============================================================
   Footer + toast
   ============================================================ */

.site-foot{
  flex-shrink:0;border-top:1px solid var(--line);
  background:#121310;
  position:relative;z-index:1;
}
.foot-inner{
  display:grid;grid-template-columns:1fr auto;gap:6px 24px;align-items:center;
  padding-block:clamp(26px,4vw,38px);
}
.foot-brand{font-family:var(--display);font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:var(--steel)}
.foot-legal{grid-column:1;font-size:13px;color:var(--steel-dim);max-width:52ch}
.foot-links{grid-column:2;grid-row:1/span 2;display:flex;gap:20px;align-items:center}
.foot-links a{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel-dim)}
.foot-links a:hover{color:var(--azure-hot);text-decoration:none}

.toast{
  position:fixed;left:50%;bottom:28px;z-index:80;
  transform:translate(-50%,22px);opacity:0;pointer-events:none;
  padding:11px 22px;border:1px solid var(--line-hot);border-radius:var(--r);
  background:rgba(12,20,36,.96);backdrop-filter:blur(8px);
  color:#eaf3ff;font-size:14.5px;letter-spacing:.05em;
  box-shadow:0 0 34px -10px rgba(63,160,255,.8),var(--shadow);
  transition:opacity .22s,transform .22s;
}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ============================================================
   Homepage showcase — in-game screenshots
   ============================================================ */

.sc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(18px,2.4vw,26px)}
.sc-card{
  display:flex;flex-direction:column;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--r);
  background:linear-gradient(180deg,rgba(14,21,36,.88),rgba(6,10,19,.92));
  box-shadow:var(--shadow);
  transition:border-color .18s,transform .18s;
}
.sc-card:hover{border-color:var(--line-hot);transform:translateY(-2px)}
.sc-wide{grid-column:1/-1}
.sc-shot{
  display:flex;flex-direction:column;gap:8px;padding:12px;
  background:rgba(3,6,12,.9);border-bottom:1px solid var(--line);
}
.sc-shot img{width:100%;height:auto;border-radius:2px}
.sc-shot.is-tall{align-items:center}
.sc-shot.is-tall img{max-width:330px}
.sc-body{padding:clamp(18px,2.4vw,24px);display:flex;flex-direction:column;gap:12px}
.sc-body h3{font-size:clamp(19px,2.2vw,23px);color:#eaf4ff}
.sc-body p{color:var(--muted);font-size:16.5px}
.sc-card strong{color:var(--text);font-weight:600}
.sc-card em{color:var(--parch);font-style:normal}
.sc-meta{font-size:14.5px;color:var(--steel-dim)}
.sc-quote{
  font-family:var(--display);font-size:14.5px;letter-spacing:.02em;color:var(--azure-hot);
  padding:10px 13px;border-left:2px solid var(--azure);background:rgba(63,160,255,.07)
}

/* Quest system banner — the loudest thing on the page. */
.sc-quest{
  border-color:rgba(120,190,255,.4);
  background:
    radial-gradient(90% 130% at 50% 0,rgba(63,160,255,.16),transparent 62%),
    linear-gradient(180deg,rgba(16,26,44,.9),rgba(6,10,19,.94));
  box-shadow:0 0 70px -26px rgba(63,160,255,.75),var(--shadow);
}
.sc-quest:hover{transform:none}
.sc-quest-head{text-align:center;padding:clamp(24px,3.4vw,38px) clamp(18px,3vw,32px) 0}
.sc-quest-arrow{
  display:block;width:clamp(34px,4.4vw,52px);height:auto;margin:0 auto 6px;
  fill:var(--azure-hot);filter:drop-shadow(0 0 14px rgba(63,160,255,.9));
  animation:sc-aim 1.5s ease-in-out infinite;
}
@keyframes sc-aim{0%,100%{transform:translateY(-7px)}50%{transform:translateY(7px)}}
.sc-quest-title{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(38px,8.4vw,86px);line-height:1;letter-spacing:.03em;
  color:#eaf4ff;
  text-shadow:0 0 40px rgba(63,160,255,.65),0 3px 0 rgba(4,10,20,.9);
}
.sc-quest-sub{margin-top:12px;color:var(--muted);font-size:16.5px}
.sc-quest-inner{
  display:grid;grid-template-columns:minmax(220px,330px) 1fr;gap:clamp(18px,2.6vw,30px);
  align-items:center;padding:clamp(20px,3vw,32px);
}
.sc-quest-inner .sc-shot{border-bottom:0;border-right:1px solid var(--line);padding:0}
.sc-quest-inner .sc-body{padding:0}

/* ============================================================
   Motion + responsive
   ============================================================ */

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

@media (max-width:960px){
  .channels{grid-template-columns:1fr}
  .sc-quest-inner{grid-template-columns:1fr}
  .sc-quest-inner .sc-shot{border-right:0;border-bottom:1px solid var(--line)}
}

@media (max-width:760px){
  body{
    font-size:16.5px;
    background-image:
      linear-gradient(180deg,rgba(0,0,0,.52),rgba(0,0,0,.68)),
      url("../img/bg-stone.jpg");
    background-repeat:no-repeat, repeat;
    background-position:center, center;
    background-size:cover, 420px 420px;
    background-attachment:scroll, scroll;
  }
  .masthead-inner{grid-template-columns:1fr;gap:10px}
  .brand{justify-self:center}
  .tabs{grid-column:1;justify-content:stretch}
  .tablist{width:100%}
  .tab{flex:1;justify-content:center;padding:10px 10px;font-size:12px;letter-spacing:.06em}
  .foot-inner{grid-template-columns:1fr}
  .foot-links{grid-column:1;grid-row:auto;margin-top:10px}
}

@media (max-width:420px){
  .roster,.shelf-grid,.boss-grid{grid-template-columns:1fr}
  .tab{padding:9px 6px;font-size:11px;letter-spacing:.03em}
  .pack{grid-template-columns:52px 1fr;gap:14px}
}
