/* assets/css/main.css
   Electric-Kiwi neon portfolio stylesheet
   Sections:
   - variables
   - base / typography
   - header
   - background layers
   - hero
   - gallery / cards / lightbox
   - wallpapers
   - modal / donate
   - responsiveness
*/

/* ========================
   Variables / Palette
   ======================== */
:root{
  --bg-base: #0b0a10;
  --ghost-purple: #6e3cf2;
  --neon-purple: #8a2be2;
  --neon-cyan: #2ee5d6;
  --accent-white: rgba(255,255,255,0.95);
  --glass: rgba(255,255,255,0.04);
  --glass-strong: rgba(255,255,255,0.08);
  --card-radius: 14px;
  --max-width: 1200px;
  --gap: 18px;
  --transition: 0.25s ease;
  --glow: 0 6px 30px rgba(138,43,226,0.18), 0 0 8px rgba(46,229,214,0.06);
}

/* ========================
   Base
   ======================== */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: linear-gradient(180deg, rgba(6,6,12,1) 0%, rgba(10,8,18,1) 100%);
  color:var(--accent-white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  min-height:100vh;
  position:relative;
}

/* utility */
.hidden{display:none!important}
.container{max-width:var(--max-width);margin:0 auto;padding:48px 20px}

/* ========================
   Background container & overlays
   ======================== */
#bg-container{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  overflow:hidden;
}

/* layers are absolutely stacked, fill area */
.bg-layer{
  position:absolute;
  inset:-10% 0 -10% 0; /* allow for parallax movement */
  background-position:center;
  background-size:cover;
  transform:translate3d(0,0,0);
  transition:opacity 600ms ease, transform 700ms cubic-bezier(.2,.9,.2,1);
  opacity:0;
  will-change:opacity, transform;
  filter: saturate(1.05) contrast(1.02) brightness(0.92);
}

/* active layer visible */
.bg-layer.active{opacity:1;transform:translateY(0);}

/* Overlays */
.bg-overlay{
  position:absolute; inset:0; pointer-events:none;
}
.bg-overlay.noise{
  background-image: url("../bg/noise.png");
  mix-blend-mode:overlay; opacity:0.45;
}
.bg-overlay.slices{
  background-image: url("../bg/slices.jpg"); background-position:center; background-size:cover; opacity:0.12; mix-blend-mode:screen;
}
.bg-overlay.smoke{
  background-image: url("../bg/smoke.jpg"); background-position:center; background-size:cover; opacity:0.2; mix-blend-mode:screen;
}

/* Fallback solid composite */
body::before{
  content:"";
  position:fixed; inset:0; z-index:-2;
  background: linear-gradient(180deg, rgba(5,5,9,1) 0%, rgba(9,7,15,1) 100%); 
  pointer-events:none;
}

/* ========================
   Header
   ======================== */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:40;
  padding:12px 20px;
  backdrop-filter: blur(8px);
  background: linear-gradient(180deg, rgba(10,10,14,0.28), rgba(10,10,14,0.06));
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.header-inner{
  max-width:var(--max-width);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:16px;
  justify-content:space-between;
}
.brand{
  font-weight:700;
  letter-spacing:1px;
  color:var(--accent-white);
  text-decoration:none;
  font-size:18px;
}
.main-nav ul{display:flex;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
.main-nav a, .main-nav button{
  display:inline-block;
  padding:8px 12px;
  border-radius:10px;
  text-decoration:none;
  color:var(--accent-white);
  background:var(--glass);
  border:1px solid rgba(255,255,255,0.06);
  box-shadow:var(--glow);
  transition: transform .15s ease, box-shadow .15s ease;
  font-size:14px;
}
.main-nav a:focus, .main-nav button:focus, .main-nav a:hover, .main-nav button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 40px rgba(138,43,226,0.18);
  outline:2px solid rgba(46,229,214,0.06);
}
.menu-toggle{display:none;background:none;border:0;color:var(--accent-white)}

/* Donate special style */
.btn.donate{background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple));color:#051018; font-weight:700;padding:8px 14px}

/* ========================
   Preloader
   ======================== */
.preloader{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:60;
  background:linear-gradient(180deg, rgba(4,4,6,0.7), rgba(4,4,6,0.45)); backdrop-filter:blur(4px);
  transition:opacity .45s ease, visibility .45s;
}
.preloader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.preloader .logo{font-weight:800; font-size:20px; letter-spacing:1px; color:var(--accent-white)}
.spinner{
  width:36px;height:36px;margin-top:12px;border-radius:50%;
  border:4px solid rgba(255,255,255,0.06);
  border-top-color:var(--neon-cyan);
  animation:spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ========================
   Sections: hero, gallery, wallpaper, contact
   ======================== */
.section{padding:120px 20px; min-height:60vh; position:relative; display:flex; align-items:center}
.section-inner{max-width:var(--max-width); margin:0 auto; width:100%}
.hero{padding-top:160px; padding-bottom:160px}
.hero-inner{display:grid; gap:18px; align-items:start}
h1{font-size:44px; margin:0; line-height:1.05}
h1 .accent{background:linear-gradient(90deg,var(--ghost-purple),var(--neon-cyan)); -webkit-background-clip:text; color:transparent}
.lead{opacity:0.92; max-width:780px}
.hero-actions{display:flex; gap:12px}
.btn{padding:10px 14px; border-radius:10px; text-decoration:none; background:var(--glass); border:1px solid rgba(255,255,255,0.06); color:var(--accent-white)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.04)}

/* ========================
   Gallery grid / cards
   ======================== */
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:var(--gap);
  align-items:start;
  margin-top:18px;
}
.card-art{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:var(--card-radius);
  overflow:hidden;
  box-shadow: 0 10px 40px rgba(0,0,0,0.6);
  position:relative;
  display:flex;
  flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.card-art:focus-within, .card-art:hover{transform:translateY(-6px); box-shadow:0 20px 60px rgba(0,0,0,0.7)}
.card-art img{display:block;width:100%;height: auto;object-fit:cover}
.card-body{padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:8px}
.card-title{font-weight:700;font-size:14px}
.card-meta{opacity:.8;font-size:13px}
.card-actions{display:flex;gap:8px; align-items:center}
.card-actions a{font-size:13px;padding:6px 8px;border-radius:8px;text-decoration:none;background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border:1px solid rgba(255,255,255,0.04)}

/* Download button accent */
.card-actions a.download{background:linear-gradient(90deg,var(--neon-cyan),var(--neon-purple)); color:#051018; font-weight:700}

/* ========================
   Lightbox
   ======================== */
.lightbox{
  position:fixed; inset:0; z-index:70; display:flex; align-items:center; justify-content:center; background:rgba(2,2,3,0.75); opacity:0; visibility:hidden; transition:opacity .25s;
}
.lightbox[aria-hidden="false"]{opacity:1; visibility:visible}
.lb-stage{max-width:92vw; max-height:86vh; overflow:hidden; display:flex; flex-direction:column; align-items:center; gap:12px}
.lb-stage img{max-width:100%; max-height:76vh; object-fit:contain; border-radius:8px}
.lb-close, .lb-nav{position:absolute; top:18px; background:transparent; border:0; color:var(--accent-white); font-size:28px; cursor:pointer}
.lb-close{right:20px}
.lb-nav{left:20px}

/* ========================
   Wallpapers grid
   ======================== */
.wallpapers-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:var(--gap);
  margin-top:18px;
}
.wallpaper-tile{
  border-radius:12px; overflow:hidden; position:relative; background:var(--glass);
}
.wallpaper-tile img{width:100%; height:150px; object-fit:cover}
.wallpaper-actions{position:absolute; right:8px; bottom:8px; display:flex; gap:8px}

/* ========================
   Modal (donate)
   ======================== */
.modal{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:80; background:rgba(0,0,0,0.6); opacity:0; visibility:hidden; transition:opacity .2s}
.modal[aria-hidden="false"]{opacity:1; visibility:visible}
.modal-inner{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); padding:18px; border-radius:12px; max-width:420px; text-align:center}
.modal img{max-width:320px; width:100%; height:auto; display:block; margin:12px auto}

/* ========================
   Footer
   ======================== */
.site-footer{padding:20px; text-align:center; opacity:0.9; border-top:1px solid rgba(255,255,255,0.03); margin-top:20px}

/* ========================
   Responsive
   ======================== */
@media (max-width:1100px){
  .gallery-grid{grid-template-columns: repeat(2,1fr)}
  .wallpapers-grid{grid-template-columns: repeat(3,1fr)}
}
@media (max-width:720px){
  .header-inner{gap:8px}
  .main-nav{display:none}
  .menu-toggle{display:inline-block}
  #mobile-nav{position:fixed;top:64px;right:12px;background:var(--glass);padding:12px;border-radius:10px;z-index:50}
  .gallery-grid{grid-template-columns: 1fr}
  .wallpapers-grid{grid-template-columns: repeat(2,1fr)}
  h1{font-size:30px}
  .hero{padding-top:120px;padding-bottom:120px}
}
