/* Homepage only: project themes and the admin remain unchanged. */
.home-theme {
  --home-panel: color-mix(in srgb, var(--color-surface) 94%, white);
  --home-accent: var(--color-secondary);
  --home-outline: color-mix(in srgb, var(--home-accent) 32%, var(--color-surface));
}

.home-theme .section__header { position: relative; }
.home-theme .section__eyebrow { display: flex; align-items: center; gap: .8rem; }
.home-theme .section__eyebrow::before {
  content: "";
  width: 1.6rem;
  height: 2px;
  background: currentColor;
  box-shadow: 0 0 12px color-mix(in srgb, currentColor 35%, transparent);
}
.home-theme .section__desc { max-width: 46rem; }

.home-theme :is(.project-card, .news-card, .stat-card, .hardware-card) {
  position: relative;
  min-width: 0;
  border: 1px solid var(--home-outline);
  border-top: 2px solid var(--home-accent);
  border-radius: 1.1rem;
  background:
    radial-gradient(ellipse at top right, color-mix(in srgb, var(--home-accent) 11%, transparent), transparent 75%),
    linear-gradient(145deg, var(--home-panel), var(--color-surface));
  box-shadow: 0 10px 30px rgb(0 0 0 / 18%), inset 0 1px 0 rgb(255 255 255 / 3%);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.home-theme :is(.project-card, .news-card, .stat-card, .hardware-card):focus-within {
  border-color: var(--home-accent);
  box-shadow: 0 12px 32px rgb(0 0 0 / 24%), 0 0 22px color-mix(in srgb, var(--home-accent) 12%, transparent);
}
.home-theme :is(.project-card, .news-card) a:focus-visible,
.home-theme :is(.stat-card, .btn, .gallery-item):focus-visible,
.home-theme .faq summary:focus-visible {
  outline: 2px solid var(--home-accent);
  outline-offset: 5px;
  border-radius: .3rem;
}

/* Single content-related accent per project, no tricolour stripes. */
.home-theme [data-home-project="minecraft"] { --home-accent: #69dba0; }
.home-theme [data-home-project="game_mod"] { --home-accent: #ff7781; }
.home-theme [data-home-project="roleplay"] { --home-accent: #f3c174; }
.home-theme :is(.project-card, .news-card, .stat-card, .hardware-card) {
  --home-outline: color-mix(in srgb, var(--home-accent) 32%, var(--color-surface));
}
.home-theme .project-card__body { padding: 1.4rem; gap: .85rem; }
.home-theme .home-card-icon {
  width: 2.8rem;
  height: 2.8rem;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: .85rem;
  color: var(--home-accent);
  background: color-mix(in srgb, var(--home-accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--home-accent) 25%, transparent);
}
.home-theme .home-card-icon svg { width: 1.5rem; height: 1.5rem; }
.home-theme .home-project-icon { margin-bottom: .35rem; }
.home-theme :is(.project-card__type, .project-card__more, .project-card__ext) { color: var(--home-accent); }
.home-theme .project-card__title a:hover { color: var(--home-accent); }
.home-theme .project-card__status {
  width: fit-content;
  max-width: 100%;
  padding: .35rem .65rem;
  border-radius: .5rem;
  border: 1px solid rgb(255 255 255 / 8%);
  background: rgb(0 0 0 / 18%);
}
.home-theme .project-card__status:is(.is-live, .is-online) { color: #7ae4ac; }
.home-theme .project-card__status.is-offline { color: #ff9ba4; }
.home-theme :is(.project-card__excerpt, .news-card__excerpt) { line-height: 1.65; }
.home-theme .project-card__actions {
  padding-top: .85rem;
  border-top: 1px solid color-mix(in srgb, var(--home-accent) 16%, transparent);
}
.home-theme :is(.project-card__more, .news-card__more)::after { content: " →"; }
.home-theme .project-card__media {
  background: transparent;
  mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
}

.home-theme .news-card { padding: 1.4rem; gap: .85rem; }
.home-theme .home-news-label { display: flex; align-items: center; gap: .75rem; color: var(--home-accent); font-size: .75rem; letter-spacing: .04em; }
.home-theme .news-card__date { color: var(--color-muted); margin-top: .25rem; }
.home-theme .news-card__more { padding-top: .85rem; border-top: 1px solid color-mix(in srgb, var(--home-accent) 16%, transparent); }

/* Platform identity; number/label contrasts remain readable on dark panels. */
.home-theme .stat-card--twitch { --home-accent: #a970ff; --social-value: #cfb4ff; }
.home-theme .stat-card--youtube { --home-accent: #ff454f; --social-value: #ff9fa5; }
.home-theme .stat-card--instagram { --home-accent: #f16caf; --social-value: #ffacd2; }
.home-theme .stat-card--tiktok { --home-accent: #25f4ee; --social-value: #a5f9f5; }
.home-theme .stat-card { overflow: hidden; padding: 1.5rem; }
.home-theme .stat-card__top { align-items: flex-start; }
.home-theme .stat-card__icon {
  box-sizing: content-box;
  padding: .65rem;
  border-radius: .85rem;
  color: var(--home-accent);
  background: color-mix(in srgb, var(--home-accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--home-accent) 23%, transparent);
}
.home-theme .stat-card__source {
  max-width: 60%;
  padding: .3rem .5rem;
  border: 1px solid rgb(255 255 255 / 9%);
  border-radius: .45rem;
  background: rgb(0 0 0 / 16%);
  text-align: right;
  overflow-wrap: anywhere;
}
.home-theme .stat-card__value { color: var(--social-value, var(--color-text)); }
.home-theme .stat-card__label { color: color-mix(in srgb, var(--color-text) 75%, var(--color-muted)); }
.home-theme .stat-card--instagram { border-top-color: #f16caf; }
.home-theme .stat-card--instagram::before,
.home-theme .stat-card--tiktok::before {
  content: "";
  position: absolute;
  top: -1px;
  left: .9rem;
  right: .9rem;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, #ffcb66, #ff5989, #ba7cff);
}
.home-theme .stat-card--instagram .stat-card__icon { stroke: url(#social-instagram-gradient); }
.home-theme .stat-card--instagram .stat-card__icon circle:last-child { fill: url(#social-instagram-gradient); }
.home-theme .stat-card--tiktok::before { background: linear-gradient(90deg, #25f4ee, #fff 50%, #fe2c55); }
.home-theme .stat-card--tiktok .stat-card__icon { color: #fff; }
.home-theme .stat-card--tiktok .stat-card__icon path { filter: drop-shadow(-1px -1px 0 #25f4ee) drop-shadow(1px 1px 0 #fe2c55); }

/* Bring the remaining homepage panels into the same visual family. */
.home-theme :is(#discord .split, #about .split, .pc-panel, .schedule-list, .faq details) {
  border: 1px solid var(--home-outline);
  border-radius: 1.1rem;
  background:
    radial-gradient(ellipse at top right, color-mix(in srgb, var(--home-accent) 7%, transparent), transparent 70%),
    var(--home-panel);
  box-shadow: 0 8px 25px rgb(0 0 0 / 15%);
}
.home-theme :is(#discord .split, #about .split) { padding: clamp(1.25rem, 3vw, 2rem); }
.home-theme #discord .split { --home-accent: #9aa5ff; --home-outline: rgb(154 165 255 / 27%); border-left: 3px solid var(--home-accent); width: 100%; max-width: 56rem; }
.home-theme #discord .split .btn { background: #5865f2; border-color: #5865f2; color: #fff; box-shadow: 0 5px 20px rgb(88 101 242 / 22%); }
.home-theme #about .split { border-left: 3px solid var(--color-secondary); }
.home-theme #about .about-text { min-width: 0; }
.home-theme .hardware-card__media { background: transparent; }
.home-theme .hardware-card__body { padding: 1.25rem; }
.home-theme .hardware-card__brand { color: var(--home-accent); }
.home-theme .gallery-item { border-radius: 1.1rem; border-color: var(--home-outline); box-shadow: 0 8px 25px rgb(0 0 0 / 20%); }
.home-theme .schedule-list li { border-color: color-mix(in srgb, var(--home-accent) 15%, transparent); }
.home-theme .schedule-list li:nth-child(even) { background: rgb(255 255 255 / 2%); }
.home-theme .faq { display: grid; gap: .75rem; }
.home-theme .faq details { padding: 0; transition: border-color .2s ease, background .2s ease; }
.home-theme .faq summary { padding: 1.1rem 1.25rem; align-items: center; }
.home-theme .faq summary::after { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; flex: 0 0 auto; border-radius: .45rem; background: color-mix(in srgb, var(--home-accent) 9%, transparent); }
.home-theme .faq details > .rich-content { padding: 0 1.25rem 1.25rem; overflow-wrap: anywhere; }
.home-theme .faq details[open] { border-color: color-mix(in srgb, var(--home-accent) 50%, var(--color-surface)); }
.home-theme .faq details[open] summary { color: var(--color-secondary); }
.home-theme .hero__cta .btn { box-shadow: 0 6px 24px rgb(0 0 0 / 20%); }

/* Hero: retain the banner, highlight the mascot and a translucent title tile. */
.home-theme .hero { isolation: isolate; }
.home-theme .hero__content { width: 100%; }
.home-theme .hero__bg-overlay {
  backdrop-filter: none;
  background:
    radial-gradient(ellipse at 50% 48%, rgb(9 9 11 / 42%), transparent 70%),
    linear-gradient(to bottom, rgb(9 9 11 / 22%) 0%, rgb(9 9 11 / 28%) 68%, var(--color-bg) 100%);
}
.home-theme .hero__logo {
  position: relative;
  z-index: 1;
  width: clamp(11rem, 20vw, 16rem);
  height: clamp(11rem, 20vw, 16rem);
  filter: drop-shadow(0 5px 10px rgb(4 9 25 / 55%)) drop-shadow(0 0 14px rgb(60 175 255 / 48%));
}
.home-theme .hero__logo-stage {
  position: relative;
  display: grid;
  place-items: center;
  isolation: isolate;
}
.home-theme .hero__logo-stage::before {
  content: "";
  position: absolute;
  inset: -12%;
  z-index: 0;
  pointer-events: none;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgb(43 162 255 / 30%), rgb(89 86 240 / 17%) 42%, transparent 70%);
}
.home-theme .hero__identity-card {
  width: min(100%, 52rem);
  max-width: 100%;
  margin-top: 1.5rem;
  padding: clamp(1rem, 2.5vw, 1.75rem) clamp(1rem, 3vw, 2.25rem);
  border: 1px solid rgb(190 166 255 / 38%);
  border-top-color: rgb(206 192 255 / 65%);
  border-radius: 1.5rem;
  background: linear-gradient(135deg, rgb(29 24 64 / 76%), rgb(15 13 36 / 66%));
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 16px 44px rgb(4 3 18 / 30%), 0 0 28px rgb(139 102 255 / 13%), inset 0 1px 0 rgb(255 255 255 / 8%);
}
.home-theme .hero__identity-card .hero__title { margin-top: 0; }
.home-theme .hero__identity-card .hero__rotation-toggle { margin-top: .85rem; }
.home-theme .hero--seamless .hero__bg {
  background:
    radial-gradient(ellipse at 50% 48%, #493080 0%, #251640 50%, transparent 85%),
    linear-gradient(to bottom, #201333, var(--color-bg));
}
.home-theme .hero--seamless .hero__bg-img {
  inset: auto;
  left: 50%;
  top: 50%;
  width: min(100%, 140rem);
  height: auto;
  max-height: 100%;
  object-fit: contain;
  transform: translate(-50%, -50%);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent), linear-gradient(to bottom, transparent, #000 7%, #000 85%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 15%, #000 85%, transparent), linear-gradient(to bottom, transparent, #000 7%, #000 85%, transparent);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}
.home-theme .hero__title { text-shadow: 0 2px 12px rgb(0 0 0 / 65%), 0 0 30px rgb(0 0 0 / 30%); }
.home-theme .hero__title--rotating {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  column-gap: .3em;
}
.home-theme .hero__word-slot {
  display: inline-block;
  width: auto;
  max-width: 100%;
  perspective: 700px;
  text-align: center;
}
.home-theme .hero__word {
  display: inline-block;
  transform-origin: center center;
  backface-visibility: hidden;
}
.home-theme .hero__word[data-hero-word="gamer"] { color: #80ddff; }
.home-theme .hero__word[data-hero-word="streamer"] { color: #d1adff; }
.home-theme .hero__word[data-hero-word="coder"] { color: #86edc3; }
.home-theme .hero__rotation-toggle {
  margin: .65rem auto 0;
  padding: .3rem .65rem;
  color: #e0d7f1;
  background: rgb(16 10 32 / 45%);
  border: 1px solid rgb(209 173 255 / 30%);
  border-radius: 999px;
  font: inherit;
  font-size: .7rem;
  cursor: pointer;
}
.home-theme .hero__rotation-toggle[hidden] { display: none; }
.home-theme .hero__rotation-toggle:focus-visible { outline: 2px solid #80ddff; outline-offset: 4px; }
.home-theme .hero__text { color: color-mix(in srgb, var(--color-text) 82%, var(--color-muted)); text-shadow: 0 1px 7px rgb(0 0 0 / 80%); }
.home-theme .hero__button-icon { width: 1.2rem; height: 1.2rem; flex: 0 0 auto; }
.home-theme .hero__cta .hero__button--twitch {
  color: #fff;
  background: #9146ff;
  border-color: #a970ff;
  box-shadow: 0 6px 24px rgb(145 70 255 / 24%), inset 0 1px 0 rgb(255 255 255 / 14%);
}
.home-theme .hero__cta .hero__button--discord {
  color: #fff;
  background: #5865f2;
  border-color: #8993ff;
  box-shadow: 0 6px 24px rgb(88 101 242 / 20%), inset 0 1px 0 rgb(255 255 255 / 12%);
}
@media (hover: hover) {
  .home-theme .hero__cta .hero__button--twitch:hover { background: #7d36e1; box-shadow: 0 8px 28px rgb(145 70 255 / 34%); }
  .home-theme .hero__cta .hero__button--discord:hover { background: #4652d4; box-shadow: 0 8px 28px rgb(88 101 242 / 30%); }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-theme :is(.project-card, .news-card, .stat-card, .hardware-card):hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--home-accent) 60%, var(--color-surface));
    box-shadow: 0 16px 34px rgb(0 0 0 / 26%), 0 0 24px color-mix(in srgb, var(--home-accent) 10%, transparent);
  }
}
@media (max-width: 639px) {
  .home-theme .hero__identity-card { border-radius: 1.1rem; }
  .home-theme .hero__title--rotating { flex-direction: column; align-items: center; }
  .home-theme .hero__word-slot { text-align: center; }
  .home-theme :is(.project-card__body, .news-card, .stat-card) { padding: 1.25rem; }
  .home-theme .schedule-list li { flex-wrap: wrap; }
  .home-theme .schedule-list .time { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .home-theme .hero__logo { animation: none; }
  .home-theme :is(.project-card, .news-card, .stat-card, .hardware-card, .faq details) { transition: none; }
}
