:root{
  --bg:#04101a; --muted:#9fb0c6; --accent:#6f5cff; --accent-2:#3aa0ff; --success:#3ddc84;
  --glass:rgba(255,255,255,0.03); --btn-shadow: 0 10px 30px rgba(6,8,20,0.6);
  --toast-bg: rgba(10,12,18,0.9); --toast-color: #eaf2ff;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial;
  color-scheme:dark; color:#e6eef6;
}

/* safer box model and small-device text adjust */
*, *::before, *::after { box-sizing: border-box; }
html, body { -webkit-text-size-adjust: 100%; }

/* background canvas */
html,body{
  height:100%;
  margin:0;
  background:linear-gradient(180deg,var(--bg),#021018);
  overflow-x:hidden;
}

/* background canvas */
#bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;display:block}

/* content above canvas */
.container{
  position:relative;
  z-index:5;
  width:100%;
  max-width:980px;
  margin:36px auto;
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:center;
}

/* Top logo + boomerang glisten */
.top-logo{display:flex;flex-direction:column;align-items:center;gap:8px}
.logo{width:260px;height:auto;max-width:86vw;display:block;object-fit:contain;background:transparent}
.logo-wrap{position:relative;display:inline-block;overflow:visible;z-index:6}
.logo-wrap::after{
  content:"";
  position:absolute;
  left:-120%;
  top:-40%;
  width:340%;
  height:180%;
  pointer-events:none;
  background:linear-gradient(120deg, rgba(255,255,255,0.00) 0%, rgba(255,255,255,0.20) 45%, rgba(255,255,255,0.00) 70%);
  filter:blur(8px);
  opacity:0.9;
  mix-blend-mode:screen;
  transform:translateX(0);
  animation: glide 3.6s cubic-bezier(.22,.9,.35,1) infinite alternate;
  transition:opacity .25s ease;
  border-radius:0;
}
@keyframes glide{ from { transform: translateX(-20%); } to { transform: translateX(20%); } }

/* main card
   NOTE: changed second column to minmax(0,300px) so it can shrink on small screens */
.card{
  width:100%;
  background:linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
  border-radius:12px;
  padding:18px;
  display:grid;
  grid-template-columns:1fr minmax(0,300px);
  gap:18px;
  box-shadow:var(--btn-shadow);
}
@media(max-width:880px){.card{grid-template-columns:1fr}}

/* ensure right column can shrink */
.card .right { min-width: 0; }

/* text */
.title{font-size:18px;font-weight:800}
.lead{color:var(--muted);font-size:14px}

/* status */
.status-row{display:flex;align-items:center;gap:12px}
.status-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;font-weight:700;background:var(--glass);border:1px solid rgba(255,255,255,0.03)}
.indicator{width:12px;height:12px;border-radius:50%;background:#444}
.indicator.online{background:linear-gradient(90deg,var(--success),#2bd07a);box-shadow:0 6px 18px rgba(45,208,122,0.12)}
.meta{color:var(--muted);font-size:13px}

/* join chips
   NOTE: allow chips to shrink instead of forcing overflow */
.join-row{display:flex;gap:12px;align-items:center;margin-top:8px;flex-wrap:wrap}
.copy-chip{
  background:rgba(255,255,255,0.02);
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.03);
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;            /* allow shrink */
  flex:1 1 auto;         /* allow chips to wrap/shrink */
  justify-content:space-between;
  transition:transform .18s ease, box-shadow .18s ease;
}
.copy-chip:focus{outline:3px solid rgba(110,80,255,0.12)}
.copy-chip:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(6,8,20,0.45)}
.copy-note{color:var(--muted);font-size:13px}
.join-primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#071021;padding:12px 16px;border-radius:10px;font-weight:800;border:none;cursor:pointer;transition:transform .12s ease, box-shadow .12s ease}
.join-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(80,60,160,0.12)}
.join-primary:active{transform:translateY(0)}

/* action buttons */
.action-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;font-weight:700;border:0;cursor:pointer;text-decoration:none;color:#071021;transition:transform .16s ease, box-shadow .16s ease}
.btn img.icon{width:18px;height:18px;object-fit:contain}
.btn-label{display:inline-block}
.btn-emerald{background:linear-gradient(90deg,#3ddc84,#2bd07a);color:#042018;box-shadow:0 12px 30px rgba(45,208,122,0.12)}
.btn-emerald:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(45,208,122,0.16)}
.btn-ghost{background:linear-gradient(180deg, rgba(255,255,255,0.02), transparent);color:var(--muted);border:1px solid rgba(255,255,255,0.04);padding:9px 12px}
.btn-ghost:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(6,8,20,0.45)}
.btn-outline{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,0.06);padding:9px 12px}
.btn-outline:hover{transform:translateY(-4px);background:linear-gradient(90deg, rgba(110,80,255,0.06), rgba(58,160,255,0.04));color:#eaf2ff}

/* floating logo */
@keyframes floaty { 0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)} }
.logo { animation: floaty 6s ease-in-out infinite; }

/* vote dropdown */
.vote-wrap{position:relative;display:inline-block}
.vote-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:220px;background:linear-gradient(180deg,#071827,#04101a);border-radius:12px;padding:8px;border:1px solid rgba(255,255,255,0.04);box-shadow:0 18px 48px rgba(2,6,23,0.6);display:none;z-index:40}
.vote-wrap.open .vote-menu{display:block}
.vote-item{display:block;padding:10px;border-radius:8px;color:var(--muted);text-decoration:none;margin-bottom:6px}
.vote-item:hover{background:linear-gradient(90deg, rgba(110,80,255,0.04), rgba(58,160,255,0.03));color:#fff}

/* right column */
.right{display:flex;flex-direction:column;gap:12px;min-width:0}
.quick{background:rgba(255,255,255,0.02);padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,0.03)}
.quick h4{margin:0 0 8px 0;font-size:14px}
.feature{color:var(--muted);font-size:14px;margin-bottom:6px}

/* toast */
#toast{
  position:fixed;left:50%;transform:translateX(-50%) translateY(20px);bottom:28px;z-index:60;
  background:var(--toast-bg);color:var(--toast-color);padding:10px 14px;border-radius:10px;font-weight:700;box-shadow:0 18px 40px rgba(2,6,23,0.6);opacity:0;pointer-events:none;
  transition:opacity .28s ease, transform .28s cubic-bezier(.2,.9,.2,1);
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}

/* join modal (hidden by default) */
#join-modal{display:none;position:fixed;inset:0;align-items:center;justify-content:center;z-index:70;background:rgba(2,6,12,0.45)}
#join-modal[aria-hidden="false"]{display:flex}
#join-modal .dialog{background:linear-gradient(180deg,#0b1220,#071021);padding:18px;border-radius:12px;max-width:520px;width:92%;box-shadow:0 30px 80px rgba(2,6,23,0.7);border:1px solid rgba(255,255,255,0.03)}

/* responsive */
@media(max-width:520px){
  .btn-label{display:none}
  .action-row{justify-content:center}
}

/* defensive wrapping for long tokens */
.copy-chip, .meta, .feature, .small, code { overflow-wrap: anywhere; word-break: break-word; }
