:root{
  --bg:#05050c;
  --panel:rgba(8,8,15,.92);
  --panel2:rgba(14,8,25,.86);
  --purple:#a855f7;
  --purple-soft:#d8b4fe;
  --red:#ef4444;
  --text:#ffffff;
  --muted:#e9ddff;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
  scroll-behavior:smooth;
}

body{
  font-family:Georgia,"Times New Roman",serif;
  color:var(--text);

  background:
  linear-gradient(rgba(5,5,12,.65),rgba(5,5,12,.82)),
  radial-gradient(circle at top,rgba(168,85,247,.18),transparent 38%),
  var(--bg);

  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;

  background:
  linear-gradient(rgba(5,5,12,.70),rgba(5,5,12,.88)),
  url("https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&w=1800&q=80");

  background-size:cover;
  background-position:center;

  filter:grayscale(1) brightness(.5);

  z-index:-2;
}

body::after{
  content:"";
  position:fixed;
  inset:0;

  background:
  radial-gradient(circle at center,
  transparent 0,
  rgba(0,0,0,.42) 70%,
  rgba(0,0,0,.75) 100%);

  z-index:-1;
}

.page-shell{

  width:min(100%,960px);

  min-height:100vh;

  margin:auto;

  padding:50px 18px;

  display:flex;

  justify-content:center;

  align-items:center;

}

.hero-card{

  width:min(100%,620px);

  text-align:center;

  animation:fadeIn .6s ease;

}

.brand-kicker{

  font-family:Inter,Arial,sans-serif;

  letter-spacing:.35em;

  color:var(--purple-soft);

  text-transform:uppercase;

  font-size:12px;

  margin-bottom:12px;

}

h1{

  font-size:clamp(46px,8vw,84px);

  text-transform:uppercase;

  line-height:.92;

  letter-spacing:.05em;

  text-shadow:0 0 30px rgba(168,85,247,.4);

}

.hero-copy{

  max-width:520px;

  margin:22px auto 30px;

  color:var(--muted);

  font-family:Inter,Arial,sans-serif;

  line-height:1.7;

}

.panel{

  width:min(100%,560px);

  margin:auto;

  padding:34px;

  border-radius:32px;

  border:1.5px solid var(--purple);

  background:

  linear-gradient(180deg,var(--panel),var(--panel2));

  backdrop-filter:blur(18px);

  box-shadow:0 0 40px rgba(168,85,247,.35);

}

.tabs{

  display:grid;

  grid-template-columns:1fr 1fr;

  gap:12px;

  margin-bottom:24px;

}

.tab{

  border:1px solid rgba(168,85,247,.55);

  background:transparent;

  color:var(--purple-soft);

  border-radius:999px;

  padding:12px;

  font-weight:700;

  cursor:pointer;

  transition:.25s;

}

.tab:hover{

  background:rgba(168,85,247,.08);

}

.tab.active{

  border-color:var(--red);

  color:var(--red);

}

.field-label{

  display:block;

  text-align:left;

  margin:12px 4px 6px;

  font-size:13px;

  color:var(--purple-soft);

  font-family:Inter,Arial,sans-serif;

}

.field{

  width:100%;

  padding:17px;

  border-radius:16px;

  border:1.5px solid var(--purple);

  background:#0d0d12;

  color:#fff;

  font-size:16px;

  outline:none;

}

.field:focus{

  box-shadow:0 0 0 3px rgba(168,85,247,.25);

}

.password-wrap{

  position:relative;

}

.password-wrap .field{

  padding-right:90px;

}

.ghost-small{

  position:absolute;

  top:8px;

  right:8px;

  bottom:8px;

  border:none;

  border-left:1px solid rgba(168,85,247,.3);

  background:transparent;

  color:var(--purple-soft);

  padding:0 14px;

  cursor:pointer;

}

.primary-btn,
.danger-btn,
.member-link{

  width:100%;

  display:block;

  border-radius:999px;

  padding:16px;

  font-family:Inter,Arial,sans-serif;

  font-weight:800;

  text-decoration:none;

  cursor:pointer;

  transition:.25s;

}
.primary-btn{

  margin-top:20px;

  border:1.5px solid var(--red);

  background:transparent;

  color:var(--red);

  font-size:16px;

}

.primary-btn:hover{

  background:rgba(239,68,68,.08);

  box-shadow:0 0 24px rgba(239,68,68,.28);

  transform:translateY(-1px);

}

.danger-btn{

  margin-top:26px;

  border:1.5px solid var(--red);

  background:transparent;

  color:var(--red);

  font-size:16px;

}

.danger-btn:hover{

  background:rgba(239,68,68,.08);

  box-shadow:0 0 24px rgba(239,68,68,.28);

  transform:translateY(-1px);

}

.text-btn{

  margin:14px auto 0;

  border:0;

  background:transparent;

  color:var(--purple-soft);

  cursor:pointer;

  text-decoration:underline;

  font-family:Inter,Arial,sans-serif;

}

.message{

  min-height:22px;

  margin-top:14px;

  color:var(--muted);

  font-family:Inter,Arial,sans-serif;

  font-size:14px;

  line-height:1.55;

  text-align:center;

}

.hidden{

  display:none !important;

}

.welcome{

  margin:0 0 10px;

  color:var(--purple-soft);

  font-family:Inter,Arial,sans-serif;

  letter-spacing:.14em;

  text-transform:uppercase;

  font-size:13px;

}

.member-panel h2{

  margin:8px 0 8px;

  font-size:clamp(30px,6vw,44px);

  line-height:1;

}

.member-note{

  margin:0 0 26px;

  color:var(--muted);

  font-family:Inter,Arial,sans-serif;

  line-height:1.6;

}

.link-grid{

  display:grid;

  gap:12px;

  margin-top:22px;

}

.member-link{

  border:1.5px solid var(--purple);

  background:rgba(168,85,247,.06);

  color:var(--purple-soft);

  font-size:16px;

  letter-spacing:.03em;

}

.member-link:hover{

  background:rgba(168,85,247,.13);

  box-shadow:0 0 24px rgba(168,85,247,.3);

  transform:translateY(-1px);

}

.disabled-link{

  opacity:.55;

  pointer-events:none;

}

button:disabled{

  opacity:.55;

  cursor:not-allowed;

}

.admin-panel{

  margin-top:36px;

  padding-top:30px;

  border-top:1px solid rgba(168,85,247,.35);

}

.admin-panel h3{

  font-size:28px;

  margin-bottom:12px;

  text-align:center;

}

.file-field{

  cursor:pointer;

}

.drop-zone{

  margin:18px 0 4px;

  padding:28px;

  border:2px dashed rgba(168,85,247,.55);

  border-radius:22px;

  background:rgba(168,85,247,.05);

  color:var(--purple-soft);

  font-family:Inter,Arial,sans-serif;

  text-align:center;

}

.drop-zone:hover{

  background:rgba(168,85,247,.1);

}

.gallery-section{

  margin-top:42px;

  padding-top:32px;

  border-top:1px solid rgba(168,85,247,.35);

}

.section-head{

  display:flex;

  justify-content:space-between;

  align-items:center;

  gap:12px;

  margin-bottom:18px;

}

.section-head h3{

  font-size:30px;

  line-height:1;

}

#gallery-status{

  margin-bottom:18px;

  color:var(--purple-soft);

  text-align:center;

  font-family:Inter,Arial,sans-serif;

}
#gallery-grid{

  display:grid !important;

  grid-template-columns:repeat(auto-fit,180px) !important;

  justify-content:center !important;

  gap:20px !important;

  width:100% !important;

  max-width:900px !important;

  margin:0 auto !important;

  overflow:hidden !important;

}

.gallery-card{

  width:180px !important;

  height:240px !important;

  position:relative;

  overflow:hidden !important;

  border-radius:18px !important;

  border:1px solid rgba(168,85,247,.55);

  background:#111;

  box-shadow:0 0 18px rgba(168,85,247,.25);

}

.gallery-card img,
.gallery-image,
#gallery-grid img{

  display:block !important;

  width:180px !important;

  height:240px !important;

  max-width:180px !important;

  max-height:240px !important;

  object-fit:cover !important;

  border-radius:18px !important;

  cursor:pointer;

  transition:.25s;

}

.gallery-card:hover img{

  transform:scale(1.05);

}

.delete-btn{

  position:absolute;

  top:8px;

  right:8px;

  z-index:2;

  border:0;

  border-radius:10px;

  padding:6px 10px;

  background:#ff355e;

  color:#fff;

  font-size:12px;

  cursor:pointer;

}

.delete-btn:hover{

  background:#ff1744;

}

.lightbox{

  position:fixed;

  inset:0;

  z-index:9999;

  background:rgba(0,0,0,.92);

  display:flex;

  align-items:center;

  justify-content:center;

  padding:30px;

}

.lightbox.hidden{

  display:none !important;

}

.lightbox-image{

  max-width:92vw;

  max-height:90vh;

  width:auto;

  height:auto;

  object-fit:contain;

  border-radius:18px;

  box-shadow:0 0 50px rgba(168,85,247,.45);

}

.lightbox-close{

  position:absolute;

  top:22px;

  right:24px;

  width:52px;

  height:52px;

  border-radius:999px;

  border:1px solid rgba(255,255,255,.45);

  background:rgba(0,0,0,.5);

  color:#fff;

  font-size:38px;

  line-height:1;

  cursor:pointer;

}

.lightbox-nav{

  position:absolute;

  top:50%;

  transform:translateY(-50%);

  width:56px;

  height:70px;

  border-radius:999px;

  border:1px solid rgba(255,255,255,.45);

  background:rgba(0,0,0,.5);

  color:#fff;

  font-size:50px;

  cursor:pointer;

}

.lightbox-prev{

  left:24px;

}

.lightbox-next{

  right:24px;

}
@keyframes fadeIn{

  from{

    opacity:0;

    transform:translateY(16px);

  }

  to{

    opacity:1;

    transform:translateY(0);

  }

}

html{

  scroll-behavior:smooth;

}

img{

  max-width:100%;

  display:block;

}

a{

  transition:.25s;

}

button{

  transition:.25s;

}

button:hover{

  transform:translateY(-1px);

}

button:focus,
a:focus,
input:focus{

  outline:none;

}

@media(max-width:900px){

  .hero-card{

    width:100%;

  }

  .panel{

    width:100%;

  }

}

@media(max-width:700px){

  .page-shell{

    padding:28px 14px;

  }

  .panel{

    padding:24px 18px;

    border-radius:24px;

  }

  h1{

    font-size:52px;

  }

  .section-head{

    flex-direction:column;

    align-items:flex-start;

  }

  #gallery-grid{

    grid-template-columns:repeat(2,160px) !important;

    gap:14px !important;

  }

  .gallery-card{

    width:160px !important;

    height:220px !important;

  }

  .gallery-card img,
  .gallery-image,
  #gallery-grid img{

    width:160px !important;

    height:220px !important;

    max-width:160px !important;

    max-height:220px !important;

  }

  .lightbox-nav{

    display:none;

  }

}

@media(max-width:420px){

  h1{

    font-size:42px;

  }

  .tabs{

    grid-template-columns:1fr;

  }

  #gallery-grid{

    grid-template-columns:1fr !important;

    justify-items:center;

  }

  .gallery-card{

    width:220px !important;

    height:300px !important;

  }

  .gallery-card img,
  .gallery-image,
  #gallery-grid img{

    width:220px !important;

    height:300px !important;

    max-width:220px !important;

    max-height:300px !important;

  }

}
/* =========================================
   GALLERY V2
========================================= */

.gallery-card{
    transition:.25s;
}

.gallery-card:hover{

    transform:translateY(-6px);

    box-shadow:
        0 0 20px rgba(168,85,247,.35),
        0 12px 40px rgba(0,0,0,.45);

}

.gallery-image{

    transition:
        transform .35s,
        opacity .35s;

}

.gallery-card:hover .gallery-image{

    transform:scale(1.08);

}

/* =========================================
   DROP ZONE
========================================= */

.drop-zone{

    margin-top:18px;

    border:2px dashed rgba(168,85,247,.45);

    border-radius:18px;

    padding:34px;

    color:#d8b4fe;

    text-align:center;

    transition:.25s;

    cursor:pointer;

}

.drop-zone.drag{

    border-color:#ef4444;

    background:rgba(168,85,247,.10);

    transform:scale(1.02);

}

/* =========================================
   DELETE BUTTON
========================================= */

.delete-btn{

    opacity:0;

    transition:.2s;

}

.gallery-card:hover .delete-btn{

    opacity:1;

}

/* =========================================
   LIGHTBOX
========================================= */

.lightbox{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.92);

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:9999;

    padding:40px;

    animation:fadeIn .2s;

}

.lightbox.hidden{

    display:none !important;

}

.lightbox-image{

    max-width:92vw;

    max-height:90vh;

    border-radius:18px;

    box-shadow:0 0 60px rgba(168,85,247,.45);

}

.lightbox-close{

    position:absolute;

    top:24px;

    right:24px;

    width:52px;

    height:52px;

    border-radius:999px;

    border:1px solid rgba(255,255,255,.35);

    background:rgba(0,0,0,.4);

    color:white;

    font-size:38px;

    cursor:pointer;

}

.lightbox-nav{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:56px;

    height:70px;

    border-radius:999px;

    border:1px solid rgba(255,255,255,.35);

    background:rgba(0,0,0,.4);

    color:white;

    font-size:46px;

    cursor:pointer;

}

.lightbox-prev{

    left:24px;

}

.lightbox-next{

    right:24px;

}

/* =========================================
   BUTTON ANIMATION
========================================= */

.primary-btn,
.member-link,
.danger-btn{

    transition:.25s;

}

.primary-btn:hover,
.member-link:hover,
.danger-btn:hover{

    transform:translateY(-2px);

}

/* =========================================
   MOBILE
========================================= */

@media(max-width:700px){

    .lightbox-nav{

        display:none;

    }

}
