/* FireflySMP Play */
.join-page{margin:0;min-height:calc(100vh - 66px);background:#111713}
.join-hero{position:relative;min-height:820px;display:grid;place-items:center;padding:64px 20px 88px;overflow:hidden;isolation:isolate}
.join-bg{position:absolute;inset:-45px;z-index:-3;background:
radial-gradient(circle at 77% 21%,rgba(112,180,91,.82) 0 6%,transparent 19%),
radial-gradient(circle at 67% 39%,rgba(64,132,63,.8) 0 10%,transparent 25%),
linear-gradient(110deg,#2e211c 0 24%,#6e624d 38%,#457444 58%,#17231a 100%);
filter:blur(12px) saturate(.9);transform:scale(1.08)}
.join-bg:after{content:"";position:absolute;inset:0;background:
linear-gradient(90deg,rgba(18,12,10,.55),transparent 38%,rgba(11,17,11,.15)),
repeating-linear-gradient(90deg,transparent 0 92px,rgba(255,255,255,.018) 93px 94px)}
.join-overlay{position:absolute;inset:0;z-index:-2;background:
radial-gradient(circle at 50% 42%,rgba(5,9,6,.02),rgba(4,7,5,.63) 78%),
linear-gradient(180deg,rgba(8,12,9,.04),rgba(7,10,8,.34))}
.join-wrap{width:min(660px,100%);display:flex;flex-direction:column;align-items:center;animation:joinIn .55s ease both}
.join-logo{width:118px;height:88px;object-fit:contain;margin-bottom:13px;filter:drop-shadow(0 12px 16px rgba(0,0,0,.35));animation:joinFloat 4.5s ease-in-out infinite}
.join-panel{width:min(430px,100%);box-sizing:border-box;padding:29px 34px 30px;color:#fff;background:linear-gradient(145deg,rgba(78,151,62,.98),rgba(56,119,48,.98));border:1px solid rgba(255,255,255,.23);border-radius:10px;box-shadow:0 6px 0 #275c28,0 22px 45px rgba(0,0,0,.3)}
.join-kicker{margin-bottom:6px;color:#dff4d9;font-size:8px;font-weight:900;letter-spacing:1.5px}
.join-panel h1{margin:0 0 21px;color:#fff;font-family:"Archivo Black",sans-serif;font-size:23px;line-height:1.06;letter-spacing:-.02em}
.server-label{display:block;margin-bottom:6px;color:#edf6ea;font-size:9px;font-weight:900;letter-spacing:.05em}
.server-copy{width:100%;height:46px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:2px solid rgba(255,255,255,.95);border-radius:4px;color:#fff;background:#101411;font:inherit;text-align:left;cursor:pointer}
.server-ip{font-size:13px;font-weight:900}.server-copy-hint{color:#8fd47c;font-size:7px;font-weight:900;opacity:0;transform:translateX(4px);transition:.18s}
.server-copy:hover .server-copy-hint{opacity:1;transform:none}
.join-panel ol{margin:19px 0 0;padding-left:20px;color:#f8fbf7;font-size:12px;line-height:1.7;font-weight:700}.join-panel li::marker{color:#c9ecbf;font-weight:900}
.join-help{margin:21px 0 13px;color:#fff;font-size:10px;font-weight:800;text-shadow:0 2px 8px #000}
.join-buttons{width:min(610px,100%);display:grid;grid-template-columns:1.12fr .92fr;gap:14px}
.big-ip,.big-discord{position:relative;min-height:58px;border:0;border-radius:7px;display:flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-size:14px;font-weight:900;text-decoration:none;cursor:pointer;transition:transform .18s,filter .18s,box-shadow .18s}
.big-ip{color:#182b12;background:linear-gradient(180deg,#f2ce52,#e8b92e);box-shadow:0 5px 0 #b18418}
.big-discord{color:#fff;background:#5865f2;box-shadow:0 5px 0 #3541b6}
.big-ip:hover,.big-discord:hover{transform:translateY(-2px);filter:brightness(1.04)}
.online-badge{position:absolute;right:-8px;top:-14px;padding:7px 9px;border-radius:8px;color:#173312;background:#82d86a;box-shadow:0 3px 0 #4e9d3d;font-size:7px;font-weight:900}
.hover-label,.discord-hover{position:absolute;opacity:0;font-size:7px;letter-spacing:.5px;transition:.18s}.big-ip:hover .normal-label,.big-discord:hover .discord-normal{opacity:0}.big-ip:hover .hover-label,.big-discord:hover .discord-hover{opacity:1}
.big-discord svg{width:20px;height:16px}
.edition-list{display:flex;gap:9px;margin-top:17px;flex-wrap:wrap;justify-content:center}.edition-list>div{min-width:145px;padding:9px 12px;display:grid;grid-template-columns:10px auto;column-gap:9px;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#fff;background:rgba(10,18,12,.6);backdrop-filter:blur(9px)}
.edition-list>div>span{grid-row:1/3;width:8px;height:8px;border-radius:2px;background:#77ca5f;box-shadow:0 0 10px rgba(119,202,95,.7)}.edition-list strong{font-size:8px;letter-spacing:.8px}.edition-list small{margin-top:2px;color:#d2ddd4;font-size:7px}
@keyframes joinFloat{50%{transform:translateY(-7px) rotate(1deg)}}@keyframes joinIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:650px){.join-hero{min-height:760px;padding:42px 14px 70px}.join-panel{padding:24px 21px}.join-panel h1{font-size:20px}.join-buttons{grid-template-columns:1fr;width:min(430px,100%)}.online-badge{right:8px}}


.server-ip{
  min-width:106px;
}

.typing-caret{
  width:2px;
  height:16px;
  margin-left:2px;
  display:inline-block;
  background:#8fd47c;
  animation:typingBlink .75s steps(1,end) infinite;
}

@keyframes typingBlink{
  0%,45%{opacity:1}
  46%,100%{opacity:0}
}


/* V4 typewriter caret fix */
.server-copy{
  justify-content:space-between;
}

.server-ip-wrap{
  display:inline-flex;
  align-items:center;
  min-width:0;
  white-space:nowrap;
}

.server-ip{
  min-width:0 !important;
  display:inline;
}

.typing-caret{
  flex:0 0 auto;
  width:2px;
  height:15px;
  margin-left:2px;
  display:inline-block;
  vertical-align:middle;
  background:#8fd47c;
  animation:typingBlink .75s steps(1,end) infinite;
}


/* V5 — uploaded Play background */
.play-hero,
.play-page-hero,
.play-main,
main.play-main{
  background-image:
    linear-gradient(rgba(12,18,13,.34),rgba(12,18,13,.48)),
    url("../assets/play-background.png") !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

/* If the page uses a pseudo background layer, keep it transparent. */
.play-hero::before,
.play-page-hero::before{
  background:transparent !important;
}


/* =========================================================
   V7 force uploaded Play background
   ========================================================= */
.join-hero{
  background:
    linear-gradient(rgba(7,12,8,.27),rgba(7,12,8,.43)),
    url("../assets/play-background.png") center center/cover no-repeat !important;
}

.join-bg{
  display:none !important;
}

.join-overlay{
  background:
    radial-gradient(circle at 50% 42%,rgba(0,0,0,.02),rgba(0,0,0,.35) 82%) !important;
}



/* V14: hero should end cleanly at its content/footer */
.join-page{
  background:transparent !important;
}
.join-hero{
  min-height:calc(100vh - 70px);
  height:auto;
  padding-bottom:34px !important;
}
