.mini-page{position:relative;z-index:10;min-height:100vh;padding-top:120px}
.mini-shell{max-width:1240px;margin:0 auto;padding:0 40px 90px}
.mini-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:34px}
.mini-hero-copy,.mini-stats{background:rgba(9,10,18,.92);backdrop-filter:blur(18px)}
.mini-hero-copy{padding:58px}
.mini-eyebrow,.mini-system-label,.mini-stat-label,.mini-filter-label,.mini-card-meta{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:2.3px;font-weight:700}
.mini-eyebrow{font-size:10px;color:var(--teal);margin-bottom:15px}
.mini-title{font-family:var(--font-title);font-size:clamp(46px,6vw,82px);line-height:.95;font-weight:600;margin:0 0 18px}
.mini-title em{font-style:italic;color:var(--red-bright)}
.mini-lede{font-family:var(--font-sans);font-size:19px;line-height:1.75;color:rgba(221,218,232,.7);max-width:720px}
.mini-stats{display:grid;grid-template-columns:1fr 1fr}
.mini-stat{padding:30px;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}
.mini-stat:nth-child(even){border-right:0}.mini-stat:nth-last-child(-n+2){border-bottom:0}
.mini-stat-num{font-family:var(--font-title);font-size:42px;line-height:1;color:var(--white);margin-bottom:7px}
.mini-stat-label{font-size:9px;color:var(--muted)}
.mini-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:22px;background:rgba(9,10,18,.86);border:1px solid var(--border);margin-bottom:26px}
.mini-filter-group{display:flex;flex-direction:column;gap:8px;min-width:210px}
.mini-filter-label{font-size:9px;color:var(--muted)}
.mini-filter{height:44px;background:var(--deep);border:1px solid var(--border-hi);color:var(--white);font:600 13px var(--font-sans);padding:0 14px;outline:none}
.mini-filter:focus{border-color:var(--teal)}
.mini-system{margin:52px 0 0}
.mini-system-head{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:22px}
.mini-system-label{font-size:10px}.mini-system-label.warhammer{color:var(--red-bright)}.mini-system-label.starcraft{color:var(--teal)}
.mini-system-title{font-family:var(--font-title);font-size:clamp(34px,4vw,52px);font-weight:600;line-height:1;margin-top:6px}
.mini-system-count{font:600 11px var(--font-sans);letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}
.mini-factions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}
.mini-faction{display:block;padding:22px 20px;background:rgba(11,12,20,.9);border:1px solid var(--border);text-decoration:none;color:var(--white);transition:.2s}
.mini-faction:hover{transform:translateY(-2px);border-color:var(--border-hi);background:var(--surface)}
.mini-faction-name{font-family:var(--font-title);font-size:23px;font-weight:600;margin-bottom:6px}
.mini-faction-count{font:600 10px var(--font-sans);letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}
.mini-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini-card{background:rgba(10,11,18,.94);border:1px solid var(--border);overflow:hidden}
.mini-card-media{aspect-ratio:4/3;background:linear-gradient(135deg,rgba(184,50,50,.07),rgba(59,191,176,.05));display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border);position:relative}
.mini-card-placeholder{font:700 10px var(--font-sans);letter-spacing:2px;text-transform:uppercase;color:rgba(122,120,138,.6)}
.mini-card-body{padding:24px}
.mini-card-meta{font-size:9px;color:var(--teal);margin-bottom:10px}
.mini-card-title{font-family:var(--font-title);font-size:28px;font-weight:600;margin-bottom:10px}
.mini-card-note{font-family:var(--font-sans);font-size:16px;line-height:1.65;color:rgba(221,218,232,.68)}
.mini-card-date{font:600 10px var(--font-sans);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-top:18px}
.mini-empty{padding:54px 34px;border:1px dashed var(--border-hi);background:rgba(10,11,18,.66);text-align:center}
.mini-empty h3{font-family:var(--font-title);font-size:32px;margin-bottom:10px}
.mini-empty p{font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--muted);max-width:650px;margin:0 auto}
.mini-hidden{display:none!important}
.mini-note-box{margin-top:46px;padding:26px;border-left:2px solid var(--violet);background:rgba(123,111,232,.06)}
.mini-note-box strong{font-family:var(--font-title);font-size:24px}.mini-note-box p{font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--muted);margin-top:8px}
#mini-bg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
@media(max-width:950px){.mini-hero{grid-template-columns:1fr}.mini-stats{border-top:1px solid var(--border)}.mini-factions,.mini-gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.mini-page{padding-top:92px}.mini-shell{padding:0 20px 60px}.mini-hero-copy{padding:38px 28px}.mini-lede{font-size:17px}.mini-factions,.mini-gallery{grid-template-columns:1fr}.mini-toolbar{align-items:stretch}.mini-filter-group{width:100%}.mini-stat{padding:22px}.mini-stat-num{font-size:34px}}


/* Placeholder photo preview */
.mini-preview-label{
  margin:10px 0 14px;
  font:700 10px var(--font-sans);
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--violet);
}
.mini-card-demo{position:relative;}
.mini-card-media{overflow:hidden;}
.mini-card-media>img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease,filter .35s ease;
}
.mini-card:hover .mini-card-media>img{transform:scale(1.025);filter:brightness(1.05);}
.mini-demo-badge,.mini-photo-count{
  position:absolute;
  top:14px;
  padding:7px 10px;
  background:rgba(8,9,13,.86);
  backdrop-filter:blur(10px);
  border:1px solid var(--border-hi);
  font:700 9px var(--font-sans);
  letter-spacing:1.6px;
  text-transform:uppercase;
}
.mini-demo-badge{left:14px;color:var(--violet);}
.mini-photo-count{right:14px;color:var(--white);}
.mini-card-thumbs{
  display:flex;
  gap:1px;
  height:64px;
  background:var(--border);
  border-bottom:1px solid var(--border);
}
.mini-card-thumbs img{
  min-width:0;
  flex:1;
  object-fit:cover;
  opacity:.72;
  filter:saturate(.8);
}
.mini-card-thumbs img:first-child{opacity:1;filter:none;}

.mini-card{position:relative}.mini-card-open{position:absolute;inset:0;z-index:5}.mini-card:hover{border-color:var(--border-hi)}.mini-card-open:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}

/* Gallery cleanup */
.mini-toolbar{display:none!important}
.mini-faction{
  min-height:96px;
  display:grid!important;
  grid-template-columns:54px 1fr;
  grid-template-rows:auto auto;
  column-gap:16px;
  align-items:center;
}
.mini-faction-emblem{
  grid-row:1/3;
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  background:rgba(255,255,255,.018);
}
.mini-faction-emblem svg{width:42px;height:42px;display:block}
.mini-faction-name{margin-bottom:3px!important}
.mini-faction-count{align-self:start}
@media(max-width:700px){
  .mini-faction{grid-template-columns:48px 1fr;min-height:84px}
  .mini-faction-emblem{width:46px;height:46px}
  .mini-faction-emblem svg{width:38px;height:38px}
}


/* Real faction symbols supplied by the site owner */
.mini-faction{
  grid-template-columns:44px 1fr !important;
  column-gap:14px !important;
  min-height:88px !important;
}
.mini-faction-logo-wrap{
  grid-row:1/3;
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  background:rgba(255,255,255,.018);
}
.mini-faction-logo{
  width:28px;
  height:28px;
  object-fit:contain;
  display:block;
  filter:brightness(0) invert(1);
  opacity:.86;
  transition:opacity .2s ease,transform .2s ease,filter .2s ease;
}
.mini-faction:hover .mini-faction-logo{
  opacity:1;
  transform:scale(1.06);
  filter:brightness(0) invert(1) drop-shadow(0 0 5px rgba(255,255,255,.18));
}
/* Terrain keeps the existing neutral custom emblem until a terrain mark is supplied. */
.mini-faction-emblem{
  width:42px !important;
  height:42px !important;
}
.mini-faction-emblem svg{
  width:30px !important;
  height:30px !important;
}
.mini-card-meta{
  display:flex;
  align-items:center;
  gap:7px;
}
.mini-card-faction-logo{
  width:17px;
  height:17px;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.72;
}
@media(max-width:700px){
  .mini-faction{
    grid-template-columns:40px 1fr !important;
    min-height:82px !important;
  }
  .mini-faction-logo-wrap{
    width:38px;
    height:38px;
  }
  .mini-faction-logo{
    width:25px;
    height:25px;
  }
}
