*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}
:root{
  --bg:#0b1020;
  --bg2:#0f172a;
  --card:rgba(255,255,255,.06);
  --stroke:rgba(255,255,255,.14);
  --text:#e5e7eb;
  --muted:#9ca3af;
  --accent:#6441a5;
  --accent2:#a78bfa;
  --shadow:0 10px 30px rgba(0,0,0,.25);
  --radius:20px;
}
body{
  min-height:100vh;
  font-family:Inter,system-ui,ui-sans-serif,-apple-system,Segoe UI,Roboto;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 15% 10%, rgba(34,211,238,.15), transparent 60%),
    radial-gradient(1200px 600px at 85% 20%, rgba(167,139,250,.12), transparent 60%),
    linear-gradient(135deg,var(--bg),var(--bg2));
  background-repeat:no-repeat;
  background-size:cover;
  background-attachment:fixed;
}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.header{padding:72px 0 36px; position:relative}
.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--stroke);font-size:12px}
.header h1{font-size: clamp(32px, 6vw, 64px); line-height:1.05; margin:16px 0 8px; font-weight:800}
.accent{color:var(--accent)}
.sub{color:var(--text); opacity:.8; max-width:640px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:16px;border:1px solid transparent;transition:transform .15s ease, box-shadow .2s ease, background .2s ease, border .2s ease;cursor:pointer;text-decoration:none;color:var(--text); position:relative; overflow:hidden}
.btn-primary{background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-1px);}
.btn-ghost{background:rgba(255,255,255,.08);border-color:var(--stroke)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn.icon{width:52px;padding:0;font-size:20px}
.btn.full{flex:1}
.card{background:var(--card);border:1px solid var(--stroke);backdrop-filter: blur(8px); border-radius:var(--radius); padding:20px; margin-bottom:40px}
.uploader{border:2px dashed var(--stroke); border-radius:24px; padding:18px; transition:border-color .2s, background .2s}
.uploader.dragover{border-color:var(--accent); background:rgba(34,211,238,.07)}
.uploader-inner{display:flex;align-items:center;gap:14px;justify-content:center;padding:26px; cursor:pointer}
.uploader-icon{font-size:28px;background:rgba(255,255,255,.08);border:1px solid var(--stroke); width:56px; height:56px; display:grid; place-items:center; border-radius:16px; transition:transform .2s}
.uploader:hover .uploader-icon{transform:rotate(5deg) scale(1.02)}
.uploader-text p{margin:0}
.muted{opacity:.7;font-size:14px}
.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px}
@media (max-width:900px){.controls{grid-template-columns:1fr}}
.control{background:rgba(255,255,255,.04);border:1px solid var(--stroke); padding:16px;border-radius:16px}
label{display:block;font-weight:600;margin-bottom:6px}
input[type="range"]{width:100%}
.row{display:flex;align-items:center;gap:10px}
.row.between{justify-content:space-between}
.row.mt{margin-top:10px}
.gap{gap:10px}
.hidden{display:none}
.preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; margin-top:18px}
.thumb{position:relative; border:1px solid var(--stroke); border-radius:14px; padding:10px; background:rgba(0,0,0,.25); display:flex; flex-direction:column; gap:8px}
.thumb-canvas{width:100%; aspect-ratio:1/1; background:rgba(0,0,0,.2); border-radius:10px}
.thumb-title{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meta{font-size:12px;opacity:.7;display:flex;flex-direction:column;gap:2px}
.thumb-del{
  position:absolute; top:8px; right:8px;
  width:28px; height:28px; display:grid; place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(15,23,42,.6);
  color:var(--text);
  cursor:pointer;
  backdrop-filter: blur(6px);
  transition:transform .12s ease, background .2s ease;
}
.thumb-del:hover{ transform:scale(1.05); background:rgba(15,23,42,.75) }

.hint{opacity:.75;font-size:14px;margin-top:14px}
.footer{display:flex;align-items:center;justify-content:space-between; gap:12px; padding-bottom:40px; opacity:.85}
.footer .links a{color:var(--text); opacity:.8; text-decoration:none; margin-left:12px}
.footer .links a:hover{opacity:1}
.mt{margin-top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* --- Custom Select (closed & open) --- */
.cselect{position:relative}
.cselect-btn{
  width:100%;
  background:rgba(255,255,255,.08);
  border:1px solid var(--stroke);
  color:var(--text);
  padding:12px 42px 12px 12px;
  border-radius:12px;
  outline:none;
  text-align:left;
  cursor:pointer;
  transition:background .2s ease, border .2s ease, box-shadow .2s ease;
}
.cselect-btn:hover{background:rgba(255,255,255,.12)}
.cselect-btn:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(34,211,238,.2)}
.cselect-btn .caret{position:absolute; right:12px; top:50%; transform:translateY(-50%); opacity:.85}
.cselect-list{
  position:absolute; left:0; right:0; top:calc(100% + 6px);
  background:rgba(15,23,42,.98);
  backdrop-filter: blur(8px);
  border:1px solid var(--stroke);
  border-radius:12px;
  box-shadow: var(--shadow);
  padding:6px;
  display:none;
  z-index:50;
}
.cselect.open .cselect-list{display:block}
.cselect-option{
  width:100%;
  display:flex; align-items:center; gap:8px;
  padding:10px 12px;
  background:transparent;
  color:var(--text);
  border:none; border-radius:10px;
  text-align:left; cursor:pointer;
  transition: background .15s ease, transform .05s ease;
}
.cselect-option:hover, .cselect-option[aria-selected="true"]{ background:rgba(255,255,255,.08) }
.cselect-option:active{ transform:scale(.995) }

/* --- Dark Toggle (custom checkbox) --- */
.toggle input{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  width:48px; height:28px; position:relative;
  background:rgba(255,255,255,.08);
  border:1px solid var(--stroke);
  border-radius:999px;
  cursor:pointer;
  outline:none;
  transition:background .2s ease, border .2s ease, box-shadow .2s ease;
}
.toggle input:hover{ background:rgba(255,255,255,.12) }
.toggle input:focus{ box-shadow:0 0 0 3px rgba(34,211,238,.2) }
.toggle input::after{
  content:""; position:absolute; top:3px; left:3px;
  width:22px; height:22px; border-radius:999px;
  background:linear-gradient(180deg,#ffffff,#e5e7eb);
  box-shadow:0 2px 6px rgba(0,0,0,.25);
  transition: transform .2s ease;
  transform:translateX(0);
}
.toggle input:checked{
  background:linear-gradient(90deg,var(--accent),var(--accent2));
  border-color:transparent;
}
.toggle input:checked::after{ transform:translateX(20px) }
.toggle input:disabled{ opacity:.5; cursor:not-allowed }

/* --- Fancy hover animation on ZIP button --- */
@keyframes progressSwipe{
  0%{ transform: translateX(-100%); }
  100%{ transform: translateX(100%); }
}
.btn-fancy::after{
  content:"";
  position:absolute; left:0; bottom:0; height:3px; width:100%;
  background:linear-gradient(90deg, var(--accent), var(--accent2));
  transform:translateX(-100%);
  opacity:.9;
}
.btn-fancy:hover::after{
  animation: progressSwipe 1.2s linear infinite;
}
